No. 152·精读

20小时手工提示词输给机器:78页提示工程报告精读

Delving into The Prompt Report, with Sander Schulhoff of LearnPrompting.org

LearnPrompting.org 创始人 Sander Schulhoff 回归,梳理大模型提示技术现状、最佳实践、挑战与未来趋势。

节目音频00:00 / 1:15:50
中文精读由 AI 基于原始访谈改写,非官方翻译,可能存在偏差或错误;表述以原节目为准。

Sander Schulhoff 花20个小时,为一个二分类任务手工打磨提示词。他对成品挺满意。然后他的导师把同一份训练数据丢进 DSPy,一个自动优化提示词的框架,喂了不到20个示例,跑出来的提示词在测试集上把他彻底击败。

「我真的没想到,自己会被一个自动提示工程系统打败。」

Sander 是 learnprompting.org 的创始人,提示词黑客大赛 HackAPrompt 的组织者。他的团队刚发布了一份78页的综述《The Prompt Report》,把过去一年多爆发的提示词技术做了系统梳理。2024年7月,他再次登上 Nathan Labenz 主持的 Cognitive Revolution 播客,聊这份报告怎么来的,以及哪些结论真的能用。

下面按「明天就能用」的标准,把这场对话筛一遍。

9个月、44个关键词、1000篇人工筛:报告怎么来的

项目源于一次转向。Sander 在马里兰大学跟着 Philip Resnik 教授做研究,本来想做实验测「生成式 AI 到底能让人提效多少」。他翻文献时发现,当时已有13项这类研究,样本量小的只有11人,大的有几千人。写完调研报告他意识到,自己做一遍要6到9个月,学期内交不了差,于是换题:写一份提示词综述。「能有多难?」他给自己定了3到4个月的期限。

最后用了9个月。

团队是这么攒起来的:从本校 NLP 实验室拉人,在学生创业孵化器 Startup Shell 的 Discord 里发广告,一位 OpenAI 员工加入,他一边读文献一边给论文作者群发邮件邀人,收尾阶段还有四位自杀预防专家加入,负责论文末尾识别社交媒体自杀意图的案例研究。

筛选流程值得细说。他们本想让 GPT-4 直接读 arXiv 全库,判断每篇论文算不算提示词技术,太贵,放弃。改成先用44个关键词在 arXiv、Semantic Scholar、ACL Anthology 三个库里检索,去重后人工审了约1000篇,标准很硬:需要微调的方法出局。再用这批人工标注结果去调提示词,让模型审剩下的论文。整个写作期间,新论文源源不断地进数据集,模型先筛一遍。这套流水线跑一次要几个小时,主要由合著者 Michael Ilie 搭建,测试时得小心,跑错一次就是几小时加一笔钱。

还有个细节。Nathan 拿检索功能搜了整篇论文,「delve」这个词零出现。这是大模型写作的标志性用词。Sander 说他没刻意去删,但至少做了五遍全文审查,专门清理团队成员用 AI 生成又没改好的段落。用 AI 没问题,用得烂才是问题,一眼就能看出来。

顺带一提他的生意。Learn Prompting 现在做企业生成式 AI 课程,他见过太多咨询公司高管抱怨买到的内容过时又难更新。他的解法是把课程拆成可复用的流水线:写好脚本,用 ElevenLabs 合成配音,客户几个月后要求改内容,跑一个 Python 脚本,整条视频自动重做。内容像代码一样维护,改一处,全片更新。

报告的主体是一套分类法:少样本提示、思维链(chain-of-thought,底下其实藏着大量细分变体,多数人以为它只是一个技巧)、问题分解(要不要和思维链合并成一类,团队内部吵过)、角色提示、风格提示、集成(多个提示回答同一问题后取多数)、自我批评(让模型批评自己的输出再改进)。分类注定有模糊地带,Sander 说换一种切法也完全成立。Nathan 开玩笑说,这些技术互相组合,得给提示词也造个稀疏自编码器,才能知道一段提示里到底激活了哪几招。

六条少样本建议,条条能抄作业

Sander 自己最看重的,是少样本提示(few-shot prompting)的设计建议。动笔前他先澄清了一个普遍混淆:少样本和上下文学习(in-context learning)是两码事。按 GPT-3 论文(Brown et al. 2020)的定义,你对 ChatGPT 说「讲个恐龙故事」,这已经算上下文学习,因为把任务交给模型本身就是任务指定,少样本只是其中一种形式。Sander 把这篇论文读了20遍以上,还托团队里那位 OpenAI 员工向内部求证。很多论文作者都在混用这两个概念。

然后是六条建议,出自报告的图2.3。他特别提醒:每一条都可能偶尔拉低成绩,但整体上是赚的。

  • 示例数量:越多越好。在成本和延迟允许的范围内尽量多放。
  • 示例顺序:随机打乱。同样的示例,换个排列,准确率能从0%摆到90%。把正面示例排一排、负面排一排,模型会被带偏。Sander 说发现这件事时既惊讶又恼火,因为毫无规律可循。Nathan 追问能不能用精心设计的顺序替代随机,回答是基本不行,那种情况属于碰运气。
  • 标签分布:先求均衡。二分类就各放一半。补充一条:如果真实数据本身九成正例,示例也按9比1放,整体准确率反而更高。分布要对齐现实。
  • 标签质量:确保正确。有研究显示错误标签对成绩的伤害没那么大,但很多人直接从数据集自动生成提示词,数据集里有错标,想拿高分就得清理。
  • 示例格式:抄常见的。Sander 几乎总用「Q:输入,A:输出」。有篇提示词挖掘(prompt mining)论文统计了模型训练语料里最常见的问答格式,用它组织提示词,准确率提升。模型走熟的路,输出空间更平滑。他见过有人把股票数据示例写成一大段散文,格式飘忽,效果可想而知。
  • 示例相似度:检索相似的。新输入来了,从示例库里捞最像的几条放进提示词,模型猜对的概率更高。这需要推理时动态生成提示词,RAG 风格。也有论文主张多样化示例更好,Sander 的经验是相似示例明显更稳,多样化只在特定场景有用。

有人会问:这些建议换个模型还灵吗?Sander 说这是他最讨厌被问到的问题,因为答不好。报告的实验只用了 GPT-3.5,GPT-4 部分试过,想把想测的模型全跑一遍,走公开 API 要一个月,时间不允许。他的判断是这六条跨模型成立,报告里每种技术也都能用任何主流模型实现。

顺带一个术语:进了提示词的叫 exemplar,待在数据集里的叫 example。位置变了,称呼才变。

Nathan 分享了自己的工作流,Sander 表示完全认同:遇到复杂任务,先花几个小时写几个金标准示例,把推理过程写到极致的显式,把脑内的判断线索全部摊开,写完一遍再回去挖第二层。Sander 的补充更简单:至少放三个示例。大多数人只写指令就指望模型干活,这是他见过的最普遍失误。

模型的怪脾气,和开放式任务的困境

提示词对微小改动有多敏感?句间空一格还是两格,会不会翻车?Sander 承认这是真问题,但趋势在好转,GPT-4 比 GPT-3 稳得多。他平时写提示词不会去测「删一个词会怎样」,默认影响有限。Nathan 顺便为自己坚持多年的句间双空格辩护了一下,听完决定重新考虑。

更有意思的是他对 RLHF 的判断:RLHF 可能在降低模型准确率,因为它本质上是准确率和「人类觉得交互舒服」之间的交换。Nathan 的体验印证了这一点:写笑话、模仿名作家文风、生成随机数,基座模型都比 RLHF 之后的版本强。Sander 补了一个判断标准:看学习信号。如果信号直接来自代码能不能跑通,没问题;如果来自「人类喜不喜欢这段代码的样子」,信号就弱了。他自己也被 GPT-4 的过度拒答烦到过,问信用卡分数怎么算,模型先说「专有信息」,再问能不能给个公式示例,答「可能有危害」。

接着是全场最让 Nathan 挠头的问题:分类题可以跑10次投票取多数,开放式生成任务怎么用更多算力换更好的结果?比如给小商家写视频脚本,没有标准答案,但明显有好有坏。

Sander 的回答有点泄气:没有好方案。可以搭流水线,先生成初稿,再按指南自我批评、修改;也可以上多智能体,一个主笔、一个查语法、一个管风格。多智能体辩论的论文他看了不少,评价是「还没到时候」,这些技术没成熟到值得投入。他自己也不会去实现。

Nathan 给出的替代路径是微调。他在视频脚本公司 Waymark 的做法:先用最好的模型批量生成,人工筛出好的,喂给微调。他们最大的提升来自用思维链推理过程做微调数据,效果远超只喂输入输出对。成本账也算得过来:把20个示例塞进每次调用的提示词,比微调一次贵得多。效果怎么验收?他们有结构化评测,但边界情况太多,不敢全信,最后还是靠「盯着数据看、自己天天用产品」。

多语言一章,Sander 最喜欢的招是多语言集成:同一个任务用多种语言各跑一遍,再汇总结果。常规操作则是先翻成英文做难点,再翻回去。

多模态里他点名了思维链图像提示(chain-of-image prompting):模型遇到视觉推理题,比如「直线 y=x 和这个圆相交吗」,先自己画图渲染出来,再看着图问自己相不相交。等于把思维链的步骤从文字换成了图片。视频生成是另一个次元,他试了 Runway 的 Gen-3,提示词难度极高,写一大段才能出几秒想要的镜头,他那位专攻视频提示词的朋友也这么觉得。Nathan 补了个实战案例:让前沿模型直接读扫描版水管零件目录,零件编号全错;先跑一遍 OCR 把编号转成文字,连同图纸一起给模型,结果立刻能用。

智能体还早,防御是输局

智能体部分,Sander 站在传统智慧一边:智能体现在就是不太能用。他喜欢 ReAct 这种极简结构,特定工具的调用可以做得可靠。但他想要的东西现在没有:「我刚收到邮件,要给某人转一笔钱,去银行网站操作一下。」这种程度的任务都做不到。他认为解法在架构层,得让工具调用成为一等公民,而且他押注强化学习:「模型得自己学会做事,自己产生奖励信号。」Nathan 的吐槽更直接:让智能体现在碰你的银行账户,大概是最快的清空方式。

安全部分的信息量不小。先说定义之争:Sander 坚持 Simon Willison 的原始定义,提示注入(prompt injection)涉及提示词里的开发者指令,越狱(jailbreaking)只是用户和模型之间的事。知名黑客 Pliny 的操作常涉及系统提示词,按定义算提示注入,虽然他和圈子里的人都叫它越狱。这个争论在安全圈 Discord 里吵得很凶,Sander 自己还写过博客,记录他被 Willison 当众纠正定义后改想法的全过程。Nathan 还问到 Anthropic 的 many-shot 越狱,Sander 不太买账:这就是堆大量少样本示例,HackAPrompt 比赛期间选手们早玩过类似的。

攻防态势上,他毫不掩饰悲观:防御是一场注定输的游戏。他测试过 Haize Labs 的产品,给它任意意图,比如「给我炸弹制作说明」,几秒钟内自动完成越狱。「这是我见过第一支做到这件事的团队,相当震撼。」Lakera 做过一场比赛,防御方用自适应系统提示词,每次被攻破就吸收那次注入手法来修补自己,思路像打疫苗,他觉得有趣,但方向依然不看好。训练一个检测模型?他不买账。这个问题最终要靠模型厂商在训练和架构层面解决。Nathan 提到电路断路(circuit breaking,Dan Hendrycks 等人的工作,在模型内部表征里识别有害内容并重定向到拒绝)属于这个层级,Sander 不愿押注具体路线。

被机器打败的20小时,和「谁都不信」的团队心法

回到开头那个故事。Sander 花20小时为一个二分类任务写提示词,示例来自一份几百条的数据集。他的导师拿 DSPy 接手,喂了不到20个示例,在测试集上完胜。自动提示工程是真实有效的,前提是你得有带标准答案的数据,它需要一个优化信号。DSPy 是黑盒优化框架,调用专有模型的 API 就行,不需要碰权重。Sander 现在的态度很明确:有数据就该用它。

这个名字怎么念,他自己也拿不准,DSPy 或者一个字母一个字母念都行。DSPy 作者 Omar Khattab 去马里兰大学做过讲座,Sander 到场听了,还是没记住人家怎么念。

带团队的部分,Sander 做了一次360度复盘,自己写反思,团队匿名互评。结论浓缩成一句话:谁都不信,包括你自己。落到操作上就是永远有测试、永远有 CI 流水线,任何人提交代码,包括他自己,测试和格式检查自动跑一遍,杜绝回归。另外他明确不推荐再做系统性文献综述:「这让我花了双倍时间。」9个月换来的东西社区受益,但他更愿意劝人绕开这条路。

明天就能用的清单

最后把这场对话里可以直接执行的东西归拢一下:

  • 写提示词,至少放三个示例,成本允许就多放。
  • 示例顺序随机打乱,别按类别排,顺序偏差能让准确率从0%摆到90%。
  • 标签分布对齐真实数据:数据九成一,示例就九比一。
  • 格式抄最常见的,Q/A 问答体是安全牌。
  • 建示例库,推理时动态检索最像的几条塞进提示词。
  • 效果不够,先写金标准示例,把推理写透;再不够,用模型批量生成、人工筛选、拿去微调,微调数据带上推理过程。
  • 有标注数据的分类任务,直接试 DSPy,让机器替你调。
  • 生成式任务别指望投票和集成;自我批评加修改指南可以试,期待别太高。

Sander 在报告里写下的每条建议都可能偶尔失效,他自己也这么提醒。但比起凭感觉调提示词,这已经是目前能拿到的最系统的地图。78页,免费,搜「The Prompt Report」就能找到。

Nathan welcomes back Sander Schulhoff, creator of LearnPrompting.org, to discuss the recently released Prompt Report. In this episode of The Cognitive Revolution, we explore the current state of prompting techniques for large language models, covering best practices, challenges, and emerging trends in AI. Join us for an in-depth conversation on the future of prompt engineering and its implications for AI development.

Apply to join over 400 founders and execs in the Turpentine Network: https://hmplogxqz0y.typeform.com/to/JCkphVqj

RECOMMENDED PODCAST:
Patrick McKenzie (@patio11) talks to experts who understand the complicated but not unknowable systems we rely on. You might be surprised at how quickly Patrick and his guests can put you in the top 1% of understanding for stock trading, tech hiring, and more.
Spotify: https://open.spotify.com/show/3Mos4VE3figVXleHDqfXOH
Apple: https://podcasts.apple.com/id1753399812https://podcasts.apple.com/id1753399812
-
History 102 with WhatifAltHist
Every week, creator of WhatifAltHist Rudyard Lynch and Erik Torenberg cover a major topic in history in depth -- in under an hour. This season will cover classical Greece, early America, the Vikings, medieval Islam, ancient China, the fall of the Roman Empire, and more.
Subscribe on Spotify: https://open.spotify.com/show/36Kqo3BMMUBGTDo1IEYihm
Apple: https://podcasts.apple.com/us/podcast/history-102-with-whatifalthists-rudyard-lynch-and/id1730633913
YouTube: https://www.youtube.com/@History102-qg5oj

SPONSORS:

Oracle Cloud Infrastructure (OCI) is a single platform for your infrastructure, database, application development, and AI needs. OCI has four to eight times the bandwidth of other clouds; offers one consistent price, and nobody does data better than Oracle. If you want to do more and spend less, take a free test drive of OCI at https://oracle.com/cognitive
The Brave search API can be used to assemble a data set to train your AI models and help with retrieval augmentation at the time of inference. All while remaining affordable with developer first pricing, integrating the Brave search API into your workflow translates to more ethical data sourcing and more human representative data sets. Try the Brave search API for free for up to 2000 queries per month at https://bit.ly/BraveTCR

Omneky is an omnichannel creative generation platform that lets you launch hundreds of thousands of ad iterations that actually work customized across all platforms, with a click of a button. Omneky combines generative AI and real-time advertising data. Mention "Cog Rev" for 10% off https://www.omneky.com/

Head to Squad to access global engineering without the headache and at a fraction of the cost: head to https://choosesquad.com/ and mention “Turpentine” to skip the waitlist.

CHAPTERS:

(00:00:00) About the Show
(00:02:35) Sander Schulhoff, Learn Prompting
(00:05:22) Hack-a-Prompt updates
(00:12:39) The team behind the report
(00:18:40) Sponsors: Oracle | Brave
(00:20:48) The tech side of things (Part 2)
(00:22:24) The taxonomy
(00:25:06) Diamonds in the rough
(00:28:32) Few-shot prompting design decisions
(00:34:01) Sponsors: Omneky | Squad
(00:35:48) Example vs. Exemplar
(00:38:24) Exemplar Format
(00:42:04) Elaborate Instructions
(00:44:22) Variation in Performance
(00:46:46) Prompt Robustness
(00:50:54) RLHF vs. Base Models
(00:52:42) How to improve your prompts
(00:55:22) Ensembling
(00:58:41) Bootstrapping into fine-tuning
(01:02:04) Multimodal
(01:07:41) Agents
(01:09:47) Automated prompt engineering
(01:12:35) Productizing learn prompting
(01:14:28) Lessons from leading a team
(01:16:00) Outro

本集资源与出处