课程笔记 | 吴恩达新课:ChatGPT Prompt Engineering for Developers

1,210 阅读5分钟

最近吴恩达老师又出了几门新课,认真看完后,将笔记分享一下。

引言

吴恩达老师介绍了Base LLM和Instruction Tuned LLM 的区别(基础LLM和指令调整LLM), 前者是通过训练预测下一个词,经过大量的来自互联网和其他来源的数据进行训练,弄清楚下一步是什么。 后者是经过强化学习后,经过人类反馈后的LLM模型,能够进行微调,也是目前的主流。 ScreenClip.png

指引

这节课介绍了一些准则——关于如何编写提示的原则。 第一原则:要写得清晰具体说明 第二原则:为模型提供时间

第一原则:要写得清晰具体说明

策略一:使用规范的标点符号

不是说句号逗号这些,而是通过规范的标点符号让自己的关键词更加清晰,看一下下面的例子: ScreenClip.png

策略二:请求一个更加结构化的回答

意思是不要让chatgpt自由发挥输出结果,而是要规范的要一个答案。比如请按照markdown语法的格式给出答案。这样的回答更加结构清晰,更加标准化。

策略三:检查条件是否满足

当需要用户提供一些内容,但是却没有给出的时候,可以通过合适的prompt进行反馈。 例如:如果你需要用户提供具有顺序、步骤的内容,那么你可以写下这句prompt:If the text does not contain a sequence of instructions, then simply write "No steps provided." ScreenClip.png

策略四:带有例子的prompt

如果想要让LLM能够给出更加符合你想法的答案,可以先给出一个问题+答案的例子指导它。例子如下: ScreenClip.png

第二原则:为模型提供时间

其实就是那句最经典的“让我们一步步来思考”。 这条prompt的关键就是:如果一下子让LLM给出答案,那么没有经过推理它根据现有的条件进行预测可能会出现错误。但是经过一步步思考的推理能够得到更加深入更多的条件,得到的答案可能会更加正确。

最后也提到了LLM虽然已经获取了大量的知识,但是对于部分很晦涩的知识还是无法获得,所以就会“胡说八道”,这个需要开发者注意。

迭代提示开发

吴恩达先给出了一张迭代提示开发的流程图: 先有个想法——》写代码、使用数据——》测试结果——》得到错误的分析——》产生新的想法 ScreenClip.png

吴恩达强调:我个人没有尽可能多地关注互联网文章说 30 个完美的提示,因为我认为,可能没有完美的提示阳光下的一切。更重要的是你根据你的应用有开发良好提示的过程。 通过一次次的调试修改,将一个prompt修改到我们想要的结果。如下面的例子: 从产品说明书生成营销产品描述,从字数、强调重点、通过表格展示,一次次优化prompt。

总结文本

吴恩达从以下几个方面展示了如何使用总结文本的prompt

以单词/句子/字符限制进行总结

以xxx为重点进行总结

尝试“提取”而不是“总结”

总结多个产品评论

其中用到的prompt很简单,就不放图片出来了。

推理

这里展示了LLM的推理能力,用了机器学习经典的“判断情绪为积极或消极”的测试ScreenClip.png还有推理一段话的主题,便于标签分类。

吴恩达说:“你可以在几分钟内构建多个系统来推断文本,而以前需要熟练的机器学习开发人员几天甚至几周的时间。所以,我发现这非常令人兴奋,无论是对于熟练的机器学习开发人员,以及那些是机器学习的新手,您现在可以使用提示来非常快速构建并开始对相当复杂的事物进行推理诸如此类的自然语言处理任务。”

嗯,我用上面的推理模型推理出来吴恩达老师这段话是积极的,学以致用。

翻译和转换

这节课展示了LLM的翻译和转换功能,

翻译,顾名思义就是把一段话翻译成其他语言,这里有个细节:可以翻译出正式和非正式两种结果,从而达到更好的翻译效果。

转换就是把一句话换成表达方式更加合适的句子,可以帮助你检查和优化你的外语文章。

扩展和制作chatbot机器人

这两节课分别展示了生成针对每位客户的评论量身定制的客户服务电子邮件和利用聊天格式与针对特定任务或行为进行个性化或专门化的聊天机器人进行扩展对话。

其实就是将前面几节课学到的知识综合运用了一下,具体的图片细节就不展示了。可以到原文中看一下。

我的学习后的感受

大部分知识其实对于那些一直处于AI前沿,经常了解gpt的prompt的开发者来说,是非常简单普通的,但是对于小白来说还是一个不错的入门,而且教程网站还提供在线notebook编辑器可以自己动手练习。

总之,是很好的入门教程。感谢吴恩达老师的无私分享。

原文链接