完整ChatGLM3部署教程,支持手机和车载平台部署
AI魔法学院
2023-11-29
分享海报

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:

更强大的基础模型ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。

更完整的功能支持ChatGLM3-6B 采用了全新设计的 Prompt 格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。

更全面的开源序列:除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base、长文本对话模型 ChatGLM3-6B-32K

模型列表如下:

ChatGLM3-6B

ChatGLM3-6B-Base

ChatGLM3-6B-32K

下面是详细的安装方法。

IMG_256

环境安装

首先需要下载本仓库:

git clone https://github.com/THUDM/ChatGLM3cd ChatGLM3

然后使用 pip 安装依赖:

pip install -r requirements.txt

其中 transformers 库版本推荐为 4.30.2torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能。

ChatGLM3安装

我们建议通过 Conda 进行环境管理。执行以下命令新建一个 conda 环境并安装所需依赖:

conda create -n chatglm3-demo python=3.10conda activate chatglm3-demopip install -r requirements.txt

请注意,本项目需要 Python 3.10 或更高版本。此外,使用 Code Interpreter 还需要安装 Jupyter 内核:

ipython kernel install --name chatglm3-demo --user


运行

运行以下命令在本地加载模型并启动 demo

streamlit run main.py

之后即可从命令行中看到 demo 的地址,点击即可访问。初次访问需要下载并加载模型,可能需要花费一定时间。如果已经在本地下载了模型,可以通过以下方式

export MODEL_PATH=/path/to/model

来指定从本地加载模型。如果需要自定义 Jupyter 内核,可以通过 export IPYKERNEL=<kernel_name> 来指定。

IMG_259

使用

ChatGLM3 Demo 拥有三种模式:

Chat: 对话模式,在此模式下可以与模型进行对话。

Tool: 工具模式,模型除了对话外,还可以通过工具进行其他操作。

Code Interpreter: 代码解释器模式,模型可以在一个 Jupyter 环境中执行代码并获取结果,以完成复杂任务。

IMG_260

对话模式

对话模式下,用户可以直接在侧边栏修改 top_p, temperature, System Prompt 等参数来调整模型的行为。例如

IMG_261

工具模式

可以通过在 tool_registry.py 中注册新的工具来增强模型的能力。只需要使用 @register_tool 装饰函数即可完成注册。对于工具声明,函数名称即为工具的名称,函数 docstring 即为工具的说明;对于工具的参数,使用 Annotated[typ: type, description: str, required: bool] 标注参数的类型、描述和是否必须。例如,get_weather 工具的注册如下:

@register_tooldef get_weather(    city_name: Annotated[str, 'The name of the city to be queried', True],) -> str:    """    Get the weather for `city_name` in the following week    """    ...

IMG_263

此外,你也可以在页面中通过 Manual mode 进入手动模式,在这一模式下你可以通过 YAML 来直接指定工具列表,但你需要手动将工具的输出反馈给模型。

IMG_264

代码解释器模式

由于拥有代码执行环境,此模式下的模型能够执行更为复杂的任务,例如绘制图表、执行符号运算等等。模型会根据对任务完成情况的理解自动地连续执行多个代码块,直到任务完成。因此,在这一模式下,你只需要指明希望模型执行的任务即可。例如,我们可以让 ChatGLM3 画一个爱心:

IMG_265

ChatGLM3还推出了可在手机上部署的端测模型ChatGLM3-1.5BChatGLM3-3B,支持包括vivo、小米、三星在内的多款手机以及车载平台,甚至支持移动平台上CPU芯片的推理,速度可达20tokens每秒(token是语言模型中用来表示单词或短语的符号)

出自:https://mp.weixin.qq.com/s/O0m0h-Vv-RzjaqeCEFiFLg

© THE END

转载请联系本网站获得授权

投稿或版权问题请加微信:skillupvip