AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


论文:金融问答评估语料框架SEC-QA
发布日期:2024-06-23 05:39:58 浏览次数: 1948 来源:壹号讲师


论文:SEC-QA: A Systematic Evaluation Corpus for Financial QA(https://arxiv.org/pdf/2406.14394)


结论:

  1. 本文提出SEC-QA评估语料库,专门用于金融领域的问答任务。SEC-QA框架的创建是为了动态生成基于公开可访问文档和数据库的定量多跳问答任务;

  2. SEC-QA框架两个关键特性:a) 半自动生成跨越多个长文本金融文档的问题-答案对;b) 使用最新的公共文档集合不断刷新数据集的能力;

  3. 通过实验作者发现当前的检索增强生成方法(如普通RAG和多查询RAG)在回答设计精巧的多文档问题时系统性地失败。特别是,这些问题要求模型进行复杂的信息检索和定量推理;

  4. 作者引入了一种基于思维程序的问答系统,利用文档集合的丰富结构来提高问答性能。能够将复杂问题分解为原子问题,并制定出完整的解答规划;

  5. 实验结果表明,基于CodeGen的模型(特别是CodeGen+DocS+PageR)在多文档问答任务中表现出色,相比普通RAG模型有显著的性能提升;

  6. 检索性能(尤其是召回率)对于多文档问答的准确性至关重要。CodeGen模型能够更有效地将复杂问题分解并系统地检索页面,从而提高了整体性能;

  7. 论文讨论了一种自动问题设计方法,该方法允许LLM生成问题和解答所需的代码。这种方法可以提高问题集的多样性,但需要手动检查问题和代码的一致性。

摘要

金融领域经常处理大量的长文档,这些文档对于日常运营至关重要。为了自动化金融数据分析,人们投入了巨大的努力。然而,一个持续存在的挑战,不限于金融领域,是缺乏准确反映现实世界任务的用于模型评估的数据集。现有的数据集通常受到规模、背景或与实际应用相关性的限制。此外,大语言模型(LLMs)目前是在数万亿个文本标记上进行训练的,这限制了对模型在训练期间未遇到的新数据或文档的访问,以进行无偏见的评估。我们提出了SEC-QA,一个具有两个关键特性的持续数据集生成框架:1)半自动生成跨越多个长背景金融文档的问题-答案(QA)对,更好地代表现实世界的金融场景;2)使用最新的公共文档集合不断刷新数据集的能力,这些文档集合尚未被LLMs摄入。我们的实验表明,当前的检索增强生成方法系统性地未能回答这些具有挑战性的多文档问题。作为回应,我们引入了一个基于思维程序的QA系统,提高了执行复杂信息检索和定量推理流程的能力,从而提高了QA的准确性。

1 引言

大语言模型(LLMs)在广泛的自然语言处理(NLP)应用中展示了令人印象深刻的能力(Brown等人,2020)。尽管LLMs的参数数量达到了前所未有的规模,但它们仍然面临许多问题,包括幻觉(Ji等人,2023)、阅读理解能力差(Liu等人,2024)和私有数据泄露(Balloccu等人,2024)。为了解决这些问题,检索增强生成(RAG)通过使用来自可靠来源的几个检索文档来生成响应。因此,即使使用更小的语言模型,它也提供了更可靠的答案,减少了幻觉(Borgeaud等人,2022)。由于检索步骤的增加复杂性(Chen等人,2024)以及上游检索任务对下游QA任务的级联效应,评估基于RAG的系统是具有挑战性的。基于RAG的系统的早期基准主要关注可以通过从单一知识源检索一段文本来回答的简单常识问题(Joshi等人,2017;Dunn等人,2017)。通常这些知识源是开放的文本知识库,如维基百科(Yang等人,2018)和WikiHow(Deng等人,2020)。

这些基准面临两个数据泄露问题。首先,它们是从开放的互联网资源(Xue等人,2021;Penedo等人,2023)创建的,例如维基百科,这在LLM预训练中被大量使用(Touvron等人,2023)。其次,这些静态基准本身被泄露到互联网上(Balloccu等人,2024)。LLM训练数据集随后包括这些基准,导致这些基准上的膨胀和不可靠的结果。

为了应对这些问题,有人提议保持基准的私密性(Mialon等人,2023)或定期更新(Fan等人,2023)。更重要的是,在许多金融应用中,基于常识知识和开放知识源的评估可能无法反映系统的真实能力(Zhang等人,2024)。专业使用中的问题要复杂得多,需要一些多跳推理(Yang等人,2018)、多源引用(Tang和Yang,2024)、文档结构引用(Saad-Falcon等人,2023)和集合结构引用的组合。此外,特定领域的知识库可能比开放知识库,例如维基百科,要少得多,导致检索性能差,进而严重影响LLM的响应。在某些特定领域的检索可能需要领域知识才能实现有效的检索,这在开放领域评估中尚未被捕捉。

为了克服这些问题,这项工作引入了一个框架,用于设计实际的定量问题。这些问题比现有的金融QA任务,如FinQA(Chen等人,2021)或TAT-QA(Zhu等人,2021)更具挑战性。该框架允许我们根据目标应用的需要定制问题的复杂性,包括多个实体/财务周期、多跳推理、文档结构、集合结构和多个输出等潜在问题复杂性的多样性。我们利用互联网可访问的文档集合和开放的表格数据库,在金融领域创建现实世界的复杂定量问题。我们评估了四个基于RAG的系统,并表明RAG系统在这些精心设计的实际问题上系统性地失败。此外,我们展示了最近的LLMs可以使用代码有效地导航文档集合的结构;例如,每股收益信息在10-Ks中,并且每个公司和财政年度都有10-Ks。这导致了性能的显著提高。此外,该框架还可以用于定期动态刷新基准,以防止训练数据泄露。

本文的贡献是:

• 一个框架(SEC-QA),用于从公开可访问的文档和数据库中动态生成金融领域的定量多跳QA任务。

• 一组实际且具有挑战性的金融领域定量推理问题,普通的RAG模型系统性地未能回答这些问题。

• 一个系统,它利用思维程序和文档集合的丰富结构来提高QA性能。

2 相关工作

在自然语言处理和其他领域中,大语言模型(LLM)的推理能力已被发现。一些LLM如果足够大,会表现出突现的能力。一个简单的提示“让我们一步一步地思考”会导致模型生成具有推理步骤的解决方案,形成思维链(Wei等人,2022)。更高级的提示技术已被发现,这些技术类似于人类推理过程,例如思维树(Yao等人,2024)和自我验证(Weng等人,2023)。然而,LLM的数值推理仍然有限,这激励了采用编程语言来卸载思维程序中的数值任务(Chen等人,2023)和程序合成(Austin等人,2021)。

通过人类反馈进行额外训练可以增强推理能力(Ouyang等人,2022)。然而,LLM仍然在许多特定领域的任务中挣扎,例如金融(Koncel-Kedziorski等人,2023)。最近的研究指出,许多流行的基准包含在LLM预训练数据中(Riddell等人,2024),这导致模型性能的膨胀。因此,基准保持私密(Mialon等人,2023),或者定期更新(Fan等人,2023),以减少数据污染。

文档基础的定量推理涉及数值提取和数值推理。在NLP领域的先前工作已经探索了从科学文档(Harper等人,2021;Elazar等人,2019)和金融文档(Loukas等人,2022)中提取数值。现有的需要数量提取的金融领域数据集包括HybridQA(Chen等人,2020)、TATQA(Zhu等人,2021)、MultiHierTT(Zhao等人,2022)、FinQA(Chen等人,2021)和ConvFinQA(Chen等人,2022)。然而,这些工作只涉及少量的基础上下文(例如,单页、单个文档)。

多文档QA:TriviaQA(Joshi等人,2017)和SearchQA(Dunn等人,2017)要求模型在大量文档集合中进行搜索。然而,问题本身可以通过阅读从单个文档中提取的几句话来回答。一些多文档QA数据集是为开放式QA创建的,例如摘要(MultiNews(Fabbri等人,2019)、WikiHowQA(Bolotova-Baranova等人,2023)),其中浏览给定的文档并从这些文档中提取证据线索是必不可少的。HotpotQA(Yang等人,2018)数据集特别针对多跳问题,以解决隐藏在问题中的跨文档引用实体。然而,这些数据集是从开放知识库(例如,维基百科)收集的,因此它们很可能在LLM预训练数据中被泄露(Touvron等人,2023)。

多跳RAG(Tang和Yang,2024)提出了一个针对金融文档的多跳数据集,与我们的工作有以下不同之处:(i)他们的工作仅研究与并行检索查询相关的多跳推理,而我们考虑了并行和顺序推理步骤;(ii)用于创建他们数据集的新闻文档没有反映现实世界来源,例如金融专业人士使用的官方文件,这些文件通常跨越数百页。

金融NLP已经探索了非定量任务,例如命名实体识别(Salinas Alvarado等人,2015)、情感分析(Malo等人,2014)、分类(Sinha和Khandait,2021)、问答(Maia等人,2018)、边界检测(Au等人,2021)以及实体/事件提取(Lu等人,2023)。

3 框架构建

我们提出了金融问答系统化评估语料库(SEC-QA),这是一个用于生成金融多文档问题和答案(MDQA)的框架。我们也用相同的名字,SEC-QA,来指代这个框架生成的问题。

3.1 任务定义

MDQA定义如下:系统S被问到一个问题q,答案为a。q可以通过查看文档集合C = {Di | 1 ≤ i ≤ N}来回答。每个文档由多页pi组成,其中tij是标题,cij是内容。

3.2 资源

SEC-QA是一个灵活创建MQDA问题框架,需要:1)数据库T,其值按感兴趣的变量分区(例如,按公司和财政年度划分的收入)。2)文档集合C,包含计算T内值所需的信息。

具体来说,我们利用来自市场信任来源的私营部门金融数据,确保全面和准确的数据集。我们收集关键财务指标及其相关文档,创建数据库(键-值-文档表)T ∈ (c, y, k, v, d),其中v代表公司c在财政年度y的关键指标k的值,如文档d中所述。因为T跟踪C中源每个值的文档,除了问题准确性之外,还可以报告文档和页面级别的检索指标。

我们的集合包括2010年至2023年标准普尔500指数中的18家上市公司的10个指标。我们还收集了同一时期的年度报告(表格10-K)、季度报告(表格10-Q)和不定期事件报告(表格8-K)。由于这些文档以HTML格式发布,我们将其转换为PDF,并使用公共PDF提取服务1将PDF解析为JSON格式。

文档被表示为具有段落、结构良好的表格和机器检测到的标题的JSON对象。

3.3 问题复杂性

问题设计是成功QA系统评估的重要步骤。在这项工作中,我们确定了增加金融领域问题复杂性的几种因素。

我们定义一个原子问题为一个寻求可以直接从单个文档中提取的单个信息片段的问题。这类问题通常涉及特定财务周期的单个实体,例如,“苹果公司2022年的总收入是多少?”

然而,在财务分析中,问题往往要复杂得多。它们需要提取多片数据,转换提取的数据,并以各种格式呈现答案。

此外,我们观察到金融领域多文档QA存在以下主要挑战:

• 并行引用问题需要多个实体或时间段上的相同类型的信息,例如,“英特尔在过去5年期间的收入增长是多少?”

这需要从一些文档中提取信息。并行引用的复杂性可以通过回答这个问题所需的实体/年份数量来衡量。

• 多跳引用问题需要通过一些确定性约束隐式定义的几个实体的引用解析,例如,“显示标准普尔500指数中价值最高的5家公司5年的股票价格历史”。多跳问题的复杂性通常由回答这个问题所需的跳数和约束的复杂性来衡量。

• 结构引用涉及文档结构引用和集合结构引用。文档结构引用指的是文档中的特定部分/表格/图表(Saad-Falcon等人,2023)。集合结构引用指的是集合中的文档子集(例如,“最近的季度申报”,“他们的收益电话”),缩小了文档搜索空间。

• 多输出问题期望多个值(例如,“分析亚马逊公司在过去4个季度的财务表现,通过计算它们的收入增长、毛利率和营业利润率。”)。据我们所知,这种类型的问题在以前的工作中还没有被解决。

3.4 问题设计

问题模板:以前的QA工作已经解决了一些QA中的挑战,例如多跳(Yang等人,2018)和文档结构(Saad-Falcon等人,2023),以针对一些特定的复杂问题类型。我们的框架允许许多问题类型,包括并行引用、多跳引用、文档结构、集合结构引用和多输出问题。此外,由于数据库中的丰富信息,我们可以设计问题以要求金融领域术语(例如,使用公司的证券代码来指代公司)和语言规律(例如,如果询问最新数字,则省略财务周期)。使用这个框架,我们可以灵活选择不同复杂性的组合(例如,同一问题中的并行和多跳)。

模板填充:问题模板可以通过一个简单的基于规则的系统半自动填充,该系统随机选择数据库中的实体、指标和周期。这允许控制生成问题和答案的复杂性、质量和分布。

4 实验

本部分介绍了我们在SEC-QA框架的三个用例中的研究发现。

4.1 QA系统

我们评估了4个具有不同特征的系统,以便全面理解金融中的多文档问答(MDQA):

• 普通RAG:为了展示回答复杂问题的挑战,我们采用了一个简单的基于检索的直接生成系统。

• 多查询RAG:针对给定的输入问题利用多个查询。

• CodeGen+PageR:我们使用一个大语言模型(LLM)生成代码,该代码利用两个辅助函数:“retrieve_relevant_pages”从整个集合中检索k页;“extract_value”调用一个经过提示的LLM从给定的检索页面中提取值。这个系统允许LLM将复杂问题分解为原子问题,并制定出如何回答这个问题的完整计划。反过来,它允许我们检验LLM的规划能力。

• CodeGen+DocS+PageR:金融文档集合跟踪每个文档的元信息,如公司、财政年度和表格类型。这可以用来缩小检索搜索空间。除了“retrieve_relevant_pages”和“extract_value”两个函数之外,我们引入了一个“select_document”函数,该函数根据元信息(如公司股票代码和财政年度)过滤文档集合。至关重要的是,可以选择一个文档,然后查询其页面。

我们使用OpenAI的Ada作为检索的神经嵌入,并使用GPT4(gpt-4-1106-preview)作为我们所有实验的大语言模型。我们使用相同的三个问题作为CodeGen系统的示例,只改变可用的辅助函数。我们测试了不同数量的检索页面(k ∈ [4, 128]),并报告了最佳性能。

4.2 评估

由于我们使用的流程和模型的复杂性,我们分3个阶段评估模型的性能:文档检索、页面检索和问题回答。对于文档检索和页面检索,我们报告精确度@K、召回率@K和F1@K。对于仅涉及页面检索的系统,我们根据检索到的页面的文档签名报告它们的文档检索性能。由于财务报告中的许多数字四舍五入到不同的级别(千、百万、十亿),使用完全匹配进行自动答案评分是具有挑战性的。因此,如果答案的值与标准答案的误差在1%以内,我们接受该答案。

4.3 单一值提取任务

我们从一个简单的提取MDQA任务开始,该任务要求模型从文档中检索一个确切的数值跨度(例如,1234.5)和单位值(例如,百万)。对于这个用例,我们使用SEC-QA根据以下模板生成问题:(1)通常用于一个指标的最新更新;(2)用于以前的财务周期(例如,年份和季度)。

(1) {company}的{metric}是什么?

(2) {company}在{year}的{metric}是什么?

金融分析师经常使用这种语言,在问题中省略了年份。因此,模型必须捕捉到这种规律,以识别要提取的正确值项。为了确认文档中存在指标,我们删除了那些用简单字符串匹配在文档中找不到答案的问题。

图1显示了这些单一文档值提取任务的模型性能。CodeGen+DocS+PageR系统表现最佳,准确率达到89.5%。另一方面,CodeGen+PageR和Vanilla-RAG系统的准确率分别为31.6%和55.8%。比较两种CodeGen模型,我们可以看到带DocS的CodeGen比不带DocS的变体表现更好。这表明文档选择对金融问题很重要。这个结果还表明,基于通用神经的文档检索难以满足金融领域检索的严格要求。神经检索难以应对的部分原因是金融领域公开文件的结构。许多文档彼此非常相似,特别是同一公司的文件。多年使用长而相同的短语。

没有文档选择,LLM最终不得不处理从前几年收集的不相关页面。第5.2节显示了没有文档选择的模型的示例。这个实验表明,不同的流程设置之间存在很大的性能差异。

4.4 复合值提取任务

复合或高阶指标在财务分析中经常出现。它们通常基于公开文件中报告的其他几个指标来计算。因此,能够回答包含复合指标的问题对于自动化财务分析流程至关重要。以前的工作将这些问题视为NULL(Tang和Yang,2024),跳过问题。在实际应用中,模型应该根据提供的信息提供最佳估计,并理想情况下提供解释来证明估计。

为了做到这一点,我们设计了一组包含复合指标的问题,例如使用相同的模板1、2计算每位员工的收入(RPE)。一些公司在他们的文件中报告了这些指标,所以我们只考虑那些不能通过字符串匹配轻松找到的指标。因此,模型必须能够理解计算公式以正确回答。总共,我们生成了24个这样的问题。由于值在文本中没有明确给出,这些问题需要对指标的先验知识以及额外的推理步骤来计算指标。因此,我们预计这些问题会更加困难。

表3显示了模型在这个问题集上的性能。所有测试系统在这些复合值提取问题上的性能明显低于单一值提取问题(如第4.3节所示)。

对于这项任务,由于数据库中的子指标数据,我们能够调查子指标级别的性能。普通RAG和多查询RAG模型不在子指标级别提取值,所以我们将这些模型从这个分析中省略。我们发现基于CodeGen的模型系统地查询每个子指标(例如,长期债务和长期租赁)。然而,一旦模型将主指标(例如,总债务)展开为子指标,由于两个原因,许多子指标在文档中缺失:(1)子指标也是复合指标,(2)一些子指标不适用于某些公司。这些导致错误提取或重复(长期债务因长期债务和长期租赁而被提取两次)。

这次测试突出了财务领域值提取任务的难度。这也展示了我们如何可以轻松地使用我们的框架来定制测试,而无需数据注释。

4.5 多文档问答任务

为了衡量在更复杂问题上的性能,我们设计了一套问题模板,这些问题涉及不同年份和公司的指标,如下所示:

(3) {company}在过去{num_year}年里支付了多少美元的普通股息?

(4) {company1}的{metric}与{company2}相比的百分比差异是多少?

(5) {company}在过去{num_year}年期间的总收入增长是多少?

(6) 在{company_names}中,哪个公司的{metric1}最高,它的{metric2}是多少?

图2显示了三个模型在这项任务上不同检索页面数k的准确性。我们可以看到CodeGen+DocS+PageR模型以很大优势超越了其他模型,正确回答了135个问题中的108个(80%,k = 32),相比之下CodeGen+PageR正确回答了71个(52%,k = 48),而普通RAG只正确回答了41个(30%,k = 32)。值得注意的是,CodeGen+DocS+PageR在检索页面数非常少(k = 4)的情况下也以55%的准确率正确回答了74个问题。

更重要的是,CodeGen模型对检索页面数更为敏感。当检索页面数k从4增加到32时,CodeGen+DocS+PageR的性能迅速提高,而CodeGen+PageR的性能提高幅度较小,普通RAG几乎没有任何提高。这表明普通RAG流程在检索步骤上存在瓶颈,我们在第5.1节中对此进行了深入分析。

5 讨论

5.1 系统瓶颈

前几节强调了额外的检索能力如何提高LLM在MDQA上的性能。在本节中,我们进行进一步分析,以确定不同系统之间的主要性能瓶颈。我们再次使用既有并行又有多跳引用的模板6。除了文档/页面检索和任务性能之外,我们还计算了这些性能之间的决定系数R2。

图3a显示了系统准确性与文档和页面级别检索指标之间的R2值。召回率具有最高的R2值,分别为页面级别0.94和文档级别0.76,表明召回率性能对于多文档QA性能的准确性至关重要。另一方面,页面级别的精确度R2值很低,为0.12,表明与整体性能的相关性较弱。

从图3b中,我们观察到系统的问答准确性与文档和页面级别的召回率得分成正比,这支持了我们之前关于召回率和准确性之间相关性的主张。具体来说,我们注意到模型的准确性与页面级别的召回率得分更为接近。普通RAG模型在准确性方面落后于基于CodeGen的模型。然而,当它被允许使用多个检索查询(多查询RAG)时,我们观察到检索性能有所提高,这随后导致问答准确性的增加。

CodeGen+PageR相比多查询和普通RAG有更高的召回率和问答性能。这归因于CodeGen模型将复杂问题分解为原子问题的能力,并根据原子问题系统地检索页面。CodeGen+DocS+PageR被认为是最好的模型。我们将其归因于增加了基于规则的文档选择步骤,有效地检索了相关文档,从而提高了文档级别的召回率。

总的来说,这个实验表明我们的数据集和框架为我们提供了一个有用的工具,以详细检查多文档QA。这为我们提供了一个更好的信号,用于未来改进流程。

5.2 案例研究

表4显示了对于问题"Adobe在2022年报告的员工总数是多少?",各个问答系统检索到的前4页。只有CodeGen+DocS+PageR成功检索到包含标准答案的页面。尽管普通RAG在4次中有3次检索到了Adobe的10-K页面,但财政年度始终是错误的。多查询RAG和CodeGen+PageR也检索到了错误的财政年度。这显示了财务文件如何容易地使现代检索系统混淆。

5.3 稳定性测试

这项工作的主要目标之一是提供一个通过使用最新的财务文件动态生成QA对来防止通过数据泄露造成的性能膨胀的稳健基准。这引发了一个问题,即新基准版本的评估分数是否与旧版本相当。为了测量基准的一致性,我们使用不同年份(2019年至2023年)的数据构建了五个不同版本的数据集,同时保持问题模板和公司集合不变,以保持一致的难度水平。

模型在基于不同年份的数据集上的准确性变化很小,标准差很小(1.3% < σ < 2.0%)。这表明我们可以可靠地比较不同版本基准之间的模型性能。我们在附录A的图5中显示了详细结果。

5.4 执行成本

虽然基于代码生成的系统提供了更优越的性能,但这些模型的运营成本和延迟更高。我们计算了四个检查系统的平均LLM调用次数。从图4中,CodeGen系统需要的调用次数大约是普通和多查询RAG系统的四倍,这可能会使运营成本和延迟增加四倍。一个减少延迟的提议解决方案是并行化LLM调用。然而,多跳问题的迭代性质对有效的并行化策略构成了挑战。

5.5 自动问题设计

由于代码生成的进步,原则上一个可以访问数据库的LLM能够生成问题以及回答这些问题所需的代码。为此,可以准备可用资源,如文档和访问数据库的函数,以及相关实体的静态变量名(例如公司名称、指标名称);接下来,提示LLM生成使用提供的功能解决问题的问题和代码。一旦LLM生成了问题和答案,就执行生成的代码以获得答案。之后,可以聘请金融专家验证问题、代码以及问题和代码之间的一致性。值得注意的是,挑战仍然存在于测试时,因为那个模型将无法访问数据库T,只能访问文档集合C。

使用这种方法的好处是问题集的多样性可能更高。它还提供了用来解决问题的代码。然而,这种方法仍然需要手动检查问题、代码以及问题和代码之间的一致性,这些都不是微不足道的。在这项工作中,我们没有使用这种方法来生成上述任何问题。

6 结论

我们介绍了SEC-QA,我们利用它来创建当前RAG方法一致未能回答的问题。这个框架可以用来动态生成基于金融领域的复杂实际问题。我们的研究突出了检索模型处理多文档长上下文问题所带来的挑战,并探索了解决这些瓶颈的策略。此外,我们提出了一种基于思维程序和RAG的方法,旨在增强与常规RAG系统相比的检索和下游性能。

局限性

本文假设存在一个可收集的文档集合、一个金融指标的表格数据集,以及一种将这些金融指标映射到文档的方法。我们目前正在探索私营部门的数据库,那里的公共报告受到严格监管,使得将文档与数据集对齐相对容易。

然而,在公共部门,由于报告标准的不一致,报告往往差异显著。因此,找到一个文档集合、相应的数据集以及它们之间的对应关系更具挑战性。例如,我们尝试使用美国州政府的综合年度财务报告(ACFR)和美国人口普查局发布的美国州政府税收年度调查,结果发现要逆向工程为一个可用的数据集极其困难。





53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询