AI Frontier

EP 75

(没有数学公式的) 强化学习故事

· 卢正锡, 崔升准 · 1:04:40
整页
查看本期参考资料

开场:Kimi K2 模型发布与强化学习 00:00

00:00 卢正锡 今天我们录制的时间是 2025 年 11 月 8 日,周六早上。

现在我们真的在等 Gemini 3.0,看起来应该很快就要出了。

前天,准确说是昨天,按韩国日期,中国前沿实验室之一 Moonshot 发布了 Kimi K2 Thinking 模型。

它在各种基准测试中都展示了超越其他美国前沿模型的结果。

所以 reinforcement learning,RL,强化学习看起来依然是个大话题,今天我想和成贤一起把 RL 这部分再深入挖一挖。

好的,大家好。

Kimi K2 模型的特点与基准测试 00:38

00:39 金成贤 大家好。Kimi K2 模型出来后非常受关注,现在也依然很热。最受关注的应该是基准测试分数。

在基准测试分数上,它主要和另外两个模型直接比较:GPT-5 和 Sonnet 4.5 Thinking。也就是说是在和当前最强状态的模型比较,而且相比这些模型也不落下风,甚至在某些 benchmark 上记录了更好的性能。

还有一点有意思的是,Kimi K2 之前并不是推理模型,而是 instruct 模型,而 instruct 模型大概是 9 月出来的。所以新模型出现的周期正在越来越快。

后训练时代与模型开发周期 01:14

01:19 金成贤 现在从 pre-training 转向 post-training 时代后,各家公司都在改进 post-training recipe,这些改进后的 recipe 被导入模型后,改进模型推出的速度,相比“改进 pre-training 再做 post-training 再出新模型”的速度,周期就会明显更快。

我想 GPT-5、OpenAI、Anthropic 出模型的节奏也会持续加快。现在有很多介绍,比如一次指令可以执行 200~300 次 tool use 之类的说法。

有“分数很好、性能很好”这些说法,而另外一个有意思的点是,Kimi K2 这种模型,包括 Kimi 之前的模型,似乎也都一样,并不只强调 coding 和数学相关能力。

这些人一直会强调 creative writing,也就是创造性写作能力。而且我自己用下来也确实感觉 Kimi K2、Moonshot 模型有一种 Moonshot 自己的文风或风格。

在写作方面这一点很有意思,同时他们也持续强调通用能力,这也很有意思。尤其最近大家常说“尖锐智能”,即只擅长数学、coding,或只擅长某个特定部分的模型,这方面关注好像又升高了,

但与此相对,前沿公司似乎仍然更关注通用智能,以及能执行多种任务的模型,并且持续追求这些方向。

通过 MoE 与量化实现模型轻量化 02:55

03:00 金成贤 再讲一点细节,他们提到“推理效率”,这里的推理效率其实是服务效率。他们在表达服务效率时说,在 post-training 过程中做了 quantization-aware training。

Quantization-aware training 就是所谓 quantization,也就是量化,通过量化来减小模型体量,并在训练阶段减少性能下降的一种技术。这里他们说对 MoE 部分,MoE FFN 部分做了 INT4 quantization。

这和 OpenAI 发布的 gpt-oss 很像,也是做了 4-bit quantization。它是以 MXFP4 的形式做 4-bit quantization,而这里类似地在 post-training 阶段引入了 INT4 quantization,这种趋势看起来会越来越主流。

这大概是和 MoE 研究相关、还需要更深入看的部分,但关于 MoE,尤其是 MoE 部分,很多说法是它相比更一般的 dense 模型更适合 quantization。

这也很自然,模型训练越多,模型权重里信息越多,quantization 就越难。训练越多越是如此。但 MoE 的情况是,每个模块不是对所有数据都训练,而是部分训练,所以可以认为它更有压缩可能性。

所以 gpt-oss 也是特别对 MoE 部分做了量化,现在 Kimi 也是在那部分做量化。

所以这种趋势以后大概会越来越常见,成为基础技术。

04:38 卢正锡 那模型尺寸也因此缩小了很多吧。这是个 1 万亿参数模型,那尺寸应该不到 1TB 吧。理论上大概 500GB 吗?大概 600GB?

04:53 金成贤 因为大部分权重都在 MoE 部分,所以应该不会到 1TB 那个级别。当然量化后加载到内存里时,不是 1TB 级别,而是大概 500GB,正如你说的那个量级。

05:16 卢正锡 那这个级别就真的是一台 8 张 GPU 的机器也能跑了。

05:20 金成贤 是,感觉勉强可以塞进去。

05:24 卢正锡 对啊。性能保持不变,但体积持续变小,计算效率持续提高。

05:34 崔升准 参数是万亿级,但按容量来估计大概 500GB,对吧。

05:38 金成贤 对,实际容量会降到那个级别。因为大小减半了。感觉这种趋势会一直看到。

后训练配方的重要性 05:43

05:48 金成贤 随着 post-training 和 RL 成为重点,RL 的训练配方在快速改进,这些快速改进的配方又被应用到模型并加速发布周期。以后应该会持续看到这种情况,甚至这种 recipe 改进通常都不会单独发 tech report。

谁拥有更好的配方,可能会成为前沿公司的竞争力。

pre-training 到现在更接近于“把已有数据用好”,而 post-training 更接近于“创造数据”。

那么接下来就是看谁更会创造,这部分会成为 know-how,我认为前沿公司的竞争力会在这里被明显拉开。

post-training 的配方或技巧,我想各家公司应该会有很大差异。

06:40 卢正锡 是,会有很大差异。还有在理念上强调什么的重要性,比如 Anthropic 可能更强调 coding、现实问题、B2B use,而 OpenAI 或 Kimi 就像你说的,感觉更强调 generalization 这边。

06:59 金成贤 对,Anthropic 当然也会持续顾及 general 的部分,但会不会往那部分特化,还是把整体都带着走,会有这个差异。

不过我基本认为前沿实验室的基调都是把整体能力一起拉起来。

我认为所谓通用智能和能力,并不是能和其他能力完全分离的东西。

但这部分有点偏哲学。

07:25 崔升准 继续往下走吧。

对强化学习(RL)的新视角 07:26

07:29 金成贤 好,那就进入原本要讲的 reinforcement learning。上次我讲过 RLVR,讲完时我觉得那样应该够了,但做完后反而更想更深入、讲得更扎实一些。所以这次想再聊一次 reinforcement learning。

对我这个年龄段的工程师来说,reinforcement learning 往往是很特别的,因为我们是从 AlphaGo 一起开始的,开始接触深度学习。所以有很多人第一个项目就是复现 AlphaGo。但相比之下,我不是从强化学习开始的。

我就是从监督学习开始的,对强化学习一直是“这么麻烦的东西为什么非要做?”大概这种感觉。直到最近 LLM 时代到来,强化学习变成绕不开的话题,最后还是开始讲强化学习。这个意义上,和那些从强化学习起步的人相比,我对强化学习的视角或感受可能会不太一样。

和那些从以前就对强化学习有深厚热情的人相比,我是从“强化学习太麻烦”到“因为需要而重新关注”,所以视角可能不同。不过这种新视角也可能挺有意思。

所以先再简要介绍一下什么是强化学习:有一个 agent,在环境中行动。agent 行动后,环境会因其行为发生变化,也就是状态变化。并且在某些情况下,会收到这个环境定义的 reward。

比如在游戏里拿到高分就可以是一种 reward。这时,让在环境中行动的 agent 学会最大化 reward 的方法,就是强化学习。这个部分也和监督学习的方法不太一样。

监督学习 vs 强化学习:自动驾驶类比 09:30

09:36 金成贤 不过监督学习当然也不完全是和强化学习彻底不同的东西。因为监督学习的一些技术也可以看成强化学习的一部分。但我们说强化学习时,它和监督学习的一个不同点是,不会有人类专家来直接教 agent 该怎么行动。

10:02 崔升准 有点容易混淆的地方是,这不是无监督学习的语境吗?监督学习里不是 RL,而是无监督学习里才是 RL 吧?

10:04 卢正锡 说监督学习也没错。成贤刚才想表达的是,在强化学习进行中,对成功行为给奖励并更新这一部分,其实和监督学习中按 label 学习的过程也有相似性。

10:21 金成贤 这里可以用自动驾驶来类比。如果用监督学习来学自动驾驶,就是人先给出驾驶轨迹,记录驾驶过程,再让模型去模仿这些记录,这更接近监督学习视角。

如果用强化学习,则更接近于给一个目标,把成功到达目标也就是目的地作为奖励,而如何驾驶由 agent,也就是 AI 模型自己去找。这是监督学习和强化学习对比时差异最大的点。

也就是不会教“具体怎么解题”。更接近于只给“把问题解出来”这个目标。不过正因如此也有优势。

如果用人类制作的数据来学习并模仿人类数据,最终大概率就是人类水平的性能。虽然不能绝对这么说,但目标通常会是达到人类水平。因为本质上是在学人的方法。

其实更有可能比人类差,毕竟是模仿。但强化学习是让模型自己找方法,所以有机会超过人类水平。

围棋就是最典型例子。模型自己找到下棋方法,所以能达到超越人类的水平。从这个意义上,也可以说它是机器学习方法里几乎唯一能达到超人性能的方法,也就是强化学习。

如果问强化学习技术到底是什么、怎么发生的,从数学上讲会很复杂,但 Karpathy 总结得很简洁。他对强化学习的表达有点“残酷”,但也不算错。

基本窍门是让 agent 行动。在环境里行动后,行为过程中会收到奖励。然后就提高“直到收到奖励为止”那些行为的概率。这可以看作最基本的想法。

让它行动,然后一旦奖励到来,就把奖励到来前那些行为的概率都提高。这样就会出现一个有点奇怪的想法。

强化学习核心:Credit Assignment Problem 12:43

12:46 金成贤 这些行为中有些有帮助,有些没帮助,尤其随机行动时更容易这样。那当然最好只提高真正有帮助的行为概率。

但这就是叫做 Credit Assignment Problem 的问题,中文该怎么翻我一时也想不出来。也就是找出哪些行为真正有帮助,这个问题仔细想并不容易。

人也是一样,在完全没有先验知识时,某个好结果出现后,要找出导致它的行为是什么,这并不简单。人也是靠既有经验或推理来判断,不是随手一扔就能知道哪个行为有帮助。

而且人类在这方面会犯很多错。比如在没有模式的地方硬找模式,或者明明无关却以为某个行为有帮助,这些事常发生。这说明它整体上就是难题。

比如赌博里人就会大量犯这种错。以为有模式,以为某行为有帮助,就会产生所谓“迷信”。

所以这是个相当难的问题。虽然因为 AlphaGo 我们看到了强化学习很多辉煌时刻,但在这种情况下仍然很难,尤其是奖励非常稀疏时,也就是行动几百次、几千次后才给奖励时,这个问题仍然很难。

强化学习是难题。当时用强化学习解 Atari 游戏,确实解出了很多 Atari 游戏。但其中有个叫 Montezuma’s Revenge 的游戏,就是现在截图里的这个。按我所知直到现在它也只是到达人类平均水平,如果不使用非常规方法,比如不给人类指导、不提供重置环境能力等,依然达不到超人水平。

也就是说,对那种不太适合强化学习的环境,也就是大量行动后才给奖励的环境,仍然很难。所以整体并不容易。

为何在 LLM 中引入强化学习:RLHF 15:10

15:10 金成贤 那么我想从“为什么强化学习会被引入 LLM,以及以什么形式引入”开始讲。最早主流地引入应该可以看作 RLHF。当然在那之前也有一些其他形式,但主流案例是 RLHF。

RLHF 到底算不算 RL,争论很多,做强化学习的人常说这不算 RL,但我还是认为它算。基本思路是这样。

给 LLM 一个 prompt,让它生成两个回答。生成两个回答后,一个会更好,一个会更差。然后由人来标注哪个回答更好,哪个相对没那么好。

标注之后,用这些标注结果训练奖励模型。这个奖励模型接收回答,去预测这个回答好不好,并尽量接近人的评价。然后这个奖励模型在 RL,也就是强化学习里,充当提供奖励的 reward function。

做完奖励模型后,再让 LLM 生成多个回答。生成后送进奖励模型,奖励模型会评估这些回答好不好。然后做 RL 去最大化这个评估分,也就是最大化 reward。

这样模型就会学到输出奖励最大的回答,也就是人会正向评价的回答。所以这个过程就实现了与人的对齐。模型会被训练成生成人偏好的回答,因此和人对齐。也就是用人的偏好来学习。这个就是 RLHF 的基本思路。

想想会觉得“为什么要做这个?”而实际上也有很多人这么想所以不做。尤其开源模型里,很多人会觉得“非得这样吗?”“为什么要做?”所以常常不做。关于这个问题原因很多,但最典型的一个可能是幻觉问题。

SFT 的局限与幻觉问题 17:18

17:28 金成贤 如果问“为什么做”,那也会想“除了 RLHF 有没有别的方法”。最典型的方法就是所谓 SFT。它是由专家或人工直接写标准答案。

甚至不一定是人写,也会拿 GPT-4 这类已对齐模型生成的回答作为标准答案。总之是专家写答案。比如“列支敦士登首都”,我也是查了才知道叫法杜兹,就是这样去写数据。

然后模型学习去模仿专家写的答案。依然用 Next Token Prediction。对于“列支敦士登的首都是”这个输入,让它预测“法杜兹”这个 token。这就是 SFT 的基本思路。很多情况下会觉得“有必要做 RLHF 吗?直接这样不就行了?”所以很多开源模型就是这样训练的,现在也仍然这样训练。

但这里要注意的是,训练中的 LLM 和专家是不同 agent。LLM 是 LLM 这个 agent,专家终究是人,是另一个 agent。两者不是同一个存在。这点要特别注意。

看可能发生什么,先假设模型在学它知道的问题。比如“法国首都是巴黎”,用这个问答训练,并假设模型本来就知道法国首都是巴黎。

那么模型学到什么?它本来就知道答案是巴黎,所以它学到的是“用自己知道的事实去回答”这种行为模式。

再假设是模型不知道的问题。列支敦士登首都 LLM 其实都知道,但假设它不知道,用“列支敦士登首都是法杜兹”来训练,模型不知道首都在哪。那模型会学什么?

它当然也会学到列支敦士登首都是什么。但同时还会学到一种行为模式:即便不知道,也“先回答再说”。

所以 OpenAI 这次发幻觉论文时也提到类似点:模型会因为“先回答”而得到奖励。这里也是同样道理。模型会学到“先回答”的行为模式。

这样会让模型发生较大变化。既要吸收新知识,又要学会不知道也先回答,模型变化会很大,而这种大幅变化通常会带来不良结果,也就是幻觉。

On-Policy vs. Off-Policy 学习概念 20:15

20:15 金成贤 这种情况下就会学到“先回答,哪怕不知道”“随便答点什么”这种模式。为什么会出现这个问题,我们再深一点看。

有 On-Policy 和 Off-Policy 这两个概念,是 RL 里非常重要的概念。所谓 Off-Policy,就是执行行为的 agent 和学习的 agent 分开。执行 agent 先行动生成数据,再由学习 agent 用这些数据学习,这就是 Off-Policy。

通常 Off-Policy 是更难的问题。举个极端例子,这是 Sutton 那本书里的例子:执行 agent 在做饭,学习 agent 就不可能学会开车。它不能从那种数据学到目标能力。

所以两者一致还是不一致,会极大影响学习难度。你可能会想“那为什么还要做这个?”“直接 On-Policy 不就好了?”但有些学习模式只能用 Off-Policy。

比如专家先经历,再由专家生成数据让学生学习。比如老师亲自实践、积累经验,再把过程和数据总结给学生。这样更高效,因为你可以学习“与自己不同的 agent”在行动中得到的经验,数据效率更高。

而 On-Policy 的限制其实很极端。过去的自己和现在的自己也是不同 agent。学习过程中 agent 会持续变化,过去自己的经验当前自己未必好用。

所以数据效率会有很大差异。也因此大家想做 Off-Policy,但 Off-Policy 很难。再看这种难具体怎么出现,会有这个顽固问题。

专家式 Off-Policy 的典型形态可以理解为:专家行动后,模型用专家行为过程学习。以前自动驾驶例子里,人开车后模型学习人的驾驶,就是典型 Off-Policy。

但假设模型是用人的驾驶过程学的,而人具备某条路径能力,模型却不具备。比如在人的能力里可以从 A 到 B,但模型暂时没有从 A 到 B 的能力。

那模型就只是学了“从 A 到 B 再到目的地”这一条。但模型真到现实里却做不到 A 到 B,它会跑到 C。

一旦跑到 C,就遇到从没见过的场景,也就是训练中未见场景。那这里它就解不了了。

这个问题还会和“模型本身有没有解题能力”绑定在一起。任务给出时模型是否具备解决它的能力。

如果模型没有这种能力,却按有能力来让它解,落地时就会出问题。而这个在机器学习里也能和一个概念关联,就是和 overfitting 也有相似处。

为了泛化的模型问题解决能力 23:31

23:41 金成贤 所谓 overfitting,通常说是对数据过拟合导致的问题。比如有这些点,为了把点全连上就会变成很复杂的曲线,但其实更简单的直线反而泛化更好。

关于 overfitting 的基本直觉,教科书式说法常是“数据变量少、模型简单,overfitting 可能性就低”。但再深入想,也可以这样看。

发生 overfitting 时,其实是把每个数据点都背下来了。可以说成记忆。这个“记忆”很有意思,我们常说“模型把数据背下来然后原样解”。

把记忆和泛化对比看,overfitting 状态可视为记忆;虽然这个概括有点过度,但就是记住数据。能泛化则是超越记忆,抓住了更根本的模式。

而这里有个有趣点,不只是“变量数量少、模型简单”这件事,是否给了模型“它能解的问题”影响也非常大。

这里有张小图,假设做图像分类问题。非常小的图片可以说变量少,因为像素少。

那给小像素图是不是就更好、更能防止 overfitting?也不一定,不能只这么看。这里有张小图,这是什么?这是苹果图片。

把苹果图 resize 得很小,变量变少是好事,但太小后用这张图做真实分类就不可能,因为信息没了。给“可解的问题”是关键点。

这可以从数据角度看,也从模型角度看。模型变大就一定会 overfitting 吗?也不一定。

不能只这么看。假设某个神经网络里每多一层就能多做一次加法,也可以理解成 attention 一类操作。

那么每增加一层,一次能解决的加法次数就多一个。假设有 2 层,就能解两次加法。

所以一次加法问题能解,两次也能解。但从三次开始模型就解不了。那模型面对解不了的问题会怎么做?

如果神经网络太弱,可能根本学不动。但通常神经网络很强,很多情况下能把数据全部背下来。

于是对这个问题很可能就直接背。怎么背有多种可能,比如“出现数字 4 就输出 10”之类,直接记数据。

这就会出现一种对不可解问题的“记忆式 overfitting”。也就是模型以 overfitting 方式学习。所以这里需要 3 层。

3 层意味着模型更大,但模型变大反而会降低 overfitting。说到最佳泛化,很多时候其实是在学习算法。

这里给了一组数字和答案。面对这些模式,可以全部硬记下来学习。但最佳泛化方式是模型学会排序算法。

那模型若要在这里实现泛化,就必须具备学习排序算法的能力。如果没有,它就会把模式全背下来,泛化就不可能。

也就是说,模型规模必须达到能够学习排序算法,才可能出现泛化。我们再把这个想法扩展一下。

单层能执行的运算是有限的。通常像 Transformer 的一层 attention,能做的运算有限,而层数也是有限。

所以对单个 token 能执行的运算量是有限的。

但如果在预测某个 token 时,所需运算量远超这个上限,那对模型就是不可解问题。

这里有个简单二次方程例子,假设模型规模还不足以一步解出这个二次方程,那它就解不了。

那给它这个问题时,它能做的就只有记忆:出现这个方程就输出这个结果。这样除非把世界上所有二次方程都学过,否则无法泛化。

但如果把解这个问题需要的运算分散到多个 token,会怎样?也就是把这个二次方程按步骤拆解,一步步求解。

那么相比“一步到答案”,每一步运算会更少。先写出求根公式,再代入数字,对各数字计算,再整理得出答案。

这些在每个 token、每个步骤上所需运算都比一次性求解更少。那就会变成模型可解问题。

因为变成可解问题,从这里开始就可以泛化。对模型不可解的问题会走向记忆,记忆就无法泛化;如果把问题拆成模型可解的阶段,就能通过这些阶段学算法,能学算法就能泛化,泛化就变得可能。

29:55 卢正锡 我大概理解这个逻辑要往哪走了。听起来是对的。继续吧,很有意思。

30:04 金成贤 所以关于泛化,让模型去解它能解的问题,这点非常关键。不只是用小模型、少变量,必要时要把模型做大,必要时也要拉长序列长度,这些都会发生。

互联网数据的局限:缺失中间过程 30:28

30:28 金成贤 为了给模型可解问题,才有泛化可能。问题是,互联网几乎没有这种数据。

这是 Math Stack Exchange 上一个很有名用户 Cleo 的案例,有用户发了一个积分题。

过了几个小时左右,Cleo 这个用户直接一次性给出了答案。

但这个答案完全没有过程,没有任何“怎么推导出来”的说明。

大家就很怀疑。猜测很多,比如出题的是他自己,解题发帖也是他自己,是同一个人;或者是同一个人反向构造题目,也就是从积分结果反推这个微分题等等。

很多怀疑,但据说实际上并不是那样。好像他确实是把积分题解出来了。

但不管他到底有没有那个能力,互联网里这种数据很多。因为能在没有任何中间过程下直接秒解这种积分题的人,现实里几乎没有,非常罕见。

可在互联网数据里,人看起来就是这么解题的。数据表现成“这种积分题人就是不需要中间过程一步解出”。

可模型又必须通过互联网数据学习,而它学到的基本都是这种形式。

31:50 卢正锡 你的意思是,模型在 pre-training 学到的数据基本都是这种“问题-答案”形式,中间具体做了哪些运算,也就是 trajectory,这类数据几乎没有,对吧。

32:04 金成贤 极其稀少。正因为极其稀少,这就成了 LLM 里长期存在的问题。所以本应先想一想再回答,但它会先回答。就会出现这种模式。

所以拿一个简单例子,比如问“牛顿生在偶数年还是奇数年?”它就抑制不住立刻给答案的冲动。

LLM 就会直接在没有任何过程下回答“偶数”。有趣的是,马上回答这个路径通常概率最高。

但虽然概率低,也有“先想再答”的可能。比如先想“牛顿出生于 1643 年,1643 是奇数年”,再回答。这个模式并非完全没有,确实存在。

这一点是非常重要的线索。多数情况下它压不住立即回答的冲动,但“尝试思考”的能力,也就是这个模式在模型里确实存在。

所以说,LLM 里确实存在通过推理来回答的能力,只是被埋住了,而且概率非常低。

33:16 卢正锡 即使同一个问题,回答后续其实有很多分支路径,其中有冲动式回答,也有展开解释后到达正确答案等多种过程。是不是可以理解为:RL 会被用在“如何让这些过程更偏向多思考”这个方向上?

预训练与搜索空间收缩 33:38

33:41 金成贤 最终 LLM 获得这种能力还是因为 pre-training,所以我先从它在 pre-training 里是怎么获得这些能力讲起。

首先 pre-training 在 RL 里起了一个非常关键的作用。假设有个任务需要生成 100 个 token 的文本,也就是得生成 100 个 token 才能解题。

那可能性数量就是该 LLM 的 token vocabulary 数量的 100 次方。看 Kimi K2 的话,vocabulary 大约是 163,840。也就是 163,840 的 100 次方。围棋搜索空间已经非常大了,但这会比它更大得多。

我看了 Kimi K2 的训练 loss 曲线,大概是 1.32。这个 1.32 在 perplexity 视角下大概是 3.7。3.7 的意思可以理解为每个 token 大概有 3.7 个候选。

也就是说,原本如果给所有 token 同等概率,候选有 163,840 个。但通过 pre-training,候选数量大幅减少,变成大概从 3.7 个里选 1 个的问题。

而且这是全序列平均值,所以在有上下文时,候选数在实用层面会更小,特别是对那些明显的 token 会更小。可以有点像“巴别图书馆”。

35:23 卢正锡 你说候选减少,最终可以解读为:学习结果让它从大量随机路径中开始具备某些被定义、被组织过的路径,对吧。

35:31 金成贤 对,可以有点像巴别图书馆来理解。也就是所有可能的 100 token 序列,如果看全组合,搜索空间是无穷无尽地大。

但其中真正有意义的序列,相比之下会少得多。也就是绝大多数都是无意义序列,把 token 随机排列大多不通顺,真正通顺的是极少数。

可以把 pre-training 看成是在筛出这些极少数可能性、这些组合空间。

36:10 卢正锡 也就是它在学习“有意义且通顺”的路径。成贤,这里我想问下,因为 vocabulary size、cross-entropy loss 的含义,以及由此导出的 perplexity 概念,这里听众可能会有很大理解断层,能不能简单 recap 一下怎么讲比较好?

LLM 的学习与 Perplexity 的含义 36:25

36:32 金成贤 再补充一点,大家常说 LLM 是用下一个 token 预测训练的。那“下一个 token 预测”的实质含义是什么,可以用很简单的词来想。比如就当成下一个词预测。

那某个句子后面可能出现的词有个总数,就是词典里的词数。问题就变成从词典全部词里预测一个。

这就变成一种分类问题。

从中选出正确词。那可能词的数量就是 vocabulary,也就是词表大小,也就是候选数量。

Kimi K2 的候选数量是 163,840。你要从中选一个。

37:18 卢正锡 可表达词的数量是 163,840 个。

37:25 金成贤 而且不是只预测一次 163,840 选 1,而是要连续预测很多次。所以可能组合数会按它的幂次持续增长,变成极其巨大的数字。

而当模型在下一个词预测上训练时,训练 loss,也就是 cross-entropy,本质上就是“预测有多准”的 loss。训练就是让它更擅长这个预测。

如果对这个训练 loss 取 exponential,会更直观地理解它的值。其中一种直觉理解是:对这个 loss 取 exponential 后得到的这个数,可以看作“从这么多个选项里选中一个”的难度。

原本是从 163,840 个等概率候选里猜一个,现在变成从大概 3.7 个候选里猜一个,可以这样理解。可能空间被大幅压缩了。

38:31 卢正锡 对。所以我刚才想传达给听众的是,与其说这个数字本身,不如说怎么把 loss、perplexity 这些讲得更容易理解,

38:45 崔升准 对,不过现在听众可以先把这张 slide 暂停截图,然后去问 GPT-5。

38:51 卢正锡 对,没错。因为这包含了很多很难的基础内容,以及需要长期学习的机器学习和 LLM 相关内容,所以请直觉地理解为:LLM 在一个巨大的可能性空间里,把东西整理成非常有组织的形态并减少分支数,这个过程就是学习。

推理的分岔点:Entropy 高的 token 39:17

39:17 金成贤 通过 pre-training,把那些不合理的 token 大都筛掉并减少候选。

所以看模型真实推理时会发生什么,这里蓝色表示模型的 entropy,我把它叫不确定性。蓝色代表不确定性低。

对于这些 token,模型几乎是确信的。蓝色越深越确信。变红则 entropy 更高,也就是更不确定。

绝大多数 token 都是蓝色。也就是说经过 pre-training,模型对这些 token 基本都有把握。换言之,预测这些并不难。

所以只要把少数红色 token 预测好,其他部分就会自然跟上。

40:09 卢正锡 那这些 entropy 高的区间,某种意义上可以看成关键分叉点吗?

40:18 金成贤 对,我就是这么看的。最近大家认为这部分是推理里最重要的 token。

你仔细看,这些是会改变思路流向的 token。像基础计算这种会一直顺着算下去,四则运算会持续推进。

其中像“要不要换个思路?”“这么想呢?”“那会怎样?”这类反而在数字计算部分模型不确定性低。

不确定性变高、也就是更有预测价值的,反而是这种改变思路流向、把分支分开的 token。

40:53 崔升准 会看到像 maybe 这种词出现,类似这种。

40:59 金成贤 对,比如下结论这类地方,这种 token 的不确定性反而高。

大家可能会觉得数字计算才最难最不确定,而普通 token 应该容易,但反过来,普通 token 因为会成为岔路口,所以说“不确定”可能听起来有点负面,不过它其实是分岔点的起点 token。

41:25 崔升准 因为这不是内部表征本身,只是以 token 形式显露出来。如果看内部表征,也许会很有意味。

41:32 金成贤 对,也可能是这样。也可能模型自己把这些当成关键分叉。比如在这个状态下该不该切换思路,还是继续往前,这些决策时刻可能就在这里。

41:47 卢正锡 所以即便这么多 token 里

41:52 金成贤 大多数都是自动可预测的,所以真实搜索空间其实很小。真正需要搜索的可以看成就是这几个红色 token。

41:59 卢正锡 也就是说有那种决定性的“但是呢”这类 token。对。

集体推理的学习:互联网论坛案例 42:04

42:08 金成贤 那这些在 pre-training 过程中是怎么学到的,可能有很多案例。我觉得特别有意思的一个是论坛。互联网论坛里,有个叫 songoku 的用户带着作业来问,

一般论坛常有“不给做作业”这种规则,而且倾向避免只给作业答案。

可能正因为这样,一个叫 BvU 的用户并没有直接给答案,而是不断引导对方思考。

他会一直给反馈:“要不要这样想想?”“这个案例你怎么看?”于是原帖用户就开始想,“我是不是这里错了?”“这个对吗?”之类。

这就是我们在推理模型里看到的典型模式。推理模型会边想边说“要不试试这个案例?”然后“啊,我是不是哪里错了”再回溯。这种模式会在推理模型里出现。互联网里这类数据几乎没有,但在论坛里偶尔会出现。

更惊人的是,这不是一个人写出来的吧?不是某个人把整个中间过程完整展开再总结,而是多人参与、交互,形成了某种集体推理数据。

43:32 卢正锡 前阵子 Andrej Karpathy 讲他为什么创办 Eureka Lab,在 Dwarkesh 播客里也说过类似的话。如果有一个完全知道我 perplexity 的完美助教,学习效率会暴增,他想做那个。这里有点既视感,就是一个恰好匹配我水平的助教。

43:50 金成贤 而且是多人交互,多人交互的结果会变成一种推理记录。通过文字抵达答案,所以这里会出现很多非常熟悉的推理 token。虽然稀少但存在,这类案例就会成为 LLM 学会推理能力的数据。

通过强化学习显化推理能力 44:14

44:20 金成贤 那问题就变成怎么把这种能力调出来。大多数情况下它被埋着,不容易显现。不是 0 概率,但“不推理”的概率远高于“推理”。这方面最近有篇有意思的论文,我讲下它的直觉解释。

有“生成推理”的概率,也有“生成推理后答对”的概率。还有“不生成推理”的概率,以及“不推理但答对”的概率。

在这种情况下,LLM 基本上“不推理”的概率更高。但“一旦推理,答对概率更高”。也就是通常它不生成推理,但只要生成推理,答对概率会高于不推理直接答对的概率。这是个不对称情形。

那强化学习过程中怎么起作用呢?虽然生成推理概率低,但相对于这个低概率,它答对概率更高。强化学习会提高“答对”时的概率,对吧。那生成推理的案例就会被强化。

45:22 卢正锡 也就是在激励它把话说得更长的方向。

45:30 金成贤 对,会往那个方向作用。因为不对称,所以会更关注“推理了”的情况。因为那时答对概率更高。

即使推理概率很低,只要相对这个低概率而言答对更多,那这些正确案例就会被突出。

在强化学习里只看“是不是正确”。所以用正确性来评估时,即便出现概率低,只要正确率高,就会得到比出现概率更强的奖励强化。

45:59 卢正锡 对,所以从刚才 perplexity 视角看,粗暴总结就是 token 上投入的 compute 越多最终就越行,对吧。极度简化的话。

46:12 金成贤 实际上结果比这更好。按这篇论文的意图,相比在 pre-training 里学习这种模式,强化学习会让这个过程快很多。

也就是每个阶段里,各阶段出现概率会提高,而那些“答对概率高但出现比例低”的推理序列、回答,其概率提升是指数式的。

会几何级增长,所以每一步都几何增长,能力学习非常快。

46:55 卢正锡 所以看那些 tech paper,如果把从 pre-training 到 post-training 发布模型的总 compute 记为 100,通常 90 以上都花在 pre-training,

剩下不到 10% 用在 post-training,但 pre-training 学到的还像你说的是在大量可能性里分支还没充分训练好,

如果用 RL 把它显化出来,那么即便投入更少 compute,产出质量也会非常快地提升,可以这样理解吧。

47:29 金成贤 比如在 pre-training 里,正如前面说的,大多数是“不推理直接给正确答案”的模式,所以那个概率一直高,而“通过推理给正确答案”的概率很低。

但因为通过推理给正确答案时正确率更高,所以在强化学习现场,这部分会不对称地获得更大奖励。

会得到更强强化。

每经过一次强化学习

47:55 崔升准 这里被强化的,本质上就是“吐出 CoT”这个 action 被强化了,对吧。也就是给它一定优势。

48:00 金成贤 相比不做 CoT,做 CoT 的路径会被更强强化。比如实际做 CoT 的概率只有 1%,但强化幅度可能像 2% 级别。那 1 会变 2,2 再变 4,4 再变 8,就会这样快速增长。

48:21 崔升准 会快速指数级上升。

48:23 金成贤 所以对 pre-training 来说,仅靠 pre-training,CoT 生成概率会非常低并持续低,

但经过强化学习后,它会非常快地变成主流模式。

实际上只用相对较少计算量也能做到,因此通过强化学习,原本 pre-training 模型里那个极低概率的推理模式会迅速上升。

48:52 崔升准 那可以理解为模型输出分布本身发生了移动吗?

48:59 金成贤 对,会移动。而且移动得很快,会逐渐向更长的模式迁移。

强化学习是在调出已有能力吗? 49:01

49:04 卢正锡 这个就不得不问个有点哲学的问题:那是不是说强化学习并不是真的在培养它答对能力,而是它本来就有“把话说长会提高答对概率”的倾向,然后这个倾向不断被奖励。这样概括听起来也说得通。

49:25 金成贤 这点我想说的是,生成推理再答对,本身是可泛化能力。不生成推理却答对的概率,当然不全是这样,但多数更像记忆导致,所以正确率较低。

那模型就会朝可泛化模式前进。

会从原本“靠记忆作答”的不可泛化模式,转向可泛化能力方向。通过 RL。

49:54 卢正锡 然后这种方向会被激励,参数持续更新让这种倾向更强,这就是 post-training 了。

50:05 金成贤 所以这样想就会马上出现问题:这不就是把已有能力调出来吗?这也是持续争论的话题。

也就是说,推理能力本来就在 pre-training 里学到了,现在只是把它拿出来,这个问题就会出现。虽然争论很多,但也不能只这么看。

虽然是 pre-training 里反复出现的话题,但比如教了数学推理能力后,它写诗时也会推理,这会扩展到其他领域,这也是 pre-training 的一个作用。

因为 pre-training 把不同领域连接起来,所以对这些相连领域会发生泛化。这是一种扩展。最近还有一个说法是会出现“组合能力”。

比如推理过程中有“解 A 问题能力”“解 B 问题能力”,那把 A 与 B 组合,去解新问题的能力会在推理过程中出现。而学习这个过程后,会出现把 A 方法和 B 方法组合成 C 方法的能力。

也就是说,把已有的局部能力组合出新组合来解题,这种说法最近也很多。也有人说这种泛化是可能的。

关于 Kimi K2 也有个说法,说它学会了一次指令用 2~300 个工具。有人认为这种能力本身也是这样涌现出来的。也就是说工具使用能力逐渐涌现,可能进一步涌现出组合更多工具的能力。

51:57 崔升准 看 slide 里的合成函数会想到 lambda calculus。毕竟用合成函数这件事在 computation 里意义非常重大。

52:13 金成贤 对,是否会出现某些基础能力,这又是另一个问题。但基本上也有人说,把既有能力重新组合并延长组合链条,这些能力会由强化学习带来。不过它具体怎么发生,还需要更多研究。我觉得是很有意思的话题。

成功强化学习所需条件 52:26

52:26 金成贤 我把前面讲的综合一下。你可能会觉得线索分成了好几条,我再整理一遍,把分散的内容总结一下。

前面有个重要想法是:要让模型能泛化,就必须给模型“它能解的问题”。

也可以说,必须让它以“可泛化的方式”去解题。也就是以模型能解的方式。

也就是要在模型能力范围内提供问题。

并且要是 on-policy。

为什么要 on-policy?因为 off-policy 下,假设专家解了问题,专家具备的能力模型可能没有。那就像前面展示的,只会看到 B 路径。

可模型实际可行的是 C 路径,却只被训练 B 路径。

当模型按自己能力走到 C 路径时,就会卡住。

所以要让模型在自己可行能力内解题,就得 on-policy。模型要亲自解题、按自己的方式解,再拿反馈学习。

而不是别人给“你该这样解”的 guide 再照着学。

53:56 崔升准 也就是说要通过自己的经验去试错。

53:59 金成贤 对,这样才可能泛化。因为是在模型可解能力内做强化学习。不是让它用不可解方式去解。并且不只是“能解/不能解”,模型偏好的解法本身也会有,和人不同,所以要 on-policy。

还有就是给推理过程加结构。比如 MCTS 这类搜索问题,会把步骤拆开并给每步结构。但给某种特定结构本身也是人的想法。是某个专家觉得“这个问题应该这么解”的想法。

但这可能和模型实际接近并解决问题的能力脱节。所以强加结构也可能不必要,甚至有害。

还有像前面说的,在 pre-training 里推理概率很低,但推理路径正确率高,因此概率会快速上升。这个过程中关键是必须准确判断什么是正确答案。

也就是对那些不推理、靠记忆硬解而容易出错的部分,错了就要判错;而对通过推理、以可泛化方式正确解题并答对的情况,才给正确奖励。

不能把错误当正确反馈。这样才能防止不可泛化模式被错误强化。

55:39 崔升准 这就是你上次讲 false positive 时说的那个点,对吧。

55:46 金成贤 对,通过准确判断正确答案,可泛化模式会相对被更强强化。需要具备这些条件。

比如对推理采用较严格正确性判断,只有答案完全一致才算对。如果这样做了,就先假设不会把错判成对。那么相对获得更多奖励的,就只会是可泛化情况。

也就是说比较“做 CoT 后答对”和“不做 CoT 也答对”,不可泛化那边会有更多错答,所以它比例会下降;而能稳定答对、在多样问题上可泛化答对的行为模式会相对获得更大强化,因为正确答案被准确识别。

当不可泛化模式给出某答案时,如果误判为正确并强化它,这种“强化不可泛化行为模式”的情况,准确反馈能防止。也就是抑制“瞎猜猜中”。

但如果无法准确判断正确性,瞎猜猜中的路径相对更容易被强化。那就会妨碍可泛化模式上升。

所以给出准确反馈有助于发现可泛化模式,可以这么看。

DeepSeek R1 的推理学习方式 57:27

57:30 金成贤 所以回到 DeepSeek R1,DeepSeek R1 的方式非常简单。看 prompt 是“先执行推理过程再向用户提供回答。推理过程放在标签里,回答用 包裹。”

然后奖励只看 从 里出来的回答是否与标准答案一致,而在 内要用 这个标签包裹,这一点有奖励约束,但 内具体放什么则完全不碰。

而仅凭这些就产生了推理。

58:02 崔升准 这有意思的是,Anthropic 大概一年前吧,当时也有 这个 XML 标签。后来用户发现后还做过只把它显露出来的操作,甚至在正式发布推理模型之前。

58:19 金成贤 那时候具体怎么做 post-training 我不清楚,但当时也确实学过 CoT 之类。

只是当时方式可能不一样。

因为学 CoT 的一种方式就是专家,也就是人,直接写“要这样思考”。实际上也确实这样训练过很多。

所以这个 CoT,也就是 这个 CoT,究竟是不是通过强化学习学到并且是否没碰里面内容,或者碰了多少,我们无法确定。但当时确实已有 CoT 这类东西。

还有个小影响是 Anthropic 偏好用 XML 或 HTML 标签。对,所以 DeepSeek 可能也选了这种标签方式。

总之再总结下:不是由某个专家用模型本不具备的能力替它解题,而是模型按自己可解方式解题,解完再根据答案获得反馈,这就是让推理出现的路径。这里能关联很多概念。

可以想到 on-policy 和 off-policy。

还包括泛化与 overfitting 问题,只有给模型可解问题,并以它可解形式提供时,才可能产生泛化。这些点都进来了。通过这些我们可以理解为什么会出现推理、为什么推理能带来强泛化,以及其中 pre-training 的作用是什么。

像之前一样,最后一页是个有点“云里雾里”的话题。虽然是 Jason Wei 说的,不能说是空谈,但确实是另一个主题。关于 on-policy、off-policy,Jason Wei 是从 OpenAI 去了 Meta 的研究者,他说过这样一段。

结尾:On-policy RL 与人生:Jason Wei 的故事 1:00:05

1:00:12 金成贤 人也是,最开始是通过模仿学习。按老师教的学,或挑自己觉得好的案例去模仿。

但人终究各自能力不同,拥有的能力不同,给定条件也不同。

为了在给定条件下做出成功选择,会有一个无法继续模仿的区域、节点,在那个点上只能做 on-policy。只能自己尝试、获取经验、拿到反馈奖励。他是这么说的。

人最终也一直有类似困境。要是人人都有一个可完全模仿对象并直接复制就好了,但所处环境和能力都不同,所以要在环境与能力之间找到真正可泛化模式,似乎只能通过自己行动来获得经验。

这也是为什么必须超越模仿。每次讲 on-policy、off-policy 我都会想到这个故事,所以拿它作结。

1:01:15 卢正锡 真有意思,很有意思。

1:01:19 崔升准 这就会连接到教育,有非常多可说的。

1:01:22 卢正锡 对。其实我们的人生本身就是 on-policy RL。奖励会掉下来,比如交到漂亮女朋友、赚很多钱、或者去哪儿拿奖,金钱和名誉这些形式构成了社会写好的 reward function;而除了这些 explicit reward function 之外,能从自己内在 structure 里提炼更高阶 reward function 的人,似乎会走向更伟大的方向。

其实成贤,今天我们聊这个时,我在脑子里追你说的每个下一个 token,所谓难度真的很高。下一个 token 的 perplexity 非常高。

我也这么觉得,但我们可能还得再给 audience 多提供一点帮助。

1:02:13 崔升准 从这个角度我提几个问题。

其实新手最先卡住的是“怎么把 LLM 和 RL 连起来”,我当时也是这样。

为什么 policy、action、actor 是 LLM?然后 LM 要能吐概率,还要有 action,也就是 next token prediction,

还有状态也就是 context,这些 notion 本身一开始就很难。

所以即便懂 LLM 也懂一点 RL,这座桥的搭建我们刚才其实都一笔带过了。

1:02:50 卢正锡 今天关于这座桥的部分,成贤其实通过 pre-train phase 里模型拥有什么,用类比讲得非常好;而 RL 在那里是如何提升某种倾向,该怎么说呢,应该是 propensity,这种倾向提升上 RL 的根本作用是什么,也讲得非常到位。

1:03:12 崔升准 但如果要严谨做,就得从 SARSA 开始,把那些公式全都捡起来,那就太难了。

1:03:23 卢正锡 是。不过 RL 现在是不是也可以不那样了?Q-learning、SARSA、TD 那些公式全学完,再学 policy gradient,以前是这样。但我觉得可以把前面的都去掉,直接从“policy gradient 理论就是这个,目标是 maximize 这个”开始,应该也行。

1:03:39 崔升准 其实从那里开始可能更好。

1:03:41 金成贤 其实其中 policy gradient 里看 REINFORCE 基本就对 LLM 足够了。

1:03:52 卢正锡 对。是,之后把那部分单独抽出来,请成贤再多 cover 一下,应该会很有帮助。

1:04:03 崔升准 对,我也很期待。你又有新任务了。不过你确实点出了很多有意思的地方,前半段虽然难,但到后半段就开始很顺地吸收了。前半段我本来跟得很吃力。

1:04:15 卢正锡 没错。是,听成贤讲的时候,刚才那些 cross-entropy、perplexity 在我脑子里也冒出了很多新方向,结束后我得去问 LLM 了。

看来得和模型一起学习。

那今天内容挺难。成贤,非常感谢你把这部分尽量简化并组织成一个完整叙事,真的下了很大功夫。谢谢。