AIGC14 分钟
多模态 RAG 系统架构设计:从文本检索到图文联合理解
解析多模态 RAG 的向量索引策略、跨模态检索机制与上下文融合方案,构建生产级知识问答系统。
RAGAIGC向量数据库多模态架构设计
多模态 RAG 的核心挑战
传统 RAG 只处理纯文本,但企业知识库大量包含图表、流程图、截图等视觉信息。多模态 RAG 需要统一处理文本、图像、表格等多种数据形态。
架构分层设计
#
1. 数据摄入层(Ingestion)
文档解析采用分层策略:PDF 用 PyMuPDF 提取文本层,OCR 回退处理扫描件。图片通过 CLIP 编码为 512 维向量,表格转为 Markdown 保留结构信息。每种模态维护独立的 embedding 模型,避免语义空间污染。
#
2. 索引存储层(Index)
使用 Milvus 或 Qdrant 作为向量数据库,支持混合索引:HNSW 用于高召回向量检索,倒排索引用于关键词过滤。关键设计是建立跨模态映射表,将图片 chunk 关联到其所在文档的文本上下文,保证检索时能返回完整的图文组合。
#
3. 检索融合层(Retrieval Fusion)
采用 Reciprocal Rank Fusion(RRF)合并多路召回结果。对用户 query 做意图分类:纯文本查询走文本检索通道,包含"如图所示"等视觉指示词的查询走多模态通道。融合后的 top-k 结果经过 Cross-Encoder 重排序,显著提升相关性。
#
4. 生成层(Generation)
将检索到的文本 chunk 和图片 URL 一起注入 LLM prompt。对 GPT-4o 等原生多模态模型直接传图;对纯文本模型则用 BLIP-2 生成图片描述后拼接。流式输出时采用 SSE 推送,前端渐进渲染。
生产环境踩坑
- 向量维度不统一:统一用 CLIP ViT-L/14 的 768 维 - 检索延迟过高:引入缓存层,对高频 query 缓存检索结果 - 图文关联丢失:chunk 切分时保留 20% 重叠区间