CharacterGLM-6B Transformers 本地部署调用指南:从环境搭建到多轮角色对话实战
CharacterGLM-6B Transformers 本地部署调用指南从环境搭建到多轮角色对话实战【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llmCharacterGLM-6B 是聆心智能与清华大学 CoAI 实验室联合发布的新一代对话预训练模型专为角色扮演Character类对话场景设计。本指南以 models/CharacterGLM/01-CharacterGLM-6B Transformer部署调用.md 为核心主体完整演示在 AutoDL 平台上使用 Transformers 框架从零部署 CharacterGLM-6B 的完整流程包括环境准备、ModelScope 模型下载、模型与分词器加载、以及携带角色人设信息的多轮对话生成。读完本文你将能够独立完成 CharacterGLM-6B 的本地化部署并理解其session_meta人设机制与chat接口的多轮对话调用方式为后续的 FastAPI 服务化部署 与 LoRA 微调 打下基础。模型与部署方式简介CharacterGLM-6B 是在通用对话大模型基座之上针对角色扮演场景进一步优化得到的 6B 级对话模型其核心能力在于模型能够在一个稳定的**角色人设Character Profile**约束下进行对话同时保持角色语言风格、性格特点与人物关系的一致性。这与普通 Chat 模型一问一答的通用回复模式有本质区别——CharacterGLM 的每一次回复都建立在明确的角色设定之上。围绕该模型models/CharacterGLM 目录下沉淀了完整的部署与微调教程体系文档主题01-CharacterGLM-6B Transformer部署调用.md基于 Transformers 框架的最小化部署调用本文主体02-CharacterGLM-6B FastApi部署调用.md基于 FastAPI Uvicorn 的 HTTP 服务化部署03-CharacterGLM-6B-chat.md基于官方仓库的 Web DemoStreamlit与命令行 Demo04-CharacterGLM-6B Lora微调.md基于 transformers peft 的 LoRA 指令微调本文聚焦第一种方式直接在 Python 脚本中调用 Transformers 的AutoModelForCausalLM加载模型并生成对话。该方式不依赖 Web 服务与前端界面代码量最小、链路最清晰适合作为理解 CharacterGLM-6B 对话机制的入门实践。第一步环境准备租用 GPU 实例CharacterGLM-6B 参数量约 6B推理时需要加载完整权重显存占用较高。原文档明确建议在 AutoDL 平台租用RTX 3090 等 24G 显存的显卡机器。镜像选择路径为PyTorch -- 2.0.0 -- 3.8 (ubuntu20.04) -- 11.8即 PyTorch 2.0.0、Python 3.8Ubuntu 20.04 系统、CUDA 11.8 的组合如上方图 1 所示。选择该组合的原因在于PyTorch 2.0.0 与 CUDA 11.8 的匹配关系成熟稳定Python 3.8 与后续所需的 transformers、modelscope、sentencepiece 等库均保持较好的兼容性。若使用 AutoDL 平台的 JupyterLab 镜像通常已经预装 PyTorch、CUDA 驱动等基础组件无需重复安装。打开终端并配置 pip租用实例后打开 JupyterLab 中的终端Terminal依次执行以下命令完成 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 transformers pip install sentencepiece各依赖的作用如下modelscope阿里达摩院开源的模型与数据集管理平台 Python SDK本文使用其snapshot_download函数从 ModelScope 模型库下载 CharacterGLM-6B 权重transformersHugging Face 的 Transformers 框架提供AutoTokenizer、AutoModelForCausalLM等统一的模型加载与推理接口sentencepiece子词subword分词器依赖。CharacterGLM-6B 采用 sentencepiece 分词方案缺少该库会导致分词器加载失败。第二步使用 ModelScope 下载模型编写下载脚本在/root/autodl-tmp路径下新建download.py文件写入以下内容import torch from modelscope import snapshot_download, AutoModel, AutoTokenizer import os model_dir snapshot_download(THUCoAI/CharacterGLM-6B, cache_dir/root/autodl-tmp, revisionmaster)对关键参数说明如下第一个参数THUCoAI/CharacterGLM-6BModelScope 模型仓库中的模型名称模型 IDTHUCoAI为组织/用户名CharacterGLM-6B为模型名cache_dir模型的下载缓存路径必须为绝对路径这里设置为/root/autodl-tmpAutoDL 数据盘挂载目录容量更大、持久性更好revisionmaster指定拉取master分支默认主干分支的模型文件。模型总大小约12 GB在 AutoDL 平台网络环境下下载大约需要10~15 分钟。下载完成后模型文件会保存在/root/autodl-tmp/THUCoAI/CharacterGLM-6B目录下。在终端执行下载python /root/autodl-tmp/download.py补充说明snapshot_download返回的是模型文件实际落盘的目录路径即model_dir变量该返回值可以直接作为后续加载模型时的model_dir使用避免手写路径出错。除 ModelScope 外仓库 models/General-Setting/03-模型下载.md 还介绍了 huggingface-cli、HF 镜像、git-lfs、Openxlab 等多种模型下载方式国内网络环境下 ModelScope 通常最为稳定高效。第三步编写部署脚本并理解关键代码下载完成后在/root/autodl-tmp路径下新建trans.py文件粘贴以下完整代码原文档代码含详细注释from transformers import AutoTokenizer, AutoModelForCausalLM import torch # 使用模型下载到的本地路径以加载 model_dir /root/autodl-tmp/THUCoAI/CharacterGLM-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() # 设定角色人设信息session_meta session_meta { user_info: 我是陆星辰是一个男性是一位知名导演也是苏梦远的合作导演。我擅长拍摄音乐题材的电影。苏梦远对我的态度是尊敬的并视我为良师益友。, bot_info: 苏梦远本名苏远心是一位当红的国内女歌手及演员。在参加选秀节目后凭借独特的嗓音及出众的舞台魅力迅速成名进入娱乐圈。她外表美丽动人但真正的魅力在于她的才华和勤奋。苏梦远是音乐学院毕业的优秀生善于创作拥有多首热门原创歌曲。除了音乐方面的成就她还热衷于慈善事业积极参加公益活动用实际行动传递正能量。在工作中她对待工作非常敬业拍戏时总是全身心投入角色赢得了业内人士的赞誉和粉丝的喜爱。虽然在娱乐圈但她始终保持低调、谦逊的态度深得同行尊重。在表达时苏梦远喜欢使用我们和一起强调团队精神。, bot_name: 苏梦远, user_name: 陆星辰 } # 第一轮对话 response, history model.chat(tokenizer, session_meta, 你好呀小苏, history[]) print(response) # 第二轮对话 response, history model.chat(tokenizer, session_meta, 最近对音乐有什么新的想法吗, historyhistory) print(response) # 第三轮对话 response, history model.chat(tokenizer, session_meta, 那我们商量一下下一部音乐电影的拍摄好嘛, historyhistory) print(response)代码要点拆解1. 本地路径加载与trust_remote_codeTrueCharacterGLM-6B 的官方仓库包含自定义模型代码modeling_chatglm.py、tokenization_chatglm.py等因此无论是加载分词器还是模型都必须显式传入trust_remote_codeTrue允许 Transformers 执行模型目录下随权重一同下载的自定义 Python 代码。这一点在后续的 LoRA 微调 中同样适用。2. 设备迁移与评估模式model.to(device)将模型权重迁移到 GPUcuda或 CPUmodel.eval()切换为评估模式关闭 Dropout 等训练期行为保证生成结果的确定性同时由于无需计算梯度推理期间显存占用更低。注意model.eval()与torch.no_grad()的语境不同这里仅依赖eval()模式即可完成生成。3.session_metaCharacterGLM 的核心机制session_meta是一个 Python 字典承载当前会话的完整人设信息包含 4 个键键含义本文示例值user_info用户我方的角色设定与身份背景导演陆星辰苏梦远的合作导演与良师益友bot_info模型扮演角色Bot的完整人设背景当红女歌手兼演员苏梦远的生平、性格、语言习惯bot_name模型扮演角色的名字苏梦远user_name用户角色的名字陆星辰这份人设信息会在每一轮对话中作为上下文前缀注入模型使得模型的回复始终贴合苏梦远这一角色说话带有舞台腔与礼貌语气、用词谦逊、强调我们和一起的团队感等。这是 CharacterGLM 区别于普通 Chat 模型的关键——改变session_meta的内容即可让同一个模型权重扮演完全不同的角色无需重新训练。4.model.chat()多轮对话接口model.chat()是模型自定义代码提供的便捷对话接口其调用签名为response, history model.chat(tokenizer, session_meta, query, historyhistory)tokenizer已加载的分词器session_meta上述人设字典query当前轮用户输入history历史对话列表格式为[[问1, 答1], [问2, 答2], ...]实现多轮上下文传递返回值(response, history)其中新的history已追加当前轮问答直接传入下一轮调用即可形成多轮会话。从代码可以看出第一轮传入history[]开启新会话之后每一轮都将上一轮返回的history回传从而让模型具备多轮记忆能力。仓库中的 FastAPI 部署版api.py 对应代码同样复用这一model.chat()接口将其包装为 HTTP 端点。第四步运行脚本完成部署调用在终端中执行cd /root/autodl-tmp python trans.py运行过程中终端会打印Loading checkpoint shards加载检查点分片等日志表示模型正在从磁盘加载权重CharacterGLM-6B 的权重通常被切分为多个 shard 分片依次加载。等待加载完成并短暂预热后终端即开始逐轮输出苏梦远对陆星辰的回复效果如下图所示。常见问题与排障提示显存不足OOM若在小于 24G 显存的显卡上运行可尝试降低输入长度或使用torch_dtypetorch.bfloat16或torch.half半精度加载以压缩显存占用详见 LoRA 微调文档 中的半精度加载写法trust_remote_code相关报错确认加载分词器与模型时均已传入trust_remote_codeTrueModuleNotFoundError: No module named sentencepiece回到环境准备步骤补装 sentencepiece首次加载较慢12 GB 权重从磁盘加载需要一定时间耐心等待Loading checkpoint shards进度到 100% 即可。扩展阅读从脚本到服务的完整链路完成本文的 Transformers 最小化部署后你可以沿着 models/CharacterGLM 目录下的文档体系继续深入02-CharacterGLM-6B FastApi部署调用.md将model.chat()封装进 FastAPI使用uvicorn在 6006 端口启动 HTTP 服务通过curl或requests以 JSONprompt、history、max_length、top_p、temperature等参数方式远程调用并提供torch_gc()清理显存缓存的工程实践03-CharacterGLM-6B-chat.mdclone 官方仓库thu-coai/CharacterGLM-6B运行 Streamlit Web Demo 与命令行 Demo体验带角色选择的图形化交互端口映射方法参考 General-Setting/02-AutoDL开放端口.md04-CharacterGLM-6B Lora微调.md基于 transformers peft 对模型进行 LoRA 指令微调将角色扮演能力定制到如甄嬛等自定义角色配套可运行的 04-CharacterGLM-6B-Lora微调.py 脚本与示例数据集 dataset/huanhuan.json。总结本文以 01-CharacterGLM-6B Transformer部署调用.md 为骨架完整走通了租用 GPU 实例 → pip 环境配置 → ModelScope 下载 12 GB 权重 → Transformers 加载模型 → 携带session_meta人设执行多轮对话的全流程。整个部署的代码量极小一个 Python 脚本即可却能清晰呈现 CharacterGLM-6B 最核心的工程要点trust_remote_codeTrue的自定义代码加载、model.chat()的多轮对话接口以及通过session_meta字典驱动角色扮演的对话范式。掌握这一最小部署后你可以自然迁移到 FastAPI 服务化与 LoRA 微调等更进阶的应用场景中。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何为 ani-cli 接入新动漫网站?官方 hacking 逆向工程指南逐段解读

如何为 ani-cli 接入新动漫网站?官方 hacking 逆向工程指南逐段解读

如何为 ani-cli 接入新动漫网站?官方 hacking 逆向工程指南逐段解读 【免费下载链接】ani-cli A cli tool to browse and play anime 项目地址: https://gitcode.com/gh_mirrors/an/ani-cli ani-cli 是一款在终端里浏览并播放动漫的开源命令行工具&#xff0…

2026/9/19 5:53:37 阅读更多 →
Web3与元宇宙的区别:技术栈、判据与实战验证

Web3与元宇宙的区别:技术栈、判据与实战验证

简介:不少人容易将Web3.0与元宇宙混为一谈。这是一份面向互联网及计算机科学领域的从业者、区块链爱好者及关注前沿科技读者的PDF精简指南,以“一文搞懂”的方式聚焦这两个概念,帮助读者快速厘清它们的本质差异与内在联系。资料为单个PDF文件…

2026/9/19 5:53:37 阅读更多 →
STM32 ADC+DMA总线冲突避坑指南

STM32 ADC+DMA总线冲突避坑指南

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

2026/9/19 5:53:37 阅读更多 →

最新新闻

计算机网络计算题全攻略:CRC、子网划分与传输效率考点解析

计算机网络计算题全攻略:CRC、子网划分与传输效率考点解析

简介:一份面向计算机网络课程期末复习与考研备考的计算题精讲文档,覆盖电路交换与分组交换时延对比、香农公式、数据传输效率、CRC校验及PPP帧解析等高频考点。资源为单个docx格式文档,大小仅57KB,轻量便携,内含每道题…

2026/9/19 6:26:53 阅读更多 →
从数人数到分布式计数:Redis与HyperLogLog实战

从数人数到分布式计数:Redis与HyperLogLog实战

1. 从"数人数"说起:一个被低估的经典问题"zz老师数人数"这个标题乍一看像是某个班级群里的日常段子,但如果你在一线做过几年开发或者带过团队,就会立刻意识到——这背后其实是一个非常经典的算法与工程问题:在…

2026/9/19 6:26:53 阅读更多 →
运动服装品牌出海:价值共建模式与本土化策略

运动服装品牌出海:价值共建模式与本土化策略

1. 运动服装出海的市场现状与挑战2026年的运动服装出海赛道正在经历深刻变革。过去五年间,中国运动品牌通过跨境电商平台和独立站模式快速打开欧美、东南亚等海外市场,但单纯依靠流量投放和价格竞争的模式已触及天花板。根据行业数据显示,202…

2026/9/19 6:26:53 阅读更多 →
自动驾驶多模态融合:占用网络与深度估计技术解析

自动驾驶多模态融合:占用网络与深度估计技术解析

1. 项目概述这个项目标题包含了多个看起来像是计算机视觉和自动驾驶领域的技术术语组合。从标题中的"Fusion"、"Occ"、"Depth"等关键词可以判断,这很可能是一个面向自动驾驶环境感知的多模态融合系统,涉及占用网络(Occupa…

2026/9/19 6:26:53 阅读更多 →
祖马龙三款热门香水深度评测与使用指南

祖马龙三款热门香水深度评测与使用指南

1. 祖马龙三款热门香水深度横评作为一个用了十年祖马龙的老香友,今天想和大家聊聊品牌最受欢迎的三款香水:野生风铃草、英国梨与小苍兰、丝绒玫瑰与乌木。这三瓶可以说是祖马龙的"入门三件套",但每款的性格截然不同。我会从专业调香…

2026/9/19 6:26:53 阅读更多 →
Casdoor核心概念扫盲:组织、应用、用户与令牌,10分钟吃透身份管理骨架

Casdoor核心概念扫盲:组织、应用、用户与令牌,10分钟吃透身份管理骨架

Casdoor核心概念扫盲:组织、应用、用户与令牌,10分钟吃透身份管理骨架 【免费下载链接】casdoor An open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MC…

2026/9/19 6:25:53 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →