视觉投影层(Projector / Connector)是连接视觉编码器(Vision Encoder)和大语言模型(Large Language Model, LLM)的“翻译模块”:它把图像编码器输出的视觉特征向量,映射到 LLM 的词嵌入空间(embedding space),让这些向量能像文本词元(token)一样被 LLM 读取。
图像编码器会把图片切成许多小块(patch),每块变成一个向量。这些向量处在“视觉语义空间”里,维度和分布跟 LLM 的词向量并不一样。LLM 只认自己词嵌入表里的向量,直接把图像向量拼进去,就像把德语单词塞进中文句子里,模型读不懂。投影层就是一个小网络,常见做法是线性层或多层感知机(Multilayer Perceptron, MLP),把每个视觉向量投影到 LLM 的隐藏维度。投影后,它们被当作“视觉 token”拼在文本 token 前面,LLM 就能一边读文字一边“看”图。
也有更复杂的连接器。比如 Q-Former(Querying Transformer)用一组可学习的 query 去视觉特征里“提问”,把几十上百个 patch 压缩成固定数量的向量;Perceiver Resampler 也有类似思路。好处是控制视觉 token 数量,降低上下文长度和计算压力。
打个比方:视觉编码器像一位只讲方言的专家,吐出一串专业术语;LLM 是只懂标准语的老板。投影层就是同声传译,把方言翻译成老板能听懂的词。翻译质量差,老板就抓不住图里的关键细节。
它和相邻概念容易混淆:
| 模块 | 输入 | 输出 | 角色 |
|---|---|---|---|
| 视觉编码器 | 图像像素 | 视觉特征向量 | 负责“看” |
| 投影层/连接器 | 视觉特征向量 | LLM 可读的嵌入 | 负责“翻译” |
| 文本分词器(AI 词典:Token">Tokenizer) | 文本 | token id 与词嵌入 | 负责文本离散化 |
| LoRA(Low-Rank Adaptation)等适配器 | LLM 内部特征 | 调整后的特征 | 微调 LLM 自身行为 |
与分词器不同,分词器是离散查表,投影层是连续映射,需要训练。与 LoRA 不同,LoRA 调整 LLM 内部参数,投影层不改 LLM 内部,只在外部搭桥。与视觉编码器不同,编码器决定“看到什么”,投影层决定“怎么告诉 LLM”。
对从业者来说,训练多模态模型时,常见策略是冻结视觉编码器和 LLM,只训练投影层及少量模块,这样成本较低。投影层的容量和对齐数据质量,直接影响看图问答、OCR、图表理解等表现。选型时还要关注连接器结构:线性层简单,但视觉 token 可能较多;Q-Former 类结构能压缩 token,但训练更复杂。对普通人来说,可以记住:多模态不是把图片直接塞进 LLM,中间有一个翻译层。具体模型的连接器结构和训练策略差异较大,以官方文档为准。
