虽然提示设计方法没有正确或错误一说,但您可以使用常见的策略来影响模型的回答。严格的测试和评估对于优化模型性能仍然至关重要。
大语言模型 (LLM) 使用大量文本数据进行训练,以学习语言单元之间的模式和关系。在获得一些文本(提示)后,语言模型可以预测接下的内容,就像一个复杂的自动补全工具。因此,在设计提示时,请考虑可能影响模型预测结果的不同因素。
提示工程工作流
提示工程是一个测试驱动型迭代过程,可以提高模型性能。创建提示时,请务必明确定义每个提示的目标和预期结果,并系统地测试它们以确定需要改进的方面。
下图显示了提示工程工作流:
如何创建有效的提示
提示有两个方面最终影响其有效性:内容和结构。
- 内容:
为了完成某项任务,模型需要与该任务相关的所有信息。这些信息可以包括说明、示例、上下文信息等。如需了解详情,请参阅提示的组成部分。
- 结构:
即使在提示中提供了所有必需信息,提供信息结构也有助于模型解析信息。排序、加标签和分隔符的使用都会影响回答的质量。如需查看提示结构示例,请参阅提示模板示例。
提示的组成部分
下表显示了提示的基本组成部分和可选组成部分:
组件 | 说明 | 示例 |
---|---|---|
目标 | 您希望模型实现的目标。明确并且包含所有总体目标。也称为“任务”或“目标”。 | 您的目标是帮助学生解决数学问题,但不要直接告诉他们答案。 |
说明 | 有关如何执行当前任务的分步说明。也称为“任务”“步骤”或“说明”。 |
|
可选组件 | ||
系统指令 | 技术或环境指令,可能涉及控制或更改模型在一系列任务中的行为。对于许多模型 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> |
最佳做法
提示设计最佳实践包括以下几点:
后续步骤
- 在提示库中浏览更多提示示例。
- 了解如何使用 Vertex AI 提示优化器(预览版)优化提示,以便与 Google 模型搭配使用。
- 了解 Responsible AI 最佳实践和 Vertex AI 的安全过滤条件。