先这样答
常见的结构是三个部件:一个在图文数据上预训练过的视觉编码器、一个中间的连接层、一个预训练过的语言模型。「对齐」指的就是让视觉编码器输出的向量,落到语言模型能读懂的空间里。主流做法分两步,每一步只解冻该解冻的部分。
第一步用大量图文对做对齐训练:冻结编码器和语言模型,只训练连接层,目标是视觉向量投影进词嵌入空间后,语言模型能顺着它继续预测文本。第二步做多模态指令微调:用视觉问答、文档问答这类指令数据,把「能读懂图」练成「会按指令用图」,这一步通常放开更多参数一起训。编码器本身的语义基础,很多来自 CLIP 式的对比学习预训练:配对的图文向量拉近,不配对的推远,图像和文字由此进入同一个语义空间。
收尾一句话:先训练连接层把接口对上,再用指令数据教会用法,最终效果更多取决于数据质量,而不是结构上的小改动。
面试官会怎么追问
- 「为什么不从头联合预训练?」 两个预训练模型各自已经有很强的能力,从头联合训练成本极高。先冻结、只训中间的连接层,是便宜且稳定的路线,也是大多数开源多模态模型采用的方案。
- 「CLIP 式对比学习是什么?」 用海量图文对训练编码器:配对的图和文在向量空间里拉近,不配对的推远。练出来的编码器把图像和文字放进同一个语义空间,这是后来很多多模态模型的底座。
- 「对齐之后还会认错图吗?」 会。对齐解决的是语言模型能不能读懂视觉向量,不消除识别错误。幻觉和细节辨认错误仍然存在,要靠更高质量的指令数据和后训练阶段去缓解。
回答的坑
- 说「语言模型直接学会了看图」。语言模型本身没有图像入口,是外接的编码器和连接层把视觉信息翻译成它能读的向量。
- 只会说「用图文对训练」。跳过冻结与解冻的两阶段策略,被追问「哪些参数在训练」就会露底。
同系列的题
—— 本题完 ——