微信扫码
与创始人交个朋友
我要投稿
有效解析和理解非结构化文档中的表格时,设计 RAG 方案仍然是一大挑战。 以图片格式存在的表格情况下,这更困难,如扫描文件中的表格。这些挑战至少包含一下几个方面:
这个模块的主要功能是从非结构化文档或图像中准确提取表格结构。最好能够提取相应的表格标题,并方便开发者将表格标题与表格关联起来。目前有以下几种方法:
索引表格的方式大概可以分为以下几种
也有一些算法不需要对表进行解析,比如可以将相关的 PDF 页面(图像)和用户查询发送到 VQA 模型(如 DAN)或者多模态 LLM(如 GPT-4V),即可返回答案,如下图所示:
同时,也可以将图片,文本块,用户查询发送到多模态 LLM 直接得到答案。
值得注意的是,并不是所有的方法都依赖于 RAG 流程,比如:
LlamaIndex 中提供了四种方法,其中前三种依赖多模态模型:
本文对关键技术和现有解决方案进行了总结、分类和讨论。基于此,我们提出了以下解决方案,如下图所示。为简单起见,这里省略了一些 RAG 模块,例如重新排名和查询重写。
这里介绍一下Nougat[7],它基于Donut[8]开发,不需要与 OCR 相关的模块,总体架构图为:Nougat 解析公式表格的能力令人印象深刻,也能对表格标题进行关联(解析出来的表格式 LaTeX 格式),比如下面这个例子:
采用 Nougat,有以下有缺点:
本文讨论了 RAG 流程中表处理的关键技术和现有解决方案,并提出了解决方案及其实现。本文推荐使用 nougat 来解析表格。但是,如果有更快、更有效的解析工具可用,我们也建议对其进行替换。对工具的态度是先有正确的想法,然后找到工具来实现它,而不是依赖某个具体的工具。在本文中,我们将所有表内容输入到 LLM。但是,在实际场景中,我们应该考虑表超过 LLM 上下文长度的情况,比如通过有效地分块方法来在一定程度上解决这个问题。
Table Transformer: https://github.com/microsoft/table-transformer
[2]unstructured: https://unstructured-io.github.io/unstructured/best_practices/table_extraction_pdf.html
[3]TAPAS: https://aclanthology.org/2020.acl-main.398.pdf
[4]GPT4Table: https://arxiv.org/pdf/2305.13062.pdf
[5]半结构化RAG: https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb?ref=blog.langchain.dev
[6]半结构化与多模态RAG: https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb
[7]Nougat: https://arxiv.org/pdf/2308.13418.pdf
[8]Donut: https://arxiv.org/pdf/2111.15664.pdf
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-05-28
2024-04-12
2024-04-25
2024-05-14
2024-08-13
2024-07-18
2024-05-06