在实际的RAG(检索增强生成)系统中,图片(Image)往往是最难啃的骨头。传统的OCR只能提取文字,却丢失了图片的语义信息;而直接存储原始图片又无法被向量数据库直接检索。
结合最新的RAG开发实践,针对“图片如何使用”这一核心问题,目前业界主流的方案可以归纳为三条路径:视觉向量化、语义描述化、以及传统OCR化。本文将详细拆解这三种方案的技术原理与适用场景。
一、 核心痛点:图片是非结构化数据的“黑洞”
在构建知识库时,我们经常遇到这种情况:
- 用户问:“这张架构图里的A模块和B模块是什么关系?”
- 传统RAG:因为只索引了OCR提取的文字,或者根本没索引图片,导致回答“未找到相关信息”。
要解决这个问题,我们需要让大模型“看懂”图片,并将这种理解转化为机器可检索的形式。如下图所示,主要有三种处理策略:
二、 方案详解:图片处理的三条路径
1. 视觉向量化 (Visual Embedding) —— “以图搜图”
这是最直接的方式,利用专门的视觉编码器将图片直接映射到向量空间。
- 技术原理:使用如 CLIP、SigLIP 或专门的图像Embedding模型(如Jina AI的clip-vit-base-patch32),将整张图片转换为一个高维向量(例如768维或1024维)。
- 入库方式:直接将生成的向量存入向量数据库(Vector DB)。
- 优势:保留了图片的全局视觉特征,非常适合“以图搜图”的场景。比如用户上传一张截图,系统能立刻找到库中相似的图片。
- 劣势:对于复杂的逻辑推理(如“解释图中的因果关系”),纯视觉向量往往缺乏足够的语义细节。
2. 生成图片描述 (Image Captioning) —— “多图/文转文”
这是目前多模态RAG中最热门的方案,核心思想是把图片变成文字。
- 技术原理:利用多模态大模型(Multimodal LLMs,如GPT-4V, Qwen-VL, LLaVA等)充当“解说员”。
- 输入:原始图片。
- Prompt示例:“请详细描述这张图片的内容,包括图表趋势、文字信息和逻辑关系。”
- 输出:一段详细的自然语言描述。
- 入库方式:将生成的文字描述进行Embedding后入库,或者直接作为元数据关联原始图片。
- 优势:极大地增强了语义检索能力。用户可以用自然语言提问(如“去年Q3的销售趋势如何?”),系统通过检索图片的描述文字就能找到对应的图表。
- 劣势:依赖大模型的推理能力,成本较高,且可能存在幻觉(描述错误)。
3. 提取文字 (OCR) —— “保底方案”
这是最传统但也最稳健的方案,主要针对包含大量文字的截图、扫描件。
- 技术原理:使用OCR引擎(如PaddleOCR, Tesseract)识别图片中的文字区域。
- 入库方式:将提取出的纯文本切片入库。
- 优势:成本低,速度快,对于文档扫描件效果极佳。
- 劣势:完全丢失了排版、颜色和视觉结构信息。如果图片是一张没有文字的抽象画,此方法失效。
三、 最佳实践:混合索引策略
在实际的企业级RAG项目中,我们通常不会单选某一种,而是采用混合策略:
- 预处理阶段:对上传的图片同时进行OCR提取和多模态描述生成。
- 索引阶段:
- 将OCR文字和图片描述拼接,生成语义向量入库(用于回答“是什么”、“为什么”)。
- 同时保留原始图片的视觉向量(用于回答“找类似的图”)。
- 检索阶段:根据用户Query的类型,动态决定是检索文本向量还是图像向量,最后将检索到的图片和上下文一起喂给大模型生成答案。
四、 总结
图片不再是RAG系统中的盲区。通过向量化实现直观匹配,通过多模态描述实现语义理解,通过OCR实现精准字符检索,三者结合才能构建真正强大的多模态知识库。