OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

写好 prompt 已经成为 LLM 的一项必修课。随着 ChatGPT、GPT-4 等大型说话模型(LLM)的出现,提醒工程(Prompt Engineering)变得越来越重要。很多人将 prompt 视为 LLM 的咒语,其好坏直接影响模型输入的结果。如何写好 prompt,已经成为 LLM 研究的一项必修课。引领大模型发展潮流的 OpenAI,近日官方发布了一份提醒工程指南,该指南分享了如何借助一些政策让 GPT-4 等 LLM 输入更好的结果。OpenAI 表示这些方法有时可以组合应用以获得更好的效果。指

写好 prompt 已经成为 LLM 的一项必修课。

随着 ChatGPT、GPT-4 等大型说话模型(LLM)的出现,提醒工程(Prompt Engineering)变得越来越重要。很多人将 prompt 视为 LLM 的咒语,其好坏直接影响模型输入的结果。

如何写好 prompt,已经成为 LLM 研究的一项必修课。

引领大模型发展潮流的 OpenAI,近日官方发布了一份提醒工程指南,该指南分享了如何借助一些政策让 GPT-4 等 LLM 输入更好的结果。OpenAI 表示这些方法有时可以组合应用以获得更好的效果。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

指南地址:https://platform.openai.com/docs/guides/prompt-engineering

六个政策,获得更好的结果

政策一:写清楚指令

首先用户要写清楚指令,因为模型无法读懂你的大脑在想什么。举例来说,如果你希望模型的输入不要太简单,那就把指令写成「要求专家级别的写作」;又比如你不喜欢现在的文本风格,就换个指令明确一下。模型猜测你想要什么的次数越少,你得到满意结果的可能性就越大。

只要你做到下面几点,问题不会太大:

首先是提醒中尽量包含更详细的盘问信息,从而获得更相关的谜底,就像下面所展示的,同样是归纳会议记录,采用这样的提醒「用一个段落归纳会议记录。然后写下演讲者的 Markdown 列表以及每个要点。最后,列出发言人建议的后续方法或行动项目(如果有)。」结果会比较好。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

其次是用户可以供给示例。例如,当你想让模型模仿一种难以明确描述的回覆风格时,用户可以供给少数示例。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

第三点是指定模型完成使命时所需的方法。对于有些使命,最好指定方法如方法 1、2,显式地写出这些方法可以使模型更容易地遵循用户意愿。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

第四点是指定模型输入的长度。用户可以要求模型生成给定目标长度的输入,目标输入长度可以根据单词、句子、段落等来指定。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

第五点是应用分隔符来明确划分提醒的不同部分。"""、XML 标签、小节标题等分隔符可以帮助划分要区别对待的文本片面。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

第六点是让模型扮演不同的角色,以控制其生成的内容。 

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

政策 2 供给参照文本

说话模型会时不时的产生幻觉,自己发明谜底,为这些模型供给参照文本可以帮助减少错误输入。需要做到两点:

首先是提醒模型应用参照文本回覆问题。如果我们可以为模型供给与当前盘问相关的可信信息,那么我们可以提醒模型应用供给的信息来组成其谜底。比如:应用由三重引号引起来的文本来回覆问题。如果在文章中找不到谜底,就写「我找不到谜底」。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

其次是提醒模型从参照文本中引用谜底。

OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT

政策 3:将复杂的使命拆分为更简单的子使命

正如软件工程中将复杂系统分解为一组模块化组件一样,提交给说话模型的使命也是如此。复杂的使命往往比简单的使命具有更高的错误率,此外,复杂的使命通常可以被重新定义为更简单使命的工作流程。包括三点:

应用意图分类来识别与用户盘问最相关的指令;

对于需要很长对话的对话应用,归纳或过滤以前的对话;

分段归纳长文档并递归的构建完整纲要。

由于模型具有固定的上下文长度,因此要归纳一个很长的文档(例如一本书),我们可以应用一系列盘问来归纳文档的每个片面。章节纲要可以连接起来并进行归纳,生成纲要的纲要。这个进程可以递归地进行,直到归纳整个文档。如果有必要应用前面片面的信息来理解后面的片面,那么另一个有用的技巧是在文本(如书)中任何给定点以前包含文本的运行纲要,同时在该点归纳内容。OpenAI 在以前的研究中已经应用 GPT-3 的变体研究了这种进程的有效性。

政策 4:给模型时间去思考

对于人类来说,要求给出 17 X 28 的结果,你不会立马给出谜底,但随着时间的推移仍然可以算出来。同样,如果模型立即回覆而不是花时间找出谜底,可能会犯更多的推理错误。在给出谜底以前采用思维链可以帮助模型更可靠地推理出正确谜底。需要做到三点:

首先是提醒模型在急于得出结论以前找出自己的解决方案。

其次是应用 inner monologue 或一系列盘问来隐藏模型的推理进程。前面的政策表明,模型有时在回覆特定问题以前详细推理问题很重要。对于某些应用程序,模型用于得出最终谜底的推理进程不适合与用户共享。例如,在辅导应用程序中,我们可能希望鼓励学生得出自己的谜底,但模型关于学生解决方案的推理进程可能会向学生揭示谜底。

inner monologue 是一种可以用来缓解这种情况的政策。inner monologue 的思路是提醒模型将原本对用户隐藏的片面输入放入结构化格式中,以便于解析它们。然后,在向用户呈现输入以前,将解析输入并且仅使片面输入可见。

最后是询问模型在以前的进程中是否遗漏了任何内容。

政策 5:应用外部工具

通过向模型供给其他工具的输入来弥补模型的弱点。例如,文本检索系统(有时称为 RAG 或检索增强生成)可以告诉模型相关文档。OpenAI 的 Code Interpreter 可以帮助模型进行数学运算并运行代码。如果一项使命可以通过工具而不是说话模型更可靠或更有效地完成,或许可以考虑利用两者。

首先应用基于嵌入的搜索实现高效的知识检索;

调用外部 API;

赋予模型访问特定功能的权限。

政策 6:系统的测试变化

在某些情况下,对提醒的修改会实现更好的性能,但会导致在一组更具代表性的示例上整体性能变差。因此,为了确保更改对最终性能产生积极影响,可能有必要定义一个全面的测试套件(也称为评估),例如应用系统消息。

更多内容,请参照原博客。

给TA打赏
共{{data.count}}人
人已打赏
理论

下一代主动驾驭体系,少不了大模型,体系调研来了

2023-12-18 14:55:00

理论

西南交大杨燕/江永全团队:鉴于双工作的端到端图至序列无模板反响猜测模型

2023-12-20 14:49:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索