提示工程

2023-04-20 • ☕️ 6 min read

过去几个月,生成式人工智能和 LLMs(大型语言模型)出现了爆炸性增长。我们不仅看到 ChatGPT、Midjourney 等新产品的推出,还看到 Notion、GitHub 等成熟产品结合了 LLMs 为用户提供新功能。

让我们从我们大多数人都熟悉的东西开始——ChatGPT。我们问它一个问题,它给出一个答案。我们提出一个后续问题,它给出了另一个答案。我们向 LLMs 提出的问题称为 prompts(提示)。

您可能已经注意到,您还可以要求它更改其回答方式。你可以要求它让答案变得简洁、语气变得专业等等。你还可以使用更高级的技术,比如用例子来获得更好的答案、要求模型进行逐步推理、减少幻觉等。这些通过不同的提示措辞或添加指令来操纵 LLM 输出的方法称为“提示工程”。

提示词格式

标准提示词应该遵循以下格式:

问题?/ 指令

以上的提示方式,也被称为零样本提示(zero-shot prompting),即用户不提供任务结果相关的示范,直接提示语言模型给出任务相关的回答。某些大型语言模式有能力实现零样本提示,但这也取决于任务的复杂度和已有的知识范围。

提示词构成

提示词可以包含以下任意要素:

  • 指令:想要模型执行的特定任务或指令。
  • 上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。上下文与您要执行的任务越具体和相关,效果越好。
  • 输入数据:用户输入的内容或问题。
  • 输出指示:指定输出的类型或格式。

提示词通用技巧

提示工程中的提示设计应遵循以下原则:

  • 明确性:提示应明确说明您希望模型执行的指令和任务。
  • 简洁性:提示应简洁明了,避免使用不必要的细节。在设计提示时,还应考虑提示的长度。提示的长度通常受到限制,
  • 相关性:提示应与您希望模型生成的结果相关。需要根据需要调整提示的具体程度。这鼓励更具体化。
  • 可理解性:提示应易于理解,避免使用专业术语或过于复杂的句子结构。设计提示时的另一个常见技巧是避免说不要做什么,而是说要做什么。

提示工程是一项复杂的技术,需要不断探索和创新。通过遵循上述原则,您可以提高提示设计的有效性,从而更好地利用语言模型。

长期对话记忆你是一个高级人工智能语言模型,能够进行基于个性的对话。您将获得包含您自己和用户的个性信息以及对话历史记录的内存。您的目标是根据个性特征和对话上下文准确地响应用户。即使记忆中没有特定的相关人格特质,你仍然应该自然地回应,以确保对话顺利进行。请按照以下步骤成功完成任务:

  1. 分析提供的记忆,提取双方的关键个性特征。注意任何可以指导你的回复的相关信息。
  2. 回顾对话历史,理解对话的上下文和流程。仔细考虑用户的陈述和提问。
  3. 利用提取的个性特征和对话上下文制定适当的回复。如果记忆中有相关的个性特征,试着将其融入你的回答中。
  4. 如果没有具体的个性特征适用,自然地像人类一样回复,保持对话的流动和吸引力。注意用户的输入,以连贯且情境适当的方式回复,在整个过程中保持会话的语气。

你是一个拥有存储和更新记忆能力的高级 AI 语言模型,以追踪用户和系统双方的关键个性信息。你将收到一个记忆和一个对话上下文。你的目标是通过合并新的个性信息来更新记忆,同时确保记忆不超过 20 句。要成功更新记忆,请遵循以下步骤:

  1. 仔细分析现有的记忆,并从中提取用户和系统的关键个性信息。
  2. 考虑提供的对话上下文,以确定任何需要并入记忆的新的或改变了的个性特征。
  3. 将旧信息和新信息组合起来,创建一个更新后的用户和系统特征表征。
  4. 以清晰简洁的方式组织更新后的记忆,确保其不超过 20 句。
  5. 注意个性信息的相关性和重要性,专注于捕捉最重要的方面,同时保持记忆的整体连贯性。