ChatGLM2-6B 是 ChatGLM-6B 第二代版本,已经发布就一直位列 Huggingface 模型下载榜单前几位。
ChatGLM2-6B 相交前代模型在推理效果、推理速度和上下文长度上都有提升,具体效果如何,就让我们一起探索吧。
查看项目:
本项目是对 ChatGLM2-6B 模型能力的探索
项目的主要结构,如下图所示:
主要包含以下组件
以 websocket API 的方式访提供模型能力,解耦 Gradio 开发与模型加载,提高开发速度
使用 RPC 通信的方式提供模型能力,通信效率高,支持单向流式传输方式,建议使用
Gradio Web 应用参考 Falcon-Chat demo
pip install -r chatglm2_6b_explorer/requirements.txt --user
通过配置环境变量来进行设置,有以下配置项
配置项 | 说明 | 默认值 |
---|---|---|
CHAT_CLIENT | 指定使用的对话客户端,有两个客户端类型可选: - ChatGLM2APIClient:通过 API 访问模型 - ChatGLM2GRPCClient:使用 GPRC 方式访问 - ChatGLM2ModelClient:直接访问模型 |
ChatGLM2GRPCClient |
SERVER_TYPE | 指定运行模型服务的类型,有两种类型: - websocket: 启动 websocket 服务 - grpc: 启动 grpc 服务 |
grpc |
MODEL_WS_URL | 访问模型 websocket API 的地址 | ws://localhost:10001 |
MODEL_GRPC_TARGET | 访问模型 grpc 服务的 ip 与端口 | localhost:10002 |
CHATGLM_MODEL_PATH | 模型的路径 | THUDM/chatglm2-6b,即从 Huggingface 下载 |
CHAT_CLIENT
指定应用使用的对话客户端类型,有两个客户端类型可选
- ChatGLM2APIClient:通过 API 的方式访问模型的能力(需要启动 websocket 服务,操作请看:
三、运行模型 websocket 服务
) - ChatGLM2GRPCClient:通过 GRPC 的方式访问模型的能力(需要启动 GRPC 服务,操作请看:
四、运行模型 GRPC 服务
) - ChatGLM2ModelClient:直接加载模型访问
💡如果有开发基础,建议选择 ChatGLM2APIClient 或 ChatGLM2GRPCClient 方式,可以将 Gradio Web 界面开发与模型加载分离,提高开发与调试速度。
💡如果需要部署到Huggingface或者其他托管平台,建议使用 ChatGLM2ModelClient 方式,能够实现直接部署。
❗️强烈不建议在开发的时候使用 ChatGLM2ModelClient 方式,导致不断加载模型,拖慢开发速度。
SERVER_TYPE
指定启动模型服务的类型,有两种模型服务可选:
- websocket:使用 websocket 的协议提供模型能力的访问
- grpc:使用 rpc 的协议提供模型能力的访问
MODEL_WS_URL
指定模型 websocket 服务 URL,如果 CHAT_CLIENT=ChatGLM2APIClient
,则必须填写
MODEL_GRPC_TARGET
指定模型 grpc 服务的 ip 与端口,如果 CHAT_CLIENT=ChatGLM2GRPCClient
,则必须填写
CHATGLM_MODEL_PATH
指定使用的模型路径,如果是 THUDM/chatglm2-6b
则会从 Huggingface 拉取模型;如果指定本地模型路径,则使用本地模型。
前提:
- 安装了依赖、配置好
CHATGLM_MODEL_PATH
- 配置
SERVER_TYPE=websocket
cd chatglm2_6b_explorer/src
python runserver.py
前提:
- 安装了依赖、配置好
CHATGLM_MODEL_PATH
- 配置
SERVER_TYPE=grpc
cd chatglm2_6b_explorer/src
python runserver.py
cd chatglm2_6b_explorer/src
python gallery.gradio.py