吴恩达“提示词工程”课程笔记

0.两种大语言模型(LLM)

  • Base LLM:基于Next Token Prediction任务进行训练,主要功能是预测文本中的下一个词,训练完成后不再更新,无法学习新知识。此外,Base LLM比起完成任务更像是续写原文,在给定一个提问后,它可能会预测出后续的一系列问句而不是回答问题。
  • Instruction-tuned LLM:通过给Base LLM输入“问题-答案”序列对,微调原模型,能够更好地理解和执行用户指令,回答问题,执行任务,性能更好。现代的LLM通常是Instruction-tuned LLM,如ChatGPT、Gemini等。

1.清晰具体的指令

1.使用分隔符

使用分隔符(如反引号,大括号,尖括号,或三重引号)来明确分隔提示词的不同部分,这既有利于使提示词更清晰,结构化,也可以有效避免提示词注入问题(如用户输入恶意代码或指令来操纵模型的行为)。例如:请查看下列括号中的文本,总结内容:{text},并以markdown格式输出。

2.要求结构化的输出

要求模型使用给定格式输出答案,如JSON、HTML、CSV等,这样可以使输出更清晰,易于解析和使用。

3.检查模型输出是否满足条件或假设

先要求模型输出某些特殊信息(如“复述我的要求”,“将任务拆分成多步”),检查后再让模型继续输出。

4.Few-shot提示词(Zero-shot,One-shot同理)

在提示词中提供几个示例输入和输出,帮助模型理解任务的格式和要求,从而提高输出的准确性和相关性。

2.给予模型思考的时间

1.明确任务的各个步骤

2.要求模型给出推导/思考过程而不是直接给出结论

3.避免幻觉

首先要求模型查找相关的引用信息,或者要求模型在回答问题前先列出相关的事实/数据/出处。

3.提示词迭代

不存在通用的“完美提示词”,需要不断地迭代和优化提示词以获得更好的结果。可以先从简单的提示词开始,通过观察模型输出与自己要求的偏差来逐步调整提示词。

4.温度

温度决定了模型输出的随机程度,较高的温度会使输出更具创造性和多样性,而较低的温度则会使输出更确定和一致。根据任务需求调整温度可以获得更合适的输出。一般将模型温度设为0即可。

后记

总的来说,这门课程内容比较少(毕竟只有90min),年代也比较久远了,不过内容清晰直白,是一个不错的提示词工程普及课程,但如果想要深度开发LLM,这门课还是远远不够的。