提高可靠性的技术

当 GPT-3 在一项任务上失败时,您应该怎么做?

  • 寻找更好的提示以获得更可靠的答案?
  • 投入数千个示例来微调自定义模型?
  • 假设模型无法完成任务,然后继续前进?

没有简单的答案——这取决于。但是,如果您的任务涉及逻辑推理或复杂性,请考虑尝试本文中的技术来构建更可靠、高性能的提示。

GPT-3 在复杂任务上失败的原因

如果您被要求将 13 乘以 17,答案会立刻出现在您的脑海中吗?对我们大多数人来说,可能不会。然而,这并不意味着人类无法进行两位数乘法。只需几秒钟,再加一些纸和笔,就能算出 13 x 17 = 130 + 70 + 21 = 221,这并不算太费力。

同样,如果您给 GPT-3 的任务过于复杂,以至于无法在计算下一个 token 的时间内完成,它可能会臆造一个错误的猜测。然而,与人类类似,这并不一定意味着模型无法完成任务。只要有时间和空间来推理,模型仍然可能可靠地回答。

例如,如果您向 gpt-3.5-turbo-instruct 提出以下关于杂耍球的数学问题,它会给出错误的答案:

问:一个杂耍者有 16 个球。一半的球是高尔夫球,一半的高尔夫球是蓝色的。有多少个蓝色的高尔夫球?
答:
有 8 个蓝色的高尔夫球。

这是否意味着 GPT-3 不能做简单的数学题?不;事实上,通过使用 Let's think step by step 来提示模型,模型可以可靠地解决问题:

问:一个杂耍者有 16 个球。一半的球是高尔夫球,一半的高尔夫球是蓝色的。有多少个蓝色的高尔夫球?
答:让我们一步一步地思考。
总共有 16 个球。
一半的球是高尔夫球。
这意味着有 8 个高尔夫球。
一半的高尔夫球是蓝色的。
这意味着有 4 个蓝色的高尔夫球。

当然,仅凭一个例子很难判断这个 Let's think step by step 的技巧是否真的普遍有效,或者只是在这个特定问题上碰巧成功了。但它确实有效。在一个关于文字数学问题的基准测试中,Let's think step by step 的技巧极大地提高了 GPT-3 的解决率,从毫无用处的 18% 提高到体面的 79%!

模型能力取决于上下文

在学习使用 GPT-3 时,一个常见的概念性错误是认为它的能力在所有上下文中都是固定的。例如,如果 GPT-3 在一个简单的逻辑问题上出错,那么它一定不擅长简单的逻辑。

但是,正如 Let's think step by step 的例子所示,GPT-3 的明显失败有时可以通过更好的提示来解决,这些提示可以帮助模型引导自己走向正确的输出。

如何提高复杂任务的可靠性

本文的其余部分将介绍提高大型语言模型在复杂任务上可靠性的技术。虽然其中一些技术特定于某些类型的问题,但许多技术都基于可以应用于各种任务的通用原则,例如:

  • 提供更清晰的指令
  • 将复杂任务分解为更简单的子任务
  • 构建指令以使模型保持在任务上
  • 提示模型在回答前先进行解释
  • 询问多种可能答案的理由,然后进行综合
  • 生成多个输出,然后使用模型选择最佳输出
  • 微调自定义模型以最大化性能

将复杂任务分解为更简单的任务

让模型有更多时间和空间思考的一种方法是将任务分解为更简单的部分。

例如,考虑一个任务,我们要求模型回答有关某段文本的多项选择题——在这种情况下,是《妙探闯通关》游戏。当直接提问时,gpt-3.5-turbo-instruct 无法将线索 3 和 5 联系起来,并给出错误的答案:

使用以下线索回答以下多项选择题。

线索:

1. 斯嘉丽小姐是休息室里唯一的人。
2. 拿着烟斗的人在厨房里。
3. 芥末上校是天文台里唯一的人。
4. 普拉姆教授不在图书馆也不在台球室。
5. 拿着烛台的人在天文台里。

问题:芥末上校是否在天文台里拿着烛台?
(a) 是的;芥末上校在天文台里拿着烛台
(b) 否;芥末上校不在天文台里拿着烛台
(c) 未知;没有足够的信息来确定芥末上校是否在天文台里拿着烛台

解决方案:
(c) 未知;没有足够的信息来确定芥末上校是否在天文台里拿着烛台

尽管线索 3 和 5 表明芥末上校是天文台里唯一的人,并且在天文台里的人拿着烛台,但模型未能将它们结合起来给出正确的答案 (a) 是的。

但是,我们不必直接要求答案,而是可以将任务分解为三个部分:

  • 首先,逐一查看线索,并考虑线索是否相关
  • 其次,结合相关线索来推断问题的答案
  • 第三,写出最终答案:(a)、(b) 或 (c)
使用以下线索,按照以下步骤回答以下多项选择题:
(1) 首先,逐一查看线索,并考虑线索是否相关
(2) 其次,结合相关线索来推断问题的答案
(3) 第三,将答案映射到多项选择答案之一:(a)、(b) 或 (c)

线索:

1. 斯嘉丽小姐是休息室里唯一的人。
2. 拿着烟斗的人在厨房里。
3. 芥末上校是天文台里唯一的人。
4. 普拉姆教授不在图书馆也不在台球室。
5. 拿着烛台的人在天文台里。

问题:芥末上校是否在天文台里拿着烛台?
(a) 是的;芥末上校在天文台里拿着烛台
(b) 否;芥末上校不在天文台里拿着烛台
(c) 未知;没有足够的信息来确定芥末上校是否在天文台里拿着烛台

解决方案:
(1) 首先,逐一查看线索,并考虑线索是否相关:
线索 1:斯嘉丽小姐是休息室里唯一的人。此线索不相关。
线索 2:拿着烟斗的人在厨房里。此线索不相关。
线索 3:芥末上校是天文台里唯一的人。此线索相关。
线索 4:普拉姆教授不在图书馆也不在台球室。此线索不相关。
线索 5:拿着烛台的人在天文台里。此线索相关。

(2) 其次,结合相关线索来推断问题的答案:
线索 3 和线索 5 都提到拿着烛台的人在天文台里。芥末上校是天文台里唯一的人,所以芥末上校就是拿着烛台的人。

(3) 第三,写出最终答案:
(a) 是的;芥末上校在天文台里拿着烛台

通过给模型更多的时间和空间来思考,并指导它遵循推理计划,它能够找出正确答案 (a) 是的。

将复杂的指令分解为更小的子任务的另一个好处是,它可以帮助模型专注于每个子任务。

例如,如果我们要求 gpt-3.5-turbo-instruct 用文本的原始语言对其进行摘要,模型可能会切换回英语:

使用文本的原始语言来摘要文本。摘要应为一句话。

文本:
"""
La estadística (la forma femenina del término alemán Statistik, derivado a su vez del italiano statista, "hombre de Estado")​ es una ciencia que estudia la variabilidad, colección, organización, análisis, interpretación, y presentación de los datos, así como el proceso aleatorio que los genera siguiendo las leyes de la probabilidad.​ La estadística es una ciencia formal deductiva, con un conocimiento propio, dinámico y en continuo desarrollo obtenido a través del método científico formal. En ocasiones, las ciencias fácticas necesitan utilizar técnicas estadísticas durante su proceso de investigación factual, con el fin de obtener nuevos conocimientos basados en la experimentación y en la observación. En estos casos, la aplicación de la estadística permite el análisis de datos provenientes de una muestra representativa, que busca explicar las correlaciones y dependencias de un fenómeno físico o natural, de ocurrencia en forma aleatoria o condicional.
"""

摘要:
该文本解释说,统计学是一门研究数据的变异性、收集、组织、分析、解释和呈现的科学,以及遵循概率定律生成这些数据的随机过程。

但是,如果我们首先要求模型识别文本的语言,然后摘要文本,它的可靠性会更高:

首先,识别文本的语言。其次,使用文本的原始语言来摘要文本。摘要应为一句话。

文本:
"""
La estadística (la forma femenina del término alemán Statistik, derivado a su vez del italiano statista, "hombre de Estado")​ es una ciencia que estudia la variabilidad, colección, organización, análisis, interpretación, y presentación de los datos, así como el proceso aleatorio que los genera siguiendo las leyes de la probabilidad.​ La estadística es una ciencia formal deductiva, con un conocimiento propio, dinámico y en continuo desarrollo obtenido a través del método científico formal. En ocasiones, las ciencias fácticas necesitan utilizar técnicas estadísticas durante su proceso de investigación factual, con el fin de obtener nuevos conocimientos basados en la experimentación y en la observación. En estos casos, la aplicación de la estadística permite el análisis de datos provenientes de una muestra representativa, que busca explicar las correlaciones y dependencias de un fenómeno físico o natural, de ocurrencia en forma aleatoria o condicional.
"""

语言:
西班牙语

La estadística es una ciencia que estudia la variabilidad, colección, organización, análisis, interpretación, y presentación de los datos, así como el proceso aleatorio que los genera siguiendo las leyes de la probabilidad.

提示模型在回答前进行解释

提高答案可靠性的另一个强大技术是提示模型逐步推理答案,而不是立即跳到最终答案。通过“大声思考”,模型更有可能得出正确答案。

零样本

方法

Takeshi Kojima 等人于 2022 年发表,最简单的提示模型推理答案的方法是在答案前加上 Let's think step by step.。图 2 展示了一个例子:

zero-shot reasoning example
来源:《大型语言模型是零样本推理者》作者:Takeshi Kojima 等人 (2022)。

结果

将此简单技巧应用于 MultiArith 数学数据集,作者发现 Let's think step by step 将准确率提高了四倍,从 18% 提高到 79%!

zero-shot reasoning example
来源:《大型语言模型是零样本推理者》作者:Takeshi Kojima 等人 (2022)。

启示

尽管 Let's think step by step 的技巧在数学问题上效果很好,但它并非对所有任务都有效。作者发现,它对多步算术问题、符号推理问题、策略问题和其他推理问题最有帮助。它对简单数学问题或常识性问题没有帮助,推测也不会对许多其他非推理任务有帮助。

zero-shot reasoning example
来源:《大型语言模型是零样本推理者》作者:Takeshi Kojima 等人 (2022)。

要了解更多信息,请阅读完整论文

如果您将此技术应用于自己的任务,请不要害怕尝试自定义指令。Let's think step by step 是相当通用的,因此您可能会发现更严格地遵循您用例定制的格式的变体能带来更好的性能。例如,您可以尝试更结构化的变体,如 First, think step by step about why X might be true. Second, think step by step about why Y might be true. Third, think step by step about whether X or Y makes more sense.。您甚至可以给模型一个示例格式来帮助它保持在正确的轨道上,例如:

使用下面的 IRS 指南,并使用以下格式回答以下问题:
(1) 对于每个标准,确定它是否符合车辆购买条件

- {标准} 让我们一步一步地思考。 {解释} {是或否,或者如果问题不适用则为 N/A}。
(2) 在逐一考虑每个标准后,将最终答案的措辞为“因为 {原因},所以答案很可能是 {是或否}。”

IRS 指南:
"""
如果您购买了符合以下标准的汽车或卡车,您可能有资格获得 30D 条款下的联邦税收抵免:

- 该车辆是否至少有四个轮子?
- 该车辆的重量是否低于 14,000 磅?
- 该车辆是否从至少 4 千瓦时的电池中汲取能量,并且可以从外部来源充电?
- 该车辆是否在 2022 年之前的某一年购买?
  - 如果是,制造商是否销售了少于 200,000 辆符合条件的车辆?(特斯拉和通用汽车已销售超过 200,000 辆符合条件的车辆。)
- 该车辆是否在 2022 年之后的某一年购买?
  - 如果是,该车辆是否出现在以下北美组装车辆列表中?(唯一在北美组装的电动汽车是奥迪 Q5、宝马 330e、宝马 X5、雪佛兰 Bolt EUV、雪佛兰 Bolt EV、克莱斯勒 Pacifica PHEV、福特 Escape PHEV、福特 F 系列、福特 Mustang MACH E、福特 Transit Van、GMC Hummer Pickup、GMC Hummer SUV、Jeep Grand Cherokee PHEV、Jeep Wrangler PHEV、林肯 Aviator PHEV、林肯 Corsair Plug-in、Lucid Air、日产 Leaf、Rivian EDV、Rivian R1S、Rivian R1T、特斯拉 Model 3、特斯拉 Model S、特斯拉 Model X、特斯拉 Model Y、沃尔沃 S60、宝马 330e、Bolt EV、凯迪拉克 Lyriq、梅赛德斯 EQS SUV 和日产 Leaf。)
"""

问题:我购买的 2021 年丰田普锐斯 Prime 可以申请联邦税收抵免吗?

解决方案:

(1) 对于每个标准,确定它是否符合车辆购买条件

- 该车辆是否至少有四个轮子? 让我们一步一步地思考。
 丰田普锐斯 Prime 有四个轮子,所以答案是肯定的。

- 该车辆的重量是否低于 14,000 磅? 让我们一步一步地思考。丰田普锐斯 Prime 的重量低于 14,000 磅,所以答案是肯定的。
- 该车辆是否从至少 4 千瓦时的电池中汲取能量,并且可以从外部来源充电? 让我们一步一步地思考。丰田普锐斯 Prime 的电池至少有 4 千瓦时,并且可以从外部来源充电,所以答案是肯定的。
- 该车辆是否在 2022 年之前的某一年购买? 让我们一步一步地思考。丰田普锐斯 Prime 是在 2021 年购买的,也就是 2022 年之前,所以答案是肯定的。
- 该车辆是否在 2022 年之后的某一年购买? 不适用
- 如果是,该车辆是否出现在以下北美组装车辆列表中? 不适用

(2) 在逐一考虑每个标准后,将最终答案的措辞为“因为 {原因},所以答案很可能是 {是或否}。”

因为丰田普锐斯 Prime 符合联邦税收抵免的所有标准,所以答案很可能是肯定的。

少样本示例

方法

提示模型推理其答案可以通过多种方式完成。一种方法是提供一些示例(“少样本”),正如 Jason Wei 和 Denny Zhou 等人从 Google 所研究的那样。这是一个少样本思维链提示示例:

chain of thought example
来源:《思维链提示在大型语言模型中引发推理》作者:Jason Wei 和 Denny Zhou 等人 (2022)

人类标注者编写的更多推理链演示:

chain of thought example
来源:《思维链提示在大型语言模型中引发推理》作者:Jason Wei 和 Denny Zhou 等人 (2022)

(请注意,梨是否真的会漂浮这一点已被质疑)

结果

在小学数学问题测试中,作者发现思维链提示将解决率提高了两倍,从 18% 提高到 57%。

chain of thought example
来源:《思维链提示在大型语言模型中引发推理》作者:Jason Wei 和 Denny Zhou 等人 (2022)

除了数学问题,思维链提示还提高了在体育理解、抛硬币跟踪和最后一个字母连接等问题上的表现。在大多数情况下,不需要很多示例就能达到性能饱和(大约 8 个或更少)。

chain of thought example
来源:《思维链提示在大型语言模型中引发推理》作者:Jason Wei 和 Denny Zhou 等人 (2022)

要了解更多信息,请阅读完整论文

启示

Let's think step by step 技术相比,少样本示例方法的优势在于,您可以更轻松地指定模型在给出最终答案之前执行的推理的格式、长度和风格。在模型最初的推理方式或深度不正确的情况下,这可能特别有帮助。

微调

方法

总的来说,要在任务上获得最佳性能,您需要微调自定义模型。但是,使用解释微调模型可能需要数千个示例解释,而这些解释的编写成本很高。

2022 年,Eric Zelikman 和 Yuhuai Wu 等人发表了一种巧妙的程序,可以使用少样本提示生成可用于微调模型的解释数据集。这个想法是使用少样本提示生成候选解释,并且只保留能产生正确答案的解释。然后,为了获得一些错误答案的额外解释,可以重新运行少样本提示,但将正确答案作为问题的一部分。作者将他们的程序称为 STaR(Self-taught Reasoner):

STaR procedure
来源:《STaR:通过推理引导推理》作者:Eric Zelikman 和 Yujuai Wu 等人 (2022)

使用此技术,您可以结合微调的优点和思维链提示的优点,而无需编写数千个示例解释。

结果

当作者将此技术应用于常识问答数据集时,他们发现 STaR 的性能优于单独的思维链提示(73% > 37%)和单独的微调(73% > 60%):

STaR results
来源:《STaR:通过推理引导推理》作者:Eric Zelikman 和 Yujuai Wu 等人 (2022)

要了解更多信息,请阅读完整论文

启示

使用少样本提示来扩展或修改微调数据集是一个可以推广到解释编写之外的想法。例如,如果您有大量的非结构化文本需要训练,您可能会发现有机会使用提示从非结构化文本中提取结构化数据集,然后在该结构化数据集上微调自定义模型。

对思维链提示的扩展

此外,还发布了许多对思维链提示的扩展。

选择-推理提示

方法

由 Antonia Creswell 等人发表,思维链技术的一个扩展是将生成解释和答案的单个提示分解为更小的部分。首先,一个提示从文本中选择相关的事实子集(“选择提示”)。然后,第二个提示从选定的事实中推断出一个结论(“推理提示”)。然后,这些提示在一个循环中交替进行,以生成多个推理步骤,并最终得出最终答案。作者在下图说明了这一想法:

Selection-inference prompting
来源:《选择-推理:利用大型语言模型进行可解释的逻辑推理》作者:Antonia Creswell 等人 (2022)

结果

当应用于具有 7B 参数的模型时,作者发现选择-推理提示在 bAbi 和 Proof Writer 基准任务(两者都需要更长的推理步骤序列)上相对于思维链提示显著提高了性能。他们达到的最佳性能结合了选择-推理提示和微调。

Selection-inference prompting
来源:《选择-推理:利用大型语言模型进行可解释的逻辑推理》作者:Antonia Creswell 等人 (2022)

启示

尽管在这些基准测试中的收益很大,但这些基准测试是专门选择的,因为它们需要更长的推理序列。对于不需要多步推理的问题,收益可能较小。

这些结果突显了关于使用大型语言模型的一些通用经验教训。一、将复杂任务分解为更小的任务是提高可靠性和性能的好方法;任务越原子化,模型出错的空间就越小。二、要获得最佳性能,通常需要将微调与您选择的任何方法相结合。

要了解更多信息,请阅读完整论文

忠实推理架构

在发布选择-推理提示技术几个月后,作者在后续论文中扩展了该技术,其中包含有关以下方面的想法:

  • 确定选择-推理周期何时应停止或继续
  • 添加一个价值函数来帮助搜索多个推理路径
  • 通过微调模型来处理句子标签(例如,sen1)而不是写出句子本身,从而减少虚假事实的幻觉

方法

在最初的选择-推理技术中,专门的“选择”和“推理”提示交替使用,以选择事实并从这些事实中进行推理,结合起来生成一系列推理步骤。

作者通过两个附加组件扩展了该技术。

首先,作者添加了一个“暂停器”模型,在每个推理步骤之后,该模型会询问到目前为止的推理是否足以回答问题。如果是,则模型生成最终答案。

暂停器模型带来了几个优势:

  • 它可以告诉选择-推理过程停止或继续,视需要而定。
  • 如果过程从未停止,您将得不到答案,这通常比幻觉猜测要好

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022)

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022)

其次,作者添加了一个价值函数,用于评估推理步骤的质量并搜索多个推理轨迹。这呼应了提高可靠性的一个常见主题;与其从模型生成单个答案,不如生成一组答案,然后使用某种价值函数/判别器/验证器模型来选择最佳答案。

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022)

除了这两个扩展之外,作者还使用了一个技巧来减少虚假事实的幻觉。他们没有要求模型写出事实句子,而是微调了一个模型来处理句子标签(例如,sen1)。这有助于防止模型产生提示上下文中未提及的虚假事实。

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022)

结果

作者在两个基准测试上评估了他们的技术:ProofWriter 任务(未显示)和 EntailmentBankQA(显示)。该技术显著提高了准确性,尤其是在更难的推理问题上。

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022) ](https://arxiv.org/abs/2208.14271)

此外,他们的句子标签操作技巧基本上消除了幻觉!

Faithful reasoning
来源:《利用大型语言模型进行忠实推理》作者:Antonia Creswell 等人 (2022) ](https://arxiv.org/abs/2208.14271)

启示

这篇论文说明了许多有助于提高大型语言模型可靠性的有用经验教训:

  • 将复杂任务分解为更小、更可靠的子任务
  • 以逐步方式生成答案,并在此过程中进行评估
  • 生成多个可能的答案,并使用另一个模型或函数来选择看起来最好的答案
  • 通过限制模型可以说的内容来减少幻觉(例如,使用句子标签而不是句子)
  • 通过在专门任务上进行微调来最大化模型的性能

要了解更多信息,请阅读完整论文

最少到最多提示

除了在长推理链上表现不佳(这是选择-推理的优势所在)之外,思维链提示在示例短但任务长的情况下也会遇到困难。

方法

最少到最多提示是另一种将推理任务分解为更小、更可靠的子任务的技术。这个想法是通过提示模型“为了解决 {问题},我们首先需要解决:‘”来引导模型完成一个子任务。然后,有了这个子任务,模型就可以生成解决方案。解决方案被附加到原始问题中,然后重复该过程,直到产生最终答案。

Least-to-most prompting
来源:《最少到最多提示使大型语言模型能够进行复杂推理》作者:Denny Zhou 等人 (2022)

结果

当应用于涉及长推理链的基准测试时,使用 code-davinci-002(它针对代码进行了优化,但仍然可以理解文本),作者测得的增益高达 16% -> 99.7%!

Least-to-most prompting results on last-letter-concatenation task Least-to-most prompting results on SCAN Least-to-most prompting results on DROP numerical reasoning
来源:《最少到最多提示使大型语言模型能够进行复杂推理》作者:Denny Zhou 等人 (2022)

启示

尽管最少到最多提示的上述收益令人印象深刻,但它们是在需要长推理链的非常狭窄的任务集上测量的。

不过,它们说明了一个共同的主题:通过 (a) 将复杂任务分解为更小的子任务和 (b) 给模型更多的时间和空间来解决答案来提高可靠性。

要了解更多信息,请阅读完整论文

相关想法

产婆式提示

方法

与前面旨在最大化正确答案可能性的技术不同,另一种方法是使用 GPT-3 生成可能的解释树(包括正确和不正确的解释),然后分析它们之间的关系来猜测哪个集合是正确的。这项技术由 Jaehun Jung 等人于 2022 年 5 月提出(产婆式意味着与苏格拉底式的提问以引出想法相关)。

该方法很复杂,工作原理如下:

  • 首先,构建一个产婆式树,其中每个节点是一个可能为真或为假的陈述:
  • 从一个多项选择题或真/假陈述开始(例如,“战争不能有平局”)
  • 对于问题的每个可能答案,使用模型生成相应的解释(使用类似“战争不能有平局?是的,因为”的提示)
  • 然后,使用问题和生成的解释提示模型,并要求它给出答案。如果通过反转解释(使用类似“说 {解释} 是错误的”的前缀)可以反转答案,则该解释被认为是“逻辑上完整的”。
  • 如果解释在逻辑上不完整,则递归地重复上述过程,将每个解释变成一个真或假的问题,并为每个新问题生成更多解释。
  • 在所有递归解释完成后,您将得到一个解释树,其中每个叶子节点都具有反转解释会反转模型答案的属性。
  • 第二,将树转换为关系图:
  • 对于树中的每个节点,计算模型在每个节点上的相对置信度(从给定解释得到“真”答案的概率推断)
  • 对于树中的每对节点,使用模型来确定它们是蕴含(隐含)还是矛盾
  • 第三,找到最一致的信念集,并将它们视为真实:
  • 具体来说,利用每个节点置信度的强度以及它们之间的逻辑关系,将问题表述为加权最大可满足性问题(MAX-SAT)
  • 使用求解器找到最自洽的信念集,并将它们视为真实

Maieutic prompting Maieutic prompting
来源:《产婆式提示:具有递归解释的逻辑一致推理》作者:Jaehun Jung 等人 (2022)

结果

Maieutic prompting results
来源:《产婆式提示:具有递归解释的逻辑一致推理》作者:Jaehun Jung 等人 (2022)

启示

除了复杂性之外,这种方法的一个限制是它似乎只适用于可以表述为多项选择题的问题。

要了解更多信息,请阅读完整论文

扩展

自我一致性

方法

对于具有离散答案集的问题,提高可靠性的一种简单方法是从模型中采样多个解释和答案(使用正温度),然后选择出现次数最多的最终答案。

Self-consistency method
来源:《自我一致性提高了语言模型中的思维链推理》作者:Xuezhi Wang 等人 (2022)

结果

这项技术在一系列数学和推理基准测试中的准确率提高了 1 到 24 个百分点。(下面绘制的是来自 Google LaMDA 模型的结果;使用 Google 更大的 PaLM 模型,基线更高,但收益稍小。)

Self-consistency results
来源:《自我一致性提高了语言模型中的思维链推理》作者:Xuezhi Wang 等人 (2022)

启示

尽管此技术易于实现,但可能成本高昂。生成一组 10 个答案会将您的成本增加 10 倍。

此外,与许多这些技术一样,它仅适用于具有有限答案集的问题。对于每个答案都是唯一的开放式任务(例如写诗),选择最常见的答案意味着什么并不明显。

最后,当存在多种路径或措辞来达到答案时,此技术应该最有利;如果只有一条路径,那么该技术可能根本没有帮助。极端示例:如果任务是生成单个 token 答案,那么从 100 次生成中选择最常见的 token 与选择具有最高 logprobs 的 token(您可以通过一次生成以 temperature=0 获得)没有区别。

验证器

提高任务性能的另一个关键技术是训练一个验证器或判别器模型来评估主生成模型的输出。如果判别器拒绝输出,则可以重新采样生成模型,直到获得可接受的输出。在许多情况下,判断答案比创建答案更容易,这有助于解释该方法的强大之处。

方法

2021 年,OpenAI 研究人员将此技术应用于小学数学问题,使用了以下过程:

  • 首先,他们对问题和解决方案进行了模型微调
  • 对于训练集中的每个问题,他们生成了 100 个解决方案
  • 这 100 个解决方案中的每一个都根据最终答案是否正确而被自动标记为正确或不正确
  • 使用这些解决方案(其中一些被标记为正确,一些被标记为不正确),他们微调了一个验证器模型来对问题和候选解决方案是否正确进行分类
  • 最后,在测试时,生成模型为每个问题创建 100 个解决方案,然后选择根据验证器模型得分最高的解决方案作为最终答案

Verifier method
来源:《训练验证器来解决数学应用题》作者:Karl Cobbe 等人 (2021)

结果

使用 175B GPT-3 模型和 8,000 个训练示例,该技术将小学数学准确率从约 33% 大幅提高到约 55%。

Verifier results
来源:《训练验证器来解决数学应用题》作者:Karl Cobbe 等人 (2021)

启示

与自我一致性技术类似,此方法可能变得昂贵,因为例如每个任务生成 100 个解决方案会将您的成本增加约 100 倍。

可靠性理论

尽管上述技术在方法上有所不同,但它们都具有提高复杂任务可靠性的目标。它们主要通过以下方式实现:

  • 将不可靠的操作分解为更小、更可靠的操作(例如,选择-推理提示)
  • 使用多个步骤或多个关系来使系统的可靠性大于任何单个组件(例如,产婆式提示)

概率图模型

这种用不太可靠的组件构建可靠系统的范式让人想起概率编程,并且该领域的许多分析技术都可以应用于此。

在论文《语言模型级联》中,David Dohan 等人从概率图模型的范式解释了上述技术:

思维链提示

graphical model of chain of thought prompting
来源:《语言模型级联》作者:David Dohan 等人 (2022)

微调思维链提示 / 自我引导推理器

graphical model of fine-tuned chain of thought prompting
来源:《语言模型级联》作者:David Dohan 等人 (2022)

选择-推理提示

graphical model of selection-inference prompting
来源:《语言模型级联》作者:David Dohan 等人 (2022)

验证器

graphical model of verifiers
来源:《语言模型级联》作者:David Dohan 等人 (2022)

启示

虽然将这些技术表述为概率图模型可能对解决任何特定问题没有直接帮助,但该框架可能有助于选择、组合和发现新技术。

结束语

大型语言模型的研究非常活跃且发展迅速。研究人员不仅在不断改进模型,还在不断加深我们对如何最好地使用这些模型的理解。为了强调这些发展的速度,请注意,我在这里写作(2022 年 9 月)时,上面分享的所有论文都在过去 12 个月内发表。

未来,预计将发布更好的模型和更好的技术。即使这里的具体技术被未来的最佳实践所取代,它们背后的通用原则很可能仍然是任何专家用户工具包的关键组成部分。

参考书目

| 课程 | 论文 | 日期 |

课程 论文 日期
将复杂任务分解为更简单的子任务(并考虑向用户公开中间输出) AI Chains: 通过链接大型语言模型提示实现透明和可控的人机交互 2021 年 10 月
通过生成多个候选者,然后选择看起来最好的一个来改进输出 训练验证器来解决数学应用题 2021 年 10 月
在推理任务上,模型在回答前进行逐步推理时表现更好 思维链提示在大型语言模型中引发推理 2022 年 1 月
通过生成多个解释-答案输出来改进逐步推理,并选择最受欢迎的答案 自我一致性提高了语言模型中的思维链推理 2022 年 3 月
如果您想微调逐步推理器,可以使用多项选择题和答案数据单独进行 STaR:通过推理引导推理 2022 年 3 月
即使没有示例,逐步推理方法也能很好地工作 大型语言模型是零样本推理者 2022 年 5 月
通过交替使用“选择”提示和“推理”提示,您可以做得比逐步推理更好 选择-推理:利用大型语言模型进行可解释的逻辑推理 2022 年 5 月
在长推理问题上,您可以通过将问题分解为逐步解决的片段来改进逐步推理 最少到最多提示使大型语言模型能够进行复杂推理 2022 年 5 月
您可以让模型分析良好和错误的解释,以找出哪些解释集最一致 产婆式提示:具有递归解释的逻辑一致推理 2022 年 5 月
您可以从概率编程的角度思考这些技术,其中系统由不可靠的组件组成 语言模型级联 2022 年 7 月
您可以通过句子标签操作消除幻觉,并通过“暂停器”提示减少错误答案 利用大型语言模型进行忠实推理 2022 年 8 月