提高可靠性的技术
当 GPT-3 执行任务失败时,你应该怎么办?
- 寻找更好的提示以得出更可靠的答案?
- 投资数千个示例来微调自定义模型?
- 假设模型无法完成任务,然后继续?
没有简单的答案——这取决于情况。但是,如果您的任务涉及逻辑推理或复杂性,请考虑尝试本文中的技术来构建更可靠、性能更高的提示。
为什么 GPT-3 在复杂任务上失败
如果你被要求将 13 乘以 17,你会立即想到答案吗?对于我们大多数人来说,可能不是。然而,这并不意味着人类无法进行两位数的乘法运算。只需几秒钟和一些笔和纸,计算出 13 x 17 = 130 + 70 + 21 = 221 并不太费力。
同样,如果你给 GPT-3 一个太复杂的任务,在它计算下一个标记所需的时间内无法完成,它可能会做出不正确的猜测。然而,与人类相似,这并不一定意味着模型无法完成任务。有了一些时间和空间来推理,模型仍然可以可靠地回答。
例如,如果您提出text-davinci-002
以下关于杂耍球的数学问题,它会错误地回答:
问:杂耍演员有 16 个球。 一半的球是高尔夫球,一半的高尔夫球是蓝色的。 有多少个蓝色高尔夫球?
A:有 8 个蓝色高尔夫球。
这是否意味着 GPT-3 不能做简单的数学题?不; 事实上,事实证明,通过用 提示模型Let's think step by step
,模型可靠地解决了问题:
问:杂耍演员有 16 个球。 一半的球是高尔夫球,一半的高尔夫球是蓝色的。 有多少个蓝色高尔夫球?
A:让我们逐步考虑。
一共有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 的明显故障有时可以通过更好的提示来纠正,从而帮助模型引导自己朝着正确的输出方向发展。
如何提高复杂任务的可靠性
本文的其余部分分享了提高大型语言模型在复杂任务上的可靠性的技术。尽管某些技术特定于某些类型的问题,但其中许多技术都是建立在可应用于广泛任务的一般原则之上的,例如:
- 给予更明确的指示
- 将复杂任务拆分为更简单的子任务
- 构建指令以保持模型执行任务
- 在回答之前提示模型解释
- 询问许多可能答案的理由,然后综合
- 生成许多输出,然后使用模型选择最好的一个
- 微调自定义模型以最大化性能
将复杂的任务拆分成更简单的任务
给模型更多时间和空间思考的一种方法是将任务分解成更简单的部分。
例如,考虑一个任务,我们向模型询问有关某些文本的多项选择题——在本例中,是一个线索游戏。当直接询问时,text-davinci-002
无法将线索 3 和 5 放在一起,并且回答错误:
根据以下线索回答下列多项选择题。线索:
1. 斯嘉丽小姐是休息室里唯一的人。
2.拿烟斗的人在厨房里。
3. 穆斯塔德上校是天文台里唯一的人。
4. Plum 教授既不在图书馆也不在台球室。
5.拿着烛台的人在天文台。问题:穆斯塔德上校拿着烛台在天文台吗?
(a) 是; 穆斯塔德上校拿着烛台在天文台
(b) 否; 穆斯塔德上校不在天文台拿着烛台
(c) 未知; 没有足够的信息来确定穆斯塔德上校是否带着烛台在天文台解决方案:
(c) 未知; 没有足够的信息来确定穆斯塔德上校是否带着烛台在天文台
-
尽管线索 3 和 5 确定了上校 Mustard 是天文台中唯一的人并且天文台中的人拥有烛台,但模型无法将它们组合成 (a) 是的正确答案。
但是,我们可以将任务分为三部分,而不是直接询问答案:
- 首先,一条一条地过一遍线索,考虑线索是否具有潜在相关性
- 第二、结合相关线索推理出问题的答案
- 第三,写下最终答案:(a)、(b) 或 ©
使用以下线索,按照以下步骤回答以下多项选择题:
(1) 首先,一条一条地梳理线索,考虑线索是否具有潜在相关性
(2)其次,结合相关线索推理出问题的答案
(3) 第三,将答案映射到多项选择答案之一:(a)、(b) 或 (c)线索:
1. 斯嘉丽小姐是休息室里唯一的人。
2.拿烟斗的人在厨房里。
3. 穆斯塔德上校是天文台里唯一的人。
4. Plum 教授既不在图书馆也不在台球室。
5.拿着烛台的人在天文台。问题:穆斯塔德上校拿着烛台在天文台吗?
(a) 是; 穆斯塔德上校拿着烛台在天文台
(b) 否; 穆斯塔德上校不在天文台拿着烛台
(c) 未知; 没有足够的信息来确定穆斯塔德上校是否带着烛台在天文台解决方案:
(1) 首先,一条一条地梳理线索,考虑线索是否具有潜在相关性:
线索 1:斯嘉丽小姐是休息室里唯一的人。 这条线索无关紧要。
线索 2:拿着烟斗的人在厨房里。 这条线索无关紧要。
线索 3:穆斯塔德上校是天文台里唯一的人。 这个线索是相关的。
线索 4:普拉姆教授既不在图书馆也不在台球室。 这条线索无关紧要。
线索 5:拿着烛台的人在天文台。 这个线索是相关的。(2)其次,结合相关线索推理出问题的答案:
线索3和线索5都说拿烛台的人在天文台。 天文台里只有穆斯塔德上校一个人,所以拿烛台的人就是穆斯塔德上校。(3) 三、写出最终答案:
(a) 是; 芥末上校拿着烛台在天文台
通过给模型更多的时间和空间来思考,并按照推理计划引导它,它能够找出 (a) 是的正确答案。
将复杂指令拆分为更小的子任务的另一个好处是,它可以帮助让模型专注于每个子任务。
例如,如果我们要求text-davinci-002
用原始语言对文本进行总结,模型可以回归为英语:
使用文本的原始语言总结文本。 摘要应该是一句话长。Text:
"""
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.
"""Summary:
文本解释说,统计学是一门研究数据的可变性、收集、组织、分析、解释和呈现,以及按照概率法则生成数据的随机过程的科学。
但是,如果我们先让模型识别文本的语言,然后再对文本进行总结,就会变得更可靠:
首先,确定文本的语言。 其次,用课文原文概括课文。 摘要应该是一句话长。Text:
"""
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.
"""Language:
SpanishLa 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 说明了一个示例:
资料来源:Takeshi Kojima 等人的*Large Language Models are Zero-Shot Reasoners *(2022)
结果
将这个简单的技巧应用于 MultiArith 数学数据集,作者发现Let's think step by step
准确度翻了四倍,从 18% 到 79%!
资料来源:Takeshi Kojima 等人的Large Language Models are Zero-Shot Reasoners .(2022).
启示
虽然这个Let's think step by step
技巧在数学问题上效果很好,但它并不是对所有任务都有效。作者发现它对多步算术问题、符号推理问题、策略问题和其他推理问题最有帮助。它对解决简单的数学问题或常识性问题没有帮助,而且大概对许多其他非推理任务也没有帮助。
资料来源:Takeshi Kojima 等人的*Large Language Models are Zero-Shot Reasoners. *(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) 对每个标准,判断车辆购买是否满足
- {Criterion} 让我们一步步来思考。 {解释} {是或否,或者如果问题不适用则 N/A}。
(2) 依次考虑每个标准后,将最终答案表述为“因为{原因},答案很可能是{是或否}。”国税局指导:
"""
如果您购买的汽车或卡车符合以下条件,您可能有资格根据第 30D 条获得联邦税收抵免:
- 车辆是否至少有四个轮子?
- 车辆重量是否小于 14,000 磅?
- 车辆是否从可从外部电源充电的至少 4 千瓦时的电池中获取能量?
- 车辆是在 2022 年之前的一年购买的吗?- 如果是,制造商销售的合格车辆是否少于 200,000 辆? (特斯拉和通用汽车已售出超过 200,000 辆符合条件的车辆。)
- 车辆是在 2022 年之后的一年购买的吗?- 如果是,该车辆是否出现在以下北美组装车辆列表中? (唯一在北美组装的电动汽车是奥迪 Q5、宝马 330e、宝马 X5、雪佛兰 Bolt EUV、雪佛兰 Bolt EV、克莱斯勒 Pacifica PHEV、福特翼虎 PHEV、福特 F 系列、福特野马 MACH E、福特全顺 Van、GMC 悍马皮卡、GMC 悍马 SUV、吉普大切诺基 PHEV、吉普牧马人 PHEV、林肯飞行员 PHEV、林肯海盗船插件、Lucid Air、日产聆风、Rivian EDV、Rivian R1S、Rivian R1T、Tesla Model 3、Tesla Model S、Tesla Model X、Tesla Model Y、沃尔沃 S60、BMW 330e、Bolt EV、凯迪拉克 Lyriq、梅赛德斯 EQS SUV 和日产聆风。)
"""问题:我可以为 2021 年购买的丰田普锐斯 Prime 申请联邦税收抵免吗?解决方案:(1) 对每个标准,判断车辆购买是否满足
- 车辆是否至少有四个轮子? 让我们一步一步地思考。
Toyota Prius Prime 有四个轮子,所以答案是肯定的。
- 车辆重量是否小于 14,000 磅? 让我们一步一步地思考。 丰田普锐斯 Prime 的重量不到 14,000 磅,所以答案是肯定的。
- 车辆是否从可从外部电源充电的至少 4 千瓦时的电池中获取能量? 让我们一步一步地思考。 Toyota Prius Prime 拥有至少 4 千瓦时的电池,可以通过外部电源充电,所以答案是肯定的。
- 车辆是在 2022 年之前的一年购买的吗? 让我们一步一步地思考。 丰田普锐斯 Prime 是 2021 年购买的,也就是 2022 年之前,所以答案是肯定的。
- 车辆是在 2022 年之后的一年购买的吗? 不适用
- 如果是,该车辆是否出现在以下北美组装车辆列表中? 不适用(2) 依次考虑每个标准后,将最终答案表述为“因为{原因},答案很可能是{是或否}。”因为丰田普锐斯 Prime 符合联邦税收抵免的所有标准,所以答案很可能是肯定的。
小样本示例
方法
可以通过多种方式提示模型推理出其答案。正如Jason Wei 和 Denny Zhou 等人所研究的那样,一种方法是用几个例子(‘few-shot’)进行演示。来自谷歌。这是一个示例性的小样本思维链提示:
资料来源:思想链提示在大型语言模型中引发推理Jason Wei 和 Denny Zhou 等人.(2022)
人工标注者编写的推理链的更多演示:
资料来源:思想链提示在大型语言模型中引发推理Jason Wei 和 Denny Zhou 等人.(2022)
(请注意,人们质疑梨是否真的会漂浮)
结果
在对小学数学问题进行测试时,作者发现思维链提示使解决率增加了三倍,从 18% 增加到 57%。
资料来源:思想链提示在大型语言模型中引发推理Jason Wei 和 Denny Zhou 等人.(2022)
除了数学问题,思维链提示还提升了与运动理解、抛硬币跟踪和最后一个字母连接相关问题的表现。在大多数情况下,不需要太多示例就可以使性能提升达到饱和(少于 8 个左右)。
资料来源:思想链提示在大型语言模型中引发推理Jason Wei 和 Denny Zhou 等人.(2022)
要了解更多信息,请阅读全文。
启示
相对于Let's think step by step
技术,基于少量示例的方法的一个优点是,您可以更轻松地指定您希望模型在得出最终答案之前执行的推理的格式、长度和风格。这在模型最初没有以正确的方式或深度进行推理的情况下特别有用。
微调
方法
通常,为了在任务中获得最佳性能,您需要微调自定义模型。然而,使用解释来微调模型可能需要数千个示例解释,而这些解释的编写成本很高。
2022 年,Eric Zelikman 和吴玉怀等人。发布了一个聪明的程序,使用几次提示生成可用于微调模型的解释数据集。这个想法是使用少量提示来生成候选解释,并且只保留产生正确答案的解释。然后,要获得对某些不正确答案的额外解释,请重试 few-shot 提示,但将正确答案作为问题的一部分给出。作者称他们的程序为 STaR(自学推理机):
资料来源: STaR: Eric Zelikman 和 Yujuai Wu 等人的自举推理。(2022)
使用这种技术,您可以将微调的好处与思维链提示的好处结合起来,而无需编写数千个示例解释。
结果
当作者将这种技术应用于 Common Sense Q&A 数据集时,他们发现 STaR 的表现优于单独的思维链提示 (73% > 37%) 和单独的微调 (73% > 60%):
资料来源: STaR: Eric Zelikman 和 Yujuai Wu 等人的自举推理。(2022)
要了解更多信息,请阅读全文。
启示
使用少量提示来扩展或修改微调数据集是一种可以在解释写作之外推广的想法。例如,如果您有大量想要训练的非结构化文本,您可能会找到机会使用提示从非结构化文本中提取结构化数据集,然后在该结构化数据集上微调自定义模型。
思维链提示的扩展
还发布了一些思维链提示的扩展。
选择推理提示
方法
由 Antonia Creswell 等人发布,思维链技术的一种扩展是将生成解释和答案的单一提示分成更小的部分。首先,提示从文本中选择相关的事实子集(“选择提示”)。然后,第二个提示从所选事实中推断出结论(“推理提示”)。然后这些提示在一个循环中交替产生多个推理步骤并最终得出最终答案。作者在下图中说明了这个想法:
资料来源:选择推理:利用大型语言模型进行可解释的逻辑推理, Antonia Creswell 等人.(2022)
结果
当应用于7B参数模型时,作者发现,在bAbi和Proof Writer基准任务(这两项任务都需要更长的推理步骤序列)上,相对于思想链提示,选择推理提示显著提高了性能。他们实现的最佳性能结合了选择推理提示和微调。
资料来源:选择推理:利用大型语言模型进行可解释的逻辑推理, Antonia Creswell 等人。(2022)
启示
尽管这些基准的收益很大,但这些基准是专门选择的,因为它们需要更长的推理序列。对于不需要多步骤推理的问题,收益可能较小。
研究结果突出了使用大型语言模型的几个一般经验教训。 首先,将复杂的任务拆分为较小的任务是提高可靠性和性能的好方法;任务越原子化,模型出错的空间就越小。第二,获得最大性能通常意味着将微调与您选择的任何方法相结合。
To learn more, read the full paper.
忠实推理架构
在发表选择推理提示技术几个月后,作者在后续论文中扩展了该技术,并提出了以下想法:
- 弄清楚选择推理循环应该何时停止或继续
- 添加价值函数以帮助搜索多个推理路径
- 通过微调模型来推理句子标签(例如,sen1),而不是写出句子本身,从而减少虚假事实的幻觉
方法
在最初的选择推理技术中,专门的“选择”和“推理”提示交替进行,以选择事实并从这些事实中进行推理,结合生成一系列推理步骤。
作者用两个额外的组件扩展了这项技术。
首先,作者添加了一个“吊带”模型,在每个推理步骤之后,系统都会询问到目前为止的推理是否足以回答问题。如果是,那么模型会生成最终答案。
“吊带”模型有两个优点:
- 它可以根据需要告诉选择推理过程停止或继续进行。
- 如果这个过程永远不会停止,你将得不到答案,这通常比幻觉猜测更可取
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)
其次,作者添加了一个价值函数,用于评估推理步骤的质量并搜索多个推理轨迹。这呼应了提高可靠性的共同主题;不是从模型中生成单个答案,而是生成一组答案,然后使用某种类型的价值函数/鉴别器/验证器模型来选择最佳答案。
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)
除了这两个扩展之外,作者还使用了一个技巧来减少虚假事实的幻觉。他们不是要求模型写出事实句子,而是微调模型以使用句子标签(例如,sen1)。这有助于防止模型对提示上下文中未提及的虚假事实产生幻觉。
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)
结果
作者在两个基准上评估了他们的技术:ProofWriter 任务(未显示)和EntailmentBankQA(显示)。该技术大大提高了准确性,尤其是在解决更难的推理问题时。
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)]( https://arxiv.org/abs/2208.14271 )
此外,他们的句子标签操作技巧从根本上消除了幻觉!
资料来源:Antonia Creswell 等人使用大型语言模型进行的忠实推理。(2022)]( https://arxiv.org/abs/2208.14271 )
启示
本文阐述了一些有助于提高大型语言模型可靠性的经验教训:
- 将复杂任务拆分为更小、更可靠的子任务
- 逐步生成您的答案,并在整个过程中对其进行评估
- 生成许多可能的答案并使用另一个模型或函数来选择看起来最好的答案
- 通过限制模型可以说的内容来减少幻觉(例如,通过使用句子标签而不是句子)
- 通过在专门任务上微调模型来最大化模型的性能
要了解更多信息,请阅读全文。
从最少到最多的提示
除了在长推理链(选择推理的优势所在)上表现不佳之外,当示例很短但任务很长时,思维链提示尤其困难。
方法
Least-to-most
提示是另一种将推理任务分解为更小、更可靠的子任务的技术。这个想法是通过用类似的东西提示它从模型中引出一个子任务To solve {question}, we need to first solve: "
。然后,有了这个子任务,模型就可以生成一个解决方案。解决方案将附加到原始问题并重复该过程,直到产生最终答案。
资料来源:Denny Zhou 等人的Least-to-most Prompting Enables Complex Reasoning in Large Language Models 。(2022)
结果
当应用于涉及长推理链的基准测试时code-davinci-002
(针对代码进行了优化,但仍然可以理解文本),作者测得的收益高达 16% -> 99.7%!
资料来源:Denny Zhou 等人的Least-to-most Prompting Enables Complex Reasoning in Large Language Models 。(2022)
启示
尽管上述从最少到最多提示的收益令人印象深刻,但它们是在一组非常狭窄的需要长推理链的任务上衡量的。
尽管如此,它们还是说明了一个共同的主题:通过 (a) 将复杂任务分解为更小的子任务以及 (b) 为模型提供更多时间和空间来计算答案来提高可靠性。
要了解更多信息,请阅读全文。
相关想法
美化提示
方法
与之前试图最大限度地提高正确答案可能性的技术不同,另一种方法是使用GPT-3生成一个可能的解释树(包括正确和不正确的解释),然后分析它们的关系,猜测哪一组是正确的。这项技术是由Jaehun Jung等人在2022年5月创造的maeutics Promotion(maeutics的意思是与苏格拉底提出问题以引出想法的方法有关)。
方法比较复杂,工作原理如下:
-
首先,构建一棵数学树,其中每个节点都是一个可能为真或为假的陈述:
- 从多项选择题或真/假陈述开始(例如
War cannot have a tie
) - 对于问题的每个可能答案,使用模型生成相应的解释(带有类似提示
War cannot have a tie? True, because
) - 然后,用问题和生成的解释提示模型,并要求它产生答案。如果颠倒解释(使用前缀如
It is wrong to say that {explanation}
)来颠倒答案,则该解释被认为是“逻辑上完整的”。 - 如果一个解释在逻辑上不是完整的,则递归地重复上述过程,每个解释都变成一个 True 或 False 问题,并为每个新问题生成更多解释。
- 完成所有递归解释后,您最终会得到一棵解释树,其中树上的每个叶子都具有反转解释反转模型答案的属性。
- 从多项选择题或真/假陈述开始(例如
-
其次,将树转换为关系图:
- 对于树中的每个节点,计算模型对每个节点的相对置信度(根据给出解释的答案的概率推断
True
) - 对于树中的每一对节点,使用模型来确定它们是蕴含(隐含)还是矛盾
- 对于树中的每个节点,计算模型对每个节点的相对置信度(根据给出解释的答案的概率推断
-
第三,找到最一致的信念集并将其视为真实:
- 具体来说,利用每个节点的信念强度和它们之间的逻辑关系,将问题表述为加权最大可满足性问题(MAX-SAT)
- 使用求解器找到最自洽的信念集,并将其视为真实
资料来源: Maieutic Prompting: Jaehun Jung 等人的逻辑一致推理与递归解释。(2022)
结果
资料来源: Maieutic Prompting: Jaehun Jung 等人的逻辑一致推理与递归解释。(2022)
启示
除了复杂性之外,这种方法的一个局限性是它似乎只适用于可以作为多项选择提出的问题。
要了解更多信息,请阅读全文。
扩展
自洽
方法
对于具有一组离散答案的任务,提高可靠性的一种简单方法是从模型中抽取多个解释和答案(使用正温度),然后选择最常出现的最终答案。
资料来源:Xuezhi Wang 等人的自我一致性改进了语言模型中的思维链推理。(2022)
结果
这项技术在一套数学和推理基准测试中将准确度提高了 1 到 24 个百分点。(下图是谷歌 LaMDA 模型的结果;使用谷歌更大的 PaLM 模型,基线更高,但收益略小。)
资料来源:Xuezhi Wang 等人的自我一致性改进了语言模型中的思维链推理。(2022)
启示
虽然这种技术实施起来很简单,但成本可能很高。生成一组 10 个答案将使您的成本增加 10 倍。
此外,与其中许多技术一样,它仅适用于答案有限的任务。对于每个答案都是唯一的开放式任务(例如写一首诗),选择最常见答案的意义并不明显。
最后,当有多种路径或措辞可以得出答案时,这种技术应该是最有用的;如果只有一条路径,那么该技术可能根本无济于事。一个极端的例子:如果任务是生成单个标记答案,那么从 100 代中获取最常见的标记与获取具有最高 logprobs 的标记(您可以在 temperature=0 时通过单代获得)没有什么不同.
验证者
另一个提高任务性能的关键技术是训练验证器或鉴别器模型来评估主生成模型的输出。如果鉴别器拒绝输出,那么您可以对生成模型重新采样,直到获得可接受的输出。在许多情况下,判断一个答案比创建一个答案更容易,这有助于解释这种方法的强大之处。
方法
2021 年,OpenAI 研究人员使用以下程序将此技术应用于小学数学问题:
- 首先,他们微调了一个关于问题和解决方案的模型
- 对于训练集中的每个问题,他们生成了 100 个解决方案
- 根据最终答案是否正确,这 100 个解决方案中的每一个都被自动标记为正确或不正确
- 使用这些解决方案,其中一些标记为正确,一些标记为错误,他们微调了验证器模型以对问题和候选解决方案是正确还是错误进行分类
- 最后,在测试时,生成模型为每个问题创建 100 个解决方案,根据验证者模型选择得分最高的一个作为最终答案
资料来源:Karl Cobbe 等人的训练验证者解决数学单词问题。(2021)
结果
借助 175B GPT-3 模型和 8,000 个训练示例,该技术将小学数学准确率从约 33% 大幅提高到约 55%。
资料来源:Karl Cobbe 等人的训练验证者解决数学单词问题。(2021)
启示
与自洽技术类似,这种方法可能会变得昂贵,因为每个任务生成 100 个解决方案会使您的成本增加大约 100 倍。
可靠性理论
尽管上述技术的方法各不相同,但它们的目标都是提高复杂任务的可靠性。他们主要通过以下方式做到这一点:
- 将不可靠的操作分解为更小、更可靠的操作(例如,选择推理提示)
- 使用多个步骤或多个关系使系统的可靠性高于任何单个组件(例如,美化提示)
概率图形模型
这种试图用不太可靠的组件构建可靠系统的范例让人想起概率编程,该领域的许多分析技术都可以应用于这一领域。
在论文Language Model Cascades中,David Dohan 等人。在概率图模型的范式中解释上述技术:
思维链提示
资料来源:David Dohan 等人的语言模型级联。(2022)
微调的思维提示链/自学推理机
资料来源:David Dohan 等人的语言模型级联。(2022)
选择推理提示
资料来源:David Dohan 等人的语言模型级联。(2022)
验证者
资料来源:David Dohan 等人的语言模型级联。(2022)
启示
尽管将这些技术表述为概率图形模型可能不会立即对解决任何特定问题有用,但该框架可能有助于选择、组合和发现新技术。
结语
对大型语言模型的研究非常活跃并且发展迅速。研究人员不仅继续改进模型,他们还继续提高我们对如何最好地使用这些模型的理解。为了强调这些发展的速度,请注意上面分享的所有论文都是在过去 12 个月内发表的(正如我在 2022 年 9 月写的那样)。
在未来,期待更好的模型和更好的技术被发布。即使这里的具体技术被未来的最佳实践所掩盖,它们背后的一般原则可能仍然是任何专家用户工具包的关键部分。
参考书目
课程 | 论文 | 日期 |
---|---|---|
将复杂任务分解为更简单的子任务(并考虑向用户公开中间输出) | AI 链:通过链接大型语言模型提示进行透明和可控的人机交互 | 2021年10月 |
您可以通过生成许多候选对象然后选择看起来最好的一个来提高输出 | 训练验证者解决数学单词问题 | 2021年10月 |
在推理任务中,模型在回答之前逐步推理时会做得更好 | 思维链提示在大型语言模型中引发推理 | 2022 年 1 月 |
您可以通过生成许多解释答案输出并选择最受欢迎的答案来改进逐步推理 | 自洽性改进了语言模型中的思维链推理 | 2022 年 3 月 |
如果你想微调一个循序渐进的推理机,你可以单独使用多项选择题和答案数据来完成 | STaR:用推理引导推理 | 2022 年 3 月 |
循序渐进的推理方法即使在零个例子的情况下也能很好地工作 | 大型语言模型是零样本推理机 | 2022年5月 |
通过交替“选择”提示和“推理”提示,您可以比逐步推理做得更好 | 选择推理:利用大型语言模型进行可解释的逻辑推理 | 2022年5月 |
在长推理问题上,您可以通过将问题拆分成多个部分以逐步解决来改进逐步推理 | 从最少到最多的提示使大型语言模型中的复杂推理成为可能 | 2022年5月 |
您可以让模型分析好的解释和错误的解释,以确定哪一组解释最一致 | Maieutic Prompting:逻辑一致推理与递归解释 | 2022年5月 |
您可以从概率编程的角度考虑这些技术,其中系统包含不可靠的组件 | 语言模型级联 | 2022 年 7 月 |
你可以通过句子标签操作来消除幻觉,你可以通过“吊带”提示来减少错误答案 | 使用大型语言模型进行忠实推理 | 2022年8月 |