语言模型天生只认文字 token,可多模态大模型明明能聊图里的内容。中间那道桥,就是把图像 token 接进语言模型的过程。DeepSeek 等模型的多模态版本、通义千问的识图能力,都要过这一关。
两种模态的语言不通
文字 token 是离散符号,图像编码器吐出的是连续向量,两者不在一个「频道」上。直接把图像向量塞给语言模型,它读不懂。需要一个对接层做翻译:把视觉向量映射到语言模型的 token 空间里,让模型把图当成「另一种文字」来读。
这道桥为什么值得单独讲?因为它是多模态模型里投入小、作用大的一段:参数量不大,却决定了昂贵的视觉特征能不能被充分利用。
类比:像给外国客人配同声传译,客人讲的是视觉语言,译文要落在语言模型的母语里。
对接层的几种做法
常见做法三档:轻量方案用一个线性投影层,简单高效,适合对齐要求不高的场景;中间方案用小型映射网络,用一点容量换细节;重型方案加查询式结构,用一组可学习的查询向量从图像特征里「问」出固定数量的 token。三档是算力与保真度之间的取舍。
三档方案的取舍,按场景对号入座。
| 方案档位 | 对接层结构 | 特点 | 适合场景 |
|---|---|---|---|
| 轻量 | 一个线性投影层 | 简单高效,省算力,细节有限 | 对齐要求不高、追求响应速度 |
| 中间 | 小型映射网络 | 容量居中,用一点容量换细节 | 通用识图 |
| 重型 | 查询式结构,一组可学习的查询向量从图像特征里问出固定数量 token | token 数可控,训练成本高 | 文档理解这类细节敏感任务 |
选型时可以按场景对号入座:轻量场景选线性投影,追求响应速度;通用识图选映射网络;文档理解这类细节敏感的任务,才值得上查询式结构。
类比失效处:同传是逐句翻,token 映射是整体空间对齐——它不翻译内容本身,而是把两套坐标系摆到一起。
对齐质量决定上限
对接层的训练目标是让图像 token 出现在「合适的位置」:描述这张图时,语言模型从这些 token 里读出的信息,与看文字描述读出的信息尽量一致。对齐差,轻则答非所问,重则幻觉出图里没有的东西。识别类应用如手写识别的准确率,就受对齐质量直接影响。
对齐靠什么练成?靠海量图文对:一张图配一段描述,反复训练让模型把两侧的信息挂上钩。描述越丰富,挂钩越结实——只见过「一只猫」配猫图的模型,遇到「一只趴在窗台的橘猫」就接不住。数据多样性是对齐质量的地基。
token多了会怎样
一张高清图切完块,token 数可能上万,直接全给语言模型,上下文很快吃满。常见做法是压缩:池化合并相邻块、查询式采样取重点。压多少是门平衡术——压太狠细节丢,模型看图「近视」;不压则又贵又慢。这份账和视觉编码器里的切块粒度是连在一起的。
视频场景更夸张,帧一多 token 数翻着涨,帧与帧的关系交给文生视频的时间层继续处理。
多图对话也要做预算:一次发五张图,token 消耗就是五份,上下文很快见底。实用做法是明确告诉模型重点看第几张,让它把注意力花在刀刃上,而不是平均分配。
对接方案对照表
- 线性投影:省算力,细节有限
- 映射网络:容量居中,效果均衡
- 查询式结构:token 数可控,训练成本高
末句:方案没有高下,只有合不合场景。
关于图像token再多问三句
- 图像 token 和文字 token 能混排吗?:能,同一序列里交替出现正是多模态对话的工作方式。
- 模型怎么知道哪段是图哪段是字?:靠特殊分隔标记,把图像 token 包在固定位置。
- 换一个编码器要重训吗?:输出维度变了就要重训对接层,语言模型本体有时可以冻结。
记住这条链路:像素被编码器变向量,向量被对接层变 token,token 进入语言模型参与思考。图和字能不能聊到一起,全看中间这道桥搭得稳不稳。


