ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Qwen-7B-Chat WebDemo 部署实战:基于 AutoDL 与 Modelscope 从零启动聊天界面(self-llm 开源大模型食用指南)

Qwen-7B-Chat WebDemo 部署实战:基于 AutoDL 与 Modelscope 从零启动聊天界面(self-llm 开源大模型食用指南) Qwen-7B-Chat WebDemo 部署实战基于 AutoDL 与 Modelscope 从零启动聊天界面self-llm 开源大模型食用指南【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm本文是《开源大模型食用指南》self-llm系列中 Qwen 篇章的 WebDemo 部署教程核心任务是在 AutoDL 云 GPU 服务器上完成 Qwen-7B-Chat 模型的下载与 Gradio Web 聊天界面的搭建。通过本文你将掌握从镜像选择、Python 依赖安装、Modelscope 模型下载、官方代码仓库版本锁定到端口映射访问的完整链路最终在本地浏览器中与 Qwen-7B-Chat 展开多轮对话。全文以 models/Qwen/03-Qwen-7B-Chat WebDemo.md 为骨架并补充仓库内 General-Setting 系列文档中的环境配置细节作为佐证。一、总体流程概览Qwen-7B-Chat 是阿里云开源的中英文对话大模型参数量约 70 亿权重文件体积约 15 GB。由于推理阶段对显存有较高要求本教程选用 AutoDL 平台上 RTX 3090 等 24 GB 显存的实例完整部署流程如下租用 GPU 实例并选择 PyTorch 2.0.0 / Python 3.8 / CUDA 11.8 镜像在 JupyterLab 终端中完成 pip 换源与依赖包安装使用 Modelscope 的snapshot_download下载qwen/Qwen-7B-Chat模型v1.1.4 版本克隆 Qwen 官方代码仓库并切换到教程锁定的 commit 版本修改web_demo.py中的模型路径指向本地权重安装 WebDemo 依赖并启动服务将 6006 端口映射到本地浏览器访问。该流程与仓库中同目录的 01-Qwen-7B-Chat Transformers 部署调用、02-Qwen-7B-Chat FastApi 部署调用 在环境准备与模型下载环节完全一致区别仅在于最终交互方式WebDemo 提供图形化聊天界面而 FastAPI 方案提供 HTTP 接口。二、环境准备租用 GPU 实例并配置镜像2.1 租用 24 GB 显存显卡机器在 AutoDL 平台租用一台 RTX 3090 等具备 24 GB 显存的 GPU 机器。创建实例时在镜像选择界面进行如下配置框架名称PyTorch框架版本2.0.0Python 版本3.8 (ubuntu20.04)CUDA 版本11.811.3 以上版本均可镜像确定后打开刚租用服务器的 JupyterLab并启动其中的终端Terminal后续的环境配置、模型下载与 demo 运行都在该终端中完成。2.2 pip 换源与依赖安装国内网络环境下直接使用官方 PyPI 源安装依赖往往较慢因此先升级 pip 并切换到清华镜像源加速安装# 升级pip python -m pip install --upgrade pip # 更换 pypi 源加速库的安装 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope1.9.5 pip install transformers4.32.0 accelerate tiktoken einops scipy transformers_stream_generator0.0.4 peft deepspeed补充说明pip 换源操作在仓库的 General-Setting/01-pip、conda换源.md 中有更完整的说明除清华源外也可使用教育网镜像站如https://mirrors.cernet.edu.cn/pypi/web/simple支持临时-i指定与pip config set持久化两种方式。依赖安装要点解析modelscope1.9.5阿里达摩院模型库 SDK本文用它完成模型下载snapshot_download支持断点续传与按版本下载transformers4.32.0Hugging Face Transformers 框架Qwen-7B-Chat 的对话生成依赖其AutoModel、AutoTokenizer接口accelerate负责多设备/多卡推理时的自动设备分配配合device_mapauto使用transformers_stream_generator0.0.4Qwen 官方仓库要求的流式生成依赖WebDemo 中逐 token 输出的实现依赖它tiktoken、einops、scipy分别为 tokenizer、张量重排与科学计算组件属于 Qwen 模型推理的间接依赖peft、deepspeed本文虽未直接使用但为后续 Lora 微调与分布式训练预留可参考同目录 04-Qwen-7B-Chat Lora 微调。三、模型下载使用 Modelscope snapshot_download3.1 编写下载脚本在/root/autodl-tmp路径下新建download.py文件并写入以下内容注意粘贴后保存import torch from modelscope import snapshot_download, AutoModel, AutoTokenizer from modelscope import GenerationConfig model_dir snapshot_download(qwen/Qwen-7B-Chat, cache_dir/root/autodl-tmp, revisionv1.1.4)参数说明第一个参数qwen/Qwen-7B-ChatModelscope 上的模型 ID即组织名/模型名cache_dir/root/autodl-tmp模型的下载路径仓库的 General-Setting/03-模型下载.md 中特别强调cache_dir最好填写绝对路径revisionv1.1.4模型版本号锁定版本可保证与教程及后续代码完全一致避免因模型更新带来行为差异。3.2 执行下载运行下载脚本python /root/autodl-tmp/download.pyQwen-7B-Chat 模型大小约 15 GB视网络情况通常需要 1020 分钟完成下载。下载完成后模型权重会保存在/root/autodl-tmp/qwen/Qwen-7B-Chat目录下后续 WebDemo 的模型路径即指向该目录。补充说明snapshot_download返回的model_dir就是模型实际落盘路径脚本中也可直接打印该返回值确认路径。关于其他模型下载方式huggingface-cli、HF 镜像、git-lfs、Openxlab可参见 General-Setting/03-模型下载.md。四、代码准备克隆官方仓库并锁定版本4.1 开启学术镜像加速AutoDL 平台自带学术镜像加速network_turbo可显著提升访问 GitHub 等海外站点的速度。在终端执行source /etc/network_turbo4.2 克隆代码仓库并切换 commit切换路径并克隆 Qwen 官方代码仓库cd /root/autodl-tmp git clone QwenLM/Qwen 官方仓库 HTTPS 地址随后切换到教程锁定的 commit 版本保证与教程环境完全一致、可复现cd Qwen git checkout 981c89b2a95676a4f98e94218c192c095bed5364复现提示锁定 commit 是本次部署的关键一环。web_demo.py的代码结构、依赖声明会随仓库版本演进而变化固定到981c89b2这个 commit 可以确保第 5 步的路径修改位置与后续的requirements_web_demo.txt依赖清单与教程描述吻合避免因版本漂移导致报错。4.3 关闭学术镜像加速克隆完成后取消镜像加速因为该加速可能对正常网络造成一定影响避免对后续下载其他模型造成困扰unset http_proxy unset https_proxy五、修改 WebDemo 代码中的模型路径官方web_demo.py默认从远程加载模型需要将其修改为加载本地已下载的权重。打开/root/autodl-tmp/Qwen/web_demo.py找到文件中设置默认模型路径的位置教程文档中对应第 13 行不同 commit 行号可能略有偏移将模型名称/路径更换为本地路径/root/autodl-tmp/qwen/Qwen-7B-ChatDEFAULT_CKPT_PATH /root/autodl-tmp/qwen/Qwen-7B-Chat从仓库源码结构看web_demo.py内部基于 Gradio 构建聊天界面并通过命令行参数如--server-port控制服务端口DEFAULT_CKPT_PATH是其默认模型加载路径变量。将路径指向本地目录后启动时模型将从本地加载无需每次联网下载。六、运行 WebDemo 并映射端口6.1 安装 WebDemo 依赖进入 Qwen 代码目录安装运行所需依赖cd /root/autodl-tmp/Qwen pip install -r requirements.txt pip install -r requirements_web_demo.txt其中requirements.txt为 Qwen 仓库基础依赖requirements_web_demo.txt为 WebDemo 专项依赖主要包括 Gradio 及流式生成相关组件。6.2 启动推理服务运行以下命令启动 WebDemo 服务cd /root/autodl-tmp/Qwen python web_demo.py --server-port 6006--server-port 6006指定服务监听 6006 端口该端口同时用于后续的本地端口映射。6.3 端口映射并访问将 AutoDL 服务器的 6006 端口映射到本地http://localhost:6006即可在浏览器中看到 Demo 界面。端口映射的具体操作方式可参考仓库的 General-Setting/02-AutoDL开放端口.md。特别注意只有当你使用浏览器打开http://localhost:6006页面后模型才会真正开始加载。这是 Gradio 应用的惰性加载机制——服务进程先于页面就绪模型权重在首次访问页面时加载到显存因此首次打开页面时需要耐心等待模型加载完成之后即可正常进行多轮对话。七、验证与排错要点WebDemo 启动成功后浏览器中会显示 Qwen-Chat 聊天界面可直接在输入框中与模型对话如询问你好模型会给出礼貌回复。常见问题排查建议模型未加载确认浏览器已打开http://localhost:6006页面且终端出现模型加载日志端口不通确认映射的是 6006 端口且启动命令中--server-port与映射端口一致显存不足本方案针对 24 GB 显存机型设计若显存较小可参考仓库 09-Qwen-1_8B-chat CPU 部署 等轻量方案依赖冲突严格按上述顺序安装依赖transformers_stream_generator版本需固定为0.0.4。完成 WebDemo 部署后可进一步探索本仓库中 Qwen 系列的其他部署与微调方案HTTP 接口化部署见 02-Qwen-7B-Chat FastApi 部署调用脚本化命令行对话见 01-Qwen-7B-Chat Transformers部署调用在此基础上即可平滑过渡到 Lora 微调、Ptuning、全量微调等进阶内容。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进