ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

self-llm 开源大模型食用指南:ChatGLM3-6B WebDemo(Streamlit)部署调用实战

2026/9/12 6:44:25 拓冰建站 浏览量
self-llm 开源大模型食用指南:ChatGLM3-6B WebDemo(Streamlit)部署调用实战 self-llm 开源大模型食用指南ChatGLM3-6B WebDemoStreamlit部署调用实战【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm本文基于开源项目《self-llm开源大模型食用指南》中 ChatGLM 系列教程完整讲解如何在 AutoDL 云平台上从零搭建 ChatGLM3-6B 的 WebDemo 对话应用。读者将掌握「租用 24G 显存显卡实例 → ModelScope 下载模型 → Clone 官方仓库并固定 commit → 修改本地模型路径 → Streamlit 启动推理服务 → 端口映射本地访问」的完整链路并获得可直接复现的每一步命令与代码。一、方案概览为什么要用 WebDemo 部署 ChatGLM3-6BChatGLM3-6B 是智谱 AI 开源的双语对话大模型在拥有 6B 参数规模的同时支持中英双语对话与代码生成。在本仓库的 ChatGLM 系列教程中官方 demo 提供了web_demo2.pyStreamlit 版本这一开箱即用的 Web 交互界面它相比 Transformers 命令行直调 与 FastAPI 服务化部署 更适合做可视化演示与多轮对话体验也便于在此基础上二次开发成产品原型。本教程对应的文档为 models/ChatGLM/03-ChatGLM3-6B-chat.md它聚焦于「chat对话 Demo」这一最小可用闭环是仓库中后续 LangChain 知识库助手、LoRA 微调 等进阶教程的前置基础。二、环境准备租用 24G 显存显卡机器并配置 Python 环境2.1 硬件与镜像选择ChatGLM3-6B 全精度推理约需 13~15 GB 显存因此建议在 AutoDL 平台租用RTX 309024G 显存及以上的显卡机器。创建实例时镜像按如下组合选择框架名称PyTorch框架版本2.0.0Python 版本3.8(ubuntu20.04)CUDA 版本11.8镜像选择界面如图所示提示PyTorch 2.0.0 CUDA 11.8 的组合与 ChatGLM3 官方仓库的依赖完全兼容可避免因 torch 版本过新或过旧引发的算子兼容问题。若使用其他镜像需自行核对 torch / transformers 版本。2.2 pip 换源与依赖安装实例创建完成后打开服务器的JupyterLab在终端中依次执行以下命令先升级 pip、切换到清华源以加速安装再安装两个核心依赖# 升级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 transformersmodelscope魔搭社区的 Python SDK本教程用它下载 ChatGLM3-6B 模型权重国内访问速度快transformersHugging Face 生态的模型加载与推理框架ChatGLM3 的对话接口model.chat()正是构建在其AutoModel/AutoTokenizer之上的。说明如需更严格的版本对齐可参考仓库姊妹篇 02-ChatGLM3-6B FastApi部署调用.md 中给出的锁定版本组合如transformers4.37.2、modelscope1.9.5等本教程使用默认最新版同样可以跑通。三、模型下载使用 ModelScope 的 snapshot_download在/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-6b第一个位置参数ModelScope 上的模型仓库 ID即模型名称cache_dir/root/autodl-tmp模型下载的本地缓存路径模型最终会落在/root/autodl-tmp/ZhipuAI/chatglm3-6brevisionmaster指定下载 master 分支的权重与教程使用的代码 commit 保持一致执行下载python /root/autodl-tmp/download.py模型总大小约14 GB视网络状况下载耗时约10~20 分钟。下载完成后建议先确认/root/autodl-tmp/ZhipuAI/chatglm3-6b目录完整再进入下一步。四、代码准备Clone 官方仓库并固定 commit 版本为了与教程验证过的代码保持一致、保证可复现性需要 Clone ChatGLM3 官方仓库并切换到教程指定的 commit。4.1 开启学术镜像加速可选但推荐AutoDL 平台自带学术资源加速Clone GitHub 前先执行source /etc/network_turbo4.2 Clone 并切换 commitcd /root/autodl-tmp git clone https://github.com/THUDM/ChatGLM3.git切换 commit 版本与教程 commit 保持一致可以让大家更好的复现cd ChatGLM3 git checkout f823b4a3be9666b9b2a9daa43b29659e876a040d4.3 关闭代理加速完成 Clone 后务必取消镜像加速因为该加速可能对正常网络造成一定影响避免对后续下载其他模型造成困扰unset http_proxy unset https_proxy五、修改模型路径让 WebDemo 加载本地权重官方web_demo2.py默认从 Hugging Face 在线加载模型需要将其改为读取我们刚才下载到本地的权重。用编辑器打开/root/autodl-tmp/ChatGLM3/basic_demo/web_demo2.py将该文件第 13 行的模型路径更换为本地路径model_path /root/autodl-tmp/ZhipuAI/chatglm3-6b修改截图如下从截图可以看到web_demo2.py内部通过AutoTokenizer/AutoModel的from_pretrained(..., trust_remote_codeTrue)加载本地模型与分词器并在侧边栏暴露了max_length、top_p、temperature等采样参数——这些参数会直接透传给模型的chat()接口决定生成文本的随机性与长度。六、安装依赖并启动 WebDemo6.1 修改 requirements.txt进入 ChatGLM3 仓库目录编辑requirements.txt将其中torch一行删掉——环境中已经安装了 torch见 2.2 节镜像自带 PyTorch 2.0.0不需要重复安装避免版本冲突与重复下载。然后安装其余依赖cd /root/autodl-tmp/ChatGLM3 pip install -r requirements.txt6.2 启动 Streamlit 推理服务执行以下命令即可启动推理服务cd /root/autodl-tmp/ChatGLM3 streamlit run ./basic_demo/web_demo2.py --server.address 127.0.0.1 --server.port 6006命令参数说明./basic_demo/web_demo2.pyWebDemo 脚本路径Streamlit 应用入口--server.address 127.0.0.1服务仅绑定本机回环地址安全起见不对外网直接暴露--server.port 6006监听端口后续通过 AutoDL 端口映射转发到本地。6.3 端口映射与本地访问将 AutoDL 的6006 端口映射到本地随后在浏览器打开http://localhost:6006即可看到 demo 界面。端口映射的具体操作方式与仓库 02-AutoDL开放端口.md 中描述的一致AutoDL 控制台「自定义服务」→ 添加 6006 端口映射即可。注意要在浏览器打开http://localhost:6006页面后模型才会开始加载。这是 Streamlit 的惰性执行机制——页面首次访问时才触发get_model()完成权重加载与 CUDA 显存分配请耐心等待加载完成。浏览器打开后的 WebDemo 聊天界面如下图所示界面核心交互说明左侧边栏max_length最大生成长度、top_p核采样阈值、temperature温度系数三个滑块以及「清除会话历史」按钮中部对话区展示多轮问答历史模型具备数学推理等基础能力如界面中的一元方程求解示例底部输入框输入问题并发送实时获得模型回复。七、原理延伸WebDemo 背后的调用链与仓库源码印证7.1 chat 接口与 Transformers 直调web_demo2.py的对话能力最终由 ChatGLM3 的model.chat(tokenizer, prompt, historyhistory, ...)接口实现。这一调用范式在本仓库 01-ChatGLM3-6B Transformer部署调用.md 中有完整的独立示例加载模型后置于model.eval()评估模式即可通过history参数携带多轮上下文连续对话from transformers import AutoTokenizer, AutoModelForCausalLM import torch model_dir /root/autodl-tmp/ZhipuAI/chatglm3-6b tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_dir, trust_remote_codeTrue) model.to(torch.device(cuda if torch.cuda.is_available() else cpu)) model.eval() # 第一轮对话 response, history model.chat(tokenizer, 你好, history[]) print(response) # 第二轮对话携带上一轮 history response, history model.chat(tokenizer, 请介绍一下你自己, historyhistory) print(response)trust_remote_codeTrue允许加载模型仓库中随权重分发的自定义代码文件ChatGLM3 的自定义 modeling 实现因此下载的模型目录必须完整。7.2 从 WebDemo 到 API 服务的横向扩展如果希望把同样的模型能力服务化仓库 02-ChatGLM3-6B FastApi部署调用.md 提供了 FastAPI 封装版本其核心逻辑与 WebDemo 同源——通过 POST JSON 接收prompt、history、max_length、top_p、temperature五个字段透传给model.chat()后返回response、history与时间戳curl -X POST http://127.0.0.1:6006 \ -H Content-Type: application/json \ -d {prompt: 你好, history: []}这意味着你在 WebDemo 中调好的采样参数组合top_p、temperature等可以直接迁移到 API 场景参数语义完全一致。7.3 为上层应用封装自定义 LLM在本仓库 05-ChatGLM3-6B接入LangChain搭建知识库助手 的 LLM.py 中本地 ChatGLM3-6B 被封装为 LangChain 自定义LLM子类其加载方式与本教程完全一致self.tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) self.model AutoModelForCausalLM.from_pretrained(model_path, trust_remote_codeTrue).to(torch.bfloat16).cuda() self.model self.model.eval()可见**「ModelScope 下载 → 本地from_pretrained加载 →eval()模式推理」**是本仓库所有 ChatGLM3 教程共用的底座模式掌握了本教程的 WebDemo 链路就等于打通了后续 LangChain 知识库、LoRA 微调等一系列进阶玩法的基础设施。八、常见问题与排查建议现象排查思路http://localhost:6006打不开确认已做 AutoDL 端口映射确认服务进程仍在运行--server.port与映射端口一致页面打开后长时间无响应首次访问才会加载 14 GB 模型观察终端日志中的权重加载进度显存不足时降低并发或关闭其他进程报错找不到ZhipuAI/chatglm3-6b路径检查web_demo2.py第 13 行model_path是否与download.py的cache_dir路径完全一致报 torch 相关依赖冲突确认已从requirements.txt中删除torch行使用镜像自带的 PyTorch 2.0.0显存溢出OOM建议使用 24G 显存实例如 3090可在界面侧边栏调低max_length降低峰值显存占用九、总结至此你已走通 ChatGLM3-6B 在 AutoDL 上的 WebDemo 完整部署链路环境准备 → ModelScope 下载 14 GB 权重 → Clone 官方仓库并固定 commit → 修改本地模型路径 → Streamlit 启动 6006 端口 → 端口映射后浏览器对话。这一链路与仓库内 Transformer 直调、FastAPI 服务化、Code Interpreter 复合 Demo 等教程互为补充共同构成了 ChatGLM3-6B 从「跑通对话」到「工程化落地」的完整技术图谱可作为后续接入 LangChain 知识库与 LoRA 微调实验的坚实基础。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考