考察点
这道题出自字节跳动智能体算法实习二面,承接 Agent 话题往多模态延伸。面试官想看你有没有架构谱系的全局观:不是罗列模型名,而是讲清「视觉信息怎么进语言模型」这个核心问题的几种解法及其取舍。追问会往 connector 设计、图像 token 数量爆炸、训练数据配比走。
参考答案
核心问题:图像怎么变成语言模型能吃的东西
语言模型只吃离散 token 序列,图像是连续像素。所有 VLM 架构的差异,本质都是对三个问题的不同回答:视觉特征谁来提、怎么翻译成 LLM 的空间、翻译的粒度多细。按融合深度从浅到深,主流分三类。
路线一:双塔对比式——图文各自编码,只学对齐
代表是 CLIP。图像塔(ViT)和文本塔各自编码成一个向量,用对比学习拉近配对图文、推远不配对的。两边只在最后的向量空间相遇,互不进对方内部。
这类架构做不了生成,但统治了检索和表示场景:图文检索、以文搜图、zero-shot 分类。它也是很多生成式 VLM 的视觉编码器来源——CLIP 的 ViT 提出来的特征语义对齐好,直接被后面两代架构当「眼睛」用。
路线二:LLM 外挂式——视觉编码器 + 连接器 + 冻结或微调的 LLM
这是当前应用最广的路线,代表 BLIP-2、LLaVA、Qwen-VL。结构三段式:
- 视觉编码器:通常就是预训练好的 CLIP ViT,把图像切成 patch 编成一串视觉 token;
- 连接器(connector/projector):把视觉 token 映射到 LLM 的词向量空间。这里是各家分野:
- LLaVA 用最简单的 MLP 投影,发现配合好数据效果意外能打;
- BLIP-2 用 Q-Former:一小组可学习 query 通过交叉注意力从视觉特征里抽取固定数量(比如 32 个)的 token,天然压缩序列长度;
- 部分工作用交叉注意力层插进 LLM 内部(Flamingo 的 gated cross-attention),融合更深但结构侵入更大。
- LLM:把视觉 token 当「外语前缀」接在文本 token 前面,后续走标准自回归生成。
这条路线的优点是拼装式:视觉、语言两边都用最强的现成模型,训练量集中在连接器和对齐数据上,成本低、迭代快。缺点是信息瓶颈在连接器——MLP 投影粒度过粗,细粒度文字、空间关系容易丢。
路线三:原生早融合——一个模型从头吃图文混合数据
不把视觉当「外挂」,图像直接 tokenize(连续特征或离散视觉 token)和文本 token 混在一起,喂给统一的 Transformer 从头预训练。代表性方向是各家新一代原生多模态模型。
优势是图文交互贯穿所有层,细粒度理解和图文生成的天花板更高,还能自然扩展到视频、音频。代价是训练成本巨大,且视觉文本数据配比、tokenizer 设计都是难题——图像 token 序列极长(一张图几百上千 token),直接推高上下文成本。
工程视角的取舍总结
做应用选型时我的判断逻辑:检索类任务双塔够用且便宜;通用图文理解对话,外挂式成熟度高、开源选择多,是默认起点;只有追求顶尖细粒度能力或统一生成理解时,才值得上原生路线的模型。外挂式还有两个实战问题要盯:高分辨率输入会切出大量视觉 token 挤占上下文(需要动态分辨率或 token 压缩),以及多图/视频场景 token 成本线性爆炸。
可能的追问
1. 为什么视觉编码器普遍用 CLIP 的 ViT 而不是更强的监督模型?
CLIP 特征天然和语言空间对齐过,往 LLM 空间映射的学习负担小;纯视觉监督特征(如分类训练的 ViT)语义对齐差,连接器要学的东西多得多。
2. 图像 token 太多怎么压?
Q-Former 类固定 query 抽取、pooling/卷积下采样、按内容重要性的动态压缩,或直接限制输入分辨率。压缩与细粒度理解是矛盾体,按任务取舍。
3. VLM 训练一般分几个阶段?
常见两阶段:先冻结 LLM 只训连接器做特征对齐(图文对数据),再解冻(或部分解冻)做指令微调(多模态指令数据)。直接全量端到端训容易把 LLM 的语言能力带崩。