原文出处:Introduction to Vision Language Models 原作者:Hugging Face · 许可证:Apache-2.0 License 中文译本由诸葛AI学院整理,仅供学习参考,版权归原作者与 Hugging Face 所有。
视觉语言模型(vision language model, VLM)能同时理解图像和文本,可以做图像描述、视觉问答、多模态推理这类任务。和 LLM 一样,VLM 的训练目标也是预测下一个令牌(token),多出来的本事是处理视觉信息。比如 HuggingFaceTB/SmolVLM2-2.2B-Base 是一个基座(base)VLM,HuggingFaceTB/SmolVLM2-2.2B-Instruct 则做过指令微调(instruction tuning),适合和用户做对话式交互。
这一单元我们会探索这类模型怎么构建、怎么工作,以及最重要的:怎么把它们用起来、改造成你自己的项目。
提示 学完本单元,你会用前面单元已经学过的技术(比如监督微调 SFT)去微调一个 VLM。老规矩,这一单元还是小而快。 想更深入地学计算机视觉,可以看 The Community Computer Vision Course。 学完本单元(含课后作业)后,别忘了用测验检验一下自己。
什么是视觉语言模型?
VLM 在处理文本的同时处理图像,由此支撑图像描述、视觉问答、多模态推理等任务。
一个典型的 VLM 架构包含三部分:图像编码器(image encoder)负责提取视觉特征;投影层(projection layer)把视觉表示和文本表示对齐;语言模型负责处理或生成文本。靠这套结构,模型能把视觉元素和语言概念建立起联系。
根据场景不同,VLM 可以有不同配置。基座模型处理通用的视觉-语言任务,面向对话优化的版本支持聊天式交互。一些模型还带有额外组件:有的把预测结果落到具体的视觉区域上(grounding),有的专攻目标检测这类特定任务。
最新趋势
给语言模型加上视觉能力后,打开了许多让人兴奋的方向,包括:
- 推理型 VLM:结合视觉输入解决复杂问题。
- 专用 VLM:例如目标检测、图像分割或文档理解。
- 视觉-语言-动作模型(Vision-Language-Action):为机器人直接生成动作。
- 代理型 VLM(agentic VLM):支撑复杂工作流,比如和文档对话、看截图操作电脑。
- 任意模态互转模型(any-to-any):不再局限于视觉和文本,输入输出可以是文本、图像、音频、视频等多种模态。
按需改造视觉语言模型
微调(fine-tuning)一个 VLM,就是把预训练模型适配到你的数据集或任务上。你在前面的单元里已经见过监督微调(SFT)和偏好对齐,同样的思路在这里照样适用。
核心工具和技术与微调 LLM 时基本相同,但微调 VLM 会带来额外挑战。一个关键问题是数据表示:图像要仔细准备,模型才能有效融合视觉和文本信息。另一个因素是模型规模。VLM 往往比 LLM 大得多,效率问题因此非常要紧。
为了让训练既实用又省钱,可以借助量化(quantization)和 PEFT(参数高效微调,Parameter-Efficient Fine-Tuning),我们在第 1 单元里探索过这些方法。它们让微调更轻量,更多人因此有机会改造和试验强大的 VLM。
评测视觉语言模型
如我们在第 2 单元所见,评估在开发阶段和生产阶段都是关键一步。VLM 同理:开发期要有基准(benchmark)来考察模型的能力和短板,上线后要拿真实场景检验可靠性和实用性。
常用的通用基准包括:
- MMMU 和 MMMU-Pro:覆盖多学科的大规模基准,要求模型在艺术、科学、工程等领域之间推理。
- MMBench:3000 多道单选题,考察 OCR、定位、推理等技能。
- MMT-Bench:聚焦专家级的多模态任务,包括识别、定位、推理和规划。
另有一批专用领域基准,考察特定技能:
如果想让评估流程更省事,OpenVLM Leaderboard 提供了一套工具包,一条命令就能在多个基准上评测 VLM。
你会学到什么
学完本模块,你将能够:
- 用 🤗 transformers 库调用 VLM
- 理解 VLM 的对话模板(chat template)和会话格式
- 在自己的数据集上微调 SmolVLM
- 分别通过代码和命令行跑训练流程
视觉语言模型的世界很有意思,我们出发吧!
参考文献
- Vision Language Models (Better, Faster, Stronger)
- Fine-Tuning a Vision Language Model (Qwen2-VL-7B) with the Hugging Face Ecosystem (TRL)
- Fine-tuning SmolVLM with TRL on a consumer GPU
- Fine-tuning SmolVLM using direct preference optimization (DPO) with TRL on a consumer GPU
- Fine tuning a VLM for Object Detection Grounding using TRL
- Fine-Tuning a Vision Language Model with TRL using MPO
- Post training a VLM for reasoning with GRPO using TRL
- Preference Optimization for Vision Language Models with TRL
- Vision Language Models Explained
- SmolVLM - small yet mighty Vision Language Model
- SmolVLM2-2.2B-Instruct
- CLIP: Learning Transferable Visual Models from Natural Language Supervision
- Align Before Fuse: Vision and Language Representation Learning with Momentum Distillation
- Object Understanding with Vision Language Models Space