RAG 中表格图片怎么处理?
非结构化文档解析方案与多模态 Embedding 挑战
原题:在RAG(检索增强生成)系统中,如何处理包含表格和图片等非结构化文档?请描述相关的技术方案和挑战。
多模态 · 小鹏真题
30 秒回答
- 文档解析与结构化提取(表格/OCR/布局分析)
- 多模态Embedding策略(文本+图像联合编码或分离编码)
- 检索层面的多模态对齐与融合
- 生成阶段的跨模态上下文整合
回答与解析
答案要点
- 文档解析与结构化提取(表格/OCR/布局分析)
- 多模态Embedding策略(文本+图像联合编码或分离编码)
- 检索层面的多模态对齐与融合
- 生成阶段的跨模态上下文整合
- 实际挑战(解析精度、计算成本、模态对齐)
核心思路
多模态RAG的关键是统一表示 + 按需检索 + 跨模态生成。把表格、图片都转成模型能理解的格式,同时保留结构化信息供精准召回。
技术方案
1. 文档解析层
| 类型 | 处理方法 |
|---|---|
| 表格 | 用专用工具(如Camelot、Table Transformer)提取为HTML/Markdown/JSON,保留行列关系;复杂表格做截图+结构化双路存储 |
| 图片 | OCR提取文本(PaddleOCR/EasyOCR)+ 视觉特征编码(CLIP/SigLIP);图表类需解析为结构化数据 |
| 版面分析 | LayoutLM、YOLO等检测文档结构,建立阅读顺序 |
2. 向量化策略
- 分离编码:文本走BERT/Embedding模型,图片走Vision Encoder,各自建索引,检索时做 late fusion
- 联合编码:用多模态模型(如CLIP、Qwen-VL)生成统一向量,单索引检索
- 混合方案:表格存结构化文本+截图双向量,问答类图片存OCR文本+视觉向量
3. 检索与生成
- 检索阶段:Query可能需模态扩展(文本Query→检索相关图片摘要)
- 生成阶段:LLM接收时,表格以Markdown/JSON注入,图片以base64或描述文本传入(取决于模型是否原生支持多模态)
主要挑战
- 解析精度:扫描件表格识别错误、复杂版面顺序混乱 → 需人工校验+置信度过滤
- 模态对齐:图文语义不对齐(如图片配错说明文字)→ 用多模态预训练或对比学习微调
- 成本与延迟:视觉Encoder计算重、图片token占用长上下文 → 权衡用截图缩略图或分层检索
- 评估困难:多模态答案的正确性难以自动评测 → 需构建多模态评测集
实际落地中,建议先做文档类型路由(纯文本走轻量链路,复杂文档走多模态链路),逐步迭代。
口语版讲法(约4分钟)
- 本质问题:非结构化文档的表示与对齐
- 文档解析:表格和图片的不同处理路径
- 向量化策略:分离编码还是联合编码,按场景选
- 生成阶段:注入方式取决于模型能力
- 挑战与取舍:解析精度、模态对齐、成本
这道题其实问的是,当 RAG 系统遇到非纯文本的文档时,怎么把表格、图片这些信息有效利用起来。说白了,核心就两个问题:一是怎么把非结构化内容转成机器能理解的形式,二是怎么让文本查询和图片、表格这些不同模态的信息对齐。
我们先从文档解析说起。表格和图片的处理路径不太一样,你得根据场景来选。比如表格,如果结构清晰,直接用 Camelot、Table Transformer 这类工具提取成 Markdown 或 JSON,保留行列关系,这样 LLM 能看懂。但如果是扫描件里的复杂表格,比如带合并单元格、跨页的,直接提取容易出错,我的做法是截图加结构化文本双路存储,检索时根据 query 类型决定用哪一路。图片呢,分两类:一类是纯文本图片,比如截图,用 OCR 提取文字就行;另一类是图表,比如折线图、柱状图,光 OCR 不行,还得用视觉模型解析出趋势、极值等结构化信息,或者干脆保留视觉特征。
接下来是向量化。这里有个常见的纠结:是图片和文本各自编码、分开建索引,还是用一个多模态模型统一编码?我的经验是,没有银弹,得按业务场景来。如果文档里图片主要是配图,跟文字内容强相关,那用 CLIP 这类联合编码模型,一个向量搞定,检索时 query 直接映射到同一个空间,简单高效。但如果图片是独立的,比如产品目录里的商品图,跟周围文字关系不大,那分开编码更合适,文本用 BERT,图片用视觉 Encoder,检索时做 late fusion,也就是文本检索和图片检索各出一批结果再合并。落地时我通常走混合方案:表格存结构化文本加截图双向量,关键图片存 OCR 文本加视觉向量,让系统按需选择。
再说到生成阶段,LLM 能不能直接吃图片,取决于模型能力。如果用的模型原生支持多模态,比如 Qwen-VL,那直接把图片 base64 传进去就行;如果不支持,就只能把图片转成描述文本,比如用视觉模型生成一段 caption,再跟文本一起喂给 LLM。表格的话,我倾向用 Markdown 格式,因为 LLM 对 Markdown 的理解力比 HTML 好,token 也更省。
实际落地中,挑战不少。解析精度是第一个坑,扫描件表格识别错位、图表 OCR 漏字,都会导致下游检索和生成出错。我的做法是加置信度过滤,低于阈值的走人工标注或回退到纯文本链路。模态对齐是第二个坑,比如一张图配的文字说明是错的,检索时图文语义就对不上。这种问题需要靠多模态预训练或对比学习微调来缓解,但成本高,小团队可以先做规则兜底。成本与延迟也很现实,视觉 Encoder 计算重,图片 token 占上下文长,我的策略是分层检索:先用文本检索粗筛,再对 top-k 结果中的图片做精细处理,避免全量计算。
还有一个容易被忽略的点:评估。多模态 RAG 的答案很难自动评测,比如问“这张图里峰值在哪”,模型答对了但格式不对,算不算对?目前业界也没有统一标准,我会自己构建多模态评测集,用 GPT-4V 做裁判,但成本高,还在探索更轻量的方法。
所以整体上,我更倾向把多模态 RAG 看成一套按需路由的系统,先判断文档类型,纯文本走轻量链路,复杂文档走多模态链路,而不是一个统一的方案。核心是平衡精度、成本和延迟,根据业务容忍度做取舍。
关键一句:多模态RAG的评估难题,目前缺乏统一标准,需要自建评测集和裁判模型。
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做一个企业知识库问答系统,用户上传的文档里既有表格又有产品图片。你打算怎么提取和索引这些多模态内容,让大模型能准确回答比如‘上季度销量最高的产品型号和图片是什么?’这种问题?
- 问法 2 · 层层追问
RAG系统里文档一般怎么切分和检索?……那如果文档里有表格和图片,直接按文本切会丢信息吧?……具体你会怎么处理表格的结构和图片的视觉内容,让检索和生成都能用上?
- 问法 3 · 直球架构
在RAG系统中处理包含表格和图片的非结构化文档,你会采用什么样的技术方案?从文档解析、向量化到检索和生成,分别怎么设计?主要挑战有哪些?