作者: Jon Saad-Falcon, Joe Barrow, Alexa Siu, Ani Nenkova, David Seunghyun Yoon, Ryan A. Rossi, Franck Dernoncourt
摘要:
大型语言模型(LLMs)在处理长文档问答(QA)时面临着无法适应其小上下文窗口的问题。为了解决这一问题,大多数现有工作集中在从文档中检索相关上下文,并将其表示为纯文本。然而,像PDF、网页和演示文稿等文档天然地具有不同页面、表格、部分等结构。将这些结构化文档表示为纯文本与用户对这些文档丰富结构的心理模型不一致。当系统必须查询文档以获取上下文时,这种不一致性会凸显出来,使得看似简单的问题也会难倒QA系统。为弥合处理结构化文档的这一根本差距,我们提出了一种称为PDFTriage的方法,使模型能够基于结构或内容检索上下文。我们的实验展示了PDFTriage增强模型在多个现有检索增强LLMs失败的问题类别上的有效性。为了促进这一基础问题的进一步研究,我们发布了一个基准数据集,其中包括900多个人工生成的问题,覆盖80个结构化文档,涉及10种不同类别的问答类型。我们的代码和数据集将在Github上发布。
引言
当文档无法适应LLM有限的上下文窗口时,可以部署不同策略来获取相关上下文。当前的方法通常依赖于预检索步骤从文档中获取相关上下文。这些预检索步骤往往将文档表示为纯文本块,与用户查询共享某些相似性并可能包含答案。然而,许多文档类型具有丰富的结构,例如网页、PDF、演示文稿等。将这些结构化文档表示为纯文本往往与用户对结构化文档的心理模型不一致。这可能导致对用户来说显而易见的问题在使用LLM的文档QA中失败。例如,考虑以下两个问题:
- “你能总结一下第5-7页的主要要点吗?”
- “表3中哪一年收入最高?”
在第一个问题中,文档结构被明确引用(“第5-7页”)。在第二个问题中,文档结构被隐含引用(“表3”)。在这两种情况下,识别关键上下文并回答问题都需要文档结构的表示。将文档视为纯文本会丢弃回答这些问题所需的相关结构。
我们提出通过允许模型基于结构或内容检索上下文来解决这一文档简化问题。我们的方法称为PDFTriage,使模型能够访问有关文档结构的元数据。我们通过为提示增加文档结构元数据和一组可由模型调用的检索函数来利用文档结构。我们的实验表明,通过提供结构和发出结构查询的能力,PDFTriage增强的模型能够可靠地回答现有检索增强LLMs无法回答的多类问题。
方法
PDFTriage方法包括三个步骤来回答用户的问题,如图1所示:
- 生成文档元数据:
- 提取文档的结构元素并将其转换为可读的元数据。使用Adobe Extract API,我们将PDF转换为类似HTML的树结构,从中提取章节、章节标题、页面信息、表格和图形。
- 基于LLM的分类:
- 查询LLM以选择文档中精确的内容(页面、章节、检索的内容)。
- 使用检索到的内容回答问题:
- 根据问题和检索到的内容生成答案。
文档表示
我们考虑用户将交互的数字PDF文档作为结构化文档。使用Adobe Extract API,我们将PDF转换为类似HTML的树结构,允许我们提取章节、章节标题、页面信息、表格和图形。生成的元数据映射为JSON类型,用作LLM的初始提示。
LLM查询文档
PDFTriage方法利用五种不同的函数:fetch_pages, fetch_sections, fetch_table, fetch_figure 和 retrieve。每个函数允许PDFTriage系统收集与给定PDF文档相关的精确信息,中心围绕标题、子标题、图形、表格和章节段落中的结构化文本数据。
问题回答
为了初始化PDFTriage进行问题回答,我们使用GPT-3.5的系统提示格式输入以下内容:
你是一个专家文档问答系统。你通过查找文档中的相关内容并根据这些内容回答问题。
文档: <文档的文本元数据>
使用用户提示,我们输入没有额外格式的查询。接下来,PDFTriage系统使用已建立的函数查询文档以获取回答问题所需的任何信息。每次轮询中,PDFTriage使用一个函数收集所需的信息,然后处理检索到的上下文。在最后一次轮询中,模型输出问题的答案。
实验与结果
我们构建了一个以文档为中心的问答任务集来测试PDFTriage的有效性。每个任务评估文档问答的不同方面,分析文本、表格和图形中的推理能力。
主要实验
我们使用PDFTriage方法回答所选PDF文档数据集中的各种问题。这个策略利用PDF的结构和GPT-3.5的交互系统功能,更精确和准确地提取答案。
检索基线
- 页面检索: 我们为每个文档的页面建立索引,使用text-embedding-ada-002嵌入进行检索,并将每页的文本作为回答问题的上下文。
- 文本块检索: 我们将文档的所有文本连接在一起,然后分块为100个单词的片段,使用text-embedding-ada-002嵌入进行检索,并将每块文本作为回答问题的上下文。
人工评估
我们建立了一项人工标注研究来衡量PDFTriage与检索基线之间的差异。我们雇佣了12位有经验的英语标注员来评估每个系统生成的答案。
结果与分析
- PDFTriage优于基于检索的方法: 在人工标注研究中,标注员更喜欢PDFTriage生成的答案。PDFTriage在多种问题类型上表现更好。
- PDFTriage提高了答案质量、准确性、可读性和信息性: PDFTriage的答案在准确性和整体质量上得分最高。
- PDFTriage在文档长度上表现一致: 文档长度对PDFTriage的效果影响较小。
结论与未来工作
我们提出了PDFTriage,这是一种专门用于文档任务的问答技术。我们的方法与现有的问答技术(如页面检索和文本块检索)进行了比较,展示了PDFTriage的优越性。我们正在考虑以下方向的未来工作:
- 开发多模态方法,将表格和图形信息整合到GPT-4文档问答中。
- 在PDFTriage方法中结合问题类型,提高方法的效率和效果。