新闻详情

新闻详情

首页 / 资讯中心 / 详情

ChatGLM3-6B Transformers 本地部署调用完整指南:从模型下载到多轮对话实战

发布时间:2026/9/11 15:42:03来源:尧图网络
ChatGLM3-6B Transformers 本地部署调用完整指南:从模型下载到多轮对话实战
ChatGLM3-6B Transformers 本地部署调用完整指南从模型下载到多轮对话实战【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm导读本文基于《开源大模型食用指南》仓库中的 01-ChatGLM3-6B Transformer部署调用 文档讲解如何在 Linux 环境下使用 Hugging Facetransformers框架直接加载并调用 ChatGLM3-6B 对话模型。你将掌握从租用 GPU 服务器、配置 Python 环境、使用 ModelScope 下载 14GB 模型权重到编写脚本实现本地多轮对话的完整流程为后续的 FastAPI 服务化、WebDemo 部署、LoRA 微调等进阶玩法打下基础。一、方案概述为什么选择 Transformers 直调在 models/ChatGLM 目录下仓库为 ChatGLM3-6B 提供了多条部署路径部署方式对应文档适用场景Transformers 直接调用01-ChatGLM3-6B Transformer部署调用快速体验模型能力、单机脚本内嵌调用FastAPI 服务化02-ChatGLM3-6B FastApi部署调用对外提供 HTTP API供其他系统调用官方 Web Demo03-ChatGLM3-6B-chatStreamlit/Gradio 可视化交互界面LangChain 知识库助手05-ChatGLM3-6B接入LangChain搭建知识库助手基于 RAG 的私有知识库问答本文聚焦第一种方式通过transformers的AutoTokenizer与AutoModelForCausalLM以最直接的方式加载本地模型理解 ChatGLM3-6B 的model.chat()对话接口的工作方式。这是所有后续部署形态的共同基石。二、环境准备租用 GPU 服务器与镜像选择ChatGLM3-6B 参数量为 60 亿级别推理需要较高显存因此官方推荐使用 24GB 显存的 RTX 3090 等显卡。2.1 租用服务器在 AutoDL 等云 GPU 平台租用一台RTX 309024GB 显存的机器。以 AutoDL 平台为例创建实例时按下图选择镜像框架名称 → 框架版本 → Python 版本 → CUDA 版本框架名称PyTorch框架版本2.0.0Python 版本3.8(ubuntu20.04)CUDA 版本11.8说明PyTorch 2.0 引入了torch.compile等编译优化能力配合 CUDA 11.8 可发挥 RTX 30 系显卡的完整算力。若你的本地机器已具备等价环境24GB 显存 PyTorch 2.0 CUDA 11.8可直接跳过租机步骤。2.2 打开 JupyterLab 与终端实例创建完成后打开 AutoDL 提供的JupyterLab并进入其中的终端Terminal。后续的环境配置、模型下载与脚本运行全部在该终端中完成。2.3 pip 换源与安装依赖包为了加速依赖安装先升级 pip 并切换为清华 PyPI 镜像源随后安装modelscope、transformers、sentencepiece三个核心依赖# 升级pip python -m pip install --upgrade pip # 更换 pypi 源加速库的安装 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope pip install transformers pip install sentencepiece各依赖的作用modelscopeModelScope魔搭官方 Python SDK用于下载模型权重transformersHugging Face 的模型加载与推理框架本文通过其AutoTokenizer/AutoModelForCausalLM完成加载sentencepieceChatGLM 系列使用的子词分词算法依赖库缺少它会导致分词器加载失败。仓库根目录的 models/ChatGLM/requirements.txt 提供了完整的版本锁定参考其中与本部署直接相关的关键版本为transformers4.30.2、modelscope1.29.1、sentencepiece0.2.1。如果你的环境中 transformers 版本差异过大导致接口不兼容可参照该文件按需固定版本。三、模型下载使用 ModelScope 拉取 ChatGLM3-6B国内网络环境下载 Hugging Face 权重较慢本文采用ModelScope 的snapshot_download函数下载模型。该函数第一个参数为模型名称cache_dir参数指定模型的下载路径。3.1 编写下载脚本在/root/autodl-tmp路径下新建download.py文件写入以下内容import torch from modelscope import snapshot_download, AutoModel, AutoTokenizer import os model_dir snapshot_download(ZhipuAI/chatglm3-6b, cache_dir/root/autodl-tmp, revisionmaster)关键参数说明ZhipuAI/chatglm3-6bModelScope 上的模型仓库 ID对应智谱 AI 开源的 ChatGLM3-6Bcache_dir/root/autodl-tmp模型权重保存路径AutoDL 实例的/root/autodl-tmp通常挂载的是数据盘空间充裕且不会因实例停机被回收系统盘被回收时数据不会丢失revisionmaster指定拉取模型仓库的主分支最新版本。3.2 执行下载python /root/autodl-tmp/download.py模型权重约14GB下载耗时约10~20 分钟取决于网络带宽。下载完成后模型权重保存在/root/autodl-tmp/ZhipuAI/chatglm3-6b目录下snapshot_download会自动在cache_dir下按仓库 ID 组织目录结构。提示download.py中import torch与import os虽然在本脚本中未直接使用但保留它们可以复用同一脚本风格且在后续扩展脚本中避免重复导入。四、代码准备编写 Transformers 调用脚本在/root/autodl-tmp路径下新建trans.py文件写入以下完整代码# 使用Hugging Face中transformer库中的AutoTokenizer和AutoModelForCausalLM以加载分词器和对话模型 from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 使用模型下载到的本地路径以加载 model_dir /root/autodl-tmp/ZhipuAI/chatglm3-6b # 分词器的加载本地加载trust_remote_codeTrue设置允许从网络上下载模型权重和相关的代码 tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) # 模型加载本地加载使用AutoModelForCausalLM类 model AutoModelForCausalLM.from_pretrained(model_dir, trust_remote_codeTrue) # 将模型移动到GPU上进行加速如果有GPU的话 device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device) # 使用模型的评估模式来产生对话 model.eval() # 第一轮对话 response, history model.chat(tokenizer, 你好, history[]) print(response) # 第二轮对话 response, history model.chat(tokenizer, 请介绍一下你自己, historyhistory) print(response) # 第三轮对话 response, history model.chat(tokenizer, 请帮我使用python语言写一段冒泡排序的代码, historyhistory) print(response)4.1 逐段拆解代码含义1加载分词器与模型tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_dir, trust_remote_codeTrue)AutoTokenizer/AutoModelForCausalLMtransformers 的自动映射 API会根据模型目录中的配置文件自动识别并加载对应的分词器类与因果语言模型类trust_remote_codeTrueChatGLM3-6B 的自定义模型代码托管在模型仓库中需要该参数授权执行仓库内的远程 Python 代码modeling_chatglm.py等否则加载会失败此处为本地加载传入的是上一步snapshot_download下载到的本地路径/root/autodl-tmp/ZhipuAI/chatglm3-6b而非远程模型 ID。2设备迁移与评估模式device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device) model.eval()优先将模型迁移到 CUDA 设备GPU上加速推理若当前机器无 GPU 则回退到 CPU注意 CPU 推理速度极慢仅作演示model.eval()切换为评估模式关闭 Dropout 等训练期随机行为保证对话输出稳定。仓库中其他部署脚本如 02-ChatGLM3-6B FastApi部署调用 的api.py同样在加载后调用model.eval()这是 ChatGLM 推理的标准姿势。3多轮对话model.chat()接口response, history model.chat(tokenizer, 你好, history[]) response, history model.chat(tokenizer, 请介绍一下你自己, historyhistory)第一轮传入空的history[]从第二轮开始将上一轮返回的history原样传回从而让模型记住之前的对话上下文形成连续的多轮对话model.chat()是 ChatGLM 系列自定义的便捷对话接口由模型仓库内的modeling_chatglm.py提供其内部会自动完成 ChatML 格式的消息拼接|system|、|user|、|assistant|角色标记并返回(response, history)二元组。这一调用方式与仓库中 05-ChatGLM3-6B接入LangChain搭建知识库助手/LLM.py 中对 LangChainLLM基类_call方法的实现完全一致——后者正是通过self.model.chat(self.tokenizer, prompt, history[])完成单轮生成的。可见model.chat()是贯穿本仓库所有 ChatGLM3-6B 部署形态的核心接口。五、部署运行启动脚本并验证对话5.1 运行 trans.py在终端输入以下命令执行脚本cd /root/autodl-tmp python trans.py5.2 预期输出终端中会先出现loading checkpoint相关日志表示模型正在加载权重模型加载完成后依次打印三轮对话的回复。以第三轮请帮我使用python语言写一段冒泡排序的代码为例模型会生成完整的冒泡排序实现并输出运行效果运行结果如下从输出可以看到ChatGLM3-6B 不仅给出了可执行的冒泡排序代码还演示了完整的排序前后对比输出验证了模型的代码生成能力。至此ChatGLM3-6B 的 Transformers 本地部署调用已成功完成。5.3 常见问题排查现象可能原因处理建议loading checkpoint shards长时间卡住模型从磁盘加载 14GB 权重耗时较长保持耐心属正常现象确认数据盘为 SSDtrust_remote_code报错未传trust_remote_codeTrue在from_pretrained中显式添加该参数显存不足 OOM24GB 显存不够如并行运行其他程序关闭其他占用显存的进程或改用 LoRA 低精度微调 中的量化加载方式ModuleNotFoundError: sentencepiece依赖未安装完整回到第二节执行pip install sentencepiece六、进阶衔接从直调脚本走向完整应用完成 Transformers 直调后你已具备 ChatGLM3-6B 本地推理的基础能力可在此基础上按需进阶服务化部署参考 02-ChatGLM3-6B FastApi部署调用将model.chat()封装进 FastAPI 的 POST 端点通过curl或requests对外提供 HTTP 接口支持max_length、top_p、temperature等采样参数动态控制可视化交互参考 03-ChatGLM3-6B-chat克隆官方 ChatGLM3 仓库并用 Streamlit 启动 Web 界面结合端口映射在本地浏览器对话接入 LangChain 知识库参考 05-ChatGLM3-6B接入LangChain搭建知识库助手其中LLM.py将本地模型封装为 LangChain 标准 LLM 组件配合 create_db.py 构建 Chroma 向量库即可实现 RAG 检索增强问答LoRA 微调参考 06-ChatGLM3-6B-Lora微调 及配套脚本 06-ChatGLM3-6B-Lora微调.py使用peft框架以低资源代价定制模型个性微调 ChatGLM3-6B 至少需要 21GB 以上显存。七、总结本文完整复现了 ChatGLM3-6B 的 Transformers 本地部署链路租用 24GB 显存 GPU → pip 换源安装 modelscope/transformers/sentencepiece → 用 snapshot_download 下载 14GB 模型权重 → 编写 trans.py 加载分词器与模型 → 通过 model.chat() 完成多轮对话。这套流程既是《开源大模型食用指南》中 ChatGLM3-6B 系列教程的第一站也是理解后续 FastAPI、WebDemo、LangChain、LoRA 微调等所有进阶内容的基础——AutoTokenizer/AutoModelForCausalLM加载、trust_remote_code授权、model.chat()多轮对话这三个核心动作会在仓库内几乎每一个 ChatGLM 部署示例中反复出现吃透它们即可举一反三地部署其他 GLM 系列模型。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

CUDA 13 Compute Sanitizer工具实战与内存调试技巧 2026/9/11 16:21:10

CUDA 13 Compute Sanitizer工具实战与内存调试技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GPT-4 Turbo在网络安全中的真实应用与实践 2026/9/11 16:21:10

GPT-4 Turbo在网络安全中的真实应用与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
3C认证接地连续性测试:电气安全的关键技术解析 2026/9/11 16:21:10

3C认证接地连续性测试:电气安全的关键技术解析

1. 3C认证接地连续性解析:电气安全的第一道防线每次拆开家电后盖,那个醒目的3C标志旁总跟着"接地"符号——这可不是随便贴的装饰。作为从业15年的电气工程师,我处理过太多因接地不良引发的安全事故。接地连续性测试是3C认证中最基础…

阅读更多 →
C51单片机DS18B20温度检测报警系统设计详解 2026/9/11 16:21:10

C51单片机DS18B20温度检测报警系统设计详解

简介:这套基于C51单片机的温度检测报警系统课程设计资料,面向单片机初学者及有进阶需求的学习者,适用于课程设计、毕业设计或工程实训等场景。项目以AT89C51为控制核心,借助DS18B20温度传感器采集环境温度,并实时显示在…

阅读更多 →
WiFi与RS-485温湿度传感器选型决策指南 2026/9/11 16:21:10

WiFi与RS-485温湿度传感器选型决策指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
学生党必备:AI工具如何解决PPT制作三大痛点 2026/9/11 16:18:10

学生党必备:AI工具如何解决PPT制作三大痛点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞