面试官你好,这个问题其实是在问:[[多模态]][[RAG]]到底是不是真的在理解图像,还是只是把图像转成文字后再做检索?本质区别就是是否共享语义空间。
先说伪多模态。它的思路很简单:图像进来,先用 [[OCR]] 或者像 [[CLIP]] 这种视觉编码器,把图像转成一段文字描述,比如用 BLIP2 生成 caption,然后把这个文本[[向量化]],丢进 [[Vector Database]] 里检索,最后喂给 LLM 生成答案。说白了,就是把多模态问题强行压成单模态问题,图像信息在转换过程中会有有损压缩,caption 写得好不好直接决定了检索质量。比如一张复杂的图表,如果 caption 只写了“柱状图显示增长”,那丢了横纵轴标签、数据趋势这些细节,召回肯定不准。
真多模态就不一样了。它让图像和文本统一编码到同一个共享语义空间,直接做跨模态相似度计算。典型链路是图像和文本一起输入多模态 encoder,比如 CLIP 的[[双塔]]结构或者 EVA-CLIP,产出联合向量,然后检索,最后交给多模态 LLM 比如 LLaVA、Qwen-VL 来生成。整个过程保留了原始模态的细粒度信息,所以能做到“以图搜文”或者“以文搜图”。
从三个维度对比一下。信息融合上,伪多模态有 caption 瓶颈,损失了视觉细节;真多模态直接对齐原始特征。模型架构上,伪多模态是解耦的,视觉编码器、文本 RAG、LLM 三个独立模块拼起来;真多模态是统一架构,训练时端到端对齐。性能上,伪多模态依赖 caption 质量,复杂场景效果差,但工程成熟、成本低;真多模态检索精度高,但训练数据要求高、推理成本大。
举个例子,电商穿搭推荐场景。用户上传一张街拍图,说“帮我找类似风格的上衣”。伪多模态的做法是把图片转成“白色衬衫、宽松版型”这样的文本,然后去搜商品描述,但面料质感、领口设计这些细节很难用文字表达。真多模态可以直接用图片特征去匹配商品图库,甚至能搜到同款不同色的选项。反过来,如果是文档扫描件,比如发票识别,伪多模态就够用,因为关键信息本来就是文本。
落地风险也要注意。真多模态的前提是你有足够的高质量图文对数据来做 [[SFT]] 或者对齐训练,如果数据质量差,效果反而可能不如伪多模态。而且推理成本高,线上部署要考虑延迟和显存。伪多模态的常见失败场景是:用户问“这张图里的红色按钮是干什么的”,如果 caption 漏掉了“红色”这个属性,检索就偏了。
所以我的选择是:先判断视觉信息是否可文本化。如果可文本化,比如合同扫描件、商品参数表,优先用伪多模态快速落地;如果视觉细节是关键,比如工业图纸、医疗影像,必须上真多模态。但实际项目里,我常常两者结合,先用伪多模态做粗召回,再用真多模态做精排,这样在成本和效果之间取得平衡。
这里有个延伸点:真多模态的检索精度其实还取决于 Embedding 空间的对齐质量,比如 CLIP 对细粒度属性(像“条纹”和“格子”)的区分能力有限,最近有工作用 [[ColBERT]] 的后期交互来改进,但推理代价更大。这个方向我还在跟进。
总的来说,我更倾向于把伪多模态看成“快速验证方案”,真多模态才是“最终形态”,但落地时要根据业务场景做取舍,不能为了技术而技术。