Prompt 工程
ChatGPT 已经广泛用于各行各业提高工作效率。然而,不同的引导词(prompt)提示下,同一模型的输出结果可能大相径庭,好的prompt能释放模型的潜力,得到更有用的输出。本文提供了一些方法论和常用 prompt 示例。本文持续更新,欢迎在评论区踊跃交流经验~
方法论
1. CoT(Chain of Thought)
详细描述执行步骤。但是仅仅在 Prompt 里面列出步骤是不够的,必须要配合输出中间结果,才能保证结果最佳,详情参考推文 ,所以我们必须输出必要的中间步骤结果。
对于输出结果,我们并不希望一些中间结果对用户可见,也希望结果容易被解析,JSON 格式无疑是最高的选择,借助 Function Calling,可以轻松的让我们输出想要的 JSON 格式,并且也可以隐藏一些我们不想让用户看见的中间结果。
2. Few-shot
给出一个或几个类似的例子。
3. 有效的格式
prompt中可以包括如图所示的内容。此外,还可以广泛使用 markdown格式(通过#
号设置多级标题) 或者 html格式(通过<context>xxx<context/>
提示界限)来组织。对于需要强调的部分,还可以通过 markdown 格式加粗、字母大写如 NOT、加 must 等方法强调。
另外还有个高级技巧是使用伪代码,可用于一些复杂的任务,比如要求模型生成特定的 JSON 格式,或者任务有多个分支,每个分支需要执行多个子任务,子任务之间还相互关联。详细使用方法见:Prompt 高级技巧:借助伪代码精准的控制 LLM 的输出结果和定义其执行逻辑
4. APE(Automatic Prompt Engineering)
例如 知乎-APE 里面的 ProTeGi。核心思想是让GPT分析bad case原因,然后改写prompt。
5. Agent
使用 Agent 思想(吴恩达视频-AI 智能体工作流引领人工智能新趋势),智能体设计模式如下:
- 反思:让大语言模型对自己的结果检查改进
- 使用工具:让大语言模型调用外部工具,如网络搜索、代码执行等
- 规划:让大语言模型自己设计一个多步骤的计划来达成目标
- 多智能体合作:多个 AI 智能体协同工作,分配任务,讨论和辩论想法,写作得到更好的结果
例如下面两个 Agent 的研究论文,就符合这个设计模式:PanelGPT💡: 💁🏼🎤 (👾💬) (🤖💭) (🤯🗯) 受到“三个臭皮匠,赛过诸葛亮”启发,设计one-shot的例子,让多个LLM同时给出答案,然后再用一个LLM打分,做决定。他们使用的prompt:
3 experts are discussing the question with a panel discussion, trying to solve it step by step, and make sure the result is correct and avoid penalty:
,这个prompt的效果要优于Let's think step by step:
。
ToT:Tree of Thoughts,结合PanelGPT,设计了BFS或者DFS的one-shot方法。
prompt技巧示例
1. 字幕翻译
本示例任务是将带有时间戳的英文字幕翻译为中英文字幕,并保证中英文字幕能更好的对应。
做法分析:任务的难点在于,多句英文在翻译时可能会被合并成一条中文,所以不仅要翻译,还要将翻译后重新断句的结果和原始输入对应起来。执行思路是分3步,第1步:将输入的文字内容合并成一个完整的段落,作为一个整体翻译,相对一句一句翻译可以达到最好的翻译结果,第2步:将翻译好的结果按照标点符号重新拆分成小的句子,第3步:将拆分后的句子和原始输入对应起来。
完整 prompt 和实践过程见:Prompt 技巧:在翻译字幕时,如何让英文字幕中文字幕更好的对应起来
2. 翻译和改进
完整 prompt 和实践过程见:直译、反思、意译:提升 GPT 翻译质量的一种新策略
如果你是翻译特定的领域,除了上面博客说的之外,还可以增加角色扮演:你现在是xx领域的教授,请帮我润色下面的论文:[文本内容]。例如下面prompt
You are now a professor, Pieter Abbeel at UC Berkeley. You are an expert in the field of deep computer vision and object detection. Next, you will play the role of my writing mentor and help me polish the following articles into professional academic and logical expressions in the field of deep computer vision and object detection, output as latex format. My artical is "{{}}".
3. 生成采访摘要
基于 Agent 的思想写 prompt,包括:规划——反思——总结,三个步骤。
完整 prompt 和实践过程见:如何让 GPT-4 生成更好的摘要
4. 去重工具 (待完善)
接下来我发送给你的句子,你应尽可能多地使用同义词替换其中的词语,例如避免改为规避,如果改为若是,每个句子必须保证13个字符不能相同,汉字算两个字符,英文单词算一个,不能仅通过删除、增加、修改一两个字符的方式,可以在无法替换的句子中间插入一些无意义又无影响的词语来规避,也可以在不影响其含义的情况下修改语序,可以使用缩写的方式,必须严格遵守这条规则,如果明白了的话请发一条示例吧。