GLM-4.1V-Thinking Gradio 多模态 Web 界面部署实战指南
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
GLM-4.1V-Thinking 是智谱 AI 推出的视觉语言模型(VLM),在 GLM-4-9B-0414 基座模型之上引入思考范式,并借助课程采样强化学习(RLCS)提升综合能力。本指南基于本仓库 models/GLM-4.1V-Thinking 目录下的部署文档,围绕 THUDM 官方提供的 Gradio 交互脚本,完整讲解从环境准备、模型下载、服务启动到本地浏览器访问的全流程。读完本文,你将能够在本机或 AutoDL 云端 GPU 机器上,搭建一个支持图片、视频、PDF、PPT 等多模态输入的开箱即用的 Web 对话界面。
方案概览:官方 Gradio 脚本能做什么
THUDM 为 GLM-4.1V-Thinking 提供了一个开箱即用的 Gradio 界面脚本(trans_infer_gradio.py,位于克隆下来的推理仓库的inference/目录下),启动后即可得到一个可直接使用的 Web 界面,核心能力如下:
- 多模态输入:支持上传图片、视频、PDF、PPT 等多种文件格式,由模型进行理解与回答;
- 多轮对话:界面内置对话历史区域,可围绕已上传的多媒体内容持续追问;
- System Prompt 自定义:可在界面右侧设置系统提示词,约束模型的行为与回答风格;
- 路径可配置:脚本内的模型路径为常量定义,本地已下载好模型时,只需修改对应模型路径即可直接复用,无需改动其余逻辑。
在具体动手之前,先对照同目录下的 01-GLM-4 1V-Thinking vLLM部署调用.md 了解模型的多模态输入规格,这决定了 Web 界面上传区的能力边界:
| 输入类型 | 最大允许数量 | 支持的格式 |
|---|---|---|
| 图片 | 10 张(Gradio 界面),300(API 方式) | JPG, JPEG, PNG, GIF, BMP, TIFF, WEBP |
| 视频 | 1 个 | MP4, AVI, MKV, MOV, WMV, FLV, WEBM, MPEG, M4V |
| 文档 | 1 个 PDF 或 1 个 PPT | PDF, PPT, PPTX(内部转换为图片后理解) |
第一步:环境与依赖准备
硬件与软件环境
本文示例(与 vLLM 部署文档 同源)使用如下试验环境,可作为复现参考:
---------------- PyTorch 2.5.1 Python 3.12 (ubuntu22.04) CUDA 12.4 GPU A800-80GB (80GB) * 1 ----------------由于 Gradio 界面底层仍通过 transformers 加载完整模型权重进行推理,建议显存充足(40GB 以上)的 GPU 环境,或配合量化手段运行。
克隆推理仓库并安装依赖
Gradio 脚本属于 THUDM 官方推理仓库的一部分,需要先将其克隆到本地(示例路径为/root/autodl-tmp/GLM-4.1V-Thinking,请按需调整):
git clone <THUDM/GLM-4.1V-Thinking 官方仓库> cd GLM-4.1V-Thinking随后安装依赖。国内环境可先完成 pip 换源加速(参见仓库内 01-pip、conda换源.md),再执行:
python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope pip install -r GLM-4.1V-Thinking/requirements.txtrequirements.txt中的关键依赖项及其作用如下:
| 依赖 | 版本要求 | 用途 |
|---|---|---|
| torch | >=2.7.1 | 深度学习框架,模型推理的底层引擎 |
| gradio | >=5.35.0 | Web 界面框架,提供对话与上传交互组件 |
| PyMuPDF | >=1.26.1 | PDF 解析,支撑文档类多模态输入 |
| av | >=14.4.0 | 视频解码,支撑视频输入处理 |
| accelerate | >=1.6.0 | 设备自动分配与推理加速 |
| transformers / vLLM | 需为较新版本 | 模型加载与生成,建议从官方源获取最新版 |
需要说明的是:trans_infer_gradio.py在源码层面通过 transformers 的AutoProcessor与Glm4vForConditionalGeneration加载模型(可从脚本截图中的load_model()函数看出),因此安装的 transformers 版本必须支持Glm4vForConditionalGeneration这一模型类。
第二步:下载模型并配置模型路径
方式一:ModelScope 下载
新建.py/.ipynb文件,使用modelscope的snapshot_download函数下载,第一个参数为模型名称,cache_dir指定模型自定义下载路径:
from modelscope import snapshot_download model_dir = snapshot_download('ZhipuAI/GLM-4.1V-9B-Thinking', cache_dir='/root/autodl-tmp', revision='master')方式二:Hugging Face CLI 下载
huggingface-cli download THUDM/GLM-4.1V-9B-Thinking --local-dir /root/autodl-tmp/GLM-4.1V-9B-Thinking提示:务必记得将上述
cache_dir/local_dir修改为你的模型下载路径;模型也可以在首次运行脚本时自动下载,但显式下载更可控。关于镜像加速等细节可参考仓库内 03-模型下载.md。
修改脚本中的模型路径
脚本中通过常量定义模型路径,从官方脚本的代码结构(见下图)可以看出,需要关注的核心是MODEL_PATH常量,以及load_model()中的加载逻辑:
MODEL_PATH = "ZhipuAI/GLM-4.1V-9B-Thinking" # load_model() 内部通过 transformers 加载 processor = AutoProcessor.from_pretrained(模型路径, use_fast=True) model = Glm4vForConditionalGeneration.from_pretrained( 模型路径, torch_dtype=torch.bfloat16, device_map="auto" )如果你已经在本地下载好了 GLM-4.1V 模型,只需把MODEL_PATH改成对应的本地模型路径即可,其余部分无需改动。加载时使用torch.bfloat16半精度以节省显存,device_map="auto"让 transformers 自动把模型分配到可用设备上。
另外,从脚本的参数解析器(argparse)可以看到,它还支持若干启动参数,可用于自定义服务行为:
--server_name:服务监听地址;--server_port:服务监听端口(默认 7860);--share:是否创建 Gradio 公网分享链接;--mcp_server:可选的 MCP(Model Context Protocol)服务端配置。
第三步:启动 Gradio 服务
在完成依赖安装与模型下载后,切换到克隆的仓库目录,直接运行官方脚本:
python /root/autodl-tmp/GLM-4.1V-Thinking/inference/trans_infer_gradio.py首次启动会加载模型权重,终端日志大致如下(见下图):
Loading checkpoint shards: 100% 4/4 [00:03:00<00:00, 1.23it/s] Running on local URL: http://127.0.0.1:7860 To create a public link, set share=True in launch()日志中的关键信息解读:
Loading checkpoint shards: 100% 4/4:模型权重共 4 个分片,全部加载完成(约耗时 3 分钟,视机器性能而定);Running on local URL: http://127.0.0.1:7860:服务已在本地 7860 端口就绪,此时在本机浏览器访问http://127.0.0.1:7860即可打开界面;To create a public link, set share=True in launch():如需生成可对外分享的公网链接,可在启动时追加--share参数(对应脚本中的share参数)。
第四步:AutoDL 云端机器的端口映射
如果你使用的是 AutoDL 等云端 GPU 机器,服务运行在远端,需要在本地通过 SSH 隧道把远端端口映射到本机才能访问。使用 AutoDL 的小伙伴根据自己系统的指引连接即可,一个典型的 SSH 端口映射命令如下:
ssh -F /dev/null -CNg -L 7860:127.0.0.1:7860 root@connect.nma1.seetacloud.com -p 36185该命令各参数的含义:
| 参数 | 含义 |
|---|---|
-F /dev/null | 不使用默认 SSH 配置文件,避免干扰 |
-C | 开启压缩传输,降低网络开销 |
-N | 不执行远程命令,仅建立隧道 |
-g | 允许远程主机连接本地转发端口 |
-L 7860:127.0.0.1:7860 | 将本地 7860 端口转发到远程的 127.0.0.1:7860 |
root@connect.nma1.seetacloud.com -p 36185 | AutoDL 实例的连接地址与端口(每个实例不同,以控制台显示为准) |
执行成功后,在本地浏览器访问http://127.0.0.1:7860即可打开部署在云端机器上的 Gradio 界面。如果你希望直接用本地6006端口等自定义端口,可参照仓库内 02-AutoDL开放端口.md 中“端口映射”小节的说明,映射方法完全一致,只需把端口号替换为 7860。
第五步:Web 界面使用指南
界面布局
服务启动后,浏览器中呈现的是标准的 Gradio 对话式界面(标题为GLM-4.1V-9B-Thinking Gradio Space),整体分为左右两大区域:
- 左侧 Conversation(对话区):展示与模型的多轮对话历史;底部为
Message消息输入框,以及Send(发送)、Clear(清空)按钮; - 右侧 Upload(上传区):支持将文件拖拽到此处或点击上传,可上传图片、视频、PPT、PDF 等文件;下方提供
System Prompt文本框,可输入系统提示词约束模型行为。
图片理解示例
上传一张图片后,界面会自动基于图片生成提问(如What does this picture look like?),模型随即给出结构化的详细分析。从实际交互截图可以看到,模型会按照“主体对象、细节、环境、背景信息”等维度逐点拆解图片内容,回答条理清晰:
多轮对话示例
界面支持围绕同一上下文持续追问。例如中文问候之后,接着上传一张晚餐照片并提问“可以为我简单介绍这个晚餐是由什么组成的吗?”,模型会结合上传的图片内容,分点列出餐食的组成(如沙拉、鸡胸肉、玉米、小番茄等食材),并给出整体说明。多模态输入与对话历史相结合,正是该界面的核心使用场景。
输入限制提醒
在使用 Web 界面时需注意上一节给出的输入上限:图片一次最多上传 10 张;视频一次 1 个;文档一次 1 个 PDF 或 1 个 PPT(PPT/PPTX 会被内部转换为图片后理解)。若单次输入超出限制,可分批上传或改用 vLLM API 方式(图片上限可提升至 300 张)。
进阶:与其他部署方式的选择
Gradio 界面适合快速验证与人工交互,如果你需要将模型能力接入业务系统、做并发调用或批量评测,可以对比选择同目录下的其他部署方案:
- 01-GLM-4 1V-Thinking vLLM部署调用.md:使用 vLLM 创建兼容 OpenAI API 协议的推理服务器,默认监听
http://localhost:8000,支持completions与chat completions接口,可通过--served-model-name、--max-model-len、--limit-mm-per-prompt等参数精细控制服务行为,适合服务化集成; - 03-GLM-4 1V-Thinking LoRA 及 SwanLab 可视化记录.md:基于 LLaMA-Factory 对 GLM-4.1V 进行 LoRA 微调并接入 SwanLab 可视化,微调产出后的模型同样可以替换
MODEL_PATH接入本 Gradio 脚本进行效果验证。
小结
本文完整覆盖了 GLM-4.1V-Thinking 官方 Gradio 脚本的部署链路:环境与依赖准备(gradio>=5.35.0、PyMuPDF、av等关键依赖)、模型下载(ModelScope / Hugging Face 两种方式)、模型路径配置(MODEL_PATH常量)、服务启动(trans_infer_gradio.py)、AutoDL 云端 SSH 端口映射(7860 端口隧道),以及 Web 界面的多模态使用要点。整个过程围绕 02-GLM-4 1V-Thinking Gradio部署.md 的实操骨架展开,并结合同目录部署文档补充了输入规格、依赖版本与界面交互细节。按上述步骤操作,你即可拥有一个支持图片、视频、PDF、PPT 的 GLM-4.1V-Thinking 多模态对话 Web 应用。
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考