Update: Chinese translation

- Update Chinese translation of the techniques section
- For a better reading experience on the Chinese internet, modify the spacing between Chinese and English characters.
pull/413/head
RealTong 3 months ago
parent cbc37f5c7d
commit 3de62e5bd3
No known key found for this signature in database
GPG Key ID: 5231719D046AFA48

@ -2,7 +2,7 @@
import ContentFileNames from 'components/ContentFileNames'
时至今日,改进提示显然有助于在不同任务上获得更好的结果。这就是提示工程背后的整个理念。
时至今日,改进提示显然有助于在不同任务上获得更好的结果。这就是提示工程背后的整个理念。
尽管基础示例很有趣,但在本节中,我们将介绍更高级的提示工程技术,使我们能够完成更复杂和有趣的任务。

@ -4,9 +4,9 @@ import { Callout, FileTree } from 'nextra-theme-docs'
import {Screenshot} from 'components/screenshot'
import ACTIVE from '../../img/active-prompt.png'
思维链CoT方法依赖于一组固定的人工注释范例。问题在于这些范例可能不是不同任务的最有效示例。为了解决这个问题[Diao等人2023](https://arxiv.org/pdf/2302.12246.pdf)最近提出了一种新的提示方法称为Active-Prompt以适应LLMs到不同的任务特定示例提示用人类设计的CoT推理进行注释
思维链CoT方法依赖于一组固定的人工注释范例。问题在于这些范例可能不是不同任务的最有效示例。为了解决这个问题[Diao 等人2023](https://arxiv.org/pdf/2302.12246.pdf)最近提出了一种新的提示方法,称为 Active-Prompt以适应 LLMs 到不同的任务特定示例提示(用人类设计的 CoT 推理进行注释)。
下面是该方法的说明。第一步是使用或不使用少量CoT示例查询LLM。对一组训练问题生成*k*个可能的答案。基于*k*个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
下面是该方法的说明。第一步是使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成 *k* 个可能的答案。基于 *k* 个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
<Screenshot src={ACTIVE} alt="ACTIVE" />
图片来源:[Diao等人2023](https://arxiv.org/pdf/2302.12246.pdf)

@ -8,19 +8,21 @@ import APECOT from '../../img/ape-zero-shot-cot.png'
<Screenshot src={APE} alt="APE" />
图片来源:[Zhou等人2022](https://arxiv.org/abs/2211.01910)
[Zhou等人2022](https://arxiv.org/abs/2211.01910) 提出了自动提示工程师APE这是一个用于自动指令生成和选择的框架。指令生成问题被构建为自然语言合成问题使用LLMs作为黑盒优化问题的解决方案来生成和搜索候选解。
[Zhou等人2022](https://arxiv.org/abs/2211.01910) 提出了自动提示工程师 APE这是一个用于自动指令生成和选择的框架。指令生成问题被构建为自然语言合成问题使用 LLMs 作为黑盒优化问题的解决方案来生成和搜索候选解。
第一步涉及一个大型语言模型(作为推理模型),该模型接收输出演示以生成任务的指令候选项。这些候选解将指导搜索过程。使用目标模型执行指令,然后根据计算的评估分数选择最合适的指令。
APE发现了一个比人工设计的“让我们一步一步地思考”提示更好的零样本CoT提示[Kojima等人2022](https://arxiv.org/abs/2205.11916))。
APE 发现了一个比人工设计的“让我们一步一步地思考”提示更好的零样本 CoT 提示 [Kojima 等人2022](https://arxiv.org/abs/2205.11916))。
提示“让我们一步一步地解决这个问题以确保我们有正确的答案。”引发了思维链的推理并提高了MultiArith和GSM8K基准测试的性能
提示“让我们一步一步地解决这个问题,以确保我们有正确的答案。”引发了思维链的推理,并提高了 MultiArith GSM8K 基准测试的性能:
<Screenshot src={APECOT} alt="APECOT" />
图片来源:[Zhou等人2022](https://arxiv.org/abs/2211.01910)
本文涉及与提示工程相关的重要主题,即自动优化提示的想法。虽然我们在本指南中没有深入探讨这个主题,但如果您对此主题感兴趣,以下是一些关键论文:
- [Prompt-OIRL](https://arxiv.org/abs/2309.06553) - 使用离线逆强化学习来生成与查询相关的提示。
- [OPRO](https://arxiv.org/abs/2309.03409) - 引入使用 LLMs 优化提示的思想:让 LLMs “深呼吸”提高数学问题的表现。
- [AutoPrompt](https://arxiv.org/abs/2010.15980) - 提出了一种基于梯度引导搜索的方法,用于自动创建各种任务的提示。
- [Prefix Tuning](https://arxiv.org/abs/2101.00190) - 是一种轻量级的fine-tuning替代方案为NLG任务添加可训练的连续前缀。
- [Prefix Tuning](https://arxiv.org/abs/2101.00190) - 是一种轻量级的 fine-tuning 替代方案,为 NLG 任务添加可训练的连续前缀。
- [Prompt Tuning](https://arxiv.org/abs/2104.08691) - 提出了一种通过反向传播学习软提示的机制。

@ -1,6 +1,6 @@
# 自我一致性
也许在提示工程中更高级的技术之一是自我一致性。由[Wang等人2022](https://arxiv.org/pdf/2203.11171.pdf)提出自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本CoT采样多个不同的推理路径并使用生成结果选择最一致的答案。这有助于提高CoT提示在涉及算术和常识推理的任务中的性能。
也许在提示工程中更高级的技术之一是自我一致性。由 [Wang等人2022](https://arxiv.org/pdf/2203.11171.pdf) 提出,自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。
让我们尝试以下算术推理示例:
@ -14,7 +14,7 @@
35
```
输出是错误的我们如何通过自我一致性来改进这个问题让我们试试。我们将使用Wang等人2022年的少量样本范例表17
输出是错误的!我们如何通过自我一致性来改进这个问题?让我们试试。我们将使用 Wang 等人 2022 年的少量样本范例(表 17
*提示:*
```
@ -47,17 +47,17 @@ Q当我6岁时我的妹妹是我的一半年龄。现在我70岁了
A
```
*输出1*
*输出 1*
```
当我6岁时我的妹妹是我的一半年龄也就是3岁。现在我70岁了所以她是70-3 = 67岁。答案是67。
```
*输出2*
*输出 2*
```
当叙述者6岁时他的妹妹是他年龄的一半也就是3岁。现在叙述者70岁了他的妹妹应该是70-3 = 67岁。答案是67。
```
*输出3*
*输出 3*
```
当我6岁时我的妹妹是我的一半年龄也就是3岁。现在我70岁了所以她是70/2 = 35岁。答案是35。
```

@ -3,6 +3,7 @@
import {Screenshot} from 'components/screenshot'
import COT from '../../img/cot.png'
import ZEROCOT from '../../img/zero-cot.png'
import AUTOCOT from '../../img/auto-cot.png'
## 链式思考CoT提示
@ -11,7 +12,7 @@ import ZEROCOT from '../../img/zero-cot.png'
图片来源:[Wei等人2022](https://arxiv.org/abs/2201.11903)
在[Wei等人2022](https://arxiv.org/abs/2201.11903)中引入的链式思考CoT提示通过中间推理步骤实现了复杂的推理能力。您可以将其与少样本提示相结合以获得更好的结果以便在回答之前进行推理的更复杂的任务。
[Wei等人2022](https://arxiv.org/abs/2201.11903) 中引入的链式思考CoT提示通过中间推理步骤实现了复杂的推理能力。您可以将其与少样本提示相结合以获得更好的结果以便在回答之前进行推理的更复杂的任务。
*提示:*
```
@ -54,13 +55,13 @@ A
请记住,作者声称这是足够大的语言模型才会出现的新兴能力。
## 零样本COT提示
## 零样本 COT 提示
<Screenshot src={ZEROCOT} alt="Zero-shot COT" />
图片来源:[Kojima等人2022](https://arxiv.org/abs/2205.11916)
最近提出的一个新想法是[零样本CoT](https://arxiv.org/abs/2205.11916)Kojima等人2022年它基本上涉及将“让我们逐步思考”添加到原始提示中。让我们尝试一个简单的问题看看模型的表现如何
最近提出的一个新想法是 [零样本CoT](https://arxiv.org/abs/2205.11916) Kojima 等人2022年它基本上涉及将“让我们逐步思考”添加到原始提示中。让我们尝试一个简单的问题看看模型的表现如何
*提示:*
```
@ -89,4 +90,21 @@ A
最后您吃了1个苹果所以您还剩下10个苹果。
```
令人印象深刻的是,这个简单的提示在这个任务中非常有效。这在您没有太多示例可用于提示时特别有用。
令人印象深刻的是,这个简单的提示在这个任务中非常有效。这在您没有太多示例可用于提示时特别有用。
## 自动思维链Auto-CoT
当使用思维链提示时,这个过程需要手工制作有效且多样化的例子。这种手动工作可能会导致次优解决方案。[Zhang et al. 2022](https://arxiv.org/abs/2210.03493) 提出了一种消除人工的方法,即利用 LLMs “让我们一步一步地思考” 提示来生成一个接一个的推理链。这种自动过程仍然可能在生成的链中出现错误。为了减轻错误的影响演示的多样性很重要。这项工作提出了Auto-CoT它对具有多样性的问题进行采样并生成推理链来构建演示。
Auto-CoT 主要由两个阶段组成:
- 阶段1**问题聚类**:将给定问题划分为几个聚类
- 阶段2**演示抽样**:从每组数组中选择一个具有代表性的问题,并使用带有简单启发式的 Zero-Shot-CoT 生成其推理链
简单的启发式方法可以是问题的长度例如60 个 tokens和理由的步骤数例如5 个推理步骤)。这鼓励模型使用简单而准确的演示。
该过程如下图所示:
<Screenshot src={AUTOCOT} alt="AUTOCOT" />
图片来源:[Zhang等人2022](https://arxiv.org/abs/2210.03493)
Auto-CoT 的代码可在这里找到:[Github](https://github.com/amazon-science/auto-cot)。

@ -4,13 +4,13 @@ import { Callout, FileTree } from 'nextra-theme-docs'
import {Screenshot} from 'components/screenshot'
import DSP from '../../img/dsp.jpeg'
[Li等人2023](https://arxiv.org/abs/2302.11520)提出了一种新的提示技术以更好地指导LLM生成所需的摘要。
[Li 等人2023](https://arxiv.org/abs/2302.11520)提出了一种新的提示技术,以更好地指导 LLM 生成所需的摘要。
训练了一个可调节的策略LM来生成刺激/提示。越来越多地使用RL来优化LLM。
训练了一个可调节的策略 LM 来生成刺激/提示。越来越多地使用RL来优化 LLM。
下图显示了方向性刺激提示与标准提示的比较。策略LM可以很小并且可以优化以生成指导黑盒冻结LLM的提示。
下图显示了方向性刺激提示与标准提示的比较。策略 LM 可以很小,并且可以优化以生成指导黑盒冻结 LLM 的提示。
<Screenshot src={DSP} alt="DSP" />
图片来源:[Li等人2023](https://arxiv.org/abs/2302.11520)
图片来源:[Li 等人2023](https://arxiv.org/abs/2302.11520)
完整示例即将推出!

@ -2,6 +2,8 @@
虽然大型语言模型展示了惊人的零样本能力,但在使用零样本设置时,它们在更复杂的任务上仍然表现不佳。少样本提示可以作为一种技术,以启用上下文学习,我们在提示中提供演示以引导模型实现更好的性能。演示作为后续示例的条件,我们希望模型生成响应。
根据 [Touvron et al. 2023](https://arxiv.org/pdf/2302.13971.pdf) 等人的在 2023 年的论文,当模型规模足够大时,小样本提示特性开始出现 [(Kaplan et al., 2020)](https://arxiv.org/abs/2001.08361)。
让我们通过[Brown等人2020年](https://arxiv.org/abs/2005.14165)提出的一个例子来演示少样本提示。在这个例子中,任务是在句子中正确使用一个新词。
*提示:*

@ -5,11 +5,11 @@ import GENKNOW from '../../img/gen-knowledge.png'
<Screenshot src={GENKNOW} alt="GENKNOW" />
图片来源:[Liu等人2022](https://arxiv.org/pdf/2110.08387.pdf)
图片来源:[Liu 等人 2022](https://arxiv.org/pdf/2110.08387.pdf)
LLM继续得到改进其中一种流行的技术是能够融合知识或信息以帮助模型做出更准确的预测。
LLM 继续得到改进,其中一种流行的技术是能够融合知识或信息,以帮助模型做出更准确的预测。
使用类似的思路,模型是否也可以在做出预测之前用于生成知识呢?这就是[Liu等人2022](https://arxiv.org/pdf/2110.08387.pdf)的论文所尝试的——生成知识以作为提示的一部分。特别是,这对于常识推理等任务有多大帮助?
使用类似的思路,模型是否也可以在做出预测之前用于生成知识呢?这就是 [Liu 等人 2022](https://arxiv.org/pdf/2110.08387.pdf) 的论文所尝试的——生成知识以作为提示的一部分。特别是,这对于常识推理等任务有多大帮助?
让我们尝试一个简单的提示:
@ -23,7 +23,7 @@ LLM继续得到改进其中一种流行的技术是能够融合知识或信
是。
```
这种错误揭示了LLM在执行需要更多关于世界的知识的任务时的局限性。我们如何通过生成知识来改进呢
这种错误揭示了 LLM 在执行需要更多关于世界的知识的任务时的局限性。我们如何通过生成知识来改进呢?
首先,我们生成一些“知识”:
@ -58,9 +58,9 @@ LLM继续得到改进其中一种流行的技术是能够融合知识或信
高尔夫球是一项精密的球杆运动,竞争选手(或高尔夫球手)使用许多类型的球杆,用最少的杆数将球打入球场上一系列洞中。目标是以最低的分数完成比赛,该分数是通过将每个洞上所用的杆数相加计算出来的。得分最低的选手赢得比赛。
```
我们使用[Liu等人2022](https://arxiv.org/pdf/2110.08387.pdf)的论文中提供的提示。
我们使用 [Liu等人2022](https://arxiv.org/pdf/2110.08387.pdf) 的论文中提供的提示。
下一步是将知识整合并得出预测。我将问题重新格式化为QA格式以指导答案格式。
下一步是将知识整合并得出预测。我将问题重新格式化为 QA 格式,以指导答案格式。
*提示:*
```
@ -71,7 +71,7 @@ LLM继续得到改进其中一种流行的技术是能够融合知识或信
解释和答案:
```
*答案1置信度非常高*
*答案 1置信度非常高*
```
不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。
```
@ -84,7 +84,7 @@ LLM继续得到改进其中一种流行的技术是能够融合知识或信
解释和答案:
```
*答案2置信度要低得多*
*答案 2置信度要低得多*
```
是的,高尔夫球的一部分是试图获得比其他人更高的得分。每个选手都试图以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。得分最低的选手赢得比赛。
```

@ -4,14 +4,14 @@ import { Callout, FileTree } from 'nextra-theme-docs'
import {Screenshot} from 'components/screenshot'
import PAL from '../../img/pal.png'
[Gao等人2022](https://arxiv.org/abs/2211.10435)提出了一种使用LLMs读取自然语言问题并生成程序作为中间推理步骤的方法。被称为程序辅助语言模型PAL它与思维链提示不同因为它不是使用自由形式文本来获得解决方案而是将解决步骤卸载到类似Python解释器的编程运行时中。
[Gao 等人2022](https://arxiv.org/abs/2211.10435)提出了一种使用 LLMs 读取自然语言问题并生成程序作为中间推理步骤的方法。被称为程序辅助语言模型PAL它与思维链提示不同因为它不是使用自由形式文本来获得解决方案而是将解决步骤卸载到类似 Python 解释器的编程运行时中。
<Screenshot src={PAL} alt="PAL" />
图片来源:[Gao等人2022](https://arxiv.org/abs/2211.10435)
图片来源:[Gao 等人2022](https://arxiv.org/abs/2211.10435)
让我们以LangChain和OpenAI GPT-3为例。我们有兴趣开发一个简单的应用程序它能够解释所提出的问题并利用Python解释器提供答案。
让我们以 LangChain OpenAI GPT-3 为例。我们有兴趣开发一个简单的应用程序,它能够解释所提出的问题,并利用 Python 解释器提供答案。
具体来说我们有兴趣创建一个功能允许使用LLM回答需要日期理解的问题。我们将为LLM提供一个提示其中包括一些示例这些示例是从[这里](https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py)采用的。
具体来说,我们有兴趣创建一个功能,允许使用 LLM 回答需要日期理解的问题。我们将为 LLM 提供一个提示,其中包括一些示例,这些示例是从[这里](https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py)采用的。
这是我们需要导入的包:
@ -97,6 +97,18 @@ llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)
```
这将输出以下内容:
```
# If today is 27 February 2023 and I was born exactly 25 years ago, then I was born 25 years before.
today = datetime(2023, 2, 27)
# I was born 25 years before,
born = today - relativedelta(years=25)
# The answer formatted with %m/%d/%Y is
born.strftime('%m/%d/%Y')
```
`llm_out` 是一段 `python` 代码,我们可以使用 `exec` 执行它:
```python
exec(llm_out)
print(born)

@ -7,21 +7,21 @@ import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png'
为了提高大语言模型的性能使其更可靠,一个重要的提示工程技术是将任务分解为许多子任务。 确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。 这就是所谓的链式提示prompt chaining一个任务被分解为多个子任务根据子任务创建一系列提示操作。
链式提示可以完成很复杂的任务。LLM可能无法仅用一个非常详细的提示完成这些任务。在链式提示中提示链对生成的回应执行转换或其他处理直到达到期望结果。
链式提示可以完成很复杂的任务。LLM 可能无法仅用一个非常详细的提示完成这些任务。在链式提示中,提示链对生成的回应执行转换或其他处理,直到达到期望结果。
除了提高性能链式提示还有助于提高LLM应用的透明度增加控制性和可靠性。这意味着您可以更容易地定位模型中的问题分析并改进需要提高的不同阶段的性能。
除了提高性能,链式提示还有助于提高 LLM 应用的透明度,增加控制性和可靠性。这意味着您可以更容易地定位模型中的问题,分析并改进需要提高的不同阶段的性能。
链式提示在构建LLM驱动的对话助手和提高应用程序的个性化用户体验方面非常有用。
链式提示在构建 LLM 驱动的对话助手和提高应用程序的个性化用户体验方面非常有用。
## 链式提示使用示例
### 文档问答中的链式提示
提示链可以用于不同的场景这些场景可能涉及多个操作或转换。例如LLM的一个常见用途是根据大型文本文档回答问题。想要更好阅读大文本文档可以设计两个不同的提示第一个提示负责提取相关引文以回答问题第二个提示则以引文和原始文档为输入来回答给定的问题。换句话说可以创建两个不同的提示来执行根据文档回答问题的任务。
提示链可以用于不同的场景这些场景可能涉及多个操作或转换。例如LLM 的一个常见用途是根据大型文本文档回答问题。想要更好阅读大文本文档,可以设计两个不同的提示,第一个提示负责提取相关引文以回答问题,第二个提示则以引文和原始文档为输入来回答给定的问题。换句话说,可以创建两个不同的提示来执行根据文档回答问题的任务。
下面的第一个提示根据问题从文档中提取相关引文。请注意,为了简化,我们为文档添加了一个占位符`{{文档}}`。要测试此提示,您可以从维基百科复制并粘贴一篇文章,例如这个关于[提示工程](https://zh.wikipedia.org/wiki/提示工程)的页面。由于此任务使用了较长的上下文我们使用了OpenAI的`gpt-4-1106-preview`模型。您也可以将此提示与其他长上下文LLM如Claude一起使用。
下面的第一个提示根据问题从文档中提取相关引文。请注意,为了简化,我们为文档添加了一个占位符`{{文档}}`。要测试此提示,您可以从维基百科复制并粘贴一篇文章,例如这个关于[提示工程](https://zh.wikipedia.org/wiki/提示工程)的页面。由于此任务使用了较长的上下文,我们使用了 OpenAI `gpt-4-1106-preview` 模型。您也可以将此提示与其他长上下文 LLM Claude一起使用。
提示1:
提示 1:
```
你是一个很有帮助的助手。你的任务是根据文档回答问题。第一步是从文档中提取与问题相关的引文,由####分隔。请使用<quotes></quotes>输出引文列表。如果没有找到相关引文,请回应“未找到相关引文!”。
@ -30,11 +30,11 @@ import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png'
####
```
这是整个提示的截图,包括通过`user`角色传递的问题。
这是整个提示的截图,包括通过 `user` 角色传递的问题。
<Screenshot src={PC1} alt="Prompt Chaining Part 1" />
提示1的输出
提示 1 的输出:
```
<quotes>
- Chain-of-thought (CoT) prompting[27]
@ -54,7 +54,7 @@ import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png'
在第一个提示中返回的引文现在可以用作下面第二个提示的输入。您可以对这些引文进行清理,比如移除引用标志。可以在提示链中新建另一个提示来移除或使用这些引用标志,但现在您可以忽略这些。然后,第二个提示接收由第一个提示提取的相关引文,并根据文档和这些提取的引文生成一个有帮助的回答。第二个提示可以是以下内容:
提示2
提示 2
```
根据从文档中提取的相关引文(由<quotes></quotes>分隔)和原始文档(由####分隔),请构建对问题的回答。请确保答案准确、语气友好且有帮助。
@ -78,7 +78,7 @@ import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png'
</quotes>
```
提示2的输出
提示 2 的输出:
```
文档中提到的提示技术包括:
@ -100,4 +100,4 @@ import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png'
如您所见,简化并创建提示链是一种有用的提示方法,其中响应需要经过多个操作或转换。作为练习,您可以自由设计一个提示,它会在将响应作为最终回应发送给应用程序用户之前,移除响应中的引用标志(例如,`[27]`)。
您还可以在这份[文档](https://docs.anthropic.com/claude/docs/prompt-chaining)中找到更多关于提示链的示例这些示例利用了Claude LLM。我们的示例灵感来源于他们并采用了他们的示例。
您还可以在这份[文档](https://docs.anthropic.com/claude/docs/prompt-chaining)中找到更多关于提示链的示例,这些示例利用了 Claude LLM。我们的示例灵感来源于他们并采用了他们的示例。

@ -6,7 +6,7 @@ import REACT from '../../img/react.png'
import REACT1 from '../../img/react/table1.png'
import REACT2 from '../../img/react/alfworld.png'
从 [Yao等人2022](https://arxiv.org/abs/2210.03629) 引入了一个框架,其中 LLMs 以交错的方式生成 *推理轨迹* 和 *任务特定操作* 。
从 [Yao 等人2022](https://arxiv.org/abs/2210.03629) 引入了一个框架,其中 LLMs 以交错的方式生成 *推理轨迹* 和 *任务特定操作* 。
生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况。操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。
@ -18,7 +18,7 @@ ReAct 框架允许 LLMs 与外部工具交互来获取额外信息,从而给
ReAct 的灵感来自于 “行为” 和 “推理” 之间的协同作用,正是这种协同作用使得人类能够学习新任务并做出决策或推理。
链式思考 (CoT) 提示显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力,以及其他任务 [(Wei等人2022)](https://arxiv.org/abs/2201.11903)。但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。
链式思考 (CoT) 提示显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力,以及其他任务 [(Wei 等人2022)](https://arxiv.org/abs/2201.11903)。但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。
ReAct 是一个将推理和行为与 LLMs 相结合通用的范例。ReAct 提示 LLMs 为任务生成口头推理轨迹和操作。这使得系统执行动态推理来创建、维护和调整操作计划,同时还支持与外部环境(例如Wikipedia)的交互,以将额外信息合并到推理中。下图展示了 ReAct 的一个示例以及执行问题回答所涉及的不同步骤。

Loading…
Cancel
Save