速成课 · No. 33
普通模型一遍就把答案脱口而出。但对于难题,先让它一步步推演——作答前先推理——能极大改善结果。reasoning model 和 test-time compute 讲的就是在作答的那一刻多花些力气,以换取更好的答案。它对难题威力巨大,对简单题却是浪费——所以真正的本领,是知道什么时候把思考的旋钮拧大。
只讲精髓 · 每个想法一个画面 · 思考有代价
整个思路源于一个简单的观察:一个把问题一步步推演下来的模型,比一个直接蹦出答案的模型表现更好——就像人一样。
脱口而出 vs 一步步算出来
一个学生把脑子里冒出来的第一个数字喊出来,另一个学生先在草稿纸上把题算一遍——第二个对得多得多。
默认情况下,模型一遍就给出答案,直接生成回应——基本上就是脱口而出。对简单问题这没问题。但对任何需要几步逻辑的问题,直接跳到答案恰恰是它栽跟头的地方,就像人匆忙做难题时会犯粗心的错。解决办法和老师们要求的一样:别光给答案,把步骤推演出来——能做到这一点的模型,在难题上明显更准。
chain-of-thought:把推理一步步说出来
做数学题时把过程写出来——按顺序写下每一步——这样推理一目了然,中途出的差错能被抓住,而不是被掩埋。
chain-of-thought 是这样一种技巧:让模型在给出最终答案之前一步步生成它的推理,而不是只产出答案本身。当被要求「想清楚再说」时,模型会把中间步骤一一写出来——把这些步骤明明白白地推理一遍,得出正确结论的概率,要比一步跳到答案高得多。这些步骤不只是做做样子:正是生成它们,才让模型一步步搭建出正确答案,而不是猜一个出来。把思考落在纸面上,思考本身就变好了。
步骤才是真正做功的地方
一长串计算在脑子里做容易出错;同样的计算落在纸上,一行一行来,就可靠了——纸承载了大脑会丢掉的东西。
为什么写出步骤有用?因为每一个生成出来的步骤,都成了模型可以在下一步上继续搭建的上下文——它实际上是在拿自己的输出当工作记忆,把一次艰难的跳跃拆成一连串小而可控的动作。一个大到无法一步解决的问题,作为一个序列就变得可解了。这是本课一切内容背后的核心洞见:给模型留出推理的空间,而不是逼它即刻作答,正是攻克难题的关键。
一个一步步推演的模型,胜过一个脱口而出的模型。chain-of-thought——把推理一步步说出来——把一次艰难的跳跃变成一连串可控的动作,准确度随之而来。
原本只是一个提示词技巧,后来变成了一类模型。reasoning model 经过训练,会在作答前先思考,把这套一步步的过程默认内建进去。
被训练成先思考再作答的模型
一个张口就答的人,和一个被训练成先停下来推理的人之间的区别——思考的习惯被内建进了他们的做事方式里,而不是你得开口去要的东西。
reasoning model 是一种被专门训练成在给出最终答案之前先生成一段内部 chain-of-thought 的模型——默认就先「思考」,而不是只在被提示时才这么做。标准模型脱口而出,chain-of-thought 提示词哄着它去推理,而 reasoning model 已经把这套一步步的过程内建进了它的运作方式。它先产出一段内部推理,再给出答案,在真正需要推演的问题上明显更强。
它们用速度换深度
一个作答前花一分钟仔细想的谨慎专家,给出的答案比一个张口就回的快手更好——但你得等。
reasoning model 每个答案要花更多力气和时间,在作答前把所有这些内部步骤都生成出来。这让它比标准模型更慢、更贵,换来的是在难题上更出色。这是一笔实打实的交易,而不是免费的升级:你是在为思考的深度付费——付的是延迟和 token。所以 reasoning model 并不单纯就是「更好」;它是一件不同的工具,适用于额外思考对得起其代价的问题,而在不需要时则是杀鸡用牛刀。
它们是对付难题的工具,不是默认选项
你请深度思考的专家来处理真正棘手的情况,而不是来回答前台的日常咨询——派错活儿,就糟蹋了他们的天赋。
当任务确实需要细致、多步的思考时,reasoning model 才是对的工具——而对于简单、快速的活儿,它的字斟句酌纯属浪费。用 reasoning model 去给一条消息分类、或重新排版一段文字,就像雇个哲学家来接电话:更慢更贵,却毫无好处,因为这任务压根不需要那番思考。reasoning model 是攻克难活儿的强力工具,而不是用来在其他一切事情上替代快速的普通模型。
reasoning model 被训练成在作答前一步步思考——在难题上更强,代价是更慢更贵。它是对付难题的工具,不是凡事的默认选项。
reasoning model 之下,藏着一个正在重塑 AI 进步方式的更深的想法:让模型变好,不只能靠多训练,还能靠让它在作答的那一刻更卖力。
在作答时多花力气
考试时多给你些时间,你会检查答案、换个思路、抓出错误——同一个人,只因被允许花更久,分数就更高。
test-time compute 指的是在作答的那一刻——在 inference,即模型运行的时候——多花算力,以换取更好的结果。模型不是匆匆来一遍,而是想得更久、生成更多推理,也许尝试多种思路再挑最好的一个。reasoning model 背后那个引人注目的发现是:让模型在作答时多做些功,能提升质量,很像给人在难题上多些时间。你可以用更多思考、而不只是更多训练,来换取更好的答案。
一个调节思考深浅的旋钮
一个调节用力程度的恒温器:难题就拧大,简单题就拧小,思考花得正好配得上任务的分量。
test-time compute 是一个旋钮,而不是一个开关:你可以花一点点思考,也可以花很多,而更多思考在难题上通常带来更好的结果——直到收益递减的那个临界点。这一点很有威力,因为它让你能按难度来调配力气:真正的难题就把思考拧大,日常的活儿就保持低档。每次请求都能拿更多算力去换更高准确度,这是一根灵活的杠杆——而知道它的存在,会改变你应对难题的方式。
training-time vs test-time
一个学生考前更用功地复习,与同一个学生考试中被多给些时间之间的区别——这是拿到更好结果的两条不同路子。
历史上,模型变好主要靠更卖力地 training——更多数据、更大模型,一次性在前期做完。test-time compute 是另一条轴:靠在 inference 时更卖力来改善答案,每次模型运行时都如此。它之所以重要,是因为这是获得更多能力的第二条路——不只是更聪明的模型,而是同一个模型想得更久。明白质量既可来自 training-time 的功夫、也可来自 test-time 的功夫,能帮你想清楚一个模型的表现——以及它的成本——究竟从何而来。
test-time compute 指的是在模型作答时、而不只在 training 中多花力气——而更多思考能在难题上换来更好的答案。它是一个旋钮,难就拧大,日常就拧小。
恰恰是在问题难的地方,推理才有威力;恰恰是在问题简单的地方,推理才毫无意义。分清哪个是哪个,就是用好它的大半。
又难又多步的问题受益最大
一条拐弯众多的复杂路线,值得仔细规划;一条直通隔壁那家的笔直道路,则不必——路越难走,思考越划算。
推理在那些真正需要好几步逻辑才能做对的问题上最有用:数学和计算、多步规划、复杂代码、逻辑谜题、一步走错就毁掉答案的细致分析。这些恰恰是脱口而出会失败、而一步步推演会成功的任务。问题越难、步骤越多,额外的思考就越能改善结果——这也是为什么 reasoning model 在满是真正难题的基准测试上大放异彩。
简单任务一无所获
对着「午饭吃什么」反复斟酌,可你本来两个选项都乐意——所有这番思考产出的还是同一个答案,只是更慢了。
对于简单、直接的任务——给这个分类、把那个抽取出来、重排这段文字、回答一个基本的事实问题——推理除了拖慢和增加成本,什么也没添。这里没有多步逻辑可推演,所以思考是多余的动作;答案一遍就明摆着了。更糟的是,逼一个模型去「思考」一个琐碎任务,偶尔反而会让它更差,把一件本不需要斟酌的事搞复杂了。让思考配上问题:简单任务要的是快答,不是深思熟虑的答。
让思考的深度配上难度
一个好手在难抉择上花很久,对简单问题则即刻作答——按每件事实际需要的来校准力气。
主导原则是:让模型思考的深浅,随问题的难易而伸缩。真正困难、利害重大、多步的活儿,配得上一个 reasoning model 或更多 test-time compute;简单、日常、范围清楚的活儿,用一个快速标准模型就好。这呼应了模型经济学里的路由思路:大多数请求很简单、要的是速度,少数难、要的是思考。把什么都丢给 reasoning model,就和把什么都丢给前沿模型一样浪费——要校准,别一上来就默认。
推理在又难又多步的问题上最有用,在简单题上则毫无用处。让思考的深度随难度伸缩——难的那一小块用 reasoning model,简单的大多数用快速模型。
思考不是免费的。更多推理意味着更多时间和更多 token,无视这份代价,团队最后就会花一大笔钱去慢吞吞地回答简单问题。
更多思考意味着更多 token 和金钱
一个在有人斟酌时一直转的计价表——想得越久,账单越大,无论那番额外的思考是否必要。
所有这些推理步骤都是生成出来的 token,而你要为它们付费。一个 reasoning model 或一个高 test-time-compute 的设置,会在答案之前产出大量内部思考,而其中每一个 token 都要花钱——所以推理每个答案的成本,比单次直接来一遍要明显更高。让它在难题上更出色的那份深度,恰恰也是让它更贵的原因。这正是为什么「凡事都用 reasoning model」会毁掉一份 AI 预算:你为每一次请求的思考付费,包括那些压根不需要思考的请求。
它更慢,而这对用户很要紧
那位花一分钟才作答的谨慎专家,对一个难题来说值得等,但如果你只是问了下时间,就让人抓狂。
生成所有这些推理步骤要花时间,所以 reasoning model 和重度的 test-time compute 产出一个答案要更慢——有时慢得多。对一个后台任务来说这没问题;但对一个在屏幕前等待的用户来说,长时间的延迟是对体验实实在在的代价。所以思考的延迟也是这笔交易的一部分:对一个用户本就预期要花点时间的难题来说,多出的那几秒是值得的;而对一个本该感觉即时的交互来说,它格格不入。速度是一种功能,当你把思考拧大时,就是在花掉它。
别为任务不需要的思考买单
雇那个又慢又贵的深度思考者,整天回答简单问题——你付着高价,等着更久,换来的答案一个手脚麻利的文员瞬间就能给。
要避免的浪费,是把推理的成本和延迟花在不会从中受益的任务上。把每一次请求——不分难易——都经由一个 reasoning model,就意味着对整条数据流都交思考税,而其中只有一小块需要它。这里适用和模型经济学一样的纪律:默认走更便宜、更快、不推理的那条路,只对真正难、对得起其代价的情况才升级到推理。在思考能回报你的地方付费,多一个 token 都不付。
思考耗 token、耗时间——推理每个答案更贵也更慢。只在难题对得起它的地方付费;把一切都经由 reasoning model,是为只有一小块需要的好处,对整条数据流交税。
一长串看起来缜密的推理链,很容易让人信以为真。但更多步骤并不保证答案正确——一个 reasoning model 可以自信满满、洋洋洒洒地错下去。
一条长链照样能抵达错误答案
一段详尽、自信的论证,却建立在一个站不住脚的前提上——每一步都顺理成章,结论照样是错的。光鲜不等于证明。
推理提升的是难题上得出正确答案的概率;它并不保证正确。一个模型可以产出一长串流畅、貌似合理的 chain-of-thought,却导向错误的结论——链条早处的一个错误被自信地一路带到底,或者推理听起来严谨、实则不然。看得见的步骤让答案感觉更可信,而这恰恰是陷阱:更多推理看起来更权威,却未必更正确。
推理未必是真正的原因
一个凭直觉拿主意、事后再编出一套听着合乎逻辑的理由的人——那套解释听着像真的,却并不是他实际得出结论的过程。
还有一个更隐蔽的陷阱:模型展示出来的 chain-of-thought,未必就是产生其答案的真实过程。它可以生成一段看起来通向结论的推理,而真正的依据其实另有其物——这是一套听着合理的事后开脱,而非忠实的交代。所以你不能把展示出来的推理完全当作答案为何如此的解释来信。它是一个有用的信号、一个提升准确度的助力,而不是一扇保证窥见模型真实逻辑的窗口。
去核验答案,别轻信思考过程
你核对一个复杂计算,靠的是独立确认结果,而不是欣赏过程写得多么工整——答案对不对,才是关键。
实用的结论是:评判一个 reasoning model 的输出,要看答案是否正确、是否对照现实核验过,而不是看推理显得多有气势。别处那些纪律依然全部适用——用真实事实给它扎根、对照来源核对、跑 evals、在利害重大的判断上留一个人。推理让难题的答案更可能正确;它并不让这些答案在未经核验时就可放心相信。一条自信的 chain-of-thought,在你核验它落到哪儿之前,依然只是一个自信的猜测。
更多推理提升的是概率,不是保证——一条长链照样能抵达错误答案,而展示出来的步骤未必是真正的原因。去核验答案;别轻信思考过程。
推理是一种威力强大、代价分明的能力,所以用好它,靠的是这套如今已熟悉的纪律:把思考花在能回报的地方,并核验它产出的东西。
只在难的那部分把思考拧大
你对那一个棘手的步骤全神贯注,其余则一带而过——把力气聚焦在难处真正所在的地方,而不是平均地铺开。
统一的做法,是在你的系统里让思考随难度匹配:对真正困难、多步、利害重大的任务,动用 reasoning model 或更多 test-time compute,对简单的大多数则用快速标准模型。你甚至可以把它们混搭——快速模型处理日常路径,把难的子问题交给 reasoning model。只在问题难的地方花斟酌、且仅在那里花,能让你拿到准确度的提升,却不必对一切都交思考税。
推理提高准确度;它并不替代核验
一个谨慎的专家更可能正确,但你对利害重大的决定仍会去确认——他们的谨慎改善了概率,并未免去核对的必要。
最后这条纪律,把本课与其余各课系到了一起:推理在难题上改善质量,但它依然是一个会自信出错的、不完美的模型,所以其他一切仍然要紧。给它扎根、核验答案、跑 evals、在事关重大的判断上留人。推理是获得更好输出的又一条路——与好的上下文、检索、对的模型并肩——而不是一个免去你在它周围工程化可靠性的神奇升级。更好的思考是一味更强的食材,不是一道做好的菜。
- 问题是不是真的难——多步逻辑、数学、规划——难到要靠思考才理得顺? - 还是它很简单——简单到推理只会徒增拖延和成本、毫无收益? - 在这里,成本和延迟值不值得,还是你在用思考给简单任务加税? - 你在做路由吗——难的那一小块用推理,简单的大多数用快速模型? - 你在核验答案吗,而不是轻信一条看起来周密的 chain-of-thought? - 那些惯常的纪律是否依然适用——扎根、evals、在利害重大的判断上留一个人?
- chain-of-thought——让模型在最终答案之前一步步推理。 - reasoning model——一个默认就先思考的模型,在难题上更强。 - test-time compute / inference——在模型作答时多花力气,以换取更好的结果。 - 思考的旋钮——调节模型斟酌的多少,从一点点到很多。 - training-time vs test-time——靠多训练来改善,对比靠在作答时更卖力。 - 思考的代价——更多推理意味着更多 token、金钱和延迟。 - 推理不等于真相——一条长链照样可能自信地错;去核验答案。
- 你只对真正难的问题把思考拧大,而非默认就拧。 - 你对简单的大多数用快速模型,把推理留给难的那一小块。 - 你把推理的成本和延迟算进去,而不是对每一次请求加税。 - 你核验答案,而不是轻信推理显得多么周密。 - 你依然施行扎根、evals 和人工把关——推理是锦上添花,并不替代它们。
推理让模型在作答前先思考,以时间和 token 为代价,提高难题上的准确度。只在难度对得起它的地方把思考拧大,并核验答案——再好的思考,在核验之前,依然是一个会出错的猜测。