官方授权转载,结构略有调整。
原贴:https://www.zhihu.com/question/10114790245/answer/84028353434
01
Agentic Workflow 只有短期价值,
早晚会被模型本身取代
2024 年 9 月 12 号,o1 发布,震撼,效果爆炸,Long CoT 的有效让我陷入反思 Reflection。
因为 Long CoT 的有效性其实在一年多前就已经知道了,周昕宇很早就验证过,使用很小的模型训练模型做几十位的加减乘除运算,将细粒度的运算过程合成出来变成很长的 CoT 数据做 SFT,就可以获得非常好的效果。我依然记得当时看到那个效果的震撼。我们意识到 Long Context 的重要性,所以率先考虑把 Context 搞长,但却对 Long CoT 这件事情不够重视。其实主要还是考虑了成本问题。Long Context 主要做的是长文本输入,有 Prefill,有 Mooncake 加持,成本速度可控,而 Long CoT 是长文本输出,成本高很多,速度也要慢很多。在这种情况下,把输出搞长就没有成为一个高优选项。
但是,还有什么比 Performance 更重要呢?成本速度有摩尔定律加持,可以不断下降,只要把 performance 搞上去,剩下的都不是主要问题。
所以,我们得搞 Long CoT,搞 o1。
但具体要怎么搞呢?
我们需要先收集一些信息,来反推 o1 会是怎么做的?RL-LLM 会是怎么做的?(对,这里触发了我的搜索 API)
首先我们观察 o1 官网上的一些例子,我们发现很明显的一些特征:
o1 可以犯错!!!Long CoT 和以前的 CoT 不一样。
o1 往往会反复的反思再尝试,有各种 but, wait……
o1 的思考方法则不局限,可以重述问题,可以联想,可以分治……
然后,两个重要的 openai 的视频出来了,分别是 Noam Brown 和 Hyung Won Chung 的:
https://www.youtube.com/watch?v=eaAonE58sLU
https://www.youtube.com/watch?v=kYWUEV_e2ss
我观看了不止一遍,因为他们这些视频并不是近期拍的,但却要等到 o1 发布了才发出来,说明他们的 talk 和 o1 的实现是紧密相连的。
其中,有两张 ppt 我觉得是至关重要的:
Noam Brown 这张,他告诉了我们 Test-Time Search 的重要性,确实回想起之前的 AlphaGo 是这么一回事。很多人以为 Noam Brown 是告诉大家要把 AlphaGo 的 MCTS 用到 LLM 上,那么其实不是,只是说 Search 很重要。至于应用到 LLM 上,那么就是:
我们需要让模型能够自行搜索!
这也让我重新看了一下 Richard Sutton 的 The Bitter Lesson:
www.cs.utexas.edu/~eunsol/courses/data/bitter_lesson.pdf
Sutton 早就揭示了一切呀。
接下来就是 Hyung Won Chung 的 Don't Teach, Incentivize。这个带来的启发就更大了:
Hyung Won Chung 为什么特别强调这个呢?Structure,什么是 Structure?
MCTS 是一种 structure,A* 是一种 Structure。当我们人为加了点 inductive bias 进来强求 llm 按我们要求的格式进行思考,那么这种思考就是结构化的。而基于我们前面对 o1 的观察,我们就可以把两件事联系在一起了:
o1 没有限制模型如何思考!
这点非常非常关键!因此我们已经可以基于此排除一些带 structure 的工作了,MCTS 就没必要探索,因为一定不 work。
特别的:
现在的各种 Agentic Workflow 就是各种带 structure 的东西,它一定会限制模型的能力。
所以,其实我们还可以直接得出一个结论:
Agentic Workflow 只有短期价值,没有长期价值!早晚会被模型本身能力取代掉。
All in All 我们就是要训练模型能够像我们人一样思考,自由的思考!
然后,Noam Brown 还有一张 ppt 也蛮重要:
这个非常直接的告诉我们:
去做有精确 Reward 的 RL!不要被 Reward Model 给限制住了。
之前 RLHF 相信做过的同学都知道这是一件非常麻烦的事情,因为 Human Preference 并无法精准的建模,训的 Reward Model 又很容易 reward hacking,lilian weng 都专门写了个 blog 来讲这件事:
Reward Hacking in Reinforcement Learning:https://lilianweng.github.io/posts/2024-11-28-reward-hacking/
所以,如果 reward 都不准确的话,那么要做 RL 就很难 work。RL 的 performance 完全取决于 reward。
这不禁就回想起以前做 robot locomotion,game ai 的时候,一堆的 reward shaping。
信息到这里就很明显了:
做题,做题,还是做题!做有标准答案的题,刷起来!
math 和 code 就是很直接的两个有标准答案的方向,openai 也是往这上面刷,那么我们当然就往上面刷呗。
怕 context 太长,导致遗忘,我们在这里确认一下前面得到的关键信息:
要训练 llm 通过RL做题,有精确 reward
不要采取结构化的方法,最终会限制住模型的效果,要让模型自己探索思考范式。
思考包含了搜索过程,允许犯错。
好了,接下来我们需要解决如何用 RL 训练 LLM 通过 Long CoT 做题这件事。
很多同学可能会想:那就用 PPO 呗!
问题没有这么简单。Long CoT 对问题的建模产生了很大的变化。
02
o1 实际上是
In Context RL with Self-Critique
o1 实际上是把 in context rl 的完整 trajectory 当做一条 message 给训进去了。如下面的 code:
什么是 In Context RL 呢?
In-context Reinforcement Learning with Algorithm Distillation:arxiv.org/abs/2210.14215
不了解的同学可以看这边,简单的说就是模型做 next token prediction 的过程本身就是一个 rl 探索过程。
模型做一个题,在 Long CoT 下,实际上在做什么呢?
实际上也在学习做这个题,它输出的整个轨迹就是:
s1,a1,r1,a2,r2,a3,r3,.....
其中 a 可以认为是一种解决方法,可以看做 action,而 r 就是 reward,但这里是模型自己做 reflection 得到的 reward,所以我说它是自带 critic/world model 的 in context rl。
最近有相关 blog 也终于说了这件事,大家也是可以看看:
Optimizing LLM Test-Time Compute Involves Solving a Meta-RL Problem:https://blog.ml.cmu.edu/2025/01/08/optimizing-llm-test-time-compute-involves-solving-a-meta-rl-problem/
但它没有提到 self-critique 这个问题。
所以这个事情变复杂了呀。
如果把 long cot 输出建模成 in context rl with self-critique,那么我们怎么优化它呢?
首当其冲的问题就是每一句话的 value 是多少?
然后你会发现这个 value 已经非常难以估计了。
举个非常简单的例子:计算 1+1=?
然后模型输出 1+1=3,不对,1+1=4 呢?也不对,因为 4-1=3。那么 1+1=1 呢?不对,因 1 不等于 1-1=0..... 哦对了,左手有一颗糖,右手也有一颗糖,左手的糖放到右手,那么我右手有两颗糖,我知道了,1+1=2
你会发现:
如果模型不会反思,那么犯错了就是错的,value 就会是负值。但如果模型会反思,那么只要知错能改,最终是对的,那么这些错误都不算错误。value 就不应该为负。
由此,我们进入了 Value 的混沌态,Value 很难估计了。
这让我想到了人生:
o1 即 人生。人生就是一条有限的串行轨迹,各种探索,各种犯错,然而除了杀人放火你无法评价某种犯错/挫折的价值会是好还是坏(比如 steve jobs 可以被自己创立的公司解雇),最终的结局都取决于自己的目标。
所以,我们可以从逻辑上判断我们不要训 value,不要搞 prm 了,因为不会准的。
所以,看起来用 rl 训 llm 通过 Long CoT 做题这个问题变简单了:
不管模型中间做错了什么,只要不是重复的,那么最后模型做对了,我们就认为这是一个好的探索,值得鼓励。反之,如果模型一顿探索,最后做错了,那么再努力也是错,要惩罚。
我们把问题变成了 Contextual Bandit 的问题。那么我们就可以用 REINFORCE 的变种来做啦。
上面这就是最基本的 REINFORCE 的公式,简单的说就是做对加梯度,做错减梯度。当然,我们需要让训练更稳定,所以可以加 KL,加 reward 的 normalization 等等一些小 trick,具体可以看下 paper。但基本的思想就是这么简单。
有了基本思路,那么剩下的就是实操了。但这里其实还有一个重要问题:
Long CoT 是如何变长的?这可能是最关键的事情。
惊喜的是在我们实际训练的过程中,我们有了重要的发现:
模型会随着训练提升 performance 也不断增加 token 数!
也就是这是 RL 训练过程中模型可以自己涌现的!
Fantastic!
这个和友商 Deepseek 的发现几乎是一样的。看到他们直接做了 zero-sft 的 RL,也是挺 impressive!
03
AGI 确实就是近在眼前的事情
OK,理清了整个思考过程,也是不容易。感觉自己像个 AI,哦不,是 AI 太像人了。
我们的思考还在继续,那么未来呢?
ok,还有 o3 在前面,还有很多路要走。
AGI 确实就是近在眼前的事情,这个 Sam Altman 没有乱说。
那么 ASI 呢?
我重新开始思考 ASI。其实对于做 RL 的人来说,从来都不会把 AGI 作为目标呀,因为 AlphaGo,AlphaStar 已经验证了 RL 可以做 superhuman 的事情了,那么现在不过是把场景搬到了现实世界。
给 AI 一个可衡量的目标,然后让其自己去探索,然后通过 RL 提升模型,仅此而已。
未来不过是把这个过程不断的复制到更复杂的场景。
比如给 AI 一本飞机手册,然后让其自己学会模拟驾驶。
比如让 AI 写出 10 万+的公众号文章
比如让 AI 发布一个复制 tiktok 的 app
比如让 AI 去写一篇文章中 Nature
让我们一起期待一下接下来的进展吧!加油!
更多阅读