多模态检索的原理与边界:它做得好与做不好的六件事

一、文字搜索和图片搜索不是一回事

文字搜索靠关键词与向量;图片搜索靠特征相似。

把两者放在一起,就成了多模态检索——听起来很大,其实卡在很具体的地方。

二、它是怎么工作的

大致三步:

  1. 把图片和文字分别编码成向量。
  1. 把两者放到同一个向量空间。
  1. 比距离,找出最近的。

关键在第二步:如果映射得好,一张图的向量就能和一个句子的向量靠得很近。

三、三个能做好的事

一、用文字找图。 一句“雨后的红色自行车”,能在图库里找到。

二、用图找相似图。 上传一张,找到风格或内容相近的。

三、图文混合问答。 给一张图和一句话,让它回答。

四、三个做不好的事

一、精确计数。 “图里有几个杯子”这类,模型经常数错。

二、细小文字。 图里的字号很小、背景很花时,认不清。

三、空间关系。 “左边那个手里拿着什么”,模型会混。

五、为什么做不好

因为向量压缩时丢掉了细节。

一张 1024 像素的图,编码成一个固定长度的向量,必然舍弃信息。

要精确,就得放大局部重新识别。

六、实际用法建议

三个:

  1. 不要靠它做 OCR。需要准的文字识别,用专用工具。
  1. 需要计数的,先让它描述,再让自己数。
  1. 找图可以信,分类不定可以信。

七、一个容易忽略的细节

不同语言的提示词,检索效果可能不同。

用中文描述一张英文背景的图,不如用英文试试。

这不是模型偏见,是训练数据分布。

八、扩展阅读

想理解检索与索引的实现,可以看工程方向的文章。

BackendWiki 里的 MySQL 与 Redis 专题,解释了索引与命中率的基本原理,对理解向量检索也有帮助。