多模态 RAG 怎么做?图片和图表怎么入库和检索?
面试怎么回答
主流有两种思路。一是用多模态模型给图片生成详细描述,图表再提取成结构化数据,描述走现有的文本检索链路,命中后把原图和描述一起交给多模态模型回答,优点是复用链路,缺点是描述可能不全。二是用多模态 Embedding 直接把图片甚至整页截图向量化,和文本在同一空间检索,不依赖描述,但对精确数值和小字效果有限、成本更高。实践中我会组合:文本解析和页面截图两路召回,图表生成描述加提取数据,回答时附上原图让模型核对。数据上图片要和文档、页码关联,存对象存储,记录描述模型版本,对重复图片去重,并单独构造答案在图片里的评测集。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
企业文档里大量信息在图片里:架构图、流程图、仪表盘截图、产品图片、带图表的 PPT。纯文本 RAG 会把这些信息全部丢掉。面试官问多模态 RAG,想看你怎么让图片里的信息也能被检索和回答。
两种主流思路
思路一:把图片转成文字
- 用多模态模型为每张图片生成详细描述:图里有什么、图表的标题、坐标轴、关键数值和趋势;
- 对图表可以进一步提取成结构化数据(表格);
- 描述文字和普通文本一起切分、向量化、检索;
- 检索命中后,把原图和描述一起交给多模态模型生成回答。
优点是复用现有的文本检索链路;缺点是描述生成有成本,描述不全时会丢失细节。
思路二:多模态 Embedding
- 用能同时处理图片和文本的 Embedding 模型,把图片直接向量化,和文本在同一个向量空间里;
- 用户的文字问题可以直接检索到相关图片;
- 也有方法把整页文档截图直接向量化,跳过文本解析,对版式复杂的文档效果不错。
优点是不依赖描述的质量;缺点是对精确数值、小字的检索能力有限,向量存储和计算成本更高。
实践中的组合
- 文档页面:文本解析 + 页面截图都存,检索时两路召回;
- 图表:生成描述 + 提取数据表;
- 检索结果交给多模态模型时,同时提供原图,让模型自己看图核对,减少描述误差带来的错误。
数据管理要点
- 图片和它所在的文档、页码、上下文段落建立关联,回答时能定位来源;
- 图片存对象存储,索引里存引用和描述;
- 记录描述生成用的模型和版本,模型升级后可以重新生成;
- 去重:同一张 Logo、模板图在很多文档中重复出现,没必要每次都生成描述。
评测
单独构造「答案在图片里」的问题集,比较纯文本 RAG 和多模态 RAG 的准确率,确认投入是否值得。