解析和理解非结构化文档尤其是图片格式表格( 比如:扫描文件中的表格)时,优化 RAG 方案面临重大挑战。难点涉及:
- 扫描图像的复杂性,包括多变结构、非文本元素及手写与打印文本的混合,这些都阻碍了准确自动提取表格信息,可能导致结构损坏,影响 RAG 输出的完整性和语义理解。
- 表格标题的精确抽取及其与对应表格的有效关联,这对于正确理解表格意义至关重要。
本文首先讲述 RAG 表格处理的核心技术,继而评估现有开源解决方案,并进一步提出及实践一种解决方案策略。—1—
RAG 的关键技术
该模块核心职责是从非结构化文档及图像中高精度抽取表格结构,强调表格标题的准确提取及与表格本身的便捷绑定。现有方法概览:1. 多模态 LLM 应用:运用GPT-4V等工具,识别并提取PDF页面中的表格信息。2. 专用表格检测模型:比如:Table Transformer,专门用于解析表结构。3. 开源框架利用:采用 unstructured 等框架进行全面文档解析,提取表格相关内容。4. 端到端模型解决方案:Nougat、Donut 模型直接解析文档并提取表格信息,无需独立OCR,且便于表格标题的自动识别与关联,因表格标题常为内容精要,对理解表格内容至关重要。索引表格方法概括:
图像表格索引:专对图片格式表格。
文本/JSON 表格索引:针对纯文本和 JSON 结构表格。
LaTeX 表格索引:专门处理 LaTeX 格式。
表格摘要索引:利用 LLM 或多模态模型生成表摘要。
结构化层级索引:按内容从小到大或依文档摘要,涵盖表格各部分(比如:行)至整体(图像、文本、LaTeX 表)。
同时,可直接向多模态 LLM 提交图片、文本及查询,以获取即时答案。- 针对性数据训练,运用 BERT-like 模型,比如:TAPAS,专项处理表格理解。
- 利用 LLM,经预训练、微调或提示调整,执行表格理解任务,参考GPT4Table 方法。
—2—
现有开源解决方案
LlamaIndex 提供四种方式,前三者运用多模态模型:2. PDF 页面转图像,GPT-4V 分析建立索引,通过 Image Reasoning Vector Store 查询。4. 表格图像 OCR转 文本,送入 LLM 回答。- 半结构化 RAG:Unstructured 解析 PDF 内容,多向量检索器存储,LCEL 实现问答,非多模态 LLM 参与。 - 选项1:CLIP 等嵌入图像和文本,送多模态 LLM 直接回答。 - 选项2:多模态 LLM 生成图像文本摘要,传统 RAG 链路处理 QA。 - 选项3:生成摘要、embedding,根据之找到原图,多模态 LLM 完成问答。—3—
建议的解决方案
本文概括、分类并探讨了关键技术与现有方案,据此我们提出一项解决方案,如下图示。为清晰起见,简化说明,未展示RAG模块中的重排序和查询改写环节。表格解析采用 Nougat,据称其表格检测优于 unstructured,擅长提取标题,便于标题与表格关联。
文档索引策略:小块含表格摘要,大块含 LaTeX 表格及标题,应用 Multi-Vector Retriever 存储方法。
表格内容汇总:表格及标题送入 LLM 生成摘要。
Nougat 源于 Donut,无需 OCR,整体架构请参考 Nougat 相关资料。
Nougat 解析公式表格的能力令人印象深刻,也能对表格标题进行关联(解析出来的表格式 LaTeX 格式),比如下面这个例子: