当前位置: 首页 > news >正文

11.4k star! 部署清华开源的ChatGLM3,用私有化大模型无缝替换openai

转自AI技术实战

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的第三代开源模型,对话流畅、部署门槛低,测评显示其基础模型ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能,同时支持工具调用(Function Call)、代码执行(Code Interpreter)和Agent任务等复杂场景。

function call效果:

图片

code interpreter效果:

图片

github地址在文末,推理需要大约14G显存,本文基于ubuntu系统部署,windows系统类似。

1. 下载模型

下载模型需要用到git的LFS扩展,windows系统在https://git-lfs.com下载LFS,下面是ubuntu系统安装LFS的方式,其他linux系统可以参考文档https://github.com/git-lfs/git-lfs/blob/main/INSTALLING.md

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install git-lfs
git lfs install

安装好LFS后就可以下载了,huggingface比较慢,可以在魔搭社区下载

https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary

执行以下命令,等待下载完成,总共24G。

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

2.安装部署

本文介绍两种部署方式,一种是使用上一篇介绍的25.7k star! 用langchain-chatchat部署私有化RAG知识库,另一种是使用ChatGLM官方项目部署。

2.1 在langchain-chatchat中使用

在上一篇文章中,我们使用docker部署了langchain-chatchat,但是默认模型是chatglm2-6b,现在只需要将模型修改为chatglm3-6b就可以了,将下载好的chatglm3-6b拷贝到docker容器的根目录下:

docker cp chatglm3-6b 你的容器名称:/

chatchat在容器的/langchain-chatchat目录,进入容器,再进入configs目录:

docker exec -it 你的容器名称 /bin/bashcd /langchain-chatchat/configs

编辑model_config.py文件,在llm_model中增加chatglm3-6b,如图所示:

图片

将LLM_MODELS中的chatglm2-6b修改为chatglm3-6b,如图所示:

图片

修改后重启容器,再打开,这里就变成chatglm3-6b了。

图片

2.2 使用ChatGLM官方项目部署

如果没有部署chatchat,也可以使用ChatGLM官方项目部署。

使用git下载ChatGLM源码

git clone git@github.com:THUDM/ChatGLM3.git

进入ChatGLM3源码目录,使用清华镜像安装依赖:

cd ChatGLM3-mainpip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

3. 运行

如果使用chatchat项目部署,直接在页面上选择chatglm3-6b就可以聊天了。下面是使用ChatGLM3项目部署的用法。

ChatGLM3项目提供了多个demo,进入相应demo目录下,修改模型路径运行就可以,下面以gradio网页demo举例说明,其他同理。

图片

进入basic_demo目录

cd basic_demo

修改web_demo_gradio.py,将MODEL_PATH的值改为第一步下载好的模型路径:

图片

运行

python3 web_demo_gradio.py

在浏览器打开http://localhost:7870就可以聊天了

4. 无缝替换openAI

ChatGLM提供了openai标准的API,通过这个API我们可以将任何接入openai的应用无缝切换为私有化部署的ChatGLM3。

cd openai_api_demo

修改api_server.py,将MODEL_PATH的值改为第一步下载好的模型路径:

图片

后台运行:

nohup python3 api_server.py &

这样就启动了openai接口的服务,可以把私有化部署的ChatGLM3当openai用了,比如之前文章中247.2k star! 超强大的私有化ChatGPT,支持图像识别/文生图/语音输入/文本朗读,个人电脑可运行!有接入openai的功能,现在我们可以把配置的openai的地址改为本地,从而将open-webui接入ChatGLM3:

图片

其他像各种基于openai的插件、应用等,只要可以配置url,都可以无缝切换为ChatGLM3。

github地址

https://github.com/THUDM/ChatGLM3

相关文章:

  • 探索Python的工业通信之光:pymodbus的奇妙之旅
  • STM32时钟树配置
  • linux dig域名DNS 查询与iptables域名ip访问流量限制
  • 元素设置了sticky粘性布局后,关于滚动后怎么样让这个元素自动添加阴影,我用自定义指令实现
  • 4.3 数据操作语言(DML):增删改查操作
  • 牛客网SQL进阶135 :每个6/7级用户活跃情况
  • 【c++】通过Privilege类来保护数据
  • 【layui】layer弹出图片层(开启图片旋转 放大 缩小 还原)
  • PostgreSQL常用命令,启动连接,pg_dump导入导出
  • Python模块篇(五)
  • 2408d,加@GC作为函数属性
  • Java基于数据库、乐观锁、悲观锁、Redis、Zookeeper分布式锁的简单案例实现(保姆级教程)
  • 面试题:MQ
  • seata的使用(SpringBoot项目整合seata)
  • RabbitMQ-消息队列延迟队列一
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 4个实用的微服务测试策略
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CAP理论的例子讲解
  • github从入门到放弃(1)
  • JavaScript设计模式系列一:工厂模式
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • magento 货币换算
  • nodejs:开发并发布一个nodejs包
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SQLServer之创建数据库快照
  • tensorflow学习笔记3——MNIST应用篇
  • 搭建gitbook 和 访问权限认证
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 开源地图数据可视化库——mapnik
  • 使用权重正则化较少模型过拟合
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 源码安装memcached和php memcache扩展
  • ionic异常记录
  • Java总结 - String - 这篇请使劲喷我
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ‌移动管家手机智能控制汽车系统
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #VERDI# 关于如何查看FSM状态机的方法
  • #WEB前端(HTML属性)
  • #window11设置系统变量#
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C++)八皇后问题
  • (Qt) 默认QtWidget应用包含什么?
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (第27天)Oracle 数据泵转换分区表
  • (定时器/计数器)中断系统(详解与使用)
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m