OpenAI完整提示工程指南要点


Open AI发布了一个很棒的Prompt Engineering指南:

本指南分享了从 GPT-4 等大型语言模型(有时称为 GPT 模型)获得更好结果的策略和策略。有时可以组合使用此处描述的方法以获得更好的效果。我们鼓励尝试找到最适合您的方法。

六项策略
1、写下清晰的指示
这些模型无法读懂你的想法。如果输出太长,请要求简短答复。如果输出太简单,请要求专家级别的写作。如果您不喜欢这种格式,请演示您希望看到的格式。模型猜测你想要什么的次数越少,你得到它的可能性就越大。

策略:

  • 在您的查询中包含详细信息以获得更相关的答案
  • 要求模特采用角色
  • 使用分隔符清楚地指示输入的不同部分
  • 指定完成任务所需的步骤
  • 提供例子
  • 指定所需的输出长度

2、提供参考文字
语言模型可以自信地发明假答案,特别是当被问及深奥的主题或引文和 URL 时。就像一张笔记可以帮助学生在考试中取得更好的成绩一样,为这些模型提供参考文本可以帮助减少作答次数。

策略:

  • 指示模型使用参考文本回答
  • 指示模型通过引用参考文本来回答

3、将复杂的任务拆分为更简单的子任务
正如软件工程中将复杂系统分解为一组模块化组件是良好实践一样,提交给语言模型的任务也是如此。复杂的任务往往比简单的任务具有更高的错误率。此外,复杂的任务通常可以被重新定义为更简单任务的工作流程,其中早期任务的输出用于构造后续任务的输入。

策略:

  • 使用意图分类来识别与用户查询最相关的指令
  • 对于需要很长对话的对话应用,总结或过滤以前的对话
  • 分段总结长文档并递归构建完整摘要

4、给模型时间“思考”
如果要求将 17 乘以 28,您可能不会立即知道,但随着时间的推移仍然可以算出来。同样,模型在尝试立即回答而不是花时间找出答案时会犯更多推理错误。寻求“思想链”在答案可以帮助模型更可靠地推理出正确答案之前。

策略:

  • 指示模型在急于得出结论之前找出自己的解决方案
  • 使用内心独白或一系列查询来隐藏模型的推理过程
  • 询问模型在之前的过程中是否遗漏了任何内容

5、使用外部工具
通过向模型提供其他工具的输出来弥补模型的弱点。例如,文本检索系统(有时称为 RAG 或检索增强生成)可以告诉模型相关文档。像 OpenAI 的代码解释器这样的代码执行引擎可以帮助模型进行数学计算并运行代码。如果一项任务可以通过工具而不是语言模型更可靠或更有效地完成,那么可以卸载它以充分利用两者。

策略:

  • 使用基于嵌入的搜索实现高效的知识检索
  • 使用代码执行来执行更准确的计算或调用外部API
  • 授予模型访问特定功能的权限

6、系统地测试变更
如果您可以衡量性能,那么提高性能就会更容易。在某些情况下,对提示的修改将在一些孤立的示例上实现更好的性能,但会导致在一组更具代表性的示例上整体性能变差。因此,为了确保更改对性能有净积极作用,可能有必要定义全面的测试套件(也称为“评估”)。

战术:

  • 参考黄金标准答案评估模型输出

详细点击标题