视觉语言模型概述
视觉语言模型(VLM)是多模态生成模型,能够处理图像和文本输入并生成文本输出,从而实现视觉问答、图像描述和文档理解等任务。这些模型能够在包括网页和文档在内的多种图像类型上实现零样本泛化,部分模型还能通过边界框或分割掩码提供空间定位。
视觉语言模型的架构
大多数主流 VLM 采用三部分架构,将图像和文本表示统一后送入文本解码器。该结构通常包括:
- Image Encoder:从输入图像中提取特征。
- Embedding Projector:一个密集神经网络,用于对齐图像表示与文本表示。
- Text Decoder:基于组合后的嵌入生成最终的文本输出。
不同模型采用不同的训练策略。例如,LLaVA 使用 CLIP 图像编码器和 Vicuna 文本解码器;它首先仅训练多模态投影层,以图像-标题对对齐特征,然后解冻文本解码器进行进一步训练。相比之下,KOSMOS-2 采用端到端训练,计算成本更高。还有一些模型,如 Fuyu-8B,完全省略图像编码器,直接将图像块输入投影层,再进入自回归解码器。
开源 VLM 生态
在 Hugging Face Hub 上有大量开源 VLM 可供使用。关键模型包括:
- LLaVA 1.6 (Hermes 34B):34B 参数,672×672 分辨率。
- DeepSeek-VL (Base and Chat):7B 参数,384×384 分辨率,提供聊天优化版本。
- CogVLM (Base and Chat):17B 参数,490×490 分辨率;聊天版本支持空间定位。
- moondream2:约 2B 参数,378×378 分辨率。
- Qwen-VL (Base and Chat):4B 参数,448×448 分辨率;支持零样本目标检测。
- KOSMOS-2:约 2B 参数,224×224 分辨率;支持空间定位和零样本目标检测。
- Yi-VL-34B:34B 参数,448×448 分辨率;支持中英双语。
- Fuyu-8B:8B 参数,300×300 分辨率;专注于图像中的文字检测。
评估 VLM 性能
选择合适的 VLM 需要借助专门的排行榜和基准测试来衡量其推理和理解能力。
排行榜
- Vision Arena:基于匿名人工偏好投票的持续排行榜。
- Open VLM Leaderboard:根据多项指标对模型进行排名,并支持按规模和许可证过滤。
基准测试
- MMMU:包含 11.5K 多模态挑战的综合基准,要求具备工程、艺术等学科的大学水平知识。
- MMBench:包含 3,000 道单选题,覆盖 20 项技能(如 OCR、目标定位)。采用 “CircularEval” 策略,通过打乱答案选项来确保模型的一致性。
- Domain-Specific Benchmarks:包括 MathVista(数学推理)、AI2D(图表理解)、ScienceQA(科学问答)和 OCRBench(文档理解)。
实现与微调
使用 Transformers 进行推理
可以使用 transformers 库部署 VLM 进行推理。例如,使用 LlavaNextForConditionalGeneration 和 LlavaNextProcessor,用户可以输入图像和提示模板,生成对图像的文字描述或答案。
使用 TRL 进行微调
TRL 的 SFTTrainer 现已加入对视觉语言模型的实验性支持。用户可以对如 Llava 1.5 等模型进行监督微调(SFT),使用诸如 llava-instruct-mix-vsft 的数据集,该数据集包含 260k 图像-对话对。微调流程包括:
- 为 VLM 设置特定的聊天模板。
- 使用自定义
DataCollator将文本和图像对组合。 - 使用模型、数据集和 PEFT 配置初始化
SFTTrainer,进行训练并将生成的检查点推送至 Hugging Face Hub。
Sources
- OriginalVision Language Models Explained