第 5 章 提示工程
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
提示工程是指精心设计指令,使模型产生预期结果的过程。提示工程是最简单、最常用的模型调整技术。与微调不同,提示工程在不改变模型权重的情况下引导模型行为。得益于基础模型强大的基础能力,很多人已经成功地仅使用 prompt engineering 就将其调整到了应用中。在转向微调等更耗费资源的技术之前,您应该充分利用提示工程。
提示工程的易用性可能会误导人们,让他们以为提示工程并没有什么了不起。1乍一看,提示工程似乎只是在文字上做手脚,直到成功为止。虽然提示工程确实需要做很多手脚,但它也包含许多有趣的挑战和巧妙的解决方案。你可以把 prompt 工程想象成人类与人工智能之间的交流:你与人工智能模型交流,让它们做你想做的事情。任何人都可以交流,但不是每个人都能有效地交流。同样,编写提示语很容易,但构建有效的提示语却不容易。
有些人认为,"提示工程 "缺乏严谨性,不足以成为一门工程学科。然而,事实并非如此。提示实验应该像任何 ML 实验一样严谨,进行系统的实验和评估。
我采访过的 OpenAI 的一位研究经理完美地概括了 prompt 工程的重要性:"问题不在于 prompt 工程。这是一项真正有用的技能。问题在于当人们只知道 prompt engineering 时。"要构建可投入生产的人工智能应用,你需要的不仅仅是 prompt engineering。你需要统计学、工程学和经典的 ML 知识来进行实验跟踪、评估和数据集整理。
本章将介绍如何编写有效的 prompt 以及如何保护你的应用免受 prompt 攻击。在深入探讨使用 prompts 构建的各种有趣应用之前,让我们先从基础知识开始,包括到底什么是 prompt 以及 prompt 工程的最佳实践。
提示简介
提示是给模型下达的执行任务的指令。任务可以很简单,比如回答一个问题,"谁发明了数字 0?它也可以更复杂,比如要求模型为你的产品创意研究竞争对手、从头开始建立一个网站或分析你的数据。
提示一般由以下一个或多个部分组成:
- 任务描述
您希望模型做什么,包括您希望模型扮演的角色和输出格式。
- 如何完成该任务的示例
例如,如果您希望模型检测文本中的毒性,您可以提供一些毒性和非毒性的示例。
- 任务
您希望模型完成的具体任务,例如要回答的问题或要总结的书籍。
图 5-1显示了 NER(命名实体识别)任务中可能使用的一个非常简单的提示。
图 5-1. 一个简单的 NER 提示。
要使提示发挥作用,模型必须能够遵循指令。如果模型的能力很差,那么不管你的提示有多好,模型都无法遵循它。第 4 章将讨论如何评估模型的指令遵循能力。
需要多少提示工程取决于模型对提示扰动的鲁棒性。如果提示稍有变化--比如把 "5 "写成 "5"、添加新行或改变大写字母--模型的反应会有很大不同吗?模型的鲁棒性越差,就需要更多的调整。
你可以通过随机扰动提示来衡量模型的鲁棒性,看看输出是如何变化的。就像遵循指令的能力一样,模型的鲁棒性与其整体能力密切相关。随着模型变得越来越强大,它们也会变得越来越稳健。这是有道理的,因为智能模型应该理解 "5 "和 "5 "是同一个意思。2因此,使用更强的模型往往能让您省心,并减少在摆弄上浪费的时间。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access