背景与基本策略
#
一、大语言模型与提示工程 (Prompt Engineering)大语言模型是一种基于深度学习的人工智能模型,它通过在大规模文本数据上进行训练,学习语言的模式和结构,从而能够回答问题、生成对话、完成任务等。
尽管大语言模型具有强大的语言生成能力,但它也存在一些挑战。例如,模型可能会生成不准确、不完整或甚至具有偏见的内容。 为了克服这些问题,引入了提示工程的概念。
提示工程是指在与大语言模型交互时,向模型提供明确的指导或提示,以引导其生成更准确和有用的回答。 这些提示可以是问题的背景信息、期望的输出格式、限制条件等。通过合理设计和使用Prompt,可以提高模型生成文本的质量和一致性,并减少不必要的误导。
注意
如果GPT在生成过程中得不到适当的引导,它可能无法始终输出用户想要的内容。
通过提示工程,研发人员不断优化输入的文本、提供清晰具体的指令以引导 ChatGPT 等 AIGC 模型,促使其生成相关的最佳结果。
提示工程就是通过巧妙设计提示文本 (Prompts) ,实现符合用户预期结果的生成。
#
二、获取更好结果的六种策略#
1. 写清晰的指令GPT无法读取你的思绪。 如果输出结果过长,可以请求简洁的回复。如果输出结果过简单,可以请求专家级的写作。如果你不喜欢输出的格式,可以演示你想看到的格式。GPT对你想要的内容猜测得越少,你得到它的可能性就越大。
- 在查询中包含详细信息以获得更相关的答案
- 让模型采用一个人格
- 使用分隔符清晰地指示输入的不同部分
- 明确完成任务所需的步骤
- 提供示例
- 明确输出的期望长度
#
2. 提供参考文本GPT可以自信地虚构答案,特别是当被问及冷门话题或要求引用和URLs时。就像一张笔记可以帮助学生在考试中取得更好的成绩一样,向GPT提供参考文本可以帮助它用更少的杜撰来回答问题。
- 指导模型使用参考文本回答
- 指导模型引用参考文本中的信息来回答
#
3. 将复杂任务拆分为简单的子任务正如在软件工程中将复杂系统分解为一系列模块化组件是好的实践一样,提交给GPT的任务也是如此。复杂的任务比简单的任务更容易出错。此外,复杂任务往往可以重新定义为一系列简单任务的工作流,其中早期任务的输出被用来构建后期任务的输入。
- 使用意图分类来确定用户查询的最相关指令
- 对需要很长对话的对话应用程序,对前面的对话进行总结或筛选
- 分段总结长文档,并递归构建完整总结
#
4. 给GPT“思考”的时间如果要求你计算17乘以28,你可能不会立刻知道答案,但是你可以花时间算出来。同样,GPT在试图立刻回答而不是花时间算出答案时,会出现更多的推理错误。在答案之前要求一个推理链可以帮助GPT更可靠地推理出正确答案。
- 指导模型在仓促得出结论前先自行找出解决方案
- 使用内心独白或一系列查询来掩盖模型的推理过程
- 询问模型在之前的遍历中是否遗漏了什么
#
5. 使用外部工具通过将其他工具的输出输入给GPT来弥补GPT的弱点。例如,一个文本检索系统可以告诉GPT有关的文档。一个代码执行引擎可以帮助GPT进行数学运算和运行代码。如果一个任务可以被一个工具而不是GPT更可靠或更有效地完成,那么把任务外包出去以获取两者的最佳效果。
- 使用基于嵌入的搜索实现有效的知识检索
- 使用代码执行来进行更精确的计算或调用外部API
#
6. 系统性地测试改变如果你能衡量性能,那么改进性能就更容易。在某些情况下,对提示的一次修改可能会在少数例子中提高性能,但在更具代表性的例子集上导致整体性能下降。因此,为了确定改变对性能的净效益,可能需要定义一个全面的测试套件(也称为"评估")。
- 根据与黄金标准答案的对比评估模型输出
#
三、 相关链接强烈推荐更详细地阅读以下由OpenAI官方撰写的文章,并结合其中提供的实战用例更好的理解各个策略。