论文翻译:FACTOOL: Factuality Detection in Generative AI A Tool Augmented Framework for Multi-Task and Mu

总目录:大模型安全相关研究

FACTOOL: Factuality Detection in Generative AI
A Tool Augmented Framework for Multi-Task and Multi-Domain Scenarios

https://.org/pdf/2307.13528

FACTOOL:生成式人工智能中的事实性检测 一种适用于多任务和多领域场景的工具增强框架

摘要

生成式预训练模型的出现促进了高质量文本的合成,但也给识别生成文本中的事实性错误带来了挑战。具体而言:(1)如今,更多种类的任务在由生成式模型处理时面临着事实性错误增加的风险。(2)生成的文本往往篇幅较长,缺乏对单个事实的明确粒度划分。(3)在事实核查过程中,可用的明确证据稀缺。鉴于上述挑战,本文提出了 FACTOOL,这是一个适用于大型语言模型(例如 ChatGPT)生成文本的事实性错误检测框架,该框架不依赖于特定任务和领域。在四项不同任务(基于知识的问答、代码生成、数学推理和科学文献综述)上的实验表明了所提方法的有效性。我们发布了 FACTOOL 的代码,以及与 ChatGPT 插件接口相关的代码,可在 https://github.com/GAIR-NLP/factool 获取。

1 引言

生成式人工智能(AI)技术,以 GPT-4(OpenAI,2023)为例,将自然语言处理中的各种任务整合为一个序列生成问题。这种统一架构使用户能够通过自然语言界面完成多项任务(例如,问答(Thoppilan 等人,2022)、代码生成(Chen 等人,2021)、数学问题求解(Lewkowycz 等人,2022)和科学文献生成(Taylor 等人,2022)),并且具有前所未有的性能(Bubeck 等人,2023)和交互性。然而,与此同时,这种生成范式也引入了一些独特的挑战。由于大型语言模型(LLMs)的容量有限(Ji 等人,2023;Schulman,2023),自动生成的内容常常会出现不准确或偏离事实的情况。LLMs 容易生成看似可信但实际上可能事实错误或不精确的内容。这种局限性限制了生成式 AI 在一些高风险领域(如医疗保健、金融和法律)的应用。因此,系统地识别这些错误对于提高生成内容的有用性和可靠性至关重要。

在这里插入图片描述
图 1:用于事实性检测的工具增强框架。

在这里插入图片描述
表 1:已发表的事实性检测方法的比较,这些方法基于收集到的证据对生成的回应和待验证的主张进行评估。“场景”表示相应方法所验证的任务和领域。“Sci.”代表“科学”。

目前关于检测和减少机器学习模型生成的事实性错误的文献主要集中在单一特定任务上,例如用于问答的检索增强验证模型(Lewis 等,2020),用于文本摘要的幻觉检测模型(Fabbri 等,2022),以及用于代码的执行基础评估(Shi 等,2022)。尽管这些方法在其各自领域取得了成功,鉴于大型语言模型(LLMs)处理的任务和领域的多样性,我们认为同样重要的是拥有一个更全面的事实性检测和验证框架,以适应这种多样性。

此外,在当前文献中,事实性检测的任务通常被简化为:(i)给定一个主张,判断其是否事实正确;(ii)或者给定证据,判断生成的主张是否得到支持。这种任务定义并不适合用户在与生成模型(例如 ChatGPT)交互时经常参与的写作任务,因为我们通常需要验证长篇生成内容的事实性,而没有明确的主张和证据。

在本文中,我们提出了一个不依赖于特定任务和领域的框架,FACTOOL,旨在检测 LLM 生成文本中的事实性错误。我们在图 1 中展示了我们的框架,我们将“工具使用”(Thoppilan 等,2022;Gao 等,2022b;Schick 等,2023)的概念与“事实性检测”联系起来,并证明了 LLM 中使用工具的能力对于事实性检测至关重要。具体来说,FACTOOL 利用各种工具,包括谷歌搜索、谷歌学术、代码解释器、Python,甚至是 LLM 本身,来收集关于生成内容事实性的证据。此外,我们的框架利用 LLM 的推理能力,根据收集到的证据评估内容的事实性。我们开发了一个基准,并在四项任务上进行了实验:基于知识的问答、代码生成、数学问题求解和科学文献综述写作。

总结来说,我们的贡献包括:
• 我们重新审视了事实性检测的任务,并以一种方式扩展它,以便更好地审计当前的生成式人工智能模型。
• 我们将“工具使用”的概念与“事实性检测”联系起来,开发了一个统一且多功能的事实性检测框架,适用于各种领域和任务。
• 我们使用 FACTOOL 对现代聊天机器人的事实性进行了评估,发现 GPT-4 在几乎所有场景中都具有最佳的事实性。经过监督式微调的聊天机器人(Vicuna-13B)在基于知识的问答中具有相当好的事实性,但在更具挑战性的场景中表现不佳,包括代码生成、数学问题求解和科学文献综述写作。

2 相关工作

自然语言处理中的事实性检测
事实性检测在生成式人工智能出现之前就已经是一个严谨的研究主题。现有的工作可以根据它们在“待验证的回应”、“从回应中提取的主张”和“支持性证据”方面的差异进行分类。如表 1 所示,FEVER 数据集(Thorne 等,2018a)的创建催生了一系列模型(Zhong 等,2020;Krishna 等,2022),这些模型用于判断基于维基百科文章所做出的细粒度主张是否正确。在这种任务设置中,主张和相关证据都被提供。FactCC(Kryscinski 等,2020)和基于 QAGS 的模型(Wang 等,2020)采用了不同的任务表述来检测事实一致性,即给定证据文本,目标是判断生成的摘要或摘要句子是否与给定文本在事实上一致。基于 WICE 的方法(Kamoi 等,2023)决定维基百科句子中的事实是否能得到提供的证据支持。RARR(Gao 等,2022a)提出了一种新方法,通过直接提示大型语言模型生成查询、检索证据并确定事实性。

现有工作通常依赖于给定的主张或给定的证据,并针对特定用例。然而,在本文中,我们引入了一个更具挑战性但也更实际的任务设置,即在没有明确主张或证据的情况下进行事实性检测,并提出了一个能够在多种场景中应对这一挑战的框架。

大型预训练语言模型中的工具使用
语言模型在其参数中存储了有限的知识。为了克服这一限制,各种工具被引入以协助语言模型,从而进一步扩展其能力。例如,Press 等(2022)和 Komeili 等(2022)分别从互联网收集信息以增强问答和对话系统。Schick 等(2023)训练了一个能够与包括计算器、翻译系统等在内的五种工具进行交互的模型。最近,Shen 等(2023)引入了一个框架,该框架利用大型语言模型将机器学习领域的各种人工智能模型连接起来以解决人工智能任务。此外,Liang 等(2023)提出了一个新的 AI 生态系统,将大型语言模型与数百万现有的 API 连接起来以完成任务。在本工作中,我们探索在事实性检测任务中使用大型语言模型中的工具。

3 重新审视生成式人工智能中的事实性

3.1 定义

多功能事实性
在大多数以往的研究中,事实性被定义为文本中的主张是否能够得到来自一个独立且可信的知识库(如维基百科)的支持,其应用包括事实核查(Thorne 等,2018b)和文本摘要(Kryscinski 等,2020)。在本文中,我们将这一定义扩展为生成信号(可以是文本、代码或数学表达式等)中的主张是否能够在特定规则下得到支持。具体来说,这些规则可以从与维基百科衍生的知识库的一致性,到在 Python 库中规定的验证规则,或是从数学中推导出的操作规则。通过采用这一更广泛的定义,我们能够建立一个统一的框架,以解决生成式人工智能中超出文本领域的事实性问题。

细粒度事实性
通常可以在不同的粒度级别上检测给定生成信号(例如文本)的事实性,例如句子和文档。更细粒度的评估尤其有价值,因为它(1)不仅允许用户定位不准确之处(Liu 等,2021),而且(2)作为开发人员优化生成系统的奖励模型(Lightman 等,2023)。然而,实现细粒度事实性检测具有挑战性,原因有两个:(1)明确指定期望的粒度级别,(2)按照预定的粒度级别提取主张。在本文中,我们认为通过利用大型语言模型强大的指令遵循能力和自然语言界面,可以通过基于主张定义的少样本提示有效地应对定义和提取细粒度主张的挑战。更多细节请参见第 4.1 节。

从结构上看,给定一个提示(例如查询或指令)和相应的模型生成响应,细粒度事实性检测任务涉及以下概念:
提示(p)用户提供给生成模型的查询或指令。
响应(r)生成模型生成的文本(通常是长文本)。
主张(c)从模型响应中推断出的陈述,其粒度由自然语言文本定义。
证据(e)可用于支持或证明主张的真实性或有效性的信息(例如知识库、预定义规则)。

3.2 不同场景中的实例化

使用上述任务定义,我们可以在不同的应用场景中定义事实性(参见表 2)。

基于知识的问答
基于知识(KB)的问答(Chen 等,2017)旨在使用给定的知识库或开放域数据源(例如维基百科)回答问题。在此任务中,我们将事实性定义为生成答案中的每个主张在多大程度上得到世界知识的支持。在本文中,我们考虑了一个更具挑战性的场景:需要长篇答案的开放域问答,而不仅仅是简短答案。

代码生成
代码生成任务(Yin 和 Neubig,2017)涉及根据给定查询生成可执行代码。我们将代码生成中的事实性定义为生成的代码作为一个整体,是否能够在特定编程语言(例如 Python)中正确执行,并满足提供的要求。这一定义基于以执行为基础的代码评估方法,通过将生成的代码与某些测试用例输入执行并比较其输出与预期输出来衡量生成代码的正确性。

数学问题求解
数学问题求解任务涉及使用自动化方法解决数学问题(Cobbe 等,2021)。在主张层面,数学问题求解中的事实性被定义为生成的陈述在多大程度上遵循计算规则。在响应层面,数学问题求解中的事实性被定义为整体数学解决方案在多大程度上有效地解决了给定问题。

科学文献综述写作
科学文献综述写作任务(Jha 等,2015)旨在分析和综合特定主题领域中的现有研究。在此任务中,我们将事实性定义为生成的科学文献综述是否正确引用了现有的科学文献,包括正确提及作者和出版年份。
在这里插入图片描述
表 2:不同任务中的事实性定义。“Sci. Lit Review”代表科学文献综述。

4 方法

我们提出了一个工具增强框架,用于检测事实性错误,该框架可以在各种任务中应用统一的方法。使用工具的动机是双重的。一方面,每个工具都体现了领域专业知识,帮助我们有效地收集验证主张正确性的证据。另一方面,大型语言模型(LLM)使用多种工具的能力为多工具增强的事实性检测铺平了道路。例如,通过直接使用 ChatGPT 插件,我们可以将多种工具集成到聊天机器人中。

框架如图 1 所示,包含五个主要组件:主张提取、查询生成、工具查询、证据收集和一致性验证。我们在下面详细说明每个组件。

4.1 主张提取

在各种任务设置下从响应中提取主张是具有挑战性的,因为不同任务和场景中主张的定义不一致。这种不一致性阻碍了诸如文本摘要评估和事实性检测等应用的开发。为了解决这一问题,我们在本文中提出了一种方法,将主张提取视为由 LLM 提示引导的过程,这些提示基于主张的具体定义。这种方法具有以下优点:
(i) 利用 LLM 强大的指令遵循能力可以显著降低与主张提取相关的数据标注和模型训练成本。
(ii) 在开发系统或构建依赖于主张定义的应用程序数据集时,只需使用大型模型提供主张的文本定义。这使得未来的研究人员能够有效地将这些定义作为其工作的基础。
(iii) 我们的实验表明,由 ChatGPT 实现的主张提取模块在提取主张(原子组件单元)方面表现出色。这些实验的详细结果在第 6.1 节中讨论。
在这里,我们使用 ChatGPT 作为基础 LLM,并在四个任务中应用不同的主张文本定义。我们的目标是从生成的文本 x 中提取所有可验证的主张,记为 {ci}i=1···n。详细的提示指令可以在附录 A 中找到。

基于知识库的问答
主张是使用原子内容单元(ACU)的概念定义的(Liu 等,2022)。每个 ACU 对应生成答案中的一个单一原子事实。在实践中,我们利用 ChatGPT4(具体是“gpt-3.5-turbo”版本)根据两个标准提取主张:(i)每个主张不应超过 15 个单词,(ii)它应清晰描述一个事实。我们还在提示中包含来自 RoSE 数据集(Liu 等,2022)的两个上下文示例,以获得更细粒度的主张。此外,我们要求 ChatGPT 解决主张中的任何指代或歧义,例如不明确的代词和其他相关表达。

代码生成
我们将响应中的每个生成代码片段视为一个需要验证的单一主张。我们提取所有用括号括起来的代码片段,即在代码块内的代码片段。

数学问题
我们将逐步数学解决方案中的每个主张定义为已知实数之间的算术运算。这些运算包含两部分:计算和计算结果。我们提示 ChatGPT 提取所有这样的主张。

科学文献综述
生成综述中的每个主张被定义为从生成综述中提取的“(论文标题,年份,作者)”元组。然后我们提示 ChatGPT 提取生成综述中的所有这样的元组。
在这里插入图片描述
图 2:我们在四个领域(基于知识的问答、代码生成、数学问题求解和科学文献综述写作)中提出的事实性检测框架。

4.2 查询生成

对于每个主张 ci,我们将其转换为一组查询 {qij}j=1···m,这些查询可用于查询外部工具,例如搜索引擎、Python 解释器或 Google Scholar。

基于知识库的问答
我们提示 ChatGPT 或 GPT-4 从每个主张 ci 生成两个搜索引擎查询。这些查询旨在帮助人类验证 ci 的事实性。详细的提示指令可在附录 A 中找到。

代码生成
对于每个主张 ci,我们生成两种不同类型的查询:模拟测试用例输入,记为 {qtij}j=1···m,以及潜在解决方案,记为 {qsij}j=1···m。这两种类型的查询均由 ChatGPT 或 GPT-4 生成。模拟测试用例输入是为给定代码片段生成的函数调用,而潜在解决方案是 ChatGPT 对用户提示 p 的响应中反复生成的解决方案。在我们后续的实验中,我们生成了 3 个模拟测试用例输入和 3 个潜在解决方案。详细的提示指令可在附录 A 中找到。

数学问题
我们提示 ChatGPT 或 GPT-4 将所有数学运算转换为可执行的 Python 代码片段。这些代码片段设计为在计算结果与计算答案匹配时返回“True”,如果不匹配则返回“False”。详细的提示指令可在附录 A 中找到。

科学文献综述
我们使用从提取的主张元组中找到的论文标题作为 Google Scholar 的查询。我们的假设是,如果论文存在,则在使用论文标题作为查询时,它应该出现在 Google Scholar 的第一个搜索结果中。

4.3 工具查询与证据收集

然后我们使用这些查询来查询各种工具,以收集相关的证据陈述 {eik}k=1···li。

基于知识库的问答
我们使用的外部工具是 Google Search API,它通过从生成文本中提取的主张生成的查询从互联网检索知识,以验证生成文本的事实性。我们使用 Serper 提供的 Google Search API 搜索顶级页面,并检索 API 响应中包含的最相关搜索片段。然后我们解析响应以获取不同类型片段,如答案框、知识图谱和自然搜索结果。

代码生成
对于每个测试用例输入 ti 和生成的潜在解决方案 sj,我们使用 ti 作为输入执行 sj,并为每个 (ti, sj) 对收集执行结果(输出)。输入-输出对用作验证聊天机器人生成的未经验证的解决方案的测试用例。该过程如图 3 所示。

数学问题
我们收集从数学运算中派生的代码片段的执行结果。如图 2 所示,数学主张(如“30 / 3 = 10”)被提取并转换为可执行的 Python 代码,例如“print(round(30/3, 7) == 10)”。

科学文献综述
我们使用从文本中提取的每篇论文的标题作为查询,通过 Scholarly 提供的 Google Scholar API 访问相关信息。这使我们能够检索每篇论文的关键信息,包括论文标题、作者列表和出版年份。
在这里插入图片描述
图 3:用于检测代码生成中事实性错误的单元测试库生成。

4.4 一致性验证

在最后一步中,每个主张 ci 根据收集到的证据 {eik}k=1···li 所提供的支持程度,获得一个二元事实性标签 Li ∈ {TRUE, FALSE}。此标记过程针对每个单独的主张进行。

基于知识库的问答
我们提示 ChatGPT 或 GPT-4 根据检索到的证据片段列表判断主张的事实性。我们遵循零样本推理过程(Wei 等,2023):最初,模型尝试推理主张是否真实。如果识别出错误,我们随后要求其解释并尝试纠正错误。

代码生成
我们对每个测试用例的所有解决方案进行多数投票,建立我们所称的该特定测试用例的“伪金标准输出”。我们对每个测试用例重复此过程。随后,我们将待验证解决方案的执行结果与所有测试用例的伪金标准输出进行比较。如果结果匹配,我们将待验证的解决方案分类为真;否则,将其视为假。

数学问题
我们汇总每个代码片段执行的结果。如果任何片段返回“False”,我们将相关的生成文本 x 分类为假。反之,如果所有片段都返回“True”,我们将对应的生成文本 x 分类为真。

科学文献综述
我们将提取的主张:“(论文标题,年份,作者)”与从 Google Scholar API 检索到的证据:“(论文标题,年份,作者)”进行比较。对于论文标题和出版年份,我们进行精确的、不区分大小写的字符串匹配。至于作者匹配,我们提示 ChatGPT 或 GPT-4 判断提取主张中的作者列表是否是检索到的作者列表的子集。所有信息必须匹配才能被分类为“True”,否则为“False”。

5 数据集构建

5.1 提示和响应收集

基于知识库的问答
对于基于知识库的问答,我们使用 RoSE(Liu 等,2022)和 FactPrompts 来评估我们的框架。RoSE 是一个文本摘要数据集,为每个参考摘要提供细粒度的原子内容单元(ACUs)。FactPrompts 是一个数据集,包含来自 Quora 和 TruthfulQA(Lin 等,2022)等平台和数据集的真实提示,以及由 ChatGPT 生成的相应响应。我们使用 RoSE 中的 100 个参考摘要和 FactPrompts 中的 50 个响应构建数据集以供评估。

代码生成
对于代码生成,我们使用 HumanEval(Chen 等,2021)来评估我们的框架。HumanEval 是一个编程问题数据集,每个问题都包含多个单元测试。我们使用 ChatGPT 根据 HumanEval 提供的处理过的提示生成响应(Chen 等,2022),这些提示仅包含提示的指令,而不包含输入输出示例。

数学问题
对于数学问题,我们使用 GSM-Hard(Gao 等,2022b)来评估我们的框架。GSM-Hard 是从 GSM8K(Cobbe 等,2021)构建的数据集,通过将 GSM8K 问题中的数字替换为更大的数字。我们从 GSM-Hard 中采样了 100 个目标解为正数的提示,然后使用 ChatGPT 为这些提示生成响应。

科学文献综述
对于科学文献综述,我们遵循自指导(Wang 等,2023)的方法创建了 100 个涵盖计算机科学、商业、法律、医学和物理学的多样化提示。每个提示都要求技术性或研究性的回答,并至少引用一篇相关文献。然后我们使用 ChatGPT 为这些提示生成响应。

5.2 主张收集

对于来自 FactPrompts 和 GSM-Hard 的响应,我们遵循第 4.1 节中描述的“主张提取作为提示”的方法。这种方法允许我们重用附录 A 中列出的主张提示。我们使用 ChatGPT 进行主张提取,因为它在提取细粒度主张方面既经济又有效。对于 HumanEval 响应,由于 HumanEval 提示的生成响应已经是代码片段的形式,我们考虑响应的“主张”与响应本身相同。

5.3 主张和响应标注

基于知识库的问答和科学文献综述
对于主张标注,作者集体将提取的主张标注为事实性或非事实性。对于响应标注,如果响应中的一个主张被标注为非事实性,则整个响应被视为非事实性;否则,响应被视为事实性。

代码生成
由于响应的“主张”与响应本身相同,我们考虑主张标签与响应标签相同。对于响应标注,我们使用(Chen 等,2022)中提供的执行代码将 ChatGPT 的响应与 HumanEval 测试用例进行对比。这使我们能够区分通过所有测试的事实性响应和非事实性响应。

数学问题
对于主张标注,作者集体将提取的主张标注为事实性或非事实性。对于响应标注,我们利用 GSM-Hard(Gao 等,2022b)中提供的目标值来标注生成的响应。
在这里插入图片描述
表 3:本工作中使用的数据集的详细统计信息。
注意,(p, n) 表示 p = 正面响应或主张的数量,n = 负面响应或主张的数量。“Sci.Lit”代表科学文献综述。
在这里插入图片描述
表 4:从 GPT-4、ChatGPT 和 Flan-T5 XXL 提取的主张与 RoSE 上的金标准 ACUs 的平均相似度。

6 实验

我们对 FACTOOL 进行评估,对比两个使用大型语言模型(LLM)检查自身输入的基线:3-shot CoT 和零样本 CoT 自检,这些方法已在多种任务中表现出有效性,包括对话响应、数学推理和代码生成(Madaan 等,2023;Chen 等,2023)。这两种基线旨在测试 LLM 在不使用任何外部工具的情况下识别自身错误的能力。在实践中,我们提示 ChatGPT(gpt-3.5-turbo-0301)和 GPT-4(gpt-4-0314)识别、解释并尝试纠正自身的错误。在这一推理过程中,模型对给定主张的事实性做出最终判断。自检(零样本 CoT)和自检(3-shot CoT)之间的关键区别在于,自检(3-shot CoT)为模型提供了三个示例,而自检(零样本 CoT)则不提供任何示例。

6.1 实验一:主张提取评估

我们在 RoSE(Liu 等,2022)上评估 FACTOOL 的主张提取模块。我们将参考摘要视为生成文本 x,参考 ACUs 视为金标准提取主张。我们使用 4 种指标衡量机器提取的(GPT-4、ChatGPT 和 Flan-T5 XXL)主张 {cci}i=1···nc 与金标准提取主张 {cgi}i=1···ng 之间的相似度:ROUGE-1、ROUGE-2、ROUGE-L(Lin,2004)和 BERTScore。在表 4 中,我们报告了每个 ChatGPT 提取主张与同一样本中相应金标准提取主张的最高相似度的平均值(即 (\frac{1}{\text{sample_cnt}} \sum_{\text{sample}} \frac{1}{nc} \sum_{i=1}^{nc} \max_{j=1}^{ng} (\text{Sim}(cci, cgi))))。

结果
我们在表 4 中展示了 GPT-4、ChatGPT 和 Flan-T5 提取的主张与人类标注的 ACUs 在 ROUGE 和 BERTScore 指标下高度匹配。注意,在实验二中,我们选择 ChatGPT 作为主张提取器,原因有两个:(1)Flan-T5 的上下文长度过短(512 个标记),无法有效从我们数据集中的长篇响应中提取主张。(2)与 GPT-4 相比,ChatGPT 在主张提取方面具有类似的效率,同时更具成本效益。

6.2 实验二:框架评估

我们在每个场景构建的数据集上评估 FACTOOL 和两个自检基线。根据用于查询生成和一致性验证的模型,我们有两种 FACTOOL 基线:由 ChatGPT 驱动的 FACTOOL 和由 GPT-4 驱动的 FACTOOL。我们在主张和响应两个层面报告准确率、召回率、精确率和 F1 分数。
在这里插入图片描述
表 5:由 ChatGPT 驱动的 FACTOOL 和由 GPT-4 驱动的 FACTOOL 在基于知识库的问答、代码生成、数学问题和科学文献综述上的实验结果。

6.2.1 结果

表 5 展示了 FACTOOL 和自检基线在主张层面和响应层面的表现。我们得到以下观察结果。

由 GPT-4 驱动的 FACTOOL 在所有场景中均优于其他所有基线
从表 5 可以看出,由 GPT-4 驱动的 FACTOOL 在所有场景中均优于其他所有基线。在基于知识库的问答中,由 GPT-4 驱动的 FACTOOL 达到 89.09 的主张层面 F1 分数和 71.79 的响应层面 F1 分数;在代码生成中,主张层面 F1 分数为 92.11,响应层面 F1 分数为 92.11(注意在我们的代码生成实验中,主张层面的事实性等同于响应层面的事实性);在数学问题中,主张层面 F1 分数为 98.97,响应层面 F1 分数为 80.36;在科学文献综述中,主张层面 F1 分数为 95.24,响应层面 F1 分数为 94.74。这些数字均为各自任务中的最高值。

由 GPT-4 驱动的 FACTOOL 在所有场景中均优于所有自检基线
从表 5 可以看出,由 GPT-4 驱动的 FACTOOL 在所有场景中均优于所有自检基线。在基于知识库的问答中,由 GPT-4 驱动的 FACTOOL 与由 GPT-4 驱动的自检(3-shot)相比,响应层面 F1 分数为 71.79 对 57.14;在代码生成中,响应层面 F1 分数为 92.11 对 85.26;在数学问题中,响应层面 F1 分数为 80.36 对 70.59;在科学文献综述中,响应层面 F1 分数为 94.74 对 21.54。

由 GPT-4 驱动的 FACTOOL 在科学文献综述中显著优于自检基线
从表 5 可以看出,由 GPT-4 驱动的 FACTOOL 在科学文献综述中显著优于自检基线。在由 GPT-4 驱动的 FACTOOL 与由 GPT-4 驱动的自检(3-shot)相比,主张层面 F1 分数为 95.24 对 36.71,响应层面 F1 分数为 94.74 对 21.54。在这里,Google Scholar 在执行其指定任务(查找引用)时表现出极高的鲁棒性,相比之下,LLM 自身则稍显不足。

由 GPT-4 驱动的 FACTOOL 优于由 ChatGPT 驱动的 FACTOOL
由 GPT-4 驱动的 FACTOOL 在所有场景中均优于由 ChatGPT 驱动的 FACTOOL。这一趋势在基于知识库的问答中尤为显著,因为对于 ChatGPT 而言,查询生成和一致性验证较为困难,而对于 GPT-4 则相对容易(主张层面 F1 分数为 89.09 对 81.25,响应层面 F1 分数为 71.79 对 52.63)。另一方面,在查询生成和一致性验证对 ChatGPT 和 GPT-4 都相对容易的场景中,两者的性能表现相似。

自检模型容易出现假阳性,因此在检测错误时不够敏感
从表 5 可以看出,与 FACTOOL 相比,自检模型的精确率较低。在由 GPT-4 驱动的自检(3-shot)与由 GPT-4 驱动的 FACTOOL 相比,基于知识库的问答中响应层面精确率为 63.16 对 87.50,代码生成中响应层面精确率为 76.43 对 89.74,数学问题中响应层面精确率为 58.33 对 69.23,科学文献综述中响应层面精确率为 12.73 对 100.00。这些数字表明,自检模型比 FACTOOL 更频繁地将主张分类为“True”,这表明其在错误检测方面敏感度较低。

由 ChatGPT 驱动的自检模型在基于知识库的问答中优于由 ChatGPT 驱动的 FACTOOL
表 5 显示,由 ChatGPT 驱动的自检(零样本)优于由 ChatGPT 驱动的 FACTOOL。通过检查具体案例,我们发现推理错误是导致由 ChatGPT 驱动的 FACTOOL 表现不如自检基线的主要原因。即使提供了足够的证据来判断主张是否真实,由 ChatGPT 实现的一致性验证仍可能陷入困惑。例如,对于主张“现代版的幸运饼干是在美国发明的”,由 ChatGPT 驱动的 FACTOOL 的推理自相矛盾:“给定的文本并不完全真实。现代版的幸运饼干并非在美国发明。如今大多数人认为,幸运饼干是由日本人 Makoto Hagiwara 在 1914 年于旧金山发明的。Hagiwara 拥有现在被称为金门公园日本茶园的地方,在那里他提供茶和幸运饼干。这一说法得到了所提供的证据支持。”更多详细示例可在附录 B 的图 9 中找到。

6.2.2 性能分析

我们通过检查评估案例,深入了解不同场景下的性能表现。

基于知识库的问答
FACTOOL 在基于知识库问答中的事实核查能力由多个因素决定,包括搜索引擎是否能够返回有助于判断给定主张事实性的最相关片段,生成的搜索引擎查询质量,以及 LLM 在给定检索到的证据下对主张有效性的推理能力。
我们发现,由 GPT-4 驱动的 FACTOOL 在以下情况下表现尤为出色:
(1)核查近期事件、发现或新闻的事实性:由 GPT-4 驱动的 FACTOOL 成功识别出虚假主张,例如“阿根廷自 1986 年以来未曾赢得世界杯”和“有史以来最昂贵的 NFT 是一件名为‘Everydays: The First 5000 Days’的数字艺术作品”。
(2)核查高精度统计数据的事实性:由 GPT-4 驱动的 FACTOOL 成功识别出虚假主张,例如“爱尔兰的肥胖率为 26.9%”和“Everydays: The First 5000 Days 的售价为 6900 万美元”。更多详细示例可在附录 B 的图 10 中找到。

代码生成
FACTOOL 在代码生成中的事实核查能力取决于 LLM 生成高质量测试用例和潜在解决方案的能力。我们证明,由于 GPT-4 在生成高质量测试用例和潜在解决方案方面表现出色,由 GPT-4 驱动的 FACTOOL 优于其他基线。例如,在“HumanEval/36”中,GPT-4 一直生成高质量解决方案,从而正确识别出响应中的错误,而 ChatGPT 则未能识别错误。更多详细示例可在附录 B 的图 11 和图 12 中找到。

数学问题
FACTOOL 在数学问题中的事实核查能力取决于 LLM 生成准确的 Python 代码片段以验证给定数学计算正确性的能力。由 GPT-4 和 ChatGPT 驱动的 FACTOOL 在这方面都表现出色。例如,由 GPT-4 和 ChatGPT 驱动的 FACTOOL 都正确识别出 23×4319216 不等于 99305768。更多详细示例可在附录 B 的图 13 中找到。

科学文献综述
FACTOOL 在科学文献综述中的事实核查能力取决于 LLM 判断生成的作者列表是否为实际作者列表子集的能力。由 GPT-4 和 ChatGPT 驱动的 FACTOOL 在这方面都表现出色。例如,由 GPT-4 和 ChatGPT 驱动的 FACTOOL 都正确识别出论文《人工智能对就业的影响》并非由“Acemoglu 和 Restrepo”撰写。更多详细示例可在附录 B 的图 14 中找到。

6.2.3 失败分析

为了全面了解 FACTOOL 的性能,我们对 FACTOOL 失败的案例进行了分析。

基于知识库的问答
我们总结了以下错误来源:
(1)推理错误:尽管提供的证据充分且 LLM 准确找到了最相关信息,但模型未能推理出主张与证据之间的关系。例如,对于主张“木星的密度小于土星”,由 GPT-4 驱动的 FACTOOL 未能正确推理两者的关系,尽管提供的证据是充分的。
(2)证据冲突:证据之间的冲突可能导致 LLM 产生困惑,从而做出错误的判断。例如,对于主张“木星的密度为每立方厘米 1.33 克”,存在冲突的证据声称密度为 1.326 或 1.33 g/cm³。
(3)主张模糊:模糊的描述和主观的形容词可能导致错误的判断。例如,主张“幸运饼干受到全世界人民的喜爱”是模糊的,根据不同的解释可能有不同的答案。更多详细示例可在附录 B 的图 15 中找到。

代码生成
代码生成中的错误主要来自以下方面:
(1)合成测试用例的多样性不足:LLM 生成的合成测试用例可能不够全面或多样化。例如,在“HumanEval/64”样本中,生成的合成测试用例的所有输入都仅由小写字母组成(不包含大写字母)。
(2)代码生成中的潜在错误:生成的潜在解决方案可能包含错误或漏洞。尽管我们通过多数投票机制来减轻这一问题,但无法完全消除代码生成过程中出现漏洞的可能性。例如,在“HumanEval/79”样本中,所有生成的解决方案都未能正确将“decimal_to_binary(0)”转换为“db0db”。更多详细示例可在附录 B 的图 16 中找到。

数学问题
数学问题的事实性检测中主要有两种错误:
(1)舍入误差:在 Python 的数值计算中可能会出现舍入误差。例如,由 GPT-4 驱动的 FACTOOL 错误地将数学计算“60444034 / 12 = 5037002.83”分类为“False”。
(2)推理错误:由于 FACTOOL 提取的主张仅涉及数学计算,因此 FACTOOL 不会验证数学解题的推理过程。例如,对于问题“Kylar 去商店为他的新公寓购买玻璃杯。一个玻璃杯售价 5 美元,但每第二个玻璃杯的价格仅为原价的 60%。Kylar 想要购买 5364765 个玻璃杯。他需要支付多少钱?”,ChatGPT 生成的响应中存在推理错误,错误地将总成本计算为“5364765×5”。然而,由于 FACTOOL 只检查数学计算错误,由 GPT-4 驱动的 FACTOOL 未能识别出推理错误。更多详细示例可在附录 B 的图 17 中找到。

科学文献综述
科学文献综述的事实性检测中主要有两种错误:
(1)标题匹配错误:由于生成的引用或检索到的标题中存在缩写,标题匹配有时可能会出现问题。例如,尽管论文《MDMA 辅助心理治疗用于 PTSD 治疗:基于六项二期随机对照试验汇总分析的三期试验设计与理由》确实存在,但由 GPT-4 驱动的 FACTOOL 识别出论文标题为错误。
(2)作者匹配错误:作者匹配过程有时可能不够稳健。例如,尽管论文《语言模型是无监督的多任务学习者》的作者确实是“Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei 和 Ilya Sutskever”,但由 GPT-4 驱动的 FACTOOL 识别出作者列表为错误。更多详细示例可在附录 B 的图 18 中找到。
在这里插入图片描述
表 6:由 FACTOOL 评估的不同聊天机器人的事实准确性。WCL Acc. 表示每个聊天机器人的加权主张层面准确性。RL Acc. 表示每个聊天机器人的响应层面准确性。Avg. Resp. Len. 表示每个聊天机器人的平均响应长度。请注意,我们视 FACTOOL 为黄金评估器,用于评估每个聊天机器人生成响应的事实性。

6.3 实验三:使用 FACTOOL 评估现代聊天机器人的事实性

开发事实性检测器的目的是审计实际的生成式聊天机器人,以评估聊天机器人生成响应的可靠性。为此,我们使用由 GPT-4 驱动的 FACTOOL 评估现代聊天机器人(包括 GPT-4、ChatGPT、Claude-v1、Bard 和 Vicuna-13B)的事实性。需要注意的是,在实验三中,我们将 FACTOOL 视为黄金评估器,负责评估不同聊天机器人生成响应的事实准确性。在提示选择方面,我们遵循与(Zhou 等,2023)相同的思路:基于知识库的问答(KB-QA)是最常见的场景。因此,我们选择了 30 个 KB-QA 提示,10 个代码提示,10 个数学提示和 10 个科学提示(即 KB-QA 提示的数量是其他场景提示的三倍),以进行聊天机器人的事实性评估。KB-QA 提示来自(Zhou 等,2023),代码提示来自 HumanEval(Chen 等,2021),数学提示来自(Gao 等,2022b),而科学提示由我们生成。这些提示的响应由每个被评估的聊天机器人生成。

我们报告由 GPT-4 驱动的 FACTOOL 评估的每个聊天机器人的主张层面和响应层面的准确性。鉴于 KB-QA 响应中包含的主张数量显著多于其他场景的响应,我们报告加权主张层面准确性。这一权重由每个场景中提示数量的比例决定。换句话说,
加权主张层面准确性 = ( \frac{3}{6} \times ) KB-QA 中的主张层面准确性 + ( \frac{1}{6} \times ) 代码中的主张层面准确性 + ( \frac{1}{6} \times ) 数学中的主张层面准确性 + ( \frac{1}{6} \times ) 科学中的主张层面准确性
采用加权主张层面准确性评估有助于我们更全面、公平地评估每个聊天机器人的事实准确性。

结果 表 6 显示,与 ChatGPT、Bard、Claude-v1 和 Vicuna 相比,GPT-4 具有最佳的加权主张层面事实准确性和响应层面准确性。图 4 和图 5 展示了每个场景(KB-QA、代码、数学、科学)的细粒度性能。我们观察到:
(a)在大多数场景中,GPT-4 的主张层面准确性和响应层面准确性均为最佳。
(b)经过监督式微调的聊天机器人(如 Vicuna-13B)在更常见的场景(如 KB-QA)中表现尚可,但在更具挑战性的场景(如数学、代码和科学)中表现较差。

7 结论

我们介绍了 FACTOOL,这是一个任务和领域无关的框架,旨在应对生成式人工智能中日益严峻的事实性错误检测挑战。我们扩展了事实性的传统定义,特别关注审计生成式人工智能模型的能力。鉴于(1)大型语言模型生成的文本往往篇幅较长且缺乏对单个事实的明确粒度划分,以及(2)在事实核查过程中可用的明确证据稀缺,我们构建了一个包含五个步骤的工具增强型框架 FACTOOL,包括主张提取、查询生成、工具查询、证据收集和验证。

我们通过在多种任务(如基于知识的问答、代码生成、数学问题求解和科学文献综述写作)中进行实验,展示了将 Google 搜索、Google 学术、代码解释器、Python 甚至大型语言模型本身等工具纳入事实性错误检测的潜力。我们相信,我们全面且灵活的框架可以轻松扩展到更多场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSPhD-winston-杨帆

给我饭钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值