当前位置: 首页 > news >正文

【工程开发】GLM-4.1V调试

GLM模型

https://github.com/zai-org/GLM-4.1V-Thinking/blob/main/README_zh.mdhttps://github.com/zai-org/GLM-4.1V-Thinking/blob/main/README_zh.md

中文readme

问题1:是否支持多模态?

项目更新

  • 🔥 News: 2025/07/16: 我们已经开源了训练 GLM-4.1V-Thinking 时使用的 VLM 奖励系统!查看代码仓库并在本地运行:python examples/reward_system_demo.py

  • News: 2025/07/02: GLM-4.1V-9B-Thinking 系列现已开源!支持增强的视觉推理和智能体交互。

  • News: 2025/07/01: 我们发布了 GLM-4.1V-Thinking 的技术报告。

模型介绍

视觉语言大模型(VLM)已经成为智能系统的关键基石。随着真实世界的智能任务越来越复杂,VLM模型也亟需在基本的多模态感知之外, 逐渐增强复杂任务中的推理能力,提升自身的准确性、全面性和智能化程度,使得复杂问题解决、长上下文理解、多模态智能体等智能任务成为可能。

基于 GLM-4-9B-0414 基座模型,我们推出新版VLM开源模型 GLM-4.1V-9B-Thinking ,引入思考范式,通过课程采样强化学习 RLCS(Reinforcement Learning with Curriculum Sampling)全面提升模型能力, 达到 10B 参数级别的视觉语言模型的最强性能,在18个榜单任务中持平甚至超过8倍参数量的 Qwen-2.5-VL-72B。 我们同步开源基座模型 GLM-4.1V-9B-Base,希望能够帮助更多研究者探索视觉语言模型的能力边界。

回答1:从这里的内容来看是支持的多模态的


与上一代的 CogVLM2 及 GLM-4V 系列模型相比,GLM-4.1V-Thinking 有如下改进:

  1. 系列中首个推理模型,不仅仅停留在数学领域,在多个子领域均达到世界前列的水平。
  2. 支持 64k 上下长度。
  3. 支持任意长宽比和高达 4k 的图像分辨率。
  4. 提供支持中英文双语的开源模型版本。

模型信息

模型下载地址

模型下载地址模型类型
GLM-4.1V-9B-Thinking🤗Hugging Face
🤖 ModelScope
推理模型
GLM-4.1V-9B-Base🤗Hugging Face
🤖 ModelScope
基座模型

模型算法代码可以查看 transformers 的完整实现。

运行要求

推理
设备(单卡)框架最低显存占用速度精度
NVIDIA A100transformers22GB14 - 22 Tokens / sBF16
NVIDIA A100vLLM22GB60 - 70 Tokens / sBF16

问题2:两种架构区别?

回答2:两种推理框架,它们的核心区别主要体现在运行效率适用场景上,

  • transformers
    支持完整的模型训练、微调、推理流程,提供丰富的 API 供开发者修改模型结构(如添加新的注意力变体、修改激活函数等),适合研究场景和小规模应用验证。

  • vLLM
    专注于推理阶段,不支持训练 / 微调,但其提供的 OpenAI 兼容 API(如/completions/chat/completions)可无缝对接现有基于 OpenAI SDK 的应用,适合快速部署高并发的生产级服务。

对比维度transformersvLLM
速度较慢(14-22 Tokens/s)更快(60-70 Tokens/s)
显存占用最低 22GB(单卡 NVIDIA A100)最低 22GB(单卡 NVIDIA A100)
精度支持 BF16支持 BF16
功能特性提供命令行交互(trans_infer_cli.py)和 Web 界面(trans_infer_gradio.py),支持多模态输入(图片、视频、PDF 等)可直接拉起 OpenAI 格式的 API 服务,适合构建高效的后端服务,支持最多 32 张图片或 1 个视频输入
适用场景适合快速演示、交互测试或需要灵活定制前端界面的场景适合高并发、低延迟的生产环境,需要高效 API 服务的场景
维度transformersvLLM
核心目标灵活性与兼容性推理效率与高并发支持
注意力机制标准实现,连续 KV CachePagedAttention,分页式 KV Cache
批处理方式静态批处理(固定批次 + 填充)连续批处理(动态插入新请求)
内存利用率较低(易碎片化)较高(分页管理 + 动态释放)
硬件优化依赖框架默认算子自定义 CUDA 核 + 预取机制
适用场景研究、原型开发、小规模推理生产环境、高并发 API 服务、大规模部署

简单来说,transformers是 “通用工具包”,适合灵活调试和修改;vLLM是 “推理加速器”,通过算法创新和硬件级优化实现高效部署。transformers 框架更侧重灵活性和多模态交互的便捷性,而 vLLM 框架则专注于提升推理速度,更适合对性能要求较高的场景。

微调

该部分数据使用 LLaMA-Factory 提供的图片微调方案进行测试。

设备(集群)策略最低显存占用 / 需要卡数批大小 (per GPUs)冻结情况
NVIDIA A100LORA21GB / 1卡1冻结 VIT
NVIDIA A100FULL ZERO2280GB / 4卡1冻结 VIT
NVIDIA A100FULL ZERO3192GB / 4卡1冻结 VIT
NVIDIA A100FULL ZERO2304GB / 4卡1不冻结
NVIDIA A100FULL ZERO3210GB / 4卡1不冻结

使用 Zero2 微调可能出现 Loss 为 0 的情况,建议使用 Zero3 进行微调。

问题3:Zero2 微调和Zero3 区别?

回答3:ZeRO(Zero Redundancy Optimizer)Zero2 和 Zero3 是 DeepSpeed 框架中两种主流的分布式优化策略(属于 ZeRO 优化器系列),主要用于解决决大模型训练时的内存瓶颈问题,通过精细化的内存分片和优化策略提升训练效率。结合你提供的 GLM-4.1V-Thinking 微调信息,两者的核心区别如下:

1. 核心原理与内存优化粒度

  • Zero2(ZeRO-2)
    对模型的优化器状态(Optimizer States) 和梯度(Gradients) 进行分片存储,而模型参数(Parameters)由所有进程共同保存。

    • 优化器状态(如动量、二阶矩)和梯度会被平均分配到不同 GPU 上,每个 GPU 仅存储部分数据,减少单卡内存占用。
    • 但模型参数仍在各卡保留完整副本,因此内存节省幅度有限。
  • Zero3(ZeRO-3)
    在 Zero2 的基础上进一步对模型参数(Parameters) 进行分片,实现 “优化器状态、梯度、参数” 三者的全部分片。

    • 每个 GPU 仅存储模型参数的一部分(而非完整副本),训练时通过通信按需获取所需参数,大幅降低单卡内存压力。
    • 内存节省效果比 Zero2 更显著,尤其适合超大规模模型(如数十亿参数)的训练。

2. 显存占用与硬件需求

从 GLM-4.1V-Thinking 的微调数据来看(基于 NVIDIA A100 显卡):

  • Zero2

    • 冻结 VIT 时,4 卡总显存需求为 280GB;不冻结时需 304GB。
    • 由于参数未分片,对单卡显存压力较大,适合中等规模模型或卡数较少的场景。
  • Zero3

    • 冻结 VIT 时,4 卡总显存需求为 192GB;不冻结时需 210GB。
    • 显存需求明显低于 Zero2(节省约 30%),更适合大模型全参数微调或显存资源有限的情况。

3. 通信开销与训练稳定性

  • Zero2

    • 通信量较小(仅需同步梯度和优化器状态),训练速度较快,但可能因参数未分片导致内存分配不均,容易出现 loss 异常(如文档中提到的 “Loss 为 0” 问题)。
  • Zero3

    • 由于参数分片,训练过程中需要更多跨卡通信来交换参数片段,可能略微降低训练速度,但内存分配更均衡,训练稳定性更高(文档推荐优先使用 Zero3 避免 loss 异常)。

4. 适用场景

  • Zero2:适合中小规模模型微调、对训练速度要求较高,或硬件资源(如 GPU 数量)有限的场景。
  • Zero3:适合超大规模模型(如 GLM-4.1V 这类 9B 参数模型)的全参数微调,或显存紧张、追求稳定性的场景(如文档中明确建议用 Zero3 替代 Zero2 避免训练问题)。

总结:核心差异对照表

维度Zero2(ZeRO-2)Zero3(ZeRO-3)
分片对象优化器状态、梯度优化器状态、梯度、模型参数
显存占用较高较低(节省 30% 左右)
通信开销较小较大
训练稳定性较低(可能出现 loss 异常)较高(推荐用于稳定训练)
适用场景中小模型、对速度敏感大模型全量微调、显存有限场景

在 GLM-4.1V-Thinking 微调中,Zero3 是更优选择,既能减少显存压力,又能避免 Zero2 可能出现的训练异常问题。

榜单信息

GLM-4.1V-9B-Thinking 通过引入「思维链」(Chain-of-Thought)推理机制,在回答准确性、内容丰富度与可解释性方面, 全面超越传统的非推理式视觉模型。在28项评测任务中有23项达到10B级别模型最佳,甚至有18项任务超过8倍参数量的Qwen-2.5-VL-72B。

模型推理

模型推理代码均在 inference 文件夹中,包含了:

  • trans_infer_cli.py: 使用transformers库作为推理后端的命令行交互脚本。你可以使用它进行连续对话。

  • trans_infer_gradio.py: 使用transformers库作为推理后段的 Gradio 界面脚本,搭建一个可以直接使用的 Web 界面,支持图片,视频,PDF,PPT等多模态输入。

  • 使用vllm直接拉起OpenAI格式的API服务。并在vllm_api_request.py中提供了一个简单的请求示例。

    vllm serve THUDM/GLM-4.1V-9B-Thinking --limit-mm-per-prompt '{"image":32}'   --allowed-local-media-path /
    • limit-mm-per-prompt若不指定,只支持1张图片。模型支持最多1个视频或300张图片输入,不支持图片和视频同时输入。
    • allowed-local-media-path 需要指定允许访问多模态图片的路径。
  • trans_infer_bench:用于学术复现的推理脚本,支持GLM-4.1V-9B-Thinking模型。其核心在于

    • 指定了中断思考的长度,当思考长度超过8192时,强制中断思考并补上</think><answer> 再次发起请求,让模型直接输出答案。该例子中使用的一个视频作为输入的测试的例子。其他情况需自行修改。
    • 该方案仅提供 transformers 版本,vLLM版本需要自行根据该逻辑修改方案。
  • vllm_request_gui_agent.py: 该脚本展现了用于 GUI Agent时对于模型返回的处理和构建提示词方案, 包含手机,电脑和网页端的策略,可集成到您的应用框架。GUI Agent详细文档请查看这里

  • 使用 Ascend NPU 设备推理,可查看 这里

模型微调

LLaMA-Factory 已经支持本模型的微调。以下是构建数据集的说明,这是一个使用了两张图片的数据集。你需要将数据集整理为 finetune.json

[{"messages": [{"content": "<image>Who are they?","role": "user"},{"content": "<think>\nUser ask me to observe the image and get the answer. I Know they are Kane and Gretzka from Bayern Munich.</think>\n<answer>They're Kane and Gretzka from Bayern Munich.</answer>","role": "assistant"},{"content": "<image>What are they doing?","role": "user"},{"content": "<think>\nI need to observe what this people are doing. Oh, They are celebrating on the soccer field.</think>\n<answer>They are celebrating on the soccer field.</answer>","role": "assistant"}],"images": ["mllm_demo_data/1.jpg","mllm_demo_data/2.jpg"]}
]
  1. <think> XXX </think> 中的部分不会被存放为历史记录和微调。
  2. <image> 标签会被替换成图片信息。

接着,即可按照 LLaMA-Factory 的微调方式进行微调。

http://www.dtcms.com/a/565419.html

相关文章:

  • Fiddler抓包手机和部分app无法连接网络问题
  • 【开题答辩全过程】以 二手咸鱼手机交易平台为例,包含答辩的问题和答案
  • 云真机和云手机的区别
  • 成都市那里有网站建设制作公司Wordpress 启动邮件
  • 东莞建网站的公司数据分析师资格证书怎么考
  • Spring Boot MVC 实战指南
  • 蓝牙钥匙 第36次 汽车共享与分时租赁场景核心技术解析:从预约到多用户无缝切换
  • 教育行业网站建设方案虫部落是谁做的网站
  • Tesseract OCR 配置参数详解
  • 网站权重对应的等级5944免费空间上搭建网站
  • DevOps(devops/k8s/docker/Linux)学习笔记-4
  • 建立网站的程序武威市住房和建设局网站
  • 微服务面试题(14题)
  • 软件造价评估优秀案例:某大型能源企业数字化项目费用编制与后评价体系研究
  • mysql uuid()
  • 页面好看的蛋糕网站软件开发应该学什么专业
  • QtitanNavigation助力能源数字化转型:打造清晰可控的系统导航体验
  • 基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的植物病害知识问答系统(vue+flask+AI算法)
  • 数据库之多版本控制MVCC
  • CentOS7安装Docker和Mysql
  • PyTorch实战指南:从零搭建计算机视觉模型的完整流程
  • k8s-应用部署和组件及常用命令
  • 简述网站栏目管理网站信息员队伍建设方案
  • MySQL 8.0 迁移指南:破解 MariaDB 风险,实现数据库平稳过渡
  • 【分布式事务】Seata分布式解决方案
  • 关于网站建设的文章建设网站女装名字大全
  • 2025信阳市中等职业教育竞赛_网络安全赛项部分题解
  • 网站正在建设中a手机版wordpress 不登陆后台 数据库恢复
  • 八步开启以太坊智能合约开发:环境、编写、测试与部署
  • DXE流程