PDFTriage: Question Answering over Long, Structured Documents

PDFTriage:对长而结构化的文档进行问答

目录:
总体概括;
摘要;
1、引言;
2、相关工作;
3、PDFTriage:从文档元数据结构化检索;
4、数据集构建;
5、实验;
6、结果与分析;
7、未来工作和总结;

原文链接

总体概括:

流程:
1、它首先生成文档的结构化元数据表示,即提取部分文本、图标题、标题和表周围的信息;
2、给定一个查询,基于llm的Triage选择回答查询所需的文档框架(应该是每个文档对应的结构化元数据),并直接从页面、部分、图或表中检索它;
3、将选好的内容和输入的查询经过LLM处理后进行答案生成;

优点:
1、	之前的搜索问答主要是抽取文档的文本数据作为回答的上下文,本文可以提取pdf、ppt文档中文本以外的其他元素,形成元数据,并进行问答;
2、	验证了:以元数据为上下文进行问答的效果 优于 块检索上下文 和 页面检索上下文
3、	优于搜索部分的能力较强,不会出现过长的上下文,所以回答效果不会受到文本长度的影响;

摘要

大型语言模型(LLM)在文档问答(QA)方面存在问题,即当文档比较长时,会无法适应LLM的小上下文长度。为了解决这个问题,大多数现有的工作都是首先从文档中检索与问题相关的上下文,将它们拼接成纯文本。
然而,像pdf、网页和ppt这样的文档是由页面、表、节等不同性质的元素组成的。用纯文本的形式来表示这种结构化的文档,与用户对这种结构丰富的文档的思维模式不一致。当系统必须查询文档的上下文时,这种不一致性就会显现出来,而看似微不足道的问题可能会使QA系统出错。
为了在处理结构化文档时弥合这一基本差距,我们提出了一种称为PDFTriage的方法,该方法使模型能够根据结构或内容检索上下文。我们的实验证明了所提出的pdftriage增强模型在现有检索增强llm失败的几类问题上的有效性。为了促进对这个基本问题的进一步研究,我们发布了我们的基准数据集,该数据集由来自10个不同问题类型类别的80多个结构化文档的900多个人工生成的问题组成,用于文档QA。

1、引言

当一个文档不适合LLM有限的上下文窗口时,可以部署不同的策略来获取相关的上下文。当前的方法通常依赖于预检索步骤从文档中获取相关上下文(Pereira等人,2023;Gao等人,2022)。这些预检索步骤倾向于将文档表示为纯文本块,与用户查询具有一定的相似性,并且可能包含答案。但是,许多文档类型具有丰富的结构,例如网页、pdf、ppt等。对于这些结构化文档,将文档表示为纯文本通常与用户对结构化文档的心理模型不一致。这可能会导致一些问题,对于用户来说,这些问题可能是微不足道的,但对于使用llm来记录QA的常见/当前方法来说,这些问题可能会失败。例如,考虑以下两个问题:
Q1“你能总结一下5-7页的主要内容吗?”
Q2“(表3中)哪一年的收入最高?”
在第一个问题中,明确提到了文档结构(“第5-7页”)。在第二个问题中,文档结构被隐式引用(见表3)。在这两种情况下,都需要文档结构的表示来识别突出的上下文并回答问题。将文档视为纯文本会丢弃回答这些问题所需的相关结构。
我们建议通过允许模型基于结构或内容检索上下文来解决文档的简化问题。我们的方法,我们称之为PDFTriage,使模型能够访问关于文档结构的元数据。我们利用文档结构,在不同类型的结构上增加提示,包括文档结构元数据和一组可模型调用的检索函数。例如,我们引入fetch_pages(pages: list[int])函数,它允许模型获取页面列表。我们表明,通过提供结构和对该结构发出查询的能力,pdftriage增强模型可以可靠地回答普通检索增强llm无法回答的几类问题。
为了评估我们的方法,我们构建了一个数据集,其中包含90个文档中大约900个人工编写的问题,代表用户可能会问的10个不同类别的问题,类别包括“文档结构问题”、“表格推理问题”和“技巧问题”等。我们将发布问题、文档、模型答案和问答者偏好的数据集。此外,我们还发布了所使用的代码和提示符。
本文的主要贡献是:
•我们发现了当前LLM方法在结构化文档问题回答方面的差距,即将文档视为纯文本而不是结构化对象;
•我们发布了一个标记问题类型的数据集,以及模型响应,以促进对该主题的进一步研究;
•我们提出了一种提示模型的方法,称为PDFTriage,它提高了法学硕士对结构化文档问题的响应能力。
本文的其余部分进行如下:在第2节中,我们确定了与本文相关的作品,并确定了我们的作品的显著特征;在第3节中,我们概述了PDFTriage方法,包括文档表示、新的检索函数和提示技术;在第4节中,我们概述了如何构建人工编写问题的评估数据集;在第5节中,我们详细介绍了我们为支持上述贡献而进行的实验;在第6节中,我们列出了这些实验的关键结论;最后,在第7节中,我们描述了我们当前工作的局限性和未来的方向。

2、相关工作

2.1、工具和检索增强LLMs
2.2、问答系统

目前大多数的QA都集中在纯文本的抽取性QA上。
文档问答。已经构建了几个数据集来对以文档为中心的问答的不同方面进行基准测试。DocVQA (Mathew et al., 2021)是一个使用文档扫描的可视化问答数据集。Lan- deghem等人(2023)最近的一项工作集中在一个名为DUDE的文档理解和评估数据集上,该数据集使用扫描和原生数字pdf。DUDE和DocVQA都有可以简短回答的问题;DUDE平均回答大约3.35个代币,DocVQA代币平均回答2.11个代币。QASPER (Dasigi et al., 2021)是一个专注于研究论文中寻求信息的问题及其答案的数据集,其中文档是从原始的LaTEXsources中解析出来的,问题主要集中在文档内容上。PDFTriage评估数据集试图扩展这些数据集中的问题类型,获得可以引用文档结构或内容的问题,可以是抽取的或抽象的,并且可能需要长格式的答案或重写。
在这里插入图片描述

图1、PDFTriage技术概述:PDFTriage利用PDF的结构化元数据来实现更精确和准确的文档问答方法。它首先生成文档的结构化元数据表示,提取部分文本、图标题、标题和表周围的信息。接下来,给定一个查询,基于llm的Triage选择回答查询所需的文档框架,并直接从所选的页面、部分、图或表中检索它。最后,在输出生成的答案之前,LLM将处理选定的上下文和输入的查询。

3、PDFTriage:从文档元数据结构化检索

PDFTriage方法包含三个步骤来回答用户的问题,如图1所示:
1.	生成文档元数据(第3.1节):提取文档的结构元素并将其转换为可读的元数据。
2.	基于LLM的分类(第3.2节):查询LLM以从文档中选择精确的内容(页、节、检索的内容)。
3.	使用检索内容进行答案(第3.3节):基于问题和检索内容,生成答案。

3.1文档表示
我们认为原生的数字化PDF文档是用户将与之交互的结构化文档。使用Adobe Extract API,我们将pdf转换为一个类似html的树,它允许我们提取章节、章节标题、页面信息、表格和图形。Extract API在PDF中生成元素的层次树,其中包括章节标题、表格、图形、段落等。每个元素都包含元数据,比如它的页面和位置。我们可以解析该树来识别章节、章节级别和标题,收集某个页面上的所有文本,或者获取图形和表格周围的文本。我们将结构化信息映射到JSON类型,并将其用作LLM的初始提示符。内容被转换为降价。图1的顶部显示了该过程的概述。
3.2文档的LLM查询
在方法中使用了五个不同的函数:fetch_pages, fetch_sections, fetch_table, fetch_figure和retrieve。如表2所述,每个函数都允许PDF- Triage系统收集与给定PDF文档相关的精确信息,以标题、子标题、图形、表格和章节段落中的结构化文本数据为中心。PDFTriage系统在针对每个问题的单独查询中使用这些函数,综合多条信息以获得最终答案。这些函数是通过OpenAI函数调用API在单独的聊天回合中提供和调用的,2尽管可以以类似ReAct (Yao等人,2022)或Toolformer (Schick等人,2023)的方式组织提示。
3.3答案生成
为了初始化PDFTriage进行问答,我们使用GPT-3.5的系统提示格式输入以下内容:
You are an expert document question answering system. You answer questions by finding relevant content in the document and answering questions based on that content.
Document:
我们使用用户提示输入查询,无需额外格式化。接下来,PDFTriage系统使用第2节中建立的功能来查询文档以获取回答问题所需的任何必要信息。在处理检索到的上下文之前,PDF- Triage使用一个单一的函数来收集所需的信息。在最后一轮中,模型输出问题的答案。我们所有的实验,都用gpt-35-turbo-0613型号。

4、数据集构建

为了测试PDFTriage的有效性,我们构建了一组以文档为中心的问答任务。每个任务寻求评估文件的不同方面的问题回答,分析的原因跨同一个文件中的文本,表格,图片。此外,我们希望创建的问题范围从单个文档页面上的单步回答到跨整个文档的多步推理。
使用Mechanical Turk收集问题。问题收集任务的目标是在现实世界中收集面向文档的专业问题。首先爬取了1000个普通文档,接着根据其阅读层次取出了100个文档。然后收集各种面向文档的问题,如下:

  1. 图形问题(6.5%):对文档中的图形提出问题。
  2. 文本问题(26.2%):问一个关于文档的问题。
  3. 表格推理(7.4%):对文档中的表格提出问题。
  4. 结构问题(3.7%):问一个关于文档结构的问题。
  5. 摘要(16.4%):要求对文件的某些部分或整个文件进行总结。
  6. 提取(21.2%):要求从文档中提取特定内容。
  7. 重写(5.2%):要求重写文件中的某些文本。
  8. 外部问题(8.6%):提出一个仅凭文件无法回答的问题。
  9. 跨页任务(1.1%):提出一个需要文档多个部分来回答的问题。
  10. 分类(3.7%):询问文件的类型。

5、实验

我们概述了我们的方法中使用的模型和策略以及用于比较的基线。用于重现我们的结果的代码和数据集将很快发布。
5.1 PDFTriage
对于我们的主要实验,我们使用我们的PDFTriage方法来回答选定的PDF文档数据集中的各种问题。该策略利用了pdf文件的结构和GPT-3.5的交互系统函数能力,比现有的原始方法更精确和准确地提取答案。
5.2搜索基线
Page Retrieval页面检索。对于我们的第一个基线,我们使用text-embedding-ada-002嵌入对每个单独文档的页面进行embedding。利用余弦相似度,检索与查询嵌入最相似的页面。然后,我们将每页的文本作为回答给定问题的上下文,直到我们达到模型的上下文窗口限制。
Chunk Retrieval块检索。在我们的第二个基线中,我们将所有文档的文本连接起来,然后将其分成100个单词的块。然后,我们使用text- embeddings -ada-002 embedding每个块,然后使用余弦相似度计算重新检索与查询嵌入最相似的块。最后,我们将deachchunk的文本内容作为回答给定问题的上下文,直到我们达到模型的上下文窗口限制。
5.3人类评估
为了测量PDFTriage和检索基线之间的任何差异,我们建立了一个关于Upwork的人类分类研究。在这项研究中,我们聘请了12名经验丰富的英语注释员来判断每个系统生成的答案。请参阅附录A,查看每个问题文档的完整注释问题及其生成的答案(为了概述,我们使用示例问题)。我们的问题试图理解每个问题-文档对的几个关键属性以及相关的一般问题:

  1. 问题的总体质量,如难度、清晰度和回答问题所需的信息。
  2. 问题的范畴,使用第4节的分类系统。
  3. 给定问题-文档对的每个生成答案的排名。
  4. 每个生成的答案的准确性、信息量、可读性/可理解性和清晰度。

6、结果与分析

在表1中,我们给出了样本中每个问题的注释问题难度。总的来说,最大的问题组(43.3%)被归类为简单,而大约三分之一的问题因各种原因被归类为困难。除了问题难度,我们要求批注员使用相同的分类方法对问题进行分类。我们的注释框架产生了一个跨越问题类型和问题难度的数据集,涵盖了文本部分、表格、图形和标题,以及单页和多页查询。问题的多样性使我们能够可靠地评估多种风格的以文档为中心的QA,测试PDFTriage对不同推理技术的有效性。
6.1 PDFTriage比基于检索的方法得到更好的答案
在我们的注释研究中,我们要求注释者将PDFTriage与我们的两个基线,页面检索和块检索(第5节)进行比较。在图3中,我们发现注释者在超过一半的时间(50.7%)更喜欢PDFTriage的答案,并且更喜欢块检索方法而不是页面检索方法。当比较同一问题的不同答案时,PDFTriage的表现明显优于现有的替代方法,在所有问题类型中排名都高于替代方法。
6.2 PDFTriage提高了答案的质量、准确性、可读性和信息量
在我们的注释研究中,我们还要求注释员对PDFTriage、页面检索和块检索的答案在五个主要品质上进行评分:准确性、信息量、可读性/可理解性和清晰度。我们希望在文档问答任务中更好地为用户了解每个答案的优势。在表3中,我们展示了PDFTriage答案在除清晰度以外的所有答案质量上的得分都高于Page Retrieval和Chunk Retrieval。至关重要的是,PDFTriage在整体质量和答案准确性方面得分最高。对于注释者的一致性,我们计算出平均的科恩kappa分数为0.584。
6.3 PDFTriage需要更少的检索标记来生成更好的答案
对于我们研究中使用的PDF文档样本,检索到的PDFTriage文本的平均令牌长度为1568个令牌(使用GPT-3.5令牌器)。文档json中文本输入的元数据平均长度为4,257个令牌(使用GPT-3.5令牌器)。虽然PDFTriage使用的令牌比Page Retrieval(平均3611个令牌)和Chunk Re-trieval(平均3934个令牌)更多,但这些令牌是从文档的多个非连续部分中检索的。此外,页面检索和块检索中使用的部分通常不足以回答问题,这表明“整体质量”和“准确性”的平均答案质量得分较低。然而,由于上下文窗口的限制以及文档QA任务需要执行多跳推理,简单地将所有文档的文本连接在一起并不能最终取代PDFTriage。PDFTriage通过对文档的多阶段查询、根据不同文档QA任务的需要检索和添加上下文,帮助克服了这个问题。
6.4 PDFTriage跨文档长度执行一致
我们还想计算PDFTriage性能与文档总体长度之间的相关性。在人工标注的PDF- Triage“总体质量”答案得分与文档长度之间,我们发现Pearson相关系数为-0.015。这表明文档长度对PDFTriage的有效性的影响可以忽略不计,从而增强了我们的技术对短文档和长文档的通用性。不同文档类型的长度似乎最终对总体性能没有影响。PDFTriage查询文档中特定文本部分的能力避免了摄取具有超大上下文的文档的需要。它允许PDFTriage为多页问题连接文档的不同部分,如表推理、跨页任务、图形问题和结构问题,优先考虑相关上下文并最小化无关信息。因此,GPT-3和其他llm能够更好地处理减少的上下文大小,并最终在文档QA任务中使用更少的计算和财务资源。

7、未来工作和总结

在这项工作中,我们提出了PDFTriage,一种专门用于面向文档任务的新型问答技术。我们将我们的方法与现有的问答技术(如页面检索和块检索)进行比较,以证明我们的方法的优势。我们发现PDFTriage提供了优于现有方法的性能。PDFTriage在用于检索的各种文档长度和上下文中也证明是有效的。我们正在考虑以下工作方向:

  1. 开发多模式的方法,在公司表格和图形信息成GPT-4问答文件。
  2. 将问题类型纳入PDFTriage方法,以提高该方法的效率和功效。

总结

与传统的文本搜索问答不同,本文可以提取PDF、PPT等文件中不同的元素结构,形成更加全面的上下文,以应对跨元素的问答。为搜索问答提供了一个新的实现方案,更详细的探索还要等代码开源之后。

猜你喜欢

转载自blog.csdn.net/Brilliant_liu/article/details/133239466
今日推荐