CharacterGLM-6B 角色扮演对话部署实战:Streamlit WebDemo 与命令行 Chat 全流程指南
CharacterGLM-6B 角色扮演对话部署实战Streamlit WebDemo 与命令行 Chat 全流程指南【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llm导读本文以 Datawhale 开源项目 self-llm 中的 models/CharacterGLM/03-CharacterGLM-6B-chat.md 为核心系统讲解在 AutoDL 云端 GPU 服务器上部署 CharacterGLM-6B 对话模型的两条主线Streamlit 图形化 WebDemo与命令行 CLI Demo。读完本文你将掌握从环境准备、模型下载、代码获取到两种交互方式启动与端口映射的完整实战链路能够独立把苏梦远这类角色扮演模型跑起来并与之对话。CharacterGLM-6B 是聆心智能与清华大学 CoAI 实验室联合发布的对话预训练模型本仓库为其配套了部署01-Transformer 部署调用、FastAPI 服务化02-FastApi 部署调用、chat 对话本文以及 Lora 微调四份完整教程本文聚焦 chat 部署环节。一、模型与环境速览1.1 CharacterGLM-6B 是什么CharacterGLM-6B 是一款面向角色扮演对话场景的中文大模型核心能力是让模型扮演拥有独立人设、性格、语气与知识背景的角色。在官方 demo 中模型内置了歌手苏梦远、导演陆星辰等角色设定通过session_meta传入角色背景信息user_info / bot_info / bot_name / user_name使对话内容贴合人设。1.2 硬件与镜像要求在 AutoDL 平台租用一台24G 显存的显卡机器如 RTX 3090镜像选择路径为PyTorch → 2.0.0 → 3.8 (ubuntu20.04) → 11.8模型权重约12 GB加载推理对显存要求较高24G 显存可保证模型顺利装载并流畅对话。二、环境准备pip 换源与依赖安装租用服务器后打开 JupyterLab在其中启动终端依次执行环境配置、模型下载与 demo 运行。首先升级 pip 并将 pypi 源切换为清华镜像以加速安装# 升级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其中modelscope用于从魔搭社区下载模型权重transformers为模型加载与推理提供框架支持。换源后下载速度会显著提升若后续运行 demo 缺少sentencepiece等分词依赖可参照 01-CharacterGLM-6B Transformer部署调用.md 中补充安装pip install sentencepiece。三、模型下载ModelScope snapshot_download使用 ModelScope 的snapshot_download函数下载模型第一个参数为模型名称cache_dir参数为模型下载路径。在/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)运行下载命令python /root/autodl-tmp/download.py模型大小约 12 GB下载约需10~15 分钟。下载完成后模型权重会落在/root/autodl-tmp/THUCoAI/CharacterGLM-6B目录后续代码加载时统一使用该本地路径避免每次启动都走网络。补充说明从仓库其他文档如 02-CharacterGLM-6B FastApi部署调用.md可以看到加载该模型必须设置trust_remote_codeTrue因为 CharacterGLM-6B 属于自定义架构模型需要信任并执行其远程代码文件这一点在后续 demo 代码路径修改与 Lora 微调 中同样成立。四、代码准备克隆官方仓库4.1 开启学术镜像加速AutoDL 平台自带学术资源加速在终端执行以下命令开启source /etc/network_turbo该命令用于加速 GitHub 等境外资源的访问速度详细说明可参见 AutoDL 官方网络加速文档。4.2 克隆 CharacterGLM-6B 官方仓库切换路径并克隆代码仓库cd /root/autodl-tmp git clone https://github.com/thu-coai/CharacterGLM-6B克隆完成后仓库中包含basic_demo目录其中web_demo_streamlit.py或web_demo2.py对应 Streamlit Web 界面cli_demo.py对应命令行对话。五、WebDemo 运行Streamlit 图形化对话5.1 修改模型加载路径编辑/root/autodl-tmp/CharacterGLM-6B/basic_demo/web_demo_streamlit.py将第 20 行左右的模型路径由默认的远程路径或占位符修改为本地的模型目录/root/autodl-tmp/THUCoAI/CharacterGLM-6B这一步是运行 demo 前必须完成的改动demo 脚本通过该路径加载本地权重与分词器路径错误将导致加载失败。5.2 修改 requirements.txt 并安装依赖编辑仓库根目录下的requirements.txt将其中的 torch 删掉——因为环境中已经安装了 torch无需重复安装避免版本冲突与无谓下载。随后安装其余依赖cd /root/autodl-tmp/CharacterGLM-6B pip install -r requirements.txt5.3 启动 Streamlit 服务在终端运行以下命令启动 Web 推理服务。注意尽量cd到basic_demo文件夹下防止找不到character.json角色配置文件cd /root/autodl-tmp/CharacterGLM-6B/basic_demo streamlit run ./web_demo2.py --server.address 127.0.0.1 --server.port 6006启动成功后终端会显示访问地址提示。此时需要将 AutoDL 的6006端口映射到本地详见第六节然后通过浏览器访问。5.4 在浏览器中对话在浏览器打开http://localhost:6006等待模型加载完成loading checkpoint 阶段结束后即可开始使用Web 界面通常包含角色选择如张起灵苏梦远、对话历史展示区以及Max Length、Top P、Temperature等生成参数调节滑块方便交互式地体验角色扮演效果。六、AutoDL 端口映射到本地AutoDL 服务器上的服务需要端口映射才能在本地浏览器访问。将 AutoDL 的6006端口映射到本机的http://localhost:6006具体操作步骤参见 models/General-Setting/02-AutoDL开放端口.md。该文档说明两个 DemoWebDemo 与 CLI使用同样的方法把 AutoDL 中的6006端口映射到本机http://localhost:6006映射完成后即可在本地访问界面。七、CLI 命令行运行除 Web 界面外官方仓库还提供了命令行交互方式适合在终端中快速验证模型效果。7.1 修改模型路径编辑/root/autodl-tmp/CharacterGLM-6B/basic_demo/cli_demo.py将其中模型路径同样修改为本地的/root/autodl-tmp/THUCoAI/CharacterGLM-6B7.2 启动 CLI 对话在终端运行cd /root/autodl-tmp/CharacterGLM-6B/basic_demo python ./cli_demo.py程序加载模型后即进入终端交互模式用户输入问题、模型以角色身份作答适合快速调试与无图形界面环境下的使用。八、对比 WebDemo 与 CLI 的适用场景维度Streamlit WebDemoCLI Demo交互方式浏览器图形界面含角色选择与参数滑块终端文本输入输出启动命令streamlit run ./web_demo2.py --server.address 127.0.0.1 --server.port 6006python ./cli_demo.py前置要求需完成端口映射后在浏览器访问无需端口映射终端直接使用典型场景演示展示、交互式体验角色对话快速验证模型效果、自动化脚本调试两者共享同一套模型加载逻辑都基于本地/root/autodl-tmp/THUCoAI/CharacterGLM-6B路径加载权重并通过session_meta注入角色设定可参考 01-CharacterGLM-6B Transformer部署调用.md 中的完整session_meta示例与model.chat()多轮对话调用方式。九、延伸从 chat 部署到服务化与微调完成 chat 对话部署后可基于同一模型目录继续深入FastAPI 服务化参考 02-CharacterGLM-6B FastApi部署调用.md通过uvicorn.run(app, host0.0.0.0, port6006)暴露 HTTP 接口支持 curl 与 requests 调用并可在model.chat()中显式控制max_length默认 2048、top_p默认 0.7、temperature默认 0.95等生成参数Lora 微调参考 04-CharacterGLM-6B Lora微调.md基于 peft 框架对模型做轻量微调实现甄嬛等自定义人设其中LoraConfig的target_modules[query_key_value]、r8、lora_alpha32等参数与模型的自定义层名强相关对应代码见 04-CharacterGLM-6B-Lora微调.py。结语本文完整还原了 CharacterGLM-6B chat 部署的两条路径Streamlit WebDemo 提供图形化、可调节参数的角色扮演体验CLI Demo 提供轻量快速的终端交互。核心步骤可归纳为四步换源装依赖 → 下载 12GB 模型权重 → 克隆官方仓库并改本地路径 → 启动 demo 并映射端口。掌握本文流程后你可以在自己的 GPU 环境中复现角色对话效果并以此为起点向服务化部署与个性化微调延伸。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/datawhalechina/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考