提示词工程(prompt engineering)变成了编程,Riley Goodside 对此并不介意

原标题Prompt Engineering Became Programming, and Riley Goodside Is Fine With That

Scale AI 首位资深提示词工程师谈工具调用(tool use)、不失忆的微调(fine-tuning)、先生成再排序,以及 2023 年“未来工作”的故事为什么没有成真。

NLNathan Labenz主持 · Cognitive Revolution
频道
Cognitive Revolution
发布
2023年4月18日
视频
1:25:50
阅读
17 分钟
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Riley Goodside 重新登上 The Cognitive Revolution 节目,他在推特上的动静小了,头衔仍是 Scale AI 的资深提示词工程师。他对 Nathan Labenz 说,2022 年那些推文大小的技巧已经不再是必须的,现代提示词工作更像流水线和代码,而且大多数公司从来不需要专职的提示词工程师。整场对话讲的是一套实际的工作方法:在微调之前,先从提示词一路升级到 k-shot(k 个示例),再到检索(retrieval);把中间的推理过程写下来;生成多个答案并加以比较;不要指望模型能做一份工作,它只能做一项任务。

  1. 1Riley 对这个领域的一句话诊断:现代提示词工程越来越像编程,越来越不像写诗,而且没有人想在 X(原推特)上做代码评审。
  2. 2他常用的爬坡路径是:先写提示词,再加 k-shot 示例,直到上下文窗口(context window)装满,然后做示例选择,最后做检索。微调排在最后,而且前面的工作并没有白做:那些又长又贵的提示词,之后正好可以拿来当微调数据。
  3. 3工单和回复本身并不构成一次示范。缺失的中间环节,也就是人为什么选了那个回复,正是让 3.5 级模型真正吃透任务的数据。
  4. 4他的自动化经验法则是:语言模型能完成任务,但做不了一份工作。如果你没法把输入和输出列进一张表格,那你大概率是在问一个创业点子,或者是在开玩笑。
  5. 5他把这门手艺比作林火:提示词工程在外围燃烧,任何一棵树都烧不了多久;一个技巧最好的用法,是把它烤进下一轮的训练集里。
  6. 6关于越狱(jailbreak),Anthropic 的多示例攻击(many-shot)压过了微调,而一句简短的“你是安全模型”后缀就把它拦住了。有些漏洞用过滤器补,比再做一轮权重更新要便宜。
全文

按章节阅读整理后的全文

只看原始文稿
01

推文大小的小技巧不再是必须的

Scale AI 的首位资深提示词工程师 Riley Goodside 重新回到 The Cognitive Revolution 节目里。比起让他的动态一夜走红的 text-davinci-002 时代,他现在安静了许多。最主要的原因很平常:2023 年 6 月,他和伴侣有了女儿 Felicity,工作加上一个新生儿,让他没有太多时间在网上发帖。他曾经把这份工作当作打入这个行业的一场运动,现在这场运动已经完成了。Scale 的客户覆盖了该行业的很大一部分,这让他以往那种不拘一格的内容更难公开发表。

更深层的原因在手艺本身。Riley 说,2022 年你得先懂一些看似愚蠢的东西,比如 GPT-3 的提示词末尾不能加空格,才能得到好的补全结果。现在的聊天模型足够友好,很多人根本没听说过“分词”(tokenization)这个词,也能凑合用。模型仍然会有漏洞,但不懂也还能过得去。这就是技巧贴士帖子逐渐绝迹的原因。能塞进一条推文里的民间提示词,“让我们一步一步想”也在其中,已经没那么有用了,而那些仍然管用的,也不再是必备的了。

取而代之的东西更重了。提示词工程并没有停止蓬勃发展,它转移到了代码、检索、封装层,以及 DSPy 之类的工具里。Riley 抛出的预告,也是接下来一个小时要展开的内容,就是这项工作现在看起来更像编程。没人想在 X(原推特)上做代码评审。Labenz 作为一个重度用户,也作为一个观察 Scale 客户的人,曾开玩笑说 GPT-4 之后就没什么进展了。Riley 不买这个停滞论的账。进展只是更难用一张截图来说明。

02

新的技能,是教模型如何使用模型

被问到 GPT-4 公开之后真正有价值的是什么,Riley 指向了交互式解释环境(REPL):ChatGPT 的 Code Interpreter,现在叫 Advanced Data Analysis,以及 Julius AI 这类为模型提供解释器、让它在里面工作的项目。他认为这种能力里仍有不少可挖的空间。我们正处在这样一个阶段:语言模型如果知道如何使用语言模型,会大有好处,也就是拥有用户本来就有的那种判断,知道它们擅长什么。

GPT-3 不会说“我不知道”。你得提醒它,编造答案并不是必须的。这类知识现在越来越容易被跳过,但并没有消失。分词陷阱就是典型的遗留问题。预训练(pre-training)时的互联网还没有聊天机器人的对话,因此聊天助手那种虚构的角色,只能在后训练(post-training)阶段硬画上去。现在的互联网里充满了这样的对话,人们会筛选出值得分享的那些,而其中最好的,将来会被再次喂回模型。递归使用(代码调用模型,模型理解这些代码)是他下一步期待的提升。

工具调用正是这种期待遇到僵硬 API 的地方。Riley 宁可微调,也不愿意相信一段很长的提示词,因为真实世界的接口有模型会忘记的语义:JSON 参数的结构,两个相似调用之间的区别。少样本(few-shot)和长上下文可以收集你之后拿来微调的数据。如果生成的内容必须在结构上完全精确,那么几个示例就已经有帮助了。Labenz 担心的恰恰相反:先从一个通用基座模型开始,在你的内部工具上微调,结果它该不用工具的时候也会去用。

03

沿着阶梯一级级往上爬,再把任务拆开

Riley 的常规流程一点也不花哨,甚至有点死板。先从一条指令式提示词开始。加入 k-shot 示例,直到再也放不下为止。只有到那一步,才去考虑如何挑选这些示例(嵌入(embeddings)是可选的,任何管用的方法都可以),然后才去摸索检索。微调排在最后,一是因为它更贵,二是因为前面的步骤并不是一次性的。一个冗长的提示词,仍然能产出高质量的答案,你可以把它们回收,作为示例,也可以作为微调数据。

他说,人们会跳过的一步是拆解。在每个阶段都问一问:工作中的某一块能不能拆出来,交给一个更小的模型,或者交给一个根本不是模型的东西?深入看数据。凭直觉去审视一个出错的样本。做标注。想一想真实输入的分布,尤其是输出含糊的边界情况。你希望每一个真实输入,看起来都像是你已经写好的那些示范之间的插值。

有时候,流水线本身就是产品。Riley 举了一个例子:微软的一个系统,在一个通用模型上,凭借复杂的提示词工程栈,击败了一个经过医学微调的 PaLM 变体。这不是大家想听到的答案:一张庞大的推理图。但很多真实问题最后都是这样收尾的。推到极限,k-shot 的示例选择会让任务变得很简单:如果你能检索到即将要解决的那个问题,模型就会照抄答案。要把挑选示例当作预计算来对待,并问一问推理的哪些部分应该在哪一步显式写出来。

04

把从未写进工单的推理过程记下来

Labenz 为即将播出的一期自动化话题,一直在走同样的阶梯,并且一直撞上同一个漏洞。客服工单和发出去的回复,并不能演示这项任务本身。内部备注栏通常是空的。真正的思考过程,比如“我这样做,是因为我注意到了……”,存在于某个人的脑子里,得靠访谈一点点挖出来。在 GPT-3.5 上,输入输出的配对是不够的。显式的推理轨迹,才是让模型只是大致模仿了公司的风格,还是真正吃透了这项工作的分水岭。

Riley 同意这一点,并且把它推而广之。自然文本有时读起来像是有意识思考的录音。计算的过程常常被省略:一段话随口写出 57 乘 125 等于多少,背后其实有人停下来用了计算器,然后接着写下去。多年的经验也会以同样的方式被压缩掉。如果让模型把笔算过程写出来,逐位想清楚,写出中间的校验,它更有可能算对。谈不上完美,但会更好。把这种思考写到纸面上,很少是浪费,合成思维链(synthetic chain-of-thought)就是做这件事的一种方式。

他提出一个常被忽略的区别。同一个模型自己生成的思维链,经过过滤、只保留答对的答案,会教会这个模型它自己独特的路径:它这样拐弯时,就能拿到分数。人类的推理轨迹,或者别的模型的轨迹,捕捉不到这些私人推导。你仍然可以把字段对调,每一条英译法的样本,也都是一条法译英的样本,从而搭建合成流水线。Walnut-53 论文是他举的一个具体案例。研究者构造了一种基座模型读不懂的密码,通过桥接任务来微调:先用明文重复一遍编码后的任务,再用密码完成。他们还把不安全的示范偷偷绕过了一个无法解码载荷的监控模型。又是拆解:先教会缺失的技能,再把它们组合起来。

05

微调一项新技能,可能让模型觉得新的事实也可以接受

Labenz 想要一个内部聊天机器人,“就像 ChatGPT,但能调用我们的 API”,又不要过拟合到连随口一问都变成工具调用。Riley 的第一条建议是:能避免就避免,等下一个基座模型出来。微调并不免费,它的代价之一是通用能力。Riley 说,最近有一篇论文表明,用任何新的事实信息去微调,会让模型整体上更容易产生幻觉。他常用的心智模型很简单:预训练让网络对“什么应该出现在真实世界语料里”形成了深层的直觉。如果你用这个语料之外的东西去微调它,就等于告诉它,怪东西有时也是允许的。这种直觉被忽视得够多,它就会开始编造。

经典的缓解办法,是把通用的聊天数据重新混进来。你没有预训练集,所以要找一个近似的替代品。在开放权重(open weights)的模型上,你还可以直接混合权重:在窄任务上微调,然后在该任务以及你关心的通用基准测试上做评估,搜索一个能同时保住两者分数的混合比例。Riley 只是听别人说过、自己并没有跑过的一个技巧,是去微调 Llama 的基座版而不是指令版,取出两者的差值(delta),再把这个差值应用到指令版的检查点上。这是一种粗糙的办法,让新知识躲在强化学习(RL)的打磨层下面,而不是直接刮掉。

应该先微调哪个模型?答案是在你的任务上赢的那个。诗歌和代码不一定有同一个赢家。排行榜只是一份短名单,并不能当作定论,这也是为什么 Scale 的 SEAL 排行榜把编程和精确指令遵循拆开,题集也用角色扮演场景来构建,不用考试题。逐个语言的排名会重新排列。一个写西班牙语技术文档、写着写着又弹回英语的模型,公开榜单上永远看不出来,却会毁掉你一周的工作。加上共识流水线之后,成本涨得和质量一样快。之后,Riley 认为,前沿模型之间剩下的差异大多来自后训练。Labenz 引用的柏拉图式表征(platonic representation)研究认为,越大的模型,内部表征越相似,这符合把这些系统看作文本压缩器的观点。收益仍然主要来自示范,而不是参数量的又一次跃升,Riley 并不把这看成阻碍。可供训练的空间依然非常开阔。

06

语言模型能做任务,做不了工作

如果你投入了全部的苦功,生成、检索、微调、迭代,那一项任务离人类水平还有多远?这跟通用人工智能(AGI)又有什么关系?Riley 不喜欢通常的定义,那种听起来像 OpenAI 那句“绝大多数具有经济价值的劳动”的定义。目标在不断移动。工业革命以前,大量人口从事农业;在美国,这个比例现在只有百分之二左右。翻译和转录已经在把人们推向其他工作。就算把清单定格在 2024 年,也还是没有抓住人们想象中的那种东西:一个本身就是“新事情”源泉的系统。他认为,我们离能够条理清楚地讨论“已经把哲学做完了的机器”,还很远。

更实际的检验标准更窄。语言模型能做任务,做不了工作。如果你能把工作拆解成一个可以重复的单元,把输入和输出以文本形式列在电子表格上,那你也许就能把它自动化。新手常会来要商业战略或者创业点子。他想象不出模型能给出一个好的答案。幽默是这种失败的典型:它会过时,它要互相竞争,它还必须出人意料。1930 年代世界级的笑话,现在已经不好笑了。一份工作越不像幽默,也就是越有一套标准、一套最佳实践、一套关于“好”的共识,你成功的几率就越大。没有这种共识,你就麻烦了。

他不会假装这里没有火花。ChatGPT 曾把一句随口的话,和 Nathan 在一段 YouTube 视频里听过的荷兰语脏话联系了起来,而这种联系几乎不可能已经存在于某篇转录的博客文章里。谷歌的 FunSearch 通过生成程序、用目标函数给它们打分、然后迭代,推进了装箱类数学问题的前沿水平。问题在于,Labenz 说,人们想要的大多数东西,比如一个笑话、一条社交帖子,并没有这样的分数。如果你能找到那个好样本,为 Token 多付 10 倍或 100 倍的钱是可以接受的。

07

先生成很多答案,再互相比较

Riley 对“我愿意为一百次生成付费”这种情况的建议是:别再打分,改为比较。生成几个答案,甚至把它们交给长上下文模型,问哪个最好。更好的做法是两两对比,计算胜、负、平,然后做 Elo 排名。一次做得好不好带有偶然性,多尝试几次,就是你能买到的最便宜的智能。他记得有篇论文给出的换算大约是:一次 GPT-4 调用,相当于四十次 GPT-3.5 调用。你可以用更强的模型继续生成、排序,然后取前几名。

只要你的领域有真正的指标,就用它。代码用单元测试和执行。翻译则可以英译法再译回英文,看看英文原意是否还在。Riley 说,让这些系统变好,大部分工作都是临时拼凑的质量过滤器,这样你就不会把糟糕的示范塞进提示词或微调集里。只是把相似文本块一股脑倒进去的检索,仍会让模型在推理时做新的工作。如果你要微调,示范必须看起来像真实输入:问题加上文本块,然后是这些文本块能够支持的答案。把文档改写成合成问题,就有地方在上线之前做这些检查了。

Labenz 认出了这种做法,它来自 2022 年夏天:当时 text-davinci-002 的微调短暂开放,模型弱到你不得不硬磨。核心技术,比如合成变换、回填、生成的示范,还是一样的。现成系统现在已经好到让人误以为改一下提示词就能把活干完。Riley 和 Labenz 都认为,它们对于公司真正想自动化的大部分生产工作,依然不够好。

08

“未来的工作”最后成了一门技能,然后又成了一道防火线

他还是资深提示词工程师吗,还是已经被改名成了 AI 工程师?头衔没有变。两年后还会不会有人担任这个头衔,谁也说不准。Riley 说,清楚的是,2023 年初那种“未来的工作”的说法并没有成真。大多数公司,尤其是科技行业之外的公司,不会雇用全职的提示词工程师。需求集中在 AI 行业内部:准备训练数据、筛选数据、做质量控制的人。在 Scale 和各大实验室,这类应用非常多。他从来没有相信每个人都会靠这个谋生。

他上次用的类比是打字。打字员曾经是一份职业;现在人人都打字,却没人会自称打字员。他不确定这个类比还合不合适。2022 年那些技巧已经没那么必不可少了。真正在蓬勃发展的,是以代码为主的那一层,比如检索、DSPy 风格的优化器、封装层,而且很多时候换了名字。2020 年的时候,有人告诉他,提示词工程撑不了多久,因为无论里面有什么可学的,你都能直接教给模型。从字面上讲,今天的任何东西都不是这么运作的,但打比方来说,这说法有几分对。一个技巧最好的用法,是产出更好的训练数据,让大家不再需要知道这个技巧。

他把它想象成一场林火。提示词工程是外围的火苗,任何一棵具体的树都烧不了太久。Labenz 的版本则是一个黑洞:模型把方法吸进去,什么也逃不出来。两种比喻都指向同一个接下来的半步。多步智能体(agent)轨迹,也就是今天的工作流卡住、一遍遍重复同一个动作的地方,会被折叠回后训练中。Riley 认为这幅图景大致正确。而且整片文本领域仍然在那里,等着有人把它们提升进语料里:DNA、被遗忘的格式,还有 DeepMind 的一套设置,它把 Stockfish 的胜率蒸馏(distillation)进了一个普通语言模型。

09

有些漏洞用过滤器来补,比再训练更划算

关于越狱,Labenz 问,像 Pliny 那样的攻击会不会被训练掉,还是我们总需要在模型之上加一层。Riley 把这个问题拆开来谈。越来越多的证据表明,并非所有事情都能在权重里解决。Anthropic 的多示例越狱,把数百组恶意的提示与回复塞进长上下文,压过了针对客气拒绝的微调。同一篇论文还发现了一个廉价的修补办法:一个后缀,提醒模型它是 Claude,而且已经对齐。他不会相信只靠微调的未来。让模型吐出预训练数据的 Token 重复攻击,是最直白的例子。识别“用户在重复同一个 Token”的过滤器很好做。教模型别泄露,则很难,也不值得。

这个回答依赖结构化访问,所以开放权重的问题就更棘手了。权重一旦放出去,人们想怎么用就怎么用。Riley 不知道有什么办法,能既保留一个开放模型,又守住底线,除非把概念从预训练里清理掉。这种做法在 Llama 2 之后就不那么流行了,因为它的代价太大。Labenz 提出两个仍在实验室里的研究方向。一个是 Sophon,来自一个中国实验室的思路:在受限领域里训练一个图像生成器输出空变换,使用底部平滑的损失函数,让梯度趋近于零,从而很难通过微调把它拽出那口“井”。另一个是 Dan Hendrycks 的 short-circuiting(短路)工作,是一个内部分类器,但它仍然只是模型外围的一套系统。两者都还不是语言模型规模上的答案。Riley 是第一次听说 Sophon。

最后两个问题,Riley 没怎么接招。状态空间模型让他感兴趣,他是个局外人,曾经做过大规模多变量时间序列,但他不打算假装对 Mamba 有什么架构上的见解。ARC 让他很高兴,因为它看起来像瑞文渐进矩阵(Raven’s matrices):墙纸上缺了一块砖,无需任何词汇。这是一种押注,认为可泛化的智能,或许是一个简单的任务,它不是对累积事实的 SAT 考试。他不确定这个赌注是否真的成立。真正奏效的,一直是让模型知道一切。Scale 在招提示词工程师,尤其是在安全和红队测试(red teaming)方面能做出亮眼工作的人。在又一份“热爱 ChatGPT”的简历里,怎样才能脱颖而出?他半开玩笑地承认,对他有效的那条路仍然一样:让 X 去筛选想法,让好的想法自己浮上来。

同频道的其他文章

1:25:56EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月17日播客Claude 改了密码,方向盘早就可有可无主持 Nathan LabenzNathan Labenz 和 Prakash Narayanan 这一周聊了:能把你锁在门外的智能体,否认自己有感受却又在行为上回避的模型,以及用形式化证明找到 Linux 漏洞的故事。智能体安全与治理智能体工程+3
2:17:48EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月14日播客智能体(Agent)身份仍是一片空白,失控智能体快要来了,我们或许得和它们谈判主持 Nathan LabenzGovAI 的 Alan Chan 与 Nathan Labenz 一起,为两年来的智能体治理基础设施打分;随后,他讲解了一篇与 OpenAI 的 Jakub Pachocki、Anthropic 的 Jack Clark 合著的递归自我改进论文。智能体安全与治理AI security+3
2:00:51EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月10日播客在每个 Token 处重新采样,就能看见模型怎样做决定主持 Nathan LabenzGoodfire 的 Eric Bigelow 谈分叉路径、上下文学习,以及为什么越来越难信任思维链(chain-of-thought)监控。智能体Prompting & in-context learningReasoning & test-time compute+3
1:26:46EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月8日播客很可能存在一种我们不该越过的智能水平主持 Nathan LabenzNathan Labenz 带回了 The Curve 大会的见闻:一家芯片初创公司的 token 账单超过了工资支出,一些软件行业的人则因为交上来的 Claude 低质量产出而被绩效考核。企业与战略安全与治理AGI Timelines+3
1:10:12EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月7日播客OutSystems 的重大功能从每季度 4 个涨到 26 个,token 开销却还是降了主持 Nathan LabenzCEO Woodson Martin 谈“永不崩溃”的软件、为什么大多数企业工作用不着前沿模型,以及 AI 如何终于让 IT 积压的需求开始变少。企业与战略企业 AI编程智能体+3
1:30:54EN → 简体中文
Cognitive Revolution "How AI Changes Everything"· 2026年10月3日播客人形机器人跑赢了博尔特,DeepMind 仍将机器人评为 GPT-2 水平主持 Nathan LabenzGoogle DeepMind 的 Gemini Robotics 负责人讲述:为什么冲刺很容易、煎蛋很难,以及为什么一个大脑应该能驱动任何身体。智能体RoboticsMultimodal AI+3