首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >斯坦福 | 提出PDFTriage,解决结构化文档的问题,提升「文档问答」准确率

斯坦福 | 提出PDFTriage,解决结构化文档的问题,提升「文档问答」准确率

作者头像
ShuYini
发布2023-09-21 19:09:43
发布2023-09-21 19:09:43
1.9K0
举报

引言

 关于大型语言模型(LLMs)的应用落地,目前最值的关注要数文档问答了。其主要的工作思路是将文档进行文本分割存入向量数据库,当遇到问题请求的时候,依据问题检索出向量数据库相关的文章片段,通过Prompt引导大模型给出答案。然而,该方法对于纯文本文档QA效果较好,当面对PDF、网页和演示文稿等不同文档结构时却存在一定的挑战

 针对不同文档结构问题,斯坦福的研究人员提出了一种名为PDFTriage的解决方案,用于解决长篇结构化文档的QA问答。该方案使模型能够基于结构或内容检索上下文,弥合了处理结构化文档的差距,实验证明了PDFTriage增强模型在解决现有检索增强LLMs无法解决的几类问题上的有效性。

Paper:https://arxiv.org/pdf/2309.08872.pdf

Code:https://huggingface.co/papers/2309.08872

背景介绍

 当文档的长度超过了LLMs所支持的最大Token数量的时候,可以通过不同策略来获取相关上下文。「当前的方法通常依赖于预检索步骤从文档中获取相关上下文」。这些预检索步骤倾向于将文档表示为纯文本块,然而,许多文档类型具有丰富的结构,例如网页、PDF、演示文稿等。

 对于这些结构化文档,将文档表示为纯文本获得的QA问答结果,通常与用户对结构化文档的预期的QA问答结果不一致。这就会产生一些问题,对于用户来说,这些问题可能很容易回答,但使用LLMs获得到结果却完全不对。例如以下两个问题:

  • Q1:您能帮我总结一下第1-3页的主要内容吗?
  • Q2:表格3中,哪一年的收入最高呢?

 在第一个问题中,明确引用了文档结构(“第1-2页”);在第二个问题中,隐式引用了文档结构(“在表3 中”)。在这两种情况下,都需要文档结构表示来识别上下文并回答问题。如果单单将文档视为纯文本会导致LLMs模型无法回答这些需要文档结构表示的问题。

 基于以上背景,本文提出让模型根据结构或内容检索上下文来解决该问题。本文方法PDFTriage可以使模型能够访问有关文档结构的元数据,具体来说,通过使用文档结构元数据和一组可模型调用的检索函数来增加提示,从而实现对文档结构的利用。

PDFTriage

 DFTriage方法主要包含三个步骤:文档元数据生成、LLMs精确检索、答案生成如下图所示:

「Step1,文档元数据生成」 将原生数字PDF文档视为用户将与之交互的结构化文档。首先,使用Adobe Extract API,将PDF转换为类似HTML的树,这样能够提取章节、章节标题、页面信息、表格和图形,Extract API会生成PDF中元素的分层树,其中包括章节标题、表格、图表、段落等;然后,可以解析该树来识别章节、章节级别和标题,收集某个页面上的所有文本,或者获取图形和表格周围的文本;最后我们将结构化信息映射到JSON类型,并将其用作LLM的初始提示符。

「Step2,LLMs精确检索」 PDFTriage在该方法中使用了五个不同的函数:fetch_pages、fetch_sections、fetch_table、fetch_figure 和retrieve。每个功能都允许PDFTriage系统收集与给定PDF文档相关的精确信息,以标题、副标题、图形、表格和章节段落中的结构化文本数据为中心。PDFTriage系统在针对每个问题的请求中使用这些函数,综合多条信息以得出最终答案。

「Step3,答案生成」 为了初始化PDFTriage问答,作者使用GPT-3.5,Prompt输入如下:

❝您是文档问答系统专家。您可以通过在文档中查找相关内容并根据该内容回答问题来回答问题。文档:<文档的文本元数据> ❞

 然后,根据用户提示,输入请求,无需其他格式。接下来,PDFTriage会使用「Step2」中建立的功能来查询文档以获取回答问题所需的相关信息。在每个回合中,PDFTriage在处理检索到的上下文之前使用单个函数收集所需的信息;并在在最后一轮中,模型输出问题的答案。

多结构测试集

 为了测试 PDFTriage的功效,作者构建了一组以文档为中心的问答任务。每项任务都旨在评估文档问答的不同方面,分析文档中文本、表格和图形的推理。此外,为了提高问题的多样性,整合了从单个文档页面上的单步回答到整个文档中的多步推理。

 作者创建数据集共计包含:图标问题、文本问题、表格推理、结构问题、摘要问题、信息提取、文本重写、外部问题、跨页问题、文档分类问题等10类,其中共包含82个文档中的908个问题。平均文档包含4257个文本标记(与标题、副标题、章节段落、标题等相关)。

实验结果

PDFTriage相比基于检索的方法产生的答案更好。其中PDFTriage生成的答案最受用户青睐,占总体排名最高答案的 50.8%。此外,PDFTriage 答案在某些多页任务(例如结构问题和表格推理)上排名较高,而在广义文本任务(例如分类和文本问题)上排名较低。

 对PDFTriage、页面检索和块检索答案的五个方面进行评分:准确性、信息性、可读性/可理解性和清晰度。如下图所示,在除清晰度之外的所有答案质量中,PDFTriage 答案的得分均高于页面检索和块检索

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-19 22:02,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 引言
  • 背景介绍
  • PDFTriage
  • 多结构测试集
  • 实验结果
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档