CLIP、MLLM

在做 RAG 时,文字变成向量很简单(用 Embedding 模型)。但如果知识库里有图片(如商品图、设计图、架构图),该怎么让大模型检索到它?目前企业里有两种主流做法:

CLIP 向量化(图文跨模态对齐)

CLIP 是 OpenAI 开源的一个多模态模型。能把“图片”和“文字”映射到了同一个向量空间里,和向量化的文本一起存储。

怎么做: 把图片喂给 CLIP,它会输出一串向量(比如 512 维的数字),直接存入向量数据库。

效果: 向量空间里,一张“猫咪在草地上滚玩”的图片向量,和“一只猫在草坪上玩耍”的文本向量,距离极其接近。

当用户搜文本“绿色草地上的宠物”时,即使库里没有这几个字的文本,也能直接通过向量相似度把那张猫的图片检索出来。

优点: 速度极快,计算成本极低,天然支持“以图搜图”和“以文搜图”。

缺点: 属于“粗粒度”理解。如果图片里包含复杂的字(如架构图里的组件名、报表里的数字),CLIP 往往看不懂细节。

MLLM 描述(多模态大模型转文字)

怎么做: 在把数据切片入库前,用 MLLM 充当“速记员”:“请详细描述这张图片的内容,如果是架构图,请写出所有组件和流程;如果是商品,请写出型号和外观特征。”

效果: MLLM 会把图片吐成一段几百字的详细纯文本描述。接着,你把这段文本拿去走传统的文本 Embedding 和 BM25 入库。

优点: 理解力极强(细粒度)。能把图片里的隐藏逻辑、文字、甚至是表格数据完全挖掘出来。

缺点: 贵且慢。入库阶段每张图都要调用一次 MLLM,如果企业有百万张图片,API 费用和处理时间会飙升。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计