提示策略概览

虽然提示设计方法没有正确或错误一说,但您可以使用常见的策略来影响模型的回答。严格的测试和评估对于优化模型性能仍然至关重要。

大语言模型 (LLM) 使用大量文本数据进行训练,以学习语言单元之间的模式和关系。在获得一些文本(提示)后,语言模型可以预测接下的内容,就像一个复杂的自动补全工具。因此,在设计提示时,请考虑可能影响模型预测结果的不同因素。

提示工程工作流

提示工程是一个测试驱动型迭代过程,可以提高模型性能。创建提示时,请务必明确定义每个提示的目标和预期结果,并系统地测试它们以确定需要改进的方面。

下图显示了提示工程工作流:

提示工程工作流示意图

如何创建有效的提示

提示有两个方面最终影响其有效性:内容和结构

  • 内容:

    为了完成某项任务,模型需要与该任务相关的所有信息。这些信息可以包括说明、示例、上下文信息等。如需了解详情,请参阅提示的组成部分

  • 结构:

    即使在提示中提供了所有必需信息,提供信息结构也有助于模型解析信息。排序、加标签和分隔符的使用都会影响回答的质量。如需查看提示结构示例,请参阅提示模板示例

提示的组成部分

下表显示了提示的基本组成部分和可选组成部分:

组件 说明 示例
目标 您希望模型实现的目标。明确并且包含所有总体目标。也称为“任务”或“目标”。 您的目标是帮助学生解决数学问题,但不要直接告诉他们答案。
说明 有关如何执行当前任务的分步说明。也称为“任务”“步骤”或“说明”。
  1. 了解问题的含义。
  2. 了解学生卡壳的地方。
  3. 为问题的下一步提供提示。
可选组件
系统指令

技术或环境指令,可能涉及控制或更改模型在一系列任务中的行为。对于许多模型 API,系统说明均在专用参数中指定。

系统指令仅在 Gemini 1.5 Pro 中提供。

您是编码专家,专门负责为前端界面呈现代码。当我描述要构建的网站的组件时,请返回执行此操作所需的 HTML 和 CSS。请勿为此代码提供说明。同时请提供一些界面设计建议。
Persona 模型充当谁或什么角色。也称为“角色”或“愿景”。 您是数学教师,帮助学生完成数学作业。
限制条件 对模型在生成回答时必须遵循的事项的限制,包括模型可以执行和不能执行的操作。也称为“保护措施”“边界”或“控制措施”。 不要直接向学生提供答案。相反,您应该为解决问题的下一步提供提示。如果学生一片茫然,请为他们提供解决问题的详细步骤。
语气 回答的语气。您还可以通过指定角色来影响风格和基调。也称为“风格”“语态”或“语气”。 请以随意的技术方式进行回答。
上下文 模型需要引用的任何信息,以便执行当前任务。 也称为“后台”“文档”或“输入数据”。 学生的数学课程计划的副本。
少样本示例 给定提示的回答应是什么样的示例。也称为“示例”或“样本”。 input:我想计算一下,一个体积为 1 立方米的盒子可以装多少个高尔夫球。我已将 1 立方米转换为立方厘米,并将其除以高尔夫球的体积(以立方厘米为单位),但系统说我的答案不正确。
output: 高尔夫球是球体,无法以完美的效率装入空间中。您的计算会考虑球体的最高封装效率。
推理步骤 告诉模型解释其推理。这有时可以提高模型的推理能力。也称为“思考步骤”。 分步解释推理。
响应格式 您希望回答采用的格式。例如,您可以指示模型以 JSON、表格、Markdown、段落、项目符号列表、关键字、电梯间推销等形式输出回答。也称为“结构”“演示文稿”或“布局”。 在 Markdown 中设置回答的格式。
回顾 在提示末尾精确重复提示的要点,尤其是约束和回答格式。 不要透露答案,而只是提供提示。始终采用 Markdown 格式设置回答。
保护措施 将问题与聊天机器人的任务联系起来。也称为“安全规则”。 不适用

根据手头的特定任务,您可以选择包含或排除一些可选组成部分。您还可以调整组件的顺序,并检查这对回答有何影响。

提示模板示例

以下提示模板向您展示了结构良好的提示的示例:

      <OBJECTIVE_AND_PERSONA>
      You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to...
      </OBJECTIVE_AND_PERSONA>

      <INSTRUCTIONS>
      To complete the task, you need to follow these steps:
      1.
      2.
      ...
      </INSTRUCTIONS>

      ------------- Optional Components ------------

      <CONSTRAINTS>
      Dos and don'ts for the following aspects
      1. Dos
      2. Don'ts
      </CONSTRAINTS>

      <CONTEXT>
      The provided context
      </CONTEXT>

      <OUTPUT_FORMAT>
      The output format must be
      1.
      2.
      ...
      </OUTPUT_FORMAT>

      <FEW_SHOT_EXAMPLES>
      Here we provide some examples:
      1. Example #1
          Input:
          Thoughts:
          Output:
      ...
      </FEW_SHOT_EXAMPLES>

      <RECAP>
      Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc.
      </RECAP>
    

最佳做法

提示设计最佳实践包括以下几点:

后续步骤