尝试一下,在本地使用 ChatGLM3 模型搭建离线 AI 聊天系统

简介: 尝试一下,在本地使用 ChatGLM3 模型搭建离线 AI 聊天系统

什么是 ChatGLM3?

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。

ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,较前两代模型对话流畅、部署门槛也低。

本地搭建效果


147e221db100a50a5bae89626886e239.png


db8a8ab5272165626c6212f9f3d5f369.png

简单描述下本地电脑的配置:

系统:macOS 11.4

处理器:3.2 GHz 六核Intel Core i7

内存:32G

说实话,我本地运行有点吃力,大家可以考虑在一些算力平台上部署玩玩。

搭建步骤

1. ChatGLM3 下载

代码仓库:https://github.com/THUDM/ChatGLM3

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

这个项目中没有包含模型,只有一些简单的自带聊天功能和相关接口示例,你需要下载所需的模型。

db8a8ab5272165626c6212f9f3d5f369.png


fcab1f653648d9a274b5763007010fb4.png

2. ChatGLM3-6B 模型下载

f7cba2838af2d6ddaad5320cc263e333.png

完整的模型实现可以在 Hugging Face Hub。如果你的网络环境较差,下载模型参数可能会花费较长时间甚至失败。

此时可以先将模型下载到本地,然后从本地加载。

从 Hugging Face Hub 下载模型需要先安装 Git LFS,然后运行

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

如果你从 Hugging Face Hub 上下载 checkpoint 的速度较慢,可以只下载模型实现

GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b

然后从 https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/ 手动下载模型参数文件,并将下载的文件替换到本地的 chatglm-6b 目录下。

将模型下载到本地之后,将以上代码中的 THUDM/chatglm-6b 替换为你本地的 chatglm-6b 文件夹的路径,即可从本地加载模型。

3. 安装并激活虚拟环境

conda create --name chatglm3 python=3.10
conda activate chatglm3

4. 安装基础依赖

cd ChatGLM3
pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple

5. 安装 composite_demo 依赖

cd composite_demo
pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple

演示中使用 Code Interpreter 还需要安装 Jupyter 内核:

pip install ipykernel -i https://mirror.sjtu.edu.cn/pypi/web/simple
ipython kernel install --name chatglm3 --user

6. 修改 client.py 里面的配置信息

// 修改 MODEL_PATH , chatglm3-6b 绝对路径
MODEL_PATH = os.environ.get('MODEL_PATH', '/Users/xinliang/ai/chatglm3-6b')

7. CPU 部署代码调整

// 如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。使用方法如下(需要大概 32GB 内存)
// 调整 client.py 150 ~ 155 行代码
self.model = (
    AutoModel.from_pretrained(
        MODEL_PATH,
        trust_remote_code=True,
        device_map="auto"
    ).float().eval())

8. 运行

streamlit run main.py

运行成功后浏览器会自动打开上面文章中搭建成功的 web 页面。

目录
相关文章
|
15天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
3501 117
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
|
9天前
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
257 100
|
15天前
|
人工智能 物联网 开发者
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
Oumi 是一个完全开源的 AI 平台,支持从 1000 万到 4050 亿参数的模型训练,涵盖文本和多模态模型,提供零样板代码开发体验。
207 43
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
|
3天前
|
人工智能 编解码 算法
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
ENEL是由上海AI Lab推出的无编码器3D大型多模态模型,能够在多个3D任务中实现高效语义编码和几何结构理解,如3D对象分类、字幕生成和视觉问答。
43 9
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
|
10天前
|
机器学习/深度学习 人工智能 编解码
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
Lumina-Image 2.0 是上海 AI Lab 开源的高效统一图像生成模型,参数量为26亿,基于扩散模型和Transformer架构,支持多种推理求解器,能生成高质量、多风格的图像。
121 17
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
|
3天前
|
机器学习/深度学习 人工智能 机器人
TIGER:清华突破性模型让AI「听觉」进化:参数量暴降94%,菜市场都能分离清晰人声
TIGER 是清华大学推出的轻量级语音分离模型,通过时频交叉建模和多尺度注意力机制,显著提升语音分离效果,同时降低参数量和计算量。
59 6
TIGER:清华突破性模型让AI「听觉」进化:参数量暴降94%,菜市场都能分离清晰人声
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
YuE:开源AI音乐生成模型,能够将歌词转化为完整的歌曲,支持多种语言和多种音乐风格
YuE 是香港科技大学和 M-A-P 联合开发的开源 AI 音乐生成模型,能够将歌词转化为完整的歌曲,支持多种音乐风格和多语言。
223 23
YuE:开源AI音乐生成模型,能够将歌词转化为完整的歌曲,支持多种语言和多种音乐风格
|
17天前
|
人工智能 编解码 语音技术
SpeechGPT 2.0:复旦大学开源端到端 AI 实时语音交互模型,实现 200ms 以内延迟的实时交互
SpeechGPT 2.0 是复旦大学 OpenMOSS 团队推出的端到端实时语音交互模型,具备拟人口语化表达、低延迟响应和多情感控制等功能。
220 21
SpeechGPT 2.0:复旦大学开源端到端 AI 实时语音交互模型,实现 200ms 以内延迟的实时交互
|
12天前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
939 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
7天前
|
人工智能 Linux 开发工具
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台
Kiln AI 是一款开源的 AI 开发工具,支持零代码微调多种语言模型,生成合成数据,团队协作开发,自动部署。帮助用户快速构建高质量的 AI 模型。
428 7
Kiln AI:零代码实现微调模型!自动生成合成数据与微调模型的开源平台

热门文章

最新文章