吴恩达老师的《ChatGPT Prompt Engineering for Developers》是一门学习提示词工程不错的课程,我们接下来用几篇文章来解读这门课程。

1.什么是提示词工程

首先看1个问题:

  • 向大语言模型输入"一二三四五”,它很可能回答"上山打老虎”。但,我们的意图是希望它把"一二三四五”翻译成英文,怎么办?

我们的解决方法是:

  • 问大语言模型:“请将如下文字翻译为英文:一二三四五”,大语言模型就会回答"One Two Three Four Five”。

上述解决方法本质是什么呢?

  • 即在问题里明确表达期望大语言模型如何处理一段文字。
  • 明确表达期望大语言模型做什么,就是一条指令,也就是提示词

提示词理论的出现,源于两个假设:

  • 假设1:大语言模型已经掌握了很多世界知识,但由于知道的太多,一时想不起来。
  • 假设2:自然语言存在二义性,需要更多的提示,才能准确地向大语言模型表达人类的真实意图。

因此,人类通过提示词,可以唤起大语言模型对已有知识的记忆,也可以让大语言模型更加准确地理解人类意图。

开发提示词、优化提示词的过程,被称为提示词工程

  • 提示词工程包含了诸多工程方法,如:设计有效的提示策略、优化提示词表达等。

伴随着大语言模型的发展,提示词工程也形成了一套体系化的工程方法。它成为AI领域的热点技术之一,是AI工程师的必备技能。

From《Pre-train, Prompt, and Predict: A Systematic Survey ofPrompting Methods in Natural Language Processing》

2.提示词基本原则

(1)原则1:简洁明确

假想两个人类在说话,两人的表达能力有限,词不达意、含糊其辞、鸡同鸭讲…,最终就导致两人之间的沟通极其困难。

与大语言模型交互,和人类交流类似,也需要简洁明确的同问,向大语言模型清晰表达意图。

我们来看一个例子:

  • 我们让ChatGPT写一首诗,它以立冬为题生成一首诗:

image-20231110145755795

  • 如果我们希望这首诗是五言绝句,则进一步这样提问,可以看到ChatGPT生成了一首以立冬为题的五言绝句。

image-20231110145923990

上述示例,可以看出:

  • 写一首诗是一条简洁的指令
  • 相较于写一首诗,写一首五言绝句是一条更加简洁明确的指令

(2)原则2:迭代式提示词开发

我们要知道两个事实:

  • 没有可以适应所有场景的完美提示词,需要我们针对不同场景,开发不同的提示词。
  • 即使在一个很小的场景下存在完美提示词,我们也无法一次性就找到它。

针对某个场景,寻找提示词的过程,就是迭代式提示词开发

迭代式提示词开发的过程如下:

  • Idea阶段:针对特定场景,设计初始提示词。
  • Implementation阶段:将初始提示词传递给大语言模型,获得返回结果(Experimental result)。
  • Error Analysis阶段:分析返回结果,思考改进提示词的方法,重新进入Idea阶段,直到找到特定场景下的完美提示词。

From 吴恩达提示词课程

我们再来看一个示例:我们需要一段用于营销的产品介绍。

  • Idea阶段:针对产品介绍场景,设计初始提示词。
  • Implementation阶段:将初始提示词传递给大语言模型,获得返回结果。可以看到ChatGPT返回了一段不错的文案。

image-20231108110737288

  • Error Analysis阶段:从上一步获得的ChatGPT文案内容太长,我们思考改进提示词的方法是进一步明确字数要求。
  • Idea阶段:根据上一阶段的改进思路,编写改进后的提示词。
  • Implementation阶段:将改进后的提示词传递给大语言模型,获得返回结果。可以看到ChatGPT返回了一段简短的文案。

image-20231108110819852

  • Error Analysis阶段:从上一步获得的ChatGPT文案没有突出要点,我们思考改进提示词的方法是限定明确要突出的关键点。
  • Idea阶段:根据上一阶段的改进思路,编写改进后的提示词。
  • Implementation阶段:将改进后的提示词传递给大语言模型,获得返回结果。可以看到ChatGPT返回了一段简短、要点突出的文案。

image-20231108110848960

这就是迭代式提示词开发的流程,核心要点是多次迭代

(3)原则3:选择合适的提示词风格

提示词工程是一种Instruct-Tuning技术,提示词的风格包含:

  • Prompt
  • Instruction

初学者极易混淆这两种风格,我们来看一个例子:

  • 幼儿园老师希望引导小朋友唱歌,于是她说:在小小的花园里面挖呀挖呀挖…,老师此时停顿下来并对小朋友投去了期待的目光,小朋友按耐不住激动的心情,接下句:种小小的种子开小小的花——这就是Prompt(提示)
  • 幼儿园老师希望小朋友背诵五言绝句,于是她说:请背诵《鹅鹅鹅》,小朋友在老师又一次期待的目光下,整齐划一地背诵出"鹅鹅鹅曲项向天歌…"——这就是Instruction(指令)

我们了解了提示词的两大风格后,就要针对不同场景、不同意图,选择不同的提示词风格。

4.小结

提示词工程是一项热门技术,本文对提示词工程基本概念进行了阐述:

  • 提示词工程是开发和优化提示词的过程,包括选择合适的提示词、设计有效的提示策略,以及优化提示词的表达方式等。
  • 提示词三个基本原则:
    • 简洁、明确
    • 迭代式提示词开发
    • 选择合适的提示词风格