智谱AI推出全自研第三代基座大模型ChatGLM3

释放双眼,带上耳机,听听看~!
智谱AI在2023中国计算机大会(CNCC)上推出了全自研的第三代基座大模型ChatGLM3,作为人工智能助手,可以用于回答问题、提供建议和执行任务。本文介绍了如何基于 ChatGLM3 搭建客户端,并提供了框架地址、模型下载步骤等详细信息。

智谱AI在2023中国计算机大会(CNCC)上推出了全自研的第三代基座大模型ChatGLM3,ChatGLM3 语言模型作为人工智能助手,可以用于回答问题、提供建议和执行任务等。本文将介绍如何基于 ChatGLM3 搭建客户端,从0开始实现一个聊天机器人。

ChatGLM3 介绍

ChatGLM3 基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型 GLM2 开发而成,可以针对用户的问题和要求提供适当的答复和支持,同时在各个任务上相比 ChatGLM2 都有了很大的提升。

ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:

  1. 更强大的基座:
  • 全新设计的Prompt格式,在不影响模型通用能力的情况下,全方面增强 chatglm3-6b 能力
  • 在语义、 数学、推理、代码、知识等不同角度的数据集上表现出色
  • 44个中英文公开数据集测试国内第一
  1. 更强大的功能:
  • 全新设计的 Prompt 格式,在不影响模型通用能力的情况下,全方面增强 ChatGLM3-6B 能力
  • 原生支持工具调用(Function Call) 代码执行(Code Interpreter) 以及 Agent 任务

智谱AI推出全自研第三代基座大模型ChatGLM3

目前 ChatGLM3-6B 已经开源,包括:ChatGLM3-6B、ChatGLM3-6B-Base、ChatGLM3-6B-32K,相关参数及链接如下:

Model Seq Length Download 1 Download 2
ChatGLM3-6B 8k HuggingFace   ModelScope
ChatGLM3-6B-Base 8k HuggingFace   ModelScope
ChatGLM3-6B-32K 32k HuggingFace   ModelScope

GPU 资源要求:

量化等级 生成 8k 长度的最小显存
FP16 15.9 GB
INT8 11.1 GB
INT4 8.5 GB

CPU 资源要求:
如果 GPU 不满足,可以考虑 CPU,需要 32GB 或以上内存大小,但是推理速度很慢。

ChatGLM3 部署

一、准备工作

  1. 本项目需要 Python 3.10 或更高版本:
conda create -n ChatGLM3 python=3.10
conda activate ChatGLM3
  1. 安装依赖:
  • 较好推理性能:transformers 库版本 4.30.2torch 库版本 2.0及以上
  • 注意下载与 CUDA 版本对应的 PyTorch,推荐组合:torch2.0.1+CUDA11.8
    pip install torch==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118
    pip install -r requirements.txt
    
  • 多显卡需要安装accelerate
    pip install accelerate
    
  1. Jupyter 内核:
    如果使用 Code Interpreter 还需要安装 Jupyter 内核:
ipython kernel install --name ChatGLM3 --user

二、下载框架与模型

框架地址:
本项目使用:ChatGLM3/composite_demo

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

模型地址:

git lfs clone https://huggingface.co/THUDM/chatglm3-6b

三、部署配置

(在ChatGLM3/composite_demo路径下操作)
GPU:

  1. 模型权重
    指定本地下载的模型权重,避免在线下载模型
    编辑client.py文件:
MODEL_PATH = os.environ.get('MODEL_PATH', 'chatglm3-6b路径')
  1. 多显卡部署(可选)
from utils import load_model_on_gpus
model = load_model_on_gpus("chatglm3-6b路径", num_gpus=显卡数)
  1. CPU 部署(不建议)
model = AutoModel.from_pretrained("chatglm3-6b路径", trust_remote_code=True).float()
  1. 预设提示词
    可以预先为大模型指定规则、场景、角色等要求
    编辑main.py文件:
DEFAULT_SYSTEM_PROMPT = '''
提示词内容
'''.strip()

四、启动

默认在 8501 端口运行

方法一、基于 Gradio

  • 前台:python web_demo.py
  • 后台:python web_demo.py > /mnt/workspace/log/ChatGLM3_composite.log 2>&1 &

方法二、基于 streamlit

  • 前台:streamlit run main.py
  • 后台:streamlit run main.py > /mnt/workspace/log/ChatGLM3_composite.log 2>&1 &

智谱AI推出全自研第三代基座大模型ChatGLM3

ChatGLM3 客户端拥有三种模式:

  • Chat: 对话模式,在此模式下可以与模型进行对话。
  • Tool: 工具模式,模型除了对话外,还可以通过工具进行其他操作。
  • Code Interpreter: 代码解释器模式,模型可以在一个 Jupyter 环境中执行代码并获取结果,以完成复杂任务。

需要注意,在 Code Interpreter 模式中,代码解释器环境调用本地的 Jupyter,执行环境没有隔离,在多用户使用的场景下其实使用的是同一个环境,会导致混淆。

五、内网穿透

在本地部署 ChatGLM3,如果想在互联网环境可以访问,那么就可以选择通过内网穿透方法来实现。

这里介绍 ngrok 工具:

  • 官网:ngrok.com/
  • 连接用户:
    • ./ngrok authtoken [Your Authtoken]
  • 绑定端口:
    • ./ngrok http 8501

使用客户端

一、对话模型

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

  • top_p: 通常设置为较高的值(如 0.75),目的是限制可能被采样的低概率 token 的长度
  • temperature: 数值越大思维越发散;数值越小越收敛
  • System Prompt: 预设提示词,可以指定场景、用途、角色等

二、工具模式

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

智谱AI推出全自研第三代基座大模型ChatGLM3

三、代码解释器模式

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

其他操作

  • 在模型生成文本时,可以通过页面右上角的 Stop 按钮进行打断。
  • 刷新页面即可清空对话记录。

结语

通过部署客户端,可以对 ChatGLM3 有一个全面的认识和了解,同时也收获了一个可交互的聊天机器人,后面可以继续探索更深入的应用场景。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

10大人工智能AI绘画软件排名及特点解析

2023-11-20 10:48:14

AI教程

YHM2009芯片介绍及应用领域分析

2023-11-20 10:56:55

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索