跳到主要内容

Prompt 工程 — 不改参数,改输入

这一章讲三件事: 只靠在输入里给几个例子,模型就能模仿一个从没训过的新任务 (上下文学习),这是为什么、怎么用好它;让模型「先写思路再给答案」的思维链一脉, 五步推进各自修了什么;以及这门手艺的失效边界——信息摆在哪,和写了什么一样重要。 原书这一章收 45 篇;我们把它重新归成「输入端」的一条链来讲。

1. 这一章讲什么

第 02 章结尾,模型已经「听指令」了。但你很快会发现新问题:同一个任务, 有时它听懂了,有时没有;明明会算术,偶尔还是答错。 行业的第一反应不是回去改模型——模型出厂前那次海量阅读(预训练——在海量 文本上的首次训练——)和随后的调教都太贵,改不动——而是改输入

这门手艺统称提示工程:「提示」就是喂给模型的那段输入文字,设计与打磨它的 技法,英文叫 Prompt 工程。

原书这一章分五节:开头是简介,中段是上下文学习与思维链两节主线,后面接技巧与应用。 简介一节其实是个「杂物间」(里面混着评测基准、数据库应用、架构论文, 我们在 §8 的边界里点明);真正的主线是中间三节。我们的拆解把它们理成 一条输入端的流水线:给例子 → 给思路 → 摆位置 → 接出去。

2. 顶层全景:输入端的四级流水线

你写的一段文字(提示)

├─ 第一级:给例子 few-shot:先摆几个「输入→答案」的示范
├─ 第二级:给思路 思维链:让模型把中间步骤写出来再答
├─ 第三级:摆位置 例子放头还是尾、问题放中还是边,效果不同
└─ 第四级:接出去 提示写好后,模型可以被接成会行动的智能体

图说:四级是叠加的,不是四选一;每一级都有论文支撑,也都有失效报告。

本章主走查是第二级: 同一道两步算术题,零提示、加例子、加思路、多路投票, 四种输入下答案怎么一步步从错变对。数字全部为演示编的。

3. 核心原理(上):上下文学习——最省事的「学会」

3.1 现象:不改一个参数,给例子就会了

主走查起点。问题:「罗杰有 5 个网球,又买了 2 罐,每罐 3 个,现在几个?」 (演示题,仿自 2022 年思维链论文的标准题型;答案 11。) 直接问 GPT-3 这类模型,它可能接一句「6 个」——像是把 5 和 2-3 算混了。

现在把输入改成这样:

问:汤姆有 3 个橘子,买了 4 袋,每袋 2 个,现在几个?
答:8 个。
问:安娜有 7 支笔,丢了 2 支,还剩几支?
答:5 支。
问:罗杰有 5 个网球,买了 2 罐,每罐 3 个,现在几个?
答:(模型接)

图说:两三个「问→答」示范摆在问题前面,就是少样本提示
(few-shot:用少量例子教,不改模型参数)。三个示范答案为演示编的。

加了例子,答案大概率就从「6」跳到「11」。 模型没有被重新训练——它的参数一个都没动——仅仅因为输入里多了两个示范。 列表把这件事的出处(2020 年 GPT-3 论文1)排在上下文学习一节第一条: 这是原书 18 条相关论文共同的起点。

3.2 反直觉之处与两派解释

这件事反直觉在哪:按第 02 章的流程,「学会新任务」按理要重新训练。 而上下文学习像是现场临时学会的。它到底学了什么?列表收的十几篇论文分成两派:

  • 一派用贝叶斯(根据例子不断更新猜测的数学框架)来解释:模型在预训练(在海量文本上的首次训练)时见过大量「任务加例子」的组合样式,给例子相当于让它先猜「这是哪类任务」再作答2;

    这些组合样式,行话叫分布(各类任务出现的频率样式)。

  • 任务识别派:实验发现例子里的答案标签错了也不太影响结果——模型学到的更多是 「格式与意图」,不是真正的对应关系34

    后来的综述把两派合成一个更细的拆法:「认出任务」和「真学会任务」是两件事, 给几个例子的做法——行话叫少样本(few-shot)——经常只做到了前者5

判断(我们的,不是书里的): 「为什么有效」至今没有定论——这不是这篇综述的疏漏, 而是这个领域的常态:先有现象、后有解释,解释还常常打补丁。 用少样本提示时,别赌「它真的学会了」,要按「它认出了格式」来设计校验如果错,会错在: 如果后续研究证明大模型在上下文里执行了真正的梯度式学习, 那么按「只认格式」设计的校验会漏放真正的能力——判据是把例子答案全改成错的,看性能掉多少。

3.3 怎么把例子用对:选例、排序、涌现

围绕「怎么给例子」有一整支工程文献,列表收了三类代表性结论:

环节结论出处
挑哪些例子和问题相近的例子显著更好(按相似度挑出相近的例子)选例论文6、按相似度挑例的综述7
按什么顺序摆同一组例子,换个顺序,成绩能从接近随机摆到接近最好顺序敏感性研究8
例子从哪来让模型自己生成例子再自我提示自我提示9

同节还收了「涌现」(能力在规模越过某条线后突然出现,小模型上完全看不到)的原始论文10 ——上下文学习本身就是被列举的涌现能力之一。这篇在本节出现了两次(列表原文如此, 重复收了两遍),我们在 §8 边界里记了一笔。

4. 核心原理(中):思维链——五步推进,步步修短板

4.1 走查主步:同一道题的四种输入

回到罗杰那道题。四种输入,四种结局(全部为演示编的,题型与量级仿自论文):

① 直接问 「现在几个?」 → 「6 个」 ✗(把 5+2-3 算混)
② 少样本(只给答案) 两个问答示范 → 「11 个」或「6 个」,不稳定
③ 思维链(示范里带思路)示范里写「3×2=6,5+6=11」 → 「11 个」 ✓ 稳定
④ ③ × 采样三条路投票 三条思路各答一次取多数 → 「11 个」 ✓ 更稳

图说:①到④输入逐步加料;从②到③的跳跃最大——差别的本质见下面 4.2。

4.2 五步推进链

列表按顺序收了六篇,构成一条清晰的接力线:

  1. 写示例思路(2022 年思维链11):在少样本示范里,不直接给答案, 把中间步骤写出来。为什么有效:模型是逐词生成的,中间步骤被写进输出, 就变成了后续计算可以回头看的输入——相当于给它加了一块可以读的草稿纸 (第 02 章讲过「写出来的字就是它仅有的草稿纸」,这里第一次有了用途);

  2. 一句话触发(zero-shot 思维链12):后来发现连示例都不要—— 在问题末尾加一句「让我们一步步思考」就能触发类似的分步作答。成本降到零;

  3. 自动造示例(Auto-CoT13):示例里的思路还得人来写?让模型对问题聚类(按意思把相近的问题分组)、自己生成带思路的示范,省掉人工;

  4. 多路投票(行话叫「自洽」——让几条独立作答互相印证——的采样法14):思路有对有错,就多采几条,让答案占多数的赢——①-④ 走查里的第 ④ 步就是它;

  5. 树状探索15 (论文叫它思维树):数学题一条路走到底就够,开放问题不行——把「一条思路」扩成「一棵思路树」。

    走岔的支路可以剪枝(把没希望的分支掐掉),回头再试别的路;

  6. 图状组合16 (思维图):再进一步,让多条思路互相合并、互相纠错,组成网。

这条链的读法:每一步都在修上一步暴露的具体短板——人工写示例太贵 → 一句话触发; 单条思路不稳 → 投票;一条路走不死 → 树和图。原书不写这条逻辑线, 但条目的顺序把它摆得清清楚楚。

我们书架里有一份官方提示工程课程的拆解,其中「结构与思考」一章正是这套技法 (分步思考、示例结构)的业界落地版,可对照读(补充(不在书里,依据我们的 frontier 书架): 依据: shelf=ai-frontier-reference/anthropic-prompt-engineering#02-structure-and-thinking.md 事实=该章把「让模型先思考再答」作为可靠性技法系统性讲授,并给出 10 元素复杂提示模板)。

4.3 一条会令你重新审视走查第 ④ 步的边界

多路投票靠「多采几条路」把答对率再抬一截,但它买不走模型不会的东西:三条全错的思路, 投票投出来的还是错的。思维链一脉提高的是「把已有的能力用出来」的比率, 不新增能力本身。这条边界在第 5 节会以另一种形式再现:信息摆的位置不对, 再好的思路也救不回来。

5. 核心原理(下):Prompt 技巧与失效边界

这一节收的四篇里,最重要的不是技巧,是一份失效报告:

  • 2024 年的「迷失在中间」17:把关键信息埋在长提示的中部,模型对它的 召回显著变差;放开头结尾都好得多。信息摆在哪个位置,本身就是个一等的影响因素—— 这意味着前面所有「给例子、给思路」的结论,都默认了一个前提:摆对了位置;
  • C318:要答数据库的题,不塞数据本身,而是把**表结构(列名、类型)**按固定格式 塞进提示,让模型生成查询语句——「给结构、别给数据」成了这类任务的标准形;
  • 角色扮演法19:给模型一个身份设定(「你是资深数学老师」),在部分答题任务上有效。

书架里的提示工程课程拆解有一条能直接对上的工程口径:结构化提示的每个元素——角色、背景、任务、格式要求——按块摆放,正是对「位置敏感」这一失效模式的系统性对策。

依据在书架(补充(不在书里,依据我们的 frontier 书架):依据: shelf=ai-frontier-reference/anthropic-prompt-engineering#02-structure-and-thinking.md 事实=该拆解给出 10 元素结构化提示模板,按块组织输入)。

6. 相关应用:提示写好后往哪接

原书「相关应用」一节收的其实是一个预告:提示的尽头是智能体 (能让模型自主多步行动、调用工具的系统,英文 agent)。

  • 综述20:把「基于大模型的自主智能体」的构成(记住过去、规划、工具)系统化—— 2024 年写成,是这一节里唯一的全景条目;
  • 让一群生成式(内容全部现场生成,不是预先写死)的智能体住进虚拟小镇21:25 个有「记忆」(记住之前互动)的虚拟小人互相社交, 展示了「输入 + 记住过去 + 规划」能涌现出社会行为;
  • HuggingGPT22:让 ChatGPT 当调度员,把任务拆给 Hugging Face 上的几百个专用模型—— 「大模型指挥小工具」的样板;
  • Self-Instruct23:数据不够?让模型自己生成「指令 + 回答」训练数据自举。 它直接喂饱了第 02 章的 Alpaca——开放复刻那一步用的正是这套自造指令数据。

判断(我们的,不是书里的): 这一节的四篇收得很准——它们是「提示工程」 长成「智能体工程」的四个起点。今天读这份列表,这一节反而是时效最长的一节。 如果错,会错在: 如果智能体范式的真正源头在列表没收的别处 (如更早的强化学习智能体文献),那「起点」就只是「本列表视角下的起点」。

7. 编者的判断与证据

  • 上下文学习收 18 条,是全章篇幅最大的一节——「为什么有效」被当成了未决大事;
  • 思维链六篇按递进排,且都收了代码链接:编者预期读者会动手复现;
  • 简介一节混入了 MMLU(多任务语言理解基准,一份 57 门课的选择题考卷)24—— 评测基准被放进「Prompt 工程」而非第 01 章的「评测」,暗示编者把 「输入怎么写」视为影响分数的一等影响因素,这一判断后来被大量消融实验(拆掉一个部件、看成绩掉多少的对照实验)证实。

8. 边界与局限

局限说明
简介一节是杂物间评测考卷、数据库问答应用、模型架构论文、输入压缩工具混在一起,按「都和输入端有关」的宽口径收,不是纯技法论文
条目重复「涌现」论文在同一节收了两遍(text/01-full.txt:378(搜「Emergent Abilities」)、:394(搜「Emergent Abilities」));C3、Self-Instruct、生成式智能体在简介与相关应用两节各出现一次
未收对抗面提示注入(藏在输入里的恶意指令)整支文献缺席;列表只讲「怎么用好」,不讲「怎么被滥用」
时效2024 年后主流的做法是「提示 + 检索 + 工具 + 多轮」合流,单讲提示的论文线已收敛;列表停在 2024 年中

9. 可带走的

  1. 少样本提示的本质:不改参数、只给例子,模型现场模仿新任务;它便宜,但「学会」程度存疑;
  2. 例子要选相近的、顺序要试——同组例子换个顺序成绩能差出数倍;
  3. 思维链的核心机制:把中间步骤写进输出,让后续计算有草稿纸可读;
  4. 「让我们一步步思考」一句话就能触发分步作答,零成本先试它;
  5. 答案不稳就多采几条思路投票;但投票救不了三条全错的路;
  6. 长提示里,关键信息别放中间——放头尾;
  7. 数据库类任务给表结构,别给数据本身;
  8. 提示的尽头是智能体:这一章最后四篇是 agent 范式的起点;
  9. 提示写得好不好,本身就是考卷分数的一部分——评测与提示从此分不开。

10. 原文地图

主题原书节原文位置
上下文学习起点(GPT-3)上下文学习text/01-full.txt:338(搜「Few-Shot Learners」)
两派解释与检验上下文学习text/01-full.txt:342(搜「Implicit Bayesian Inference」) · text/01-full.txt:398(搜「Rethinking the Role of Demonstrations」) · text/01-full.txt:390(搜「Task Recognition」)
选例、排序、自举上下文学习text/01-full.txt:350(搜「Good In-Context Examples」) · text/01-full.txt:406(搜「Prompt Order Sensitivity」) · text/01-full.txt:354(搜「Self-Prompting」)
涌现上下文学习text/01-full.txt:378(搜「Emergent Abilities」)
思维链五步思维链text/01-full.txt:414(搜「Chain-of-Thought Prompting」) · text/01-full.txt:418(搜「Zero-Shot Reasoners」) · text/01-full.txt:422(搜「Automatic Chain of Thought」) · text/01-full.txt:435(搜「Self-Consistency」) · text/01-full.txt:426(搜「Tree of Thoughts」) · text/01-full.txt:431(搜「Graph of Thoughts」)
技巧与失效Prompt 技巧text/01-full.txt:443(搜「Lost in the middle」) · text/01-full.txt:447(搜「Zero-shot Text-to-SQL」) · text/01-full.txt:455(搜「Role-Play Prompting」)
应用与智能体起点相关应用text/01-full.txt:464(搜「autonomous agents」) · text/01-full.txt:468(搜「Interactive Simulacra」) · text/01-full.txt:472(搜「HuggingGPT」) · text/01-full.txt:485(搜「Self-Instruct」)
简介杂物间Prompt 工程简介text/01-full.txt:314(搜「Massive Multitask」) · text/01-full.txt:306(搜「Mixture-of-Experts」) · text/01-full.txt:298(搜「LLMLingua」)

Footnotes

  1. 出处:「上下文学习」第 338 段(text/01-full.txt:338,搜「Few-Shot Learners」)。即第 02 章讲过的 GPT-3 论文,在这里以「上下文学习出处」的身份再次领衔。

  2. 出处:「上下文学习」第 342 段(text/01-full.txt:342,搜「Implicit Bayesian Inference」)。把上下文学习解释为对任务分布的隐式贝叶斯推断。

  3. 出处:「上下文学习」第 398 段(text/01-full.txt:398,搜「Rethinking the Role of Demonstrations」)。该文发现换掉例子里的答案标签,多数任务成绩几乎不掉。

  4. 出处:「上下文学习」第 386 段(text/01-full.txt:386,搜「Ground-Truth Labels」)。与上篇呼应:标签真伪在部分设定下确实有影响,两文构成一对张力。

  5. 出处:「上下文学习」第 390 段(text/01-full.txt:390,搜「Task Recognition」)。把过程拆成「任务识别」与「任务学习」两截分别测量。

  6. 出处:「上下文学习」第 350 段(text/01-full.txt:350,搜「Good In-Context Examples」)。

  7. 出处:「上下文学习」第 346 段(text/01-full.txt:346,搜「Retrieved Demonstrations」)。

  8. 出处:「上下文学习」第 406 段(text/01-full.txt:406,搜「Prompt Order Sensitivity」)。

  9. 出处:「上下文学习」第 354 段(text/01-full.txt:354,搜「Self-Prompting」)。

  10. 出处:「上下文学习」第 378 段(text/01-full.txt:378,搜「Emergent Abilities」)。同一篇在第 394 段重复收录(text/01-full.txt:394,搜「Emergent Abilities」)。

  11. 出处:「思维链」第 414 段(text/01-full.txt:414,搜「Chain-of-Thought Prompting」)。Wei 等人,2022。走查里的网球题型仿自该论文的 GSM8K 示例。

  12. 出处:「思维链」第 418 段(text/01-full.txt:418,搜「Zero-Shot Reasoners」)。Kojima 等人,2022。

  13. 出处:「思维链」第 422 段(text/01-full.txt:422,搜「Automatic Chain of Thought」)。

  14. 出处:「思维链」第 435 段(text/01-full.txt:435,搜「Self-Consistency」)。Wang 等人,2023。

  15. 出处:「思维链」第 426 段(text/01-full.txt:426,搜「Tree of Thoughts」)。Yao 等人,2023。

  16. 出处:「思维链」第 431 段(text/01-full.txt:431,搜「Graph of Thoughts」)。

  17. 出处:「Prompt 技巧」第 443 段(text/01-full.txt:443,搜「Lost in the middle」)。Liu 等人;条目标 2024,是期刊版年份,预印本 2023 年出。

  18. 出处:「Prompt 技巧」第 447 段(text/01-full.txt:447,搜「Zero-shot Text-to-SQL」)。C3 系列。

  19. 出处:「Prompt 技巧」第 455 段(text/01-full.txt:455,搜「Role-Play Prompting」)。

  20. 出处:「相关应用」第 464 段(text/01-full.txt:464,搜「autonomous agents」)。注意:这条的作者串行挂成了另一篇论文的作者(见 §8 与第 05 章 §8)。

  21. 出处:「相关应用」第 468 段(text/01-full.txt:468,搜「Interactive Simulacra」)。斯坦福 2023,即「AI 小镇」。

  22. 出处:「相关应用」第 472 段(text/01-full.txt:472,搜「HuggingGPT」)。

  23. 出处:「相关应用」第 485 段(text/01-full.txt:485,搜「Self-Instruct」)。

  24. 出处:「Prompt 工程简介」第 314 段(text/01-full.txt:314,搜「Massive Multitask」)。MMLU:Hendrycks 等人。我们书架有它的工程实现拆解(补充(不在书里,依据我们的 frontier 书架):依据: shelf=ai-frontier-reference/openai-simple-evals#01-sampler-and-eval-protocol.md 事实=该拆解以 MMLU 为例讲评测四步:组 prompt、问模型、抽答案、判分,并对应到源码行)。