提示工程是一门相对较新的学科,用于开发和优化提示,以有效地将语言模型(LM)用于各种应用和研究主题。提示工程技能有助于更好地理解大型语言模型(LLM)的能力和局限性。 **研究人员使用prompt engineering来提高LLM在广泛的常见和复杂任务上的能力,如问答和算术推理。**开发人员使用提示工程来设计与LLM和其他工具交互的健壮和有效的提示技术。 提示工程不仅仅是设计和开发提示。它包含了对与LLM交互和开发有用的广泛技能和技术。这是接口、构建和理解llm功能的一项重要技能。您可以使用prompt engineering来提高llm的安全性并构建新的功能,例如用领域知识和外部工具增强LLM。 由于对与LLM一起开发的高度兴趣,我们创建了这个新的prompt工程指南,其中包含所有最新的论文、学习指南、模型、讲座、参考资料、新的LLM功能和与prompt工程相关的工具。 视频:
地址:https://github.com/dair-ai/Prompt-Engineering-Guide
1. 引言
提示工程是一门相对较新的学科,用于开发和优化提示,以有效地将语言模型(LM)用于各种应用和研究主题。提示工程技能有助于更好地理解大型语言模型(LLM)的能力和局限性。研究人员使用prompt engineering来提高LLM在广泛的常见和复杂任务上的能力,如问答和算术推理。开发人员使用提示工程来设计与LLM和其他工具交互的鲁棒和有效的提示技术。 本指南涵盖了提示的基础知识,对如何使用提示来交互和指示大型语言模型(LLM)提供了一个粗略的想法。 LLM设置
在处理提示时,您将通过API或直接与LLM交互。您可以配置一些参数以获得不同的提示结果。 Temperature ——简而言之,Temperature 越低,结果越确定,因为总是选择可能性最高的下一个token。升高的Temperature可能导致更多的随机性,鼓励更多多样化或创造性的输出。我们实际上是在增加其他可能token的权重。在应用方面,我们可能希望对基于事实的QA等任务使用较低的Temperature,以鼓励更事实和更简洁的回答。对于诗歌生成或其他创造性任务,提高Temperature可能是有益的。 Top_p -类似地,使用Top_p(一种称为核采样的Temperature采样技术),您可以控制模型生成响应的确定性程度。如果你正在寻找准确和事实的答案,请保持这个数字较低。如果您正在寻找更多样化的响应,请增加到更高的值。 一般的建议是改变其中一个,而不是两个都改变。 在开始使用一些基本示例之前,请记住,您的结果可能会因您使用的LLM版本而有所不同。 提示的基础知识
提示的元素 随着我们介绍提示工程可能提供的越来越多的示例和应用程序,您将注意到有一些组成提示的元素。 提示(prompt)可以包含以下任何一个组件。 * 指令(Instruction):希望模型执行的特定任务或指令 * 上下文 context ——可以包含外部信息或额外的上下文,这些信息可以引导模型做出更好的响应 * 输入数据——是我们感兴趣的输入或问题 * 输出指示器 Indicator :表示输出的类型或格式。
提示并不需要所有组件,其格式取决于当前的任务。我们将在接下来的指南中接触到更多具体的例子。 设计提示的一般技巧
提示示例
在前一节中,我们介绍并给出了如何提示LLMs的基本示例。 在本节中,我们将提供更多示例,说明如何使用提示来实现不同的任务,并介绍其中的关键概念。通常,学习概念的最好方法是通过示例。下面我们将介绍几个示例,说明如何使用精心设计的提示来执行不同类型的任务。 主题: * 文本摘要 * 信息提取 * 问题回答 * 文本分类 * 谈话 * 代码生成 * 推理
2. 提示技术
在这一点上,很明显,改进提示有助于在不同的任务上获得更好的结果。这就是prompt engineering背后的全部思想。 虽然基本的例子很有趣,但在本节中,我们将介绍更高级的提示工程技术,使我们能够实现更复杂和有趣的任务。 * **Zero-shot Prompting **
**Few-shot Prompting **
**Chain-of-Thought Prompting **
**Self-Consistency **
**Generate Knowledge Prompting **
**Automatic Prompt Engineer **
**Active-Prompt **
**Directional Stimulus Prompting **
**ReAct **
**Multimodal CoT **
Graph Prompting
3. 提示应用
Program-Aided Language Models * Generating Data
4. 模型
ChatGPT
在本节中,我们将介绍ChatGPT的最新提示工程技术,包括提示、应用、限制、论文和额外的阅读材料。 主题:
ChatGPT介绍 * 回顾对话任务与ChatGPT的对话 * Python的笔记本 ChatGPT是OpenAI训练的一种可以进行对话交互的新模型。该模型被训练成遵循提示中的指示,在对话的上下文中提供适当的响应。ChatGPT可以帮助回答问题、建议食谱、以某种风格写歌词、生成代码等等。
ChatGPT使用来自人类反馈的强化学习(RLHF)进行训练。虽然这个模型比之前的GPT迭代更有能力(也经过训练以减少有害和不真实的输出),但它仍然有局限性。让我们通过具体的例子来介绍一些功能和限制。 你可以在这里使用ChatGPT的研究预览,但对于下面的示例,我们将使用OpenAI Playground上的聊天模式。 * GPT-4 在本节中,我们将介绍GPT-4最新的prompt工程技术,包括提示、应用、限制和其他阅读材料。
GPT-4介绍 最近,OpenAI发布了GPT-4,这是一个大型多模态模型,可以接受图像和文本输入并发出文本输出。它在各种专业和学术基准上实现了人类水平的表现。 书册:
**
**
课件: