语言模型原本只接收离散 token。给它一张照片,像素不会自动变成“湖边有一座雪山”,更不会自动变成“比较左侧两个人的动作”。最直接的办法似乎是从头训练一个同时懂图像和语言的巨大模型;LLaVA 选择了更便宜、也更有启发性的路线:保留已经会看图的视觉编码器和已经会对话的语言模型,在中间训练一座很小的桥。
这座桥在初版 LLaVA 中只是一层线性投影,在 LLaVA-1.5 中也不过是两层 MLP。它之所以重要,不是因为一个小矩阵凭空创造了视觉智能,而是因为它改写了两个预训练系统之间的接口协议:把图像编码器输出的网格特征,映射成语言模型可以放进上下文序列处理的向量;再用视觉指令数据告诉语言模型,看到这些向量之后应该完成什么任务。
CLIP 给了图像一套语言坐标,但没有给它对话能力
LLaVA 的视觉端来自 CLIP。CLIP 用大量图文对训练两个编码器:图像编码器产生一个视觉表示,文本编码器产生一个文本表示;训练目标让正确配对的图文更接近、错误配对更远。OpenAI 的工作使用 4 亿对网络图文数据,并把任务简化为从一个 batch 的文本候选中找出与图像匹配的描述。
这一步的价值是建立了一个开放的语义坐标系。传统分类器最后只能在预先规定的类别中选择;CLIP 可以把“雪山倒映在湖面”“一张手写菜单”这类自然语言描述拿来比较,因此视觉表示不再被固定标签表锁死。
但“能比较图像和一句话”不等于“能围绕图像进行多轮对话”。CLIP 的核心输出是相似度,它不会自己生成长答案,也没有学会遵守“只数红色物体”“先解释再给结论”这样的指令。LLaVA 没有让 CLIP 直接回答问题,而是借它提供的视觉特征,把生成与指令遵循交给已经具备这些能力的语言模型。
图像不是被翻译成单词,而是变成一段连续向量
以 LLaVA-1.5 的常见配置为例,输入图像经过 CLIP ViT-L/14@336px。ViT 把 336×336 的图像切成 14×14 的 patch,因此形成 (24\times24=576) 个网格位置。视觉编码器为每个位置输出一个特征向量。连接器 (P) 再把视觉维度投影到语言模型的词嵌入维度:
\[ H_v=P(Z_v), \qquad Z_v=g(X_v). \]这里的 (H_v) 常被称为 visual tokens,但它们不是词表中的 token,也没有对应某个可读单词。它们只是与文本 embedding 维度相同的一串连续向量。系统把这串向量放到问题的文本 embedding 旁边,语言模型便能在同一个自回归序列里同时关注图像区域和文字提示。
图 1:LLaVA 把 CLIP 网格特征投影成可插入语言模型上下文的连续视觉 token
这个设计省掉了专门的多模态解码器,也没有在语言模型每一层插入新的 cross-attention。代价则是视觉信息要以 token 预算进入语言模型:图像分得越细,细节可能越多,但序列越长,prefill 的注意力与 KV cache 负担也越大。“连接器很小”和“整条多模态推理链很便宜”是两件不同的事。
两阶段训练,其实在教两份不同的契约
原始 LLaVA 的训练分两步。第一步使用从 CC3M 过滤出的 595K 图文对,把图片配上“请简要描述图像”一类请求。视觉编码器和语言模型都冻结,只更新投影矩阵。此时任务不是教模型聊天,而是让连接器找到一种语言模型能消费的视觉表示。论文把它形容为为冻结的语言模型训练一个兼容的“视觉 tokenizer”。
第二步换成 158K 视觉指令样本,包括对话、详细描述和复杂推理。视觉编码器仍然冻结,但连接器与语言模型一起更新。模型只对 assistant 的答案 token 计算自回归损失,从而学习“图像 + 指令 → 合适回答”的行为。
图 2:第一阶段只对齐接口;第二阶段让连接器和语言模型共同学习视觉指令行为
这两步不能简单合并成一句“用图文数据训练”。第一阶段解决的是表示兼容:雪山区域的视觉特征怎样进入语言模型的向量空间。第二阶段解决的是交互契约:同一张图像面对“描述场景”“数出人物”“解释反常之处”时,输出应该怎样变化。一个负责把信号送进去,另一个负责让模型按人的意图使用信号。
小桥够用,是因为两端已经做了大部分工作
连接器很小,并不意味着视觉与语言天然对齐。真正昂贵的能力已经预先存在:CLIP 学会了大量视觉概念与语言语义的对应,Vicuna 则继承了语言模型的知识、生成与指令遵循能力。投影层要做的不是重新识别每个物体或重新学习语法,而是找到两个表示空间之间可被后续训练利用的接口。
LLaVA-1.5 提供了一个很有价值的工程结果:把初版线性投影换成两层 MLP、把 CLIP 输入分辨率提高到 336px,再加入面向学术 VQA 的公开数据和简洁回答格式,就得到一个在 11 个基准上很强的公开基线。论文报告其 13B checkpoint 只使用约 1.2M 公开样本,并在单个 8×A100 节点上约一天完成训练。
这个结果支持的不是“连接器越简单越好”,而是一个更窄的判断:当视觉编码器、语言模型和数据都足够强时,复杂的跨模态模块未必是首要瓶颈。BLIP-2 走的是另一条合理路线:用带可学习 query 和 cross-attention 的 Q-Former,从视觉特征中提取固定数量的语言相关表示。LLaVA 保留整片网格,接口简单、实验迭代快;Q-Former 主动压缩信息,结构更复杂但 token 数量不随输入网格直接增长。选择哪种桥,取决于细节保真、计算预算和训练数据,而不是抽象意义上的“先进程度”。
真正改变使用方式的,是视觉指令数据
初版 LLaVA 的 158K 指令数据有一个很巧的来源:当时使用的 GPT-4 只接收文本,因此研究者没有把图片直接交给教师模型,而是把图片的 caption 和 bounding box 作为符号化描述,让 GPT-4 生成围绕图像的对话、详细描述与复杂推理问题。最终的学生模型训练时仍看到真实图像。
这套流程把已有图文数据从“这张图配什么说明”改造成“用户可能对这张图提出什么要求”。数据的变化比表面上的样本数量更关键。原论文消融中,没有视觉指令微调的模型在 LLaVA-Bench (COCO) 总分只有 21.5;使用完整指令数据时为 85.1。这个数字来自以文本版 GPT-4 为裁判和参照的特定评测,不能当作通用能力百分比,但同一设置下的大幅差距清楚说明:会描述图像,不等于会遵循关于图像的指令。
它也暴露了合成数据的边界。教师看到的是 caption 和框,而不是像素本身;若符号描述漏掉细节,生成的问题与答案也不会神奇地补全视觉证据。学生可能学到教师的表达偏好和推理模板,而不是更细致的感知。合成指令扩大了行为覆盖,却没有替代真实图像标注、精细 OCR 数据或可验证的空间关系数据。
视觉 token 是信息预算,也是计算账单
把 patch 全部送进语言模型的好处是直接:局部区域仍有自己的表示,模型可以在回答时关注不同位置。但 patch 数随分辨率的平方增长。对 patch size 14 的方形输入,224px 对应 256 个位置,336px 对应 576 个,672px 则对应 2304 个。边长翻倍,视觉 token 变四倍。
若文本有 (N_t) 个 token、图像有 (N_v) 个 token,标准自注意力看到的总长度是 (N_t+N_v)。粗略的注意力矩阵规模随 ((N_t+N_v)^2) 增长,KV cache 则随总 token 数增长。真实实现会通过切图、降采样、token merging、稀疏注意力或专门的视觉重采样器改变这笔账,但不会让信息密度与计算成本的冲突消失。
图 3:连接器参数可以很小,视觉 token 带来的序列长度与注意力成本却会随分辨率迅速上升
这也是为什么高分辨率多模态模型不能只比较视觉编码器大小。还要问:每张图产生多少 token?多图输入怎样累计?图像 token 是否占用文本上下文?进入 LLM 前有没有压缩?测的是编码耗时、prefill,还是逐 token decode?“支持更高分辨率”描述的是输入上限,不等于每个请求都应该使用最高分辨率。
能说得流畅,会让视觉错误更难察觉
视觉语言模型的危险组合是:感知证据可能模糊,语言生成却很自信。原论文记录过一个典型错误:冰箱里有草莓,也有酸奶,但没有草莓味酸奶;模型仍回答“有”。它把同时出现的两个概念拼成了并不存在的关系。作者称这种情况像把图像看成一“袋 patch”,没能掌握复杂语义。
错误可能出现在三处。视觉编码器可能没保留小字、数量或精确位置;连接器可能没有把相关细节映射成语言模型容易利用的方向;语言模型则可能用文本先验补出一个听起来合理的答案。仅看最终句子,很难判断是哪一层失真。因此实际系统需要让评测拆开感知、定位、OCR、关系与生成,关键任务还应提供可追溯区域、外部检测器或拒答机制,而不是只用“回答是否像人话”衡量质量。
LLaVA 最持久的贡献,也许不是某个今天仍领先的 checkpoint,而是提供了一张极简、可复现的设计图:强视觉编码器负责看,强语言模型负责说,一个轻量接口让两者共享序列,再用指令数据定义新的使用方式。它证明了多模态能力可以通过组合已有基础模型快速形成,也同时提醒我们:桥再小,桥上承载的信息、训练协议和错误归因都不小。
参考资料
- Radford et al., Learning Transferable Visual Models From Natural Language Supervision, ICML 2021.
- OpenAI, CLIP: Connecting Text and Images.
- Liu et al., Visual Instruction Tuning, NeurIPS 2023 Oral.
- Liu et al., Improved Baselines with Visual Instruction Tuning, 2023.
- LLaVA authors, LLaVA 官方代码与训练说明.
- Li et al., BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models, ICML 2023.