写提示词的基本原则之一:迭代
吴恩达教授在早前和 OpenAI 合作开发的课程《ChatGPT Prompt Engineering for Developers》里提过一个写提示词的基本原则:基本上一次就写出能满足自己需求的提示词的可能性较小,所以需要对照 AI 的输出结果来迭代提示词.
在最新的《Generative AI for Everyone》课程里,吴教授又重述了这个原则。
那些万能的提示词生成器,可以是很好的通用思路,但并非银弹 (Silver Bullet)。理清楚自己的需求,反复通过对话来迭代出自己的提示词,才是我们应该练习的通用技能。各种写提示词的技巧,可以看作是与当前的生成式 AI 模型进行有效对话的表达方式。
就像我们会对不同知识背景、不同年龄段/身份的人,用不同的表达方式一样。
这篇论文 (
arxiv.org) 提出了一种通用的迭代提示词的流程。
当 AI 的回复结果不符合预期甚至有错误信息的时候,咱先别骂它智障。告诉它结果不对,让它想其他办法再试试。通过不断地告诉它不对,甚至指出具体哪里不对,让它来进行自我修正。最后引导出预期结果。
让 AI 想其他办法,有时候是变换表达方式。之前 Google DeepMind 发表的一篇论文,Promptbreeder 中提出了一种 Mutator prompts, 就是让 AI 尝试用不同的角度来重述原提示词的目的。笔记见:
m.okjike.com这个迭代过程可能会经历很多轮。我的感受是这其实是使用当前的生成式 AI 模型的基本方式。
当迭代出符合预期的结果之后,论文中的流程最后有一步总结很有意思。我没从这个角度考虑过。那就是让 AI 自己重新汇总推导出最终结果的正确推理流程。如图一所示。
这样汇总的正确的推理流程数据可以加入到数据集,方便以后给类似的问题打样(Few-shot 技巧),相当于可以实现更精准的 Auto CoT. 也可以用来微调 (Fine-tuning) AI 模型。
整个过程有点像老师让学生做一道题,老师批阅学生的答案,告诉他对错以及错在哪儿,让学生重做,直到最后做对。做对了,让学生总结正确的做题思路,并把题目加入错题本,以后做类似的题就有参考了。