提升ChatGPT性能的实用指南:Prompt Engineering 的艺术

时间:2024-10-27 10:27:37

一起探索 Prompt Engineering 的奥秘,并学习如何用它来让 ChatGPT 发挥出最大的潜力。

什么是提示工程?

ChatGPT 是一种大型语言模型,可以生成文本、翻译语言、编写不同类型的创意内容,并以信息丰富的方式回答您的问题。它仍在开发中,但已经学会了执行许多种任务,包括

  • 我会尽力按照你的指示,认真完成你的要求。
  • 我会用我的知识以全面和信息丰富的方式回答您的问题,即使它们是开放式的、具有挑战性的或奇怪的。
  • 我会生成不同创意文本格式的文本内容,如诗歌、代码、脚本、音乐作品、电子邮件、信件等。我会尽力满足你的所有要求。

以下是一些提高 ChatGPT 性能的实用技巧:

  1. 使用简洁和清晰的语言。Prompt 应该尽可能简单明了,避免使用复杂或模糊的词汇和句子。这样可以让 ChatGPT 更容易理解你的意图,也会减少生成错误或无关内容的可能性。
  2. 提供尽可能多的上下文。越多的信息,ChatGPT 就越有可能生成准确和相关的内容。例如,如果你要求 ChatGPT 写一篇关于法国的文章,你可能会提供一些背景信息,比如法国的地理位置、历史和文化。
  3. 使用具体的提示。越具体的提示,ChatGPT 就越有可能生成符合你预期的内容。例如,如果你要求 ChatGPT 写一首关于爱情的诗,你可能会提供一些具体的主题,比如浪漫、失恋或幸福。
  4. 使用开放式提示。开放式提示可以让 ChatGPT 发挥创造力,生成更有创意和有趣的内容。例如,如果你要求 ChatGPT 写一个故事,你可能会提供一个简单的情节,比如一个小男孩在森林里迷路了。
  5. 使用引导性提示。引导性提示可以帮助 ChatGPT 生成更准确和相关的内容。例如,如果你要求 ChatGPT 写一篇关于机器学习的文章,你可能会提供一些具体的主题,比如机器学习的历史、原理和应用。

通过遵循这些技巧,你可以提高 ChatGPT 的性能,生成更准确、更相关、更有创意和有趣的内容。

Prompt engineering Prompt engineering is a technique used in natural language processing (NLP) to improve the performance of language models by providing them with additional context or information. This can be done by providing the model with a prompt, which is a short piece of text that provides the model with information about the task that it is being asked to perform. Prompts can be used to improve the performance of language models on a variety of tasks, including text summarization, question answering, and machine translation.
即时工程 即时工程是自然语言处理 (NLP) 中使用的一种技术,通过为语言模型提供额外的上下文或信息来提高语言模型的性能。这可以通过向模型提供提示来完成,提示是一小段文本,为模型提供有关要求其执行的任务的信息。提示可用于提高语言模型在各种任务上的性能,包括文本摘要、问答和机器翻译。

Prompt engineering is a relatively new technique, but it has quickly become a popular way to improve the performance of language models. This is because prompts can be used to provide language models with information that they would not otherwise have access to, such as the context of a conversation or the structure of a text. This information can help language models to better understand the task that they are being asked to perform, and to produce more accurate and informative results.
即时工程是一项相对较新的技术,但它已迅速成为提高语言模型性能的流行方法。这是因为提示可用于向语言模型提供它们无法访问的信息,例如对话的上下文或文本的结构。这些信息可以帮助语言模型更好地理解它们被要求执行的任务,并产生更准确和信息丰富的结果。


[user]:What are the challenges of prompt engineering?
[用户]:即时工程面临哪些挑战?
[assistant]: There are a few challenges associated with prompt engineering. One challenge is that it can be difficult to create prompts that are effective. Prompts need to be specific enough to provide language models with the information they need to perform the task, but they also need to be general enough to allow the language model to generate a variety of different outputs. Another challenge is that prompt engineering can be computationally expensive. Creating and evaluating prompts can require a lot of time and resources, especially for large language models.
[助理]:即时工程存在一些挑战。挑战之一是创建有效的提示可能很困难。提示需要足够具体,以便为语言模型提供执行任务所需的信息,但它们也需要足够通用,以允许语言模型生成各种不同的输出。另一个挑战是即时工程的计算成本可能很高。创建和评估提示可能需要大量时间和资源,尤其是对于大型语言模型。

There are a few techniques that can be used to make prompt engineering more computationally efficient. One technique is to use pre-trained language models. Pre-trained language models are language models that have been trained on a large corpus of text. This training has given the language models a general understanding of language, which can be used to make prompt engineering more efficient. Another technique is to use active learning. Active learning is a technique that can be used to reduce the number of prompts that need to be evaluated. Active learning works by iteratively evaluating a small number of prompts, and then using the results of these evaluations to select the most promising prompts for further evaluation.
有一些技术可用于提高即时工程的计算效率。一种技术是使用预先训练的语言模型。预训练语言模型是在大型文本语料库上训练的语言模型。这种训练使语言模型对语言有了一般性的理解,可以用来提高即时工程的效率。另一种技术是使用主动学习。主动学习是一种可用于减少需要评估的提示数量的技术。主动学习的工作原理是迭代评估少量提示,然后使用这些评估的结果来选择最有希望的提示进行进一步评估。

提示工程是一门新兴学科,就像是为大语言模型(LLM)设计的"语言游戏"。通过这个"游戏",我们可以更有效地引导 LLM 来处理问题。只有熟悉了这个游戏的规则,我们才能更清楚地认识到 LLM 的能力和局限。

这个"游戏"不仅帮助我们理解 LLM,它也是提升 LLM 能力的途径。有效的提示工程可以提高大语言模型处理复杂问题的能力(比如一些数学推理问题),也可以提高大语言模型的扩展性(比如可以结合专业领域的知识和外部工具,来提升 LLM 的能力)。

提示工程就像是一把钥匙,为我们理解和应用大语言模型打开了新的大门,无论是现在还是未来,它的潜力都是无穷无尽的。

提示工程基础

提示四要素

通常一个 Prompt 会包含以下四个元素中的若干个:

  • 指令:希望 LLM 执行什么任务

  • 上下文:给 LLM 提供一些额外的信息,比如可以是垂直领域信息,从而引导 LLM 给出更好的回答

  • 输入数据:希望从 LLM 得到什么内容的回答

  • 输出格式:引导 LLM 给出指定格式的输出

提升ChatGPT性能的实用指南:Prompt Engineering的艺术

一、理解Prompt Engineering

Prompt Engineering,是一种引导大型语言模型(如ChatGPT)输出特定内容的过程。它允许用户通过控制模型的输出,生成符合其特定需求的文本。为了从ChatGPT获得最佳结果,了解如何正确引导模型是非常重要的。 通过引导模型,用户可以控制模型的输出,生成相关、准确且高质量的文本。

二、Prompt Engineering的元素

Prompt Engineering通常由三个主要元素组成:

  1. 任务:明确而简洁地陈述Prompt要求模型生成的内容。
  2. 指令:模型在生成文本时应遵循的指令。
  3. 角色:模型在生成文本时应扮演的角色。

三、使用Prompt Engineering

使用Prompt Engineering的关键在于提供清晰和具体的指令。例如,如果您正在生成客户服务响应,可以提供“生成响应客户查询”的任务,并提供“响应应该专业并提供准确信息”的指令。

四、指令Prompt技术

指令Prompt技术是一种通过提供特定指令来引导ChatGPT输出的方法。该技术对确保输出相关和高质量非常有用。要使用指令Prompt技术,需要为模型提供明确而简明的任务,以及模型要遵循的具体指令。

例如,生成法律文件,任务:生成法律文件,指令:文件应符合相关法律法规。

五、注意事项

在使用指令Prompt技术时,重要的是要牢记指令应明确具体。

通用技巧

由浅入深

设计提示词经常是一个迭代的过程,需要不断试验才能获得最佳结果。你可以从简单的提示词开始,随着实验深入,逐步添加更多的元素和上下文。在处理复杂任务时,可以将任务分解为简单的子任务,逐步构建并优化。

比如你想让一个语言模型来写一首关于春天的诗。一个简单的提示词可能是:“写一首关于春天的诗。” 随着你对模型输出的观察,你可能发现需要更具体的指示,例如:“写一首四行关于春天的诗,用押韵的方式。”

明确指令

设计有效的提示词,最好是使用明确的命令来指导模型完成你想要的任务,如“写作”,“分类”,“总结”,“翻译”,“排序”等。然后,根据具体任务和应用场景,尝试使用不同的关键词、上下文和数据,找出最佳的组合。

假设你希望模型能够将一段英文翻译成中文。你可以开始使用这样的提示词:“将以下文本翻译成中文”,接着提供你要翻译的英文段落。然而,如果你希望翻译的更具有正式感,你可能需要添加更多上下文:“将以下的正式英文报告翻译成同等正式的中文。”

明确细节

当你需要模型执行特定任务或生成特定风格的内容时,详细且明确的提示词会得到更好的结果。

如果你想要模型生成一段描述美食的文本,你可能会这样指示:“描述一道美味的意大利面。”但是,如果你希望得到关于某个特定菜品的详细描述,你可能需要指示得更具体:“描述一道由新鲜番茄、大蒜、橄榄油和罗勒叶制成的意大利面的味道和口感。”

明确需求

这里的明确类似于给 LLM 限定一些范围,而不是泛泛而谈。

比如你可能希望模型解释一个科学概念,例如:“解释相对论。”但如果你需要用非专业的语言来描述,你可能需要更明确的指示:“用易于理解的非科学语言解释爱因斯坦的相对论。”

正向引导,避免反向限制

设计提示词时,避免指示模型不要做什么,而是明确告诉它应该做什么。这将鼓励更多的确定性,并聚焦于引导模型产生好的回应。

例如,你正在设计一个电影推荐的聊天机器人。一种可能的提示词是:“推荐一部电影,但不要询问任何个人信息。”然而,更有效的提示可能是:“根据全球热门电影推荐一部电影。”

简单提示解析
  • 场景:写一个关于自己的介绍

提示:"Reid 的简历:[粘贴完整的简历在这里]。根据以上信息,写一个关于 Reid 的风趣的演讲者简介。"

分析:这个提示直接提供了 LLM 所需的信息,使得 LLM 能够根据给定的信息来编写一段介绍,并明确了简历的风格和用途。

  • 场景:用五个要点总结一篇文章

提示:"[在这里粘贴全文]。总结上面文章的内容,用五个要点。" 分析:这个提示明确地指出了任务——对文章进行总结,并指定了输出的形式——五个要点。

  • 场景:写一篇关于生产力的博客

提示:"写一篇关于小型企业的生产力重要性的博客文章。"

分析:这个提示提供了明确的上下文,告诉 LLM 所需的内容类型(博客),以及博客文章需要涵盖的具体主题(小型企业的生产力的重要性)。

  • 场景:写一首诗

提示:"以李白的风格写一首关于落叶的诗。"

分析:这个提示要求 LLM 以特定的风格(李白的风格)写诗,并给出了诗的主题(落叶)。这让 LLM 知道了应该采用的写作风格和主题。

  • 场景:关于如何训练小狗的文章

提示:"作为一名专业的狗训练师,写一封电子邮件给一位刚刚得到一只 3 个月大的柯基的客户,告诉他们应该做哪些活动来训练他们的小狗。"

分析:在这个提示中,我们要求 LLM 扮演一个特定的角色(狗训练师),并提供特定的上下文信息,如狗的年龄和类型。我们也指出了我们想要的内容类型(电子邮件)。

提示工程进阶

零/少样本提示

Zero-Shot Prompting:在这种情况下,模型接收到的提示没有包含任何特定任务的示例。这意味着模型需要基于给定的提示,而没有任何相关任务的先前示例,来推断出应该执行的任务。例如,如果我们向模型提供提示 "Translate the following English text to French: 'Hello, how are you?'",那么模型将要根据这个提示,而没有任何额外的翻译示例,来执行翻译任务。

Few-Shot Prompting:在这种情况下,模型接收到的提示包含了一些(通常是几个)特定任务的示例。这些示例作为上下文,提供了关于期望输出的线索。例如,如果我们想要模型进行文本翻译,我们可能会提供如下的提示:

  1. English: 'Cat'
  2. French: 'Chat'
  3. English: 'Dog'
  4. French: 'Chien'
  5. English: 'Bird'
  6. French: 'Oiseau'
  7. English: 'Elephant'

在这个例子中,模型通过前三个英法翻译对的示例,理解了我们希望它将 'Elephant' 从英文翻译成法文。因此,它会输出 'Éléphant'。

思维链提示

思维链的思想其实很简单,就是给 LLM 通提供一些思考的中间过程,可以是用户提供,也可以让模型自己来思考。

当涉及到思维链提示词的设计时,以下是一些常用的词汇和短语,可以用于引导思维的连贯性和逻辑性:

1. 引言部分:首先、首要的是、第一点是、首先要考虑的是、首先需要注意的是、首要问题是、在这个话题上,我们首先要思考的是、首先需要明确的是、首先需要强调的是。

2. 表达因果关系:因此、因而、所以、由此可见、因为、由于、致使、导致、结果是、这表明、这说明、这意味着、由此推断、由此得出、因此可以得出结论。

3. 表达对比和类比:相反、然而、与此相反、与之相对应的是、与其相类似的是、类似于、与此类似、与...相比、与...相对比、与...相类比、与...具有相似之处。

4. 表达递进关系:此外、另外、而且、除此之外、更重要的是、进一步、进而、甚至、不仅如此、更进一步、再者、此外还有。

5. 表达总结和归纳:总之、综上所述、总体来说、归根结底、总结起来、总的来说、简言之、概括地说、总的来看、总而言之。

6. 表达举例和论证:例如、比如、举个例子、以...为例、具体来说、可以举个例子、证明这一点的是、可以看到的是、事实上、实际上、显然、毫无疑问、可以推断出。

7. 表达时间和顺序:首先、其次、接着、然后、随后、紧接着、最后、最终、最后但并非最不重要的、在过去、在现在、在将来、同时、同时也、同时还、同时又。

这些提示词可以帮助您在表达思路和观点时更加流畅和连贯。根据具体的语境和需要,选择适当的提示词来构建清晰的思维链条,使您的论述更具说服力和逻辑性。

少样本思维链:就是用户提供一些“解题步骤”,比如下图所示,左侧直接让 LLM 回答问题时它给出了错误的答案,但是右侧通过在 prompt 中告诉模型解答步骤,最终给出的答案就是准确的。

图片

零样本思维链:嫌弃提供中间过程太麻烦?偷懒的办法来了,零样本思维链通过一句 magic prompt 实现了这一目标“Let’s think step by step

图片

然而过于简化的方法肯定也会存在一定局限性,比如 LLM 可能给出的是错误的思考过程。因此有了自动化思维链,通过采用不同的问题得到一些推理过程让 LLM 参考。它的核心思想分两步

  • 首先进行问题聚类,把给定数据集的问题分为几个类型

  • 采样参考案例,每个类型问题选择一个代表性问题,然后用零样本思维链来生成推理的中间过程。

图片

Explicit 思维链

这个工作的主要目的是让 LLM 在对话时考虑用户的状态,比如用户的 personality, empathy, 和 psychological,遵循的还是思维链的套路,并且将思维链拆成了多个步骤(LLM 每次回答一点,不是一次性基于思维链全部回答)。这样的好处在于用户还可以修改、删除中间过程的一些回答,原始的上下文和所有中间过程都会用于最终回答的生成。

图片

主动提示

本质上还是思维链,由于人工设计的思维链或者自动化思维链的结果也并不一定理想(思维链的设计跟具体任务相关),因此提出了用不确定性来评估思维链的好坏,然后再让人来修正一些不确定性比较大的思维链。

图片

思维树

Tree of Thoughts (ToT)是思维链的进一步拓展,主要想解决 LM 推理过程存在如下两个问题:

  • 不会探索不同的可能选择分支

  • 无法在节点进行前后向的探索

ToT 将问题建模为树状搜索过程,包括四个步骤:问题分解、想法生成,状态评价以及搜索算法的选择。

图片

头脑风暴提示

主要考虑的是代码生成方向,不过思想还是可以用在各种领域的提问的。核心思想分为三步

  • 头脑风暴:通过多个 prompt 喂给 LLM 得到多样化的“思路”

  • 选择最佳思路:这里用了一个神经网络模型来打分,并用最高分的思路来作为最终 prompt

  • 代码生成:基于问题和选择出来的最佳思路进行代码生成

图片

多模态思维链

今年一些需要多模态 LLM 也被提出,自然也有了一些多模态提示工程的尝试,它包括两个阶段:

  • 理由生成:在这个阶段,我们将语言和视觉输入提供给模型,以生成推理的理由。这个理由可以看作是解决问题的中间步骤或思考链的一部分。这个过程可以帮助模型理解问题的上下文,并为下一步的答案推断做好准备。

  • 答案推断:在这个阶段,我们将从第一阶段生成的理由添加到原始的语言输入中。然后,我们将更新后的语言输入和原始的视觉输入一起提供给模型,以推断出答案。这个过程允许模型利用在理由生成阶段获得的信息来做出更准确的推断。

图片

一致性提示

核心思想就是少数服从多数,多让模型回答几次(这里的提问也用到了少样本思维链),然后在 LLM 的多次回答中选择出现多次的答案。

图片

Progressive-Hint 提示

Progressive-Hint Prompting(PHP)类似于一致性提示的进阶,试图模拟人类推理的过程,通过反复检查和修正答案来提高推理的准确性。具体来说,PHP 方法会对上一次的推理过程进行处理,然后将其合并到初始问题中,让模型进行再次推理。当连续两次的推理结果一致时,就认为得出的答案是准确的,并返回最终答案。

在 PHP 方法中,首次与 LLM 交互使用的 prompt 称为基础提示(Base Prompting)。基础提示可以是标准提示、CoT 提示或者其他改进版本的提示。在随后的交互中,将使用 PHP 提示,直到最新的两个答案一致。

图片

Plan-and-Solve 提示

Plan-and-Solve 提示的设计理念是让模型制定一个解决问题的计划,然后按照这个计划来执行子任务,以此达到明确生成推理步骤的效果。

图片

为了进一步增强 PS 提示的效果,作者扩展了它,形成了一种名为 PS+的新提示方式。PS+提示在 PS 提示的基础上,添加了“pay attention to calculation”这样的引导语句,要求模型在计算过程中更加精确。为了避免模型在处理问题时忽略了关键的变量和数值,PS+提示还增加了“extract relevant variables and their corresponding numerals”这样的引导语句。此外,为了强化模型在推理过程中计算中间结果的能力,PS+提示也加入了“calculate intermediate results”这样的引导语句。通过这种方式,PS+提示进一步提高了模型在处理多步推理任务时的效果。

图片

增强(检索)提示

增强 LLM 本质上在做的事情还是提高提示词的信息,从而更好地引导模型。这里主要可以有两种方式,一种是用自己的私有知识库来扩充 LLM 的知识,一种是借用 LLM 的知识库来提高 prompt 的信息量。

外部知识库
本地知识库

这里可以结合网上的信息或者个人的本地信息,如果是结合网上的信息(比如 newbing),其实就是需要结合一些爬虫工具,捞出一些相关信息一起拼到 prompt 当中(也会需要比如做一些相关性的比较、摘要等)。结合本地知识库也是目前业界内比较关注的方向,主要有以下几步:

  • 将本地知识库转为 embedding 保存

  • 对于用户提问转为 embedding,然后去数据库查相关的信息

  • 检索出本地知识库相关的信息后,比如可以用如下提示拼接上检索出来的信息

Use the following pieces of context

这样 LLM 在回答时就能利用上私有的知识了。

图片

LLM 知识库
知识生成提示

因为 LLM 本身具有大量的通用知识储备,只是你不提示它一下可能难以在大量知识中找出来给你回答。对于一些问题,我们可以先让 LLM 产生一些相关的知识或事实(比如 Generate some numerical facts about xxx),然后再利用这些辅助信息和原来的问题来提问,Knowledge 处放上 LLM 给出的一些事实信息。

  1. Question:
  2. Knowledge:
  3. Explain and Answer:

图片

前面提到的 Clue And Reasoning 提示其实也属于是在借用 LLM 的知识库。

Clue And Reasoning 提示

Clue and Reasoning Prompting (CARP) 是一种用于文本分类的方法,它首先提示大型语言模型(LLMs)寻找表面线索,例如关键词、语调、语义关系、引用等,然后基于这些线索引导出一个诊断推理过程进行最终决策。

图片

(其实也适用于其他场景,让模型帮忙提供点线索再给出最终答案)

知识反刍提示

尽管现有的预训练语言模型(PLMs)在许多任务上表现出色,但它们仍然存在一些问题,比如在处理知识密集型任务时,它们往往不能充分利用模型中的潜在知识。

图片

作者们提出了一种名为"Knowledge Rumination"的方法,通过添加像"As far as I know"这样的提示,让模型回顾相关的潜在知识,并将其注入回模型以进行知识巩固。这种方法的灵感来自于动物的反刍过程,即动物会将食物从胃中带回口中再次咀嚼,以便更好地消化和吸收。

文章提出了三种不同类型的提示:

  • Background Prompt:这种提示旨在帮助模型思考背景知识。提示的形式是"As far as I know [MASK]"。这种提示鼓励模型回顾和思考其已经知道的一般信息或背景知识。

  • Mention Prompt:这种提示用于引发模型对提及的记忆。形式是"About [Mention], I know [MASK]"。这种提示鼓励模型回顾和思考与特定主题或实体(即"[Mention]")相关的知识。

  • Task Prompt:这种提示旨在帮助模型回忆任务的记忆。例如,对于情感分析,提示是"About sentiment analysis, I know [MASK]"。这种提示鼓励模型回顾和思考与特定任务(例如情感分析)相关的知识。

懒人万能提示工程

目前网上已经有不少 prompt 优化工具,比如 chatgpt 的插件中就有一个不错的工具 prompt perfect,能够基于用户给的 prompt 进行优化,再喂给 chatgpt 进行提问

图片

当然,经过前面那么多提示工程的介绍,大家也可以思考一下,如何用一个提示工程来帮助自己写提示工程,下面是笔者之前做的一个工具,感兴趣的也可以试试用 chatgpt 来优化自己的 prompt,提示词的效果肉眼可见提升。

图片

总结

Prompt Engineering 是一种优化 ChatGPT 性能的方法,它涉及创建有效的提示(prompts)来引导模型生成更准确、有用的回复。下面是一些提升 ChatGPT 性能的实用指南,帮助你进行 Prompt Engineering 的艺术:

1. 明确任务:首先,明确你的任务或目标。清楚地定义你希望 ChatGPT 帮助你完成的任务是非常重要的。这样可以帮助你更好地设计提示,引导模型产生与任务相关的回答。

2. 提供上下文:为了帮助模型更好地理解任务和问题,你可以在提示中提供相关的上下文信息。这可以是先前的对话片段、相关的背景知识或任何与任务相关的信息。通过提供上下文,你可以让模型更好地理解问题并生成更有信息量的回答。

3. 引导生成:使用明确的指导性语言来引导模型生成所需的答案。你可以提供一些示例句子,指导模型以特定的方式回答问题。这可以是期望的格式、关键词或任何帮助模型理解任务的指示。

4. 控制输出长度:通过限制生成的文本长度,可以控制回答的详细程度。这对于避免生成冗长或不相关的回答很有帮助。你可以通过设置最大生成长度或使用截断技术来实现这一点。

5. 多次尝试和迭代:Prompt Engineering 是一个迭代的过程。尝试不同的提示和设计,观察模型生成的回答如何改变,并根据需要进行调整。通过多次尝试和迭代,你可以逐步提高模型的性能。

6. 结合调用API:如果你的应用场景允许,你可以结合使用 ChatGPT 和调用其他API来获取更准确的回答。例如,你可以使用实体识别或问题分类的API来帮助 ChatGPT 理解问题,并生成更具针对性的回答。

7. 控制生成风格:如果你希望模型生成特定风格的回答,你可以通过提示的语言和指导来影响模型的生成风格。你可以使用具体的词汇、控制情感色彩或制定特定的回答准则来实现这一点。

8. 人工编辑和筛选:在生产环境中,你可以考虑引入人工编辑和筛选来对 ChatGPT 生成的回答进行审核和改进。这可以帮助你确保生成的回答质量符合期望,并进一步提高模型的性能。

Prompt Engineering 需要不断的实验和调整,以找到最适合你特定任务的提示和设计。通过综合运用上述指南,你可以提高 ChatGPT 的性能,并使其更好地满足你的需求。

参考文献

  • Prompt Engineering Guide

  • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

  • Multimodal Chain-of-Thought Reasoning in Language Models

  • Automatic Chain of Thought Prompting in Large Language Models

  • Self-Consistency Improves Chain of Thought Reasoning in Language Models

  • Chain-of-thought prompting for responding to in-depth dialogue questions with LLM

  • Think Outside the Code: Brainstorming Boosts Large Language Models in Code Generation

  • Tree of Thoughts: Deliberate Problem Solving with Large Language Models

  • Active Prompting with Chain-of-Thought for Large Language Models

  • Generated Knowledge Prompting for Commonsense Reasoning

  • Large Language Models are Zero-Shot Reasoners

  • A universal local knowledge base solution based on vector database and GPT3.5

  • Text Classification via Large Language Models

  • Progressive-Hint Prompting Improves Reasoning in Large Language Models

  • Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models

  • Knowledge Rumination for Pre-trained Language Models

提升ChatGPT性能的实用指南:Prompt Engineering的艺术