EP 75
(没有数学公式的) 强化学习故事
开场:Kimi K2 模型发布与强化学习 00:00
卢正锡 今天我们录制的时间是 2025 年 11 月 8 日,周六早上。
现在我们真的在等 Gemini 3.0,看起来应该很快就要出了。
前天,准确说是昨天,按韩国日期,中国前沿实验室之一 Moonshot 发布了 Kimi K2 Thinking 模型。
它在各种基准测试中都展示了超越其他美国前沿模型的结果。
所以 reinforcement learning,RL,强化学习看起来依然是个大话题,今天我想和成贤一起把 RL 这部分再深入挖一挖。
好的,大家好。
Kimi K2 模型的特点与基准测试 00:38
金成贤 大家好。Kimi K2 模型出来后非常受关注,现在也依然很热。最受关注的应该是基准测试分数。
在基准测试分数上,它主要和另外两个模型直接比较:GPT-5 和 Sonnet 4.5 Thinking。也就是说是在和当前最强状态的模型比较,而且相比这些模型也不落下风,甚至在某些 benchmark 上记录了更好的性能。
还有一点有意思的是,Kimi K2 之前并不是推理模型,而是 instruct 模型,而 instruct 模型大概是 9 月出来的。所以新模型出现的周期正在越来越快。
后训练时代与模型开发周期 01:14
金成贤 现在从 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
金成贤 再讲一点细节,他们提到“推理效率”,这里的推理效率其实是服务效率。他们在表达服务效率时说,在 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 也是在那部分做量化。
所以这种趋势以后大概会越来越常见,成为基础技术。
卢正锡 那模型尺寸也因此缩小了很多吧。这是个 1 万亿参数模型,那尺寸应该不到 1TB 吧。理论上大概 500GB 吗?大概 600GB?
金成贤 因为大部分权重都在 MoE 部分,所以应该不会到 1TB 那个级别。当然量化后加载到内存里时,不是 1TB 级别,而是大概 500GB,正如你说的那个量级。
卢正锡 那这个级别就真的是一台 8 张 GPU 的机器也能跑了。
金成贤 是,感觉勉强可以塞进去。
卢正锡 对啊。性能保持不变,但体积持续变小,计算效率持续提高。
崔升准 参数是万亿级,但按容量来估计大概 500GB,对吧。
金成贤 对,实际容量会降到那个级别。因为大小减半了。感觉这种趋势会一直看到。
后训练配方的重要性 05:43
金成贤 随着 post-training 和 RL 成为重点,RL 的训练配方在快速改进,这些快速改进的配方又被应用到模型并加速发布周期。以后应该会持续看到这种情况,甚至这种 recipe 改进通常都不会单独发 tech report。
谁拥有更好的配方,可能会成为前沿公司的竞争力。
pre-training 到现在更接近于“把已有数据用好”,而 post-training 更接近于“创造数据”。
那么接下来就是看谁更会创造,这部分会成为 know-how,我认为前沿公司的竞争力会在这里被明显拉开。
post-training 的配方或技巧,我想各家公司应该会有很大差异。
卢正锡 是,会有很大差异。还有在理念上强调什么的重要性,比如 Anthropic 可能更强调 coding、现实问题、B2B use,而 OpenAI 或 Kimi 就像你说的,感觉更强调 generalization 这边。
金成贤 对,Anthropic 当然也会持续顾及 general 的部分,但会不会往那部分特化,还是把整体都带着走,会有这个差异。
不过我基本认为前沿实验室的基调都是把整体能力一起拉起来。
我认为所谓通用智能和能力,并不是能和其他能力完全分离的东西。
但这部分有点偏哲学。
崔升准 继续往下走吧。
对强化学习(RL)的新视角 07:26
金成贤 好,那就进入原本要讲的 reinforcement learning。上次我讲过 RLVR,讲完时我觉得那样应该够了,但做完后反而更想更深入、讲得更扎实一些。所以这次想再聊一次 reinforcement learning。
对我这个年龄段的工程师来说,reinforcement learning 往往是很特别的,因为我们是从 AlphaGo 一起开始的,开始接触深度学习。所以有很多人第一个项目就是复现 AlphaGo。但相比之下,我不是从强化学习开始的。
我就是从监督学习开始的,对强化学习一直是“这么麻烦的东西为什么非要做?”大概这种感觉。直到最近 LLM 时代到来,强化学习变成绕不开的话题,最后还是开始讲强化学习。这个意义上,和那些从强化学习起步的人相比,我对强化学习的视角或感受可能会不太一样。
和那些从以前就对强化学习有深厚热情的人相比,我是从“强化学习太麻烦”到“因为需要而重新关注”,所以视角可能不同。不过这种新视角也可能挺有意思。
所以先再简要介绍一下什么是强化学习:有一个 agent,在环境中行动。agent 行动后,环境会因其行为发生变化,也就是状态变化。并且在某些情况下,会收到这个环境定义的 reward。
比如在游戏里拿到高分就可以是一种 reward。这时,让在环境中行动的 agent 学会最大化 reward 的方法,就是强化学习。这个部分也和监督学习的方法不太一样。
监督学习 vs 强化学习:自动驾驶类比 09:30
金成贤 不过监督学习当然也不完全是和强化学习彻底不同的东西。因为监督学习的一些技术也可以看成强化学习的一部分。但我们说强化学习时,它和监督学习的一个不同点是,不会有人类专家来直接教 agent 该怎么行动。
崔升准 有点容易混淆的地方是,这不是无监督学习的语境吗?监督学习里不是 RL,而是无监督学习里才是 RL 吧?
卢正锡 说监督学习也没错。成贤刚才想表达的是,在强化学习进行中,对成功行为给奖励并更新这一部分,其实和监督学习中按 label 学习的过程也有相似性。
金成贤 这里可以用自动驾驶来类比。如果用监督学习来学自动驾驶,就是人先给出驾驶轨迹,记录驾驶过程,再让模型去模仿这些记录,这更接近监督学习视角。
如果用强化学习,则更接近于给一个目标,把成功到达目标也就是目的地作为奖励,而如何驾驶由 agent,也就是 AI 模型自己去找。这是监督学习和强化学习对比时差异最大的点。
也就是不会教“具体怎么解题”。更接近于只给“把问题解出来”这个目标。不过正因如此也有优势。
如果用人类制作的数据来学习并模仿人类数据,最终大概率就是人类水平的性能。虽然不能绝对这么说,但目标通常会是达到人类水平。因为本质上是在学人的方法。
其实更有可能比人类差,毕竟是模仿。但强化学习是让模型自己找方法,所以有机会超过人类水平。
围棋就是最典型例子。模型自己找到下棋方法,所以能达到超越人类的水平。从这个意义上,也可以说它是机器学习方法里几乎唯一能达到超人性能的方法,也就是强化学习。
如果问强化学习技术到底是什么、怎么发生的,从数学上讲会很复杂,但 Karpathy 总结得很简洁。他对强化学习的表达有点“残酷”,但也不算错。
基本窍门是让 agent 行动。在环境里行动后,行为过程中会收到奖励。然后就提高“直到收到奖励为止”那些行为的概率。这可以看作最基本的想法。
让它行动,然后一旦奖励到来,就把奖励到来前那些行为的概率都提高。这样就会出现一个有点奇怪的想法。
强化学习核心:Credit Assignment Problem 12:43
金成贤 这些行为中有些有帮助,有些没帮助,尤其随机行动时更容易这样。那当然最好只提高真正有帮助的行为概率。
但这就是叫做 Credit Assignment Problem 的问题,中文该怎么翻我一时也想不出来。也就是找出哪些行为真正有帮助,这个问题仔细想并不容易。
人也是一样,在完全没有先验知识时,某个好结果出现后,要找出导致它的行为是什么,这并不简单。人也是靠既有经验或推理来判断,不是随手一扔就能知道哪个行为有帮助。
而且人类在这方面会犯很多错。比如在没有模式的地方硬找模式,或者明明无关却以为某个行为有帮助,这些事常发生。这说明它整体上就是难题。
比如赌博里人就会大量犯这种错。以为有模式,以为某行为有帮助,就会产生所谓“迷信”。
所以这是个相当难的问题。虽然因为 AlphaGo 我们看到了强化学习很多辉煌时刻,但在这种情况下仍然很难,尤其是奖励非常稀疏时,也就是行动几百次、几千次后才给奖励时,这个问题仍然很难。
强化学习是难题。当时用强化学习解 Atari 游戏,确实解出了很多 Atari 游戏。但其中有个叫 Montezuma’s Revenge 的游戏,就是现在截图里的这个。按我所知直到现在它也只是到达人类平均水平,如果不使用非常规方法,比如不给人类指导、不提供重置环境能力等,依然达不到超人水平。
也就是说,对那种不太适合强化学习的环境,也就是大量行动后才给奖励的环境,仍然很难。所以整体并不容易。
为何在 LLM 中引入强化学习:RLHF 15:10
金成贤 那么我想从“为什么强化学习会被引入 LLM,以及以什么形式引入”开始讲。最早主流地引入应该可以看作 RLHF。当然在那之前也有一些其他形式,但主流案例是 RLHF。
RLHF 到底算不算 RL,争论很多,做强化学习的人常说这不算 RL,但我还是认为它算。基本思路是这样。
给 LLM 一个 prompt,让它生成两个回答。生成两个回答后,一个会更好,一个会更差。然后由人来标注哪个回答更好,哪个相对没那么好。
标注之后,用这些标注结果训练奖励模型。这个奖励模型接收回答,去预测这个回答好不好,并尽量接近人的评价。然后这个奖励模型在 RL,也就是强化学习里,充当提供奖励的 reward function。
做完奖励模型后,再让 LLM 生成多个回答。生成后送进奖励模型,奖励模型会评估这些回答好不好。然后做 RL 去最大化这个评估分,也就是最大化 reward。
这样模型就会学到输出奖励最大的回答,也就是人会正向评价的回答。所以这个过程就实现了与人的对齐。模型会被训练成生成人偏好的回答,因此和人对齐。也就是用人的偏好来学习。这个就是 RLHF 的基本思路。
想想会觉得“为什么要做这个?”而实际上也有很多人这么想所以不做。尤其开源模型里,很多人会觉得“非得这样吗?”“为什么要做?”所以常常不做。关于这个问题原因很多,但最典型的一个可能是幻觉问题。
SFT 的局限与幻觉问题 17:18
金成贤 如果问“为什么做”,那也会想“除了 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
金成贤 这种情况下就会学到“先回答,哪怕不知道”“随便答点什么”这种模式。为什么会出现这个问题,我们再深一点看。
有 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
金成贤 所谓 overfitting,通常说是对数据过拟合导致的问题。比如有这些点,为了把点全连上就会变成很复杂的曲线,但其实更简单的直线反而泛化更好。
关于 overfitting 的基本直觉,教科书式说法常是“数据变量少、模型简单,overfitting 可能性就低”。但再深入想,也可以这样看。
发生 overfitting 时,其实是把每个数据点都背下来了。可以说成记忆。这个“记忆”很有意思,我们常说“模型把数据背下来然后原样解”。
把记忆和泛化对比看,overfitting 状态可视为记忆;虽然这个概括有点过度,但就是记住数据。能泛化则是超越记忆,抓住了更根本的模式。
而这里有个有趣点,不只是“变量数量少、模型简单”这件事,是否给了模型“它能解的问题”影响也非常大。
这里有张小图,假设做图像分类问题。非常小的图片可以说变量少,因为像素少。
那给小像素图是不是就更好、更能防止 overfitting?也不一定,不能只这么看。这里有张小图,这是什么?这是苹果图片。
把苹果图 resize 得很小,变量变少是好事,但太小后用这张图做真实分类就不可能,因为信息没了。给“可解的问题”是关键点。
这可以从数据角度看,也从模型角度看。模型变大就一定会 overfitting 吗?也不一定。
不能只这么看。假设某个神经网络里每多一层就能多做一次加法,也可以理解成 attention 一类操作。
那么每增加一层,一次能解决的加法次数就多一个。假设有 2 层,就能解两次加法。
所以一次加法问题能解,两次也能解。但从三次开始模型就解不了。那模型面对解不了的问题会怎么做?
如果神经网络太弱,可能根本学不动。但通常神经网络很强,很多情况下能把数据全部背下来。
于是对这个问题很可能就直接背。怎么背有多种可能,比如“出现数字 4 就输出 10”之类,直接记数据。
这就会出现一种对不可解问题的“记忆式 overfitting”。也就是模型以 overfitting 方式学习。所以这里需要 3 层。
3 层意味着模型更大,但模型变大反而会降低 overfitting。说到最佳泛化,很多时候其实是在学习算法。
这里给了一组数字和答案。面对这些模式,可以全部硬记下来学习。但最佳泛化方式是模型学会排序算法。
那模型若要在这里实现泛化,就必须具备学习排序算法的能力。如果没有,它就会把模式全背下来,泛化就不可能。
也就是说,模型规模必须达到能够学习排序算法,才可能出现泛化。我们再把这个想法扩展一下。
单层能执行的运算是有限的。通常像 Transformer 的一层 attention,能做的运算有限,而层数也是有限。
所以对单个 token 能执行的运算量是有限的。
但如果在预测某个 token 时,所需运算量远超这个上限,那对模型就是不可解问题。
这里有个简单二次方程例子,假设模型规模还不足以一步解出这个二次方程,那它就解不了。
那给它这个问题时,它能做的就只有记忆:出现这个方程就输出这个结果。这样除非把世界上所有二次方程都学过,否则无法泛化。
但如果把解这个问题需要的运算分散到多个 token,会怎样?也就是把这个二次方程按步骤拆解,一步步求解。
那么相比“一步到答案”,每一步运算会更少。先写出求根公式,再代入数字,对各数字计算,再整理得出答案。
这些在每个 token、每个步骤上所需运算都比一次性求解更少。那就会变成模型可解问题。
因为变成可解问题,从这里开始就可以泛化。对模型不可解的问题会走向记忆,记忆就无法泛化;如果把问题拆成模型可解的阶段,就能通过这些阶段学算法,能学算法就能泛化,泛化就变得可能。
卢正锡 我大概理解这个逻辑要往哪走了。听起来是对的。继续吧,很有意思。
金成贤 所以关于泛化,让模型去解它能解的问题,这点非常关键。不只是用小模型、少变量,必要时要把模型做大,必要时也要拉长序列长度,这些都会发生。
互联网数据的局限:缺失中间过程 30:28
金成贤 为了给模型可解问题,才有泛化可能。问题是,互联网几乎没有这种数据。
这是 Math Stack Exchange 上一个很有名用户 Cleo 的案例,有用户发了一个积分题。
过了几个小时左右,Cleo 这个用户直接一次性给出了答案。
但这个答案完全没有过程,没有任何“怎么推导出来”的说明。
大家就很怀疑。猜测很多,比如出题的是他自己,解题发帖也是他自己,是同一个人;或者是同一个人反向构造题目,也就是从积分结果反推这个微分题等等。
很多怀疑,但据说实际上并不是那样。好像他确实是把积分题解出来了。
但不管他到底有没有那个能力,互联网里这种数据很多。因为能在没有任何中间过程下直接秒解这种积分题的人,现实里几乎没有,非常罕见。
可在互联网数据里,人看起来就是这么解题的。数据表现成“这种积分题人就是不需要中间过程一步解出”。
可模型又必须通过互联网数据学习,而它学到的基本都是这种形式。
卢正锡 你的意思是,模型在 pre-training 学到的数据基本都是这种“问题-答案”形式,中间具体做了哪些运算,也就是 trajectory,这类数据几乎没有,对吧。
金成贤 极其稀少。正因为极其稀少,这就成了 LLM 里长期存在的问题。所以本应先想一想再回答,但它会先回答。就会出现这种模式。
所以拿一个简单例子,比如问“牛顿生在偶数年还是奇数年?”它就抑制不住立刻给答案的冲动。
LLM 就会直接在没有任何过程下回答“偶数”。有趣的是,马上回答这个路径通常概率最高。
但虽然概率低,也有“先想再答”的可能。比如先想“牛顿出生于 1643 年,1643 是奇数年”,再回答。这个模式并非完全没有,确实存在。
这一点是非常重要的线索。多数情况下它压不住立即回答的冲动,但“尝试思考”的能力,也就是这个模式在模型里确实存在。
所以说,LLM 里确实存在通过推理来回答的能力,只是被埋住了,而且概率非常低。
卢正锡 即使同一个问题,回答后续其实有很多分支路径,其中有冲动式回答,也有展开解释后到达正确答案等多种过程。是不是可以理解为:RL 会被用在“如何让这些过程更偏向多思考”这个方向上?
预训练与搜索空间收缩 33:38
金成贤 最终 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 会更小。可以有点像“巴别图书馆”。
卢正锡 你说候选减少,最终可以解读为:学习结果让它从大量随机路径中开始具备某些被定义、被组织过的路径,对吧。
金成贤 对,可以有点像巴别图书馆来理解。也就是所有可能的 100 token 序列,如果看全组合,搜索空间是无穷无尽地大。
但其中真正有意义的序列,相比之下会少得多。也就是绝大多数都是无意义序列,把 token 随机排列大多不通顺,真正通顺的是极少数。
可以把 pre-training 看成是在筛出这些极少数可能性、这些组合空间。
卢正锡 也就是它在学习“有意义且通顺”的路径。成贤,这里我想问下,因为 vocabulary size、cross-entropy loss 的含义,以及由此导出的 perplexity 概念,这里听众可能会有很大理解断层,能不能简单 recap 一下怎么讲比较好?
LLM 的学习与 Perplexity 的含义 36:25
金成贤 再补充一点,大家常说 LLM 是用下一个 token 预测训练的。那“下一个 token 预测”的实质含义是什么,可以用很简单的词来想。比如就当成下一个词预测。
那某个句子后面可能出现的词有个总数,就是词典里的词数。问题就变成从词典全部词里预测一个。
这就变成一种分类问题。
从中选出正确词。那可能词的数量就是 vocabulary,也就是词表大小,也就是候选数量。
Kimi K2 的候选数量是 163,840。你要从中选一个。
卢正锡 可表达词的数量是 163,840 个。
金成贤 而且不是只预测一次 163,840 选 1,而是要连续预测很多次。所以可能组合数会按它的幂次持续增长,变成极其巨大的数字。
而当模型在下一个词预测上训练时,训练 loss,也就是 cross-entropy,本质上就是“预测有多准”的 loss。训练就是让它更擅长这个预测。
如果对这个训练 loss 取 exponential,会更直观地理解它的值。其中一种直觉理解是:对这个 loss 取 exponential 后得到的这个数,可以看作“从这么多个选项里选中一个”的难度。
原本是从 163,840 个等概率候选里猜一个,现在变成从大概 3.7 个候选里猜一个,可以这样理解。可能空间被大幅压缩了。
卢正锡 对。所以我刚才想传达给听众的是,与其说这个数字本身,不如说怎么把 loss、perplexity 这些讲得更容易理解,
崔升准 对,不过现在听众可以先把这张 slide 暂停截图,然后去问 GPT-5。
卢正锡 对,没错。因为这包含了很多很难的基础内容,以及需要长期学习的机器学习和 LLM 相关内容,所以请直觉地理解为:LLM 在一个巨大的可能性空间里,把东西整理成非常有组织的形态并减少分支数,这个过程就是学习。
推理的分岔点:Entropy 高的 token 39:17
金成贤 通过 pre-training,把那些不合理的 token 大都筛掉并减少候选。
所以看模型真实推理时会发生什么,这里蓝色表示模型的 entropy,我把它叫不确定性。蓝色代表不确定性低。
对于这些 token,模型几乎是确信的。蓝色越深越确信。变红则 entropy 更高,也就是更不确定。
绝大多数 token 都是蓝色。也就是说经过 pre-training,模型对这些 token 基本都有把握。换言之,预测这些并不难。
所以只要把少数红色 token 预测好,其他部分就会自然跟上。
卢正锡 那这些 entropy 高的区间,某种意义上可以看成关键分叉点吗?
金成贤 对,我就是这么看的。最近大家认为这部分是推理里最重要的 token。
你仔细看,这些是会改变思路流向的 token。像基础计算这种会一直顺着算下去,四则运算会持续推进。
其中像“要不要换个思路?”“这么想呢?”“那会怎样?”这类反而在数字计算部分模型不确定性低。
不确定性变高、也就是更有预测价值的,反而是这种改变思路流向、把分支分开的 token。
崔升准 会看到像 maybe 这种词出现,类似这种。
金成贤 对,比如下结论这类地方,这种 token 的不确定性反而高。
大家可能会觉得数字计算才最难最不确定,而普通 token 应该容易,但反过来,普通 token 因为会成为岔路口,所以说“不确定”可能听起来有点负面,不过它其实是分岔点的起点 token。
崔升准 因为这不是内部表征本身,只是以 token 形式显露出来。如果看内部表征,也许会很有意味。
金成贤 对,也可能是这样。也可能模型自己把这些当成关键分叉。比如在这个状态下该不该切换思路,还是继续往前,这些决策时刻可能就在这里。
卢正锡 所以即便这么多 token 里
金成贤 大多数都是自动可预测的,所以真实搜索空间其实很小。真正需要搜索的可以看成就是这几个红色 token。
卢正锡 也就是说有那种决定性的“但是呢”这类 token。对。
集体推理的学习:互联网论坛案例 42:04
金成贤 那这些在 pre-training 过程中是怎么学到的,可能有很多案例。我觉得特别有意思的一个是论坛。互联网论坛里,有个叫 songoku 的用户带着作业来问,
一般论坛常有“不给做作业”这种规则,而且倾向避免只给作业答案。
可能正因为这样,一个叫 BvU 的用户并没有直接给答案,而是不断引导对方思考。
他会一直给反馈:“要不要这样想想?”“这个案例你怎么看?”于是原帖用户就开始想,“我是不是这里错了?”“这个对吗?”之类。
这就是我们在推理模型里看到的典型模式。推理模型会边想边说“要不试试这个案例?”然后“啊,我是不是哪里错了”再回溯。这种模式会在推理模型里出现。互联网里这类数据几乎没有,但在论坛里偶尔会出现。
更惊人的是,这不是一个人写出来的吧?不是某个人把整个中间过程完整展开再总结,而是多人参与、交互,形成了某种集体推理数据。
卢正锡 前阵子 Andrej Karpathy 讲他为什么创办 Eureka Lab,在 Dwarkesh 播客里也说过类似的话。如果有一个完全知道我 perplexity 的完美助教,学习效率会暴增,他想做那个。这里有点既视感,就是一个恰好匹配我水平的助教。
金成贤 而且是多人交互,多人交互的结果会变成一种推理记录。通过文字抵达答案,所以这里会出现很多非常熟悉的推理 token。虽然稀少但存在,这类案例就会成为 LLM 学会推理能力的数据。
通过强化学习显化推理能力 44:14
金成贤 那问题就变成怎么把这种能力调出来。大多数情况下它被埋着,不容易显现。不是 0 概率,但“不推理”的概率远高于“推理”。这方面最近有篇有意思的论文,我讲下它的直觉解释。
有“生成推理”的概率,也有“生成推理后答对”的概率。还有“不生成推理”的概率,以及“不推理但答对”的概率。
在这种情况下,LLM 基本上“不推理”的概率更高。但“一旦推理,答对概率更高”。也就是通常它不生成推理,但只要生成推理,答对概率会高于不推理直接答对的概率。这是个不对称情形。
那强化学习过程中怎么起作用呢?虽然生成推理概率低,但相对于这个低概率,它答对概率更高。强化学习会提高“答对”时的概率,对吧。那生成推理的案例就会被强化。
卢正锡 也就是在激励它把话说得更长的方向。
金成贤 对,会往那个方向作用。因为不对称,所以会更关注“推理了”的情况。因为那时答对概率更高。
即使推理概率很低,只要相对这个低概率而言答对更多,那这些正确案例就会被突出。
在强化学习里只看“是不是正确”。所以用正确性来评估时,即便出现概率低,只要正确率高,就会得到比出现概率更强的奖励强化。
卢正锡 对,所以从刚才 perplexity 视角看,粗暴总结就是 token 上投入的 compute 越多最终就越行,对吧。极度简化的话。
金成贤 实际上结果比这更好。按这篇论文的意图,相比在 pre-training 里学习这种模式,强化学习会让这个过程快很多。
也就是每个阶段里,各阶段出现概率会提高,而那些“答对概率高但出现比例低”的推理序列、回答,其概率提升是指数式的。
会几何级增长,所以每一步都几何增长,能力学习非常快。
卢正锡 所以看那些 tech paper,如果把从 pre-training 到 post-training 发布模型的总 compute 记为 100,通常 90 以上都花在 pre-training,
剩下不到 10% 用在 post-training,但 pre-training 学到的还像你说的是在大量可能性里分支还没充分训练好,
如果用 RL 把它显化出来,那么即便投入更少 compute,产出质量也会非常快地提升,可以这样理解吧。
金成贤 比如在 pre-training 里,正如前面说的,大多数是“不推理直接给正确答案”的模式,所以那个概率一直高,而“通过推理给正确答案”的概率很低。
但因为通过推理给正确答案时正确率更高,所以在强化学习现场,这部分会不对称地获得更大奖励。
会得到更强强化。
每经过一次强化学习
崔升准 这里被强化的,本质上就是“吐出 CoT”这个 action 被强化了,对吧。也就是给它一定优势。
金成贤 相比不做 CoT,做 CoT 的路径会被更强强化。比如实际做 CoT 的概率只有 1%,但强化幅度可能像 2% 级别。那 1 会变 2,2 再变 4,4 再变 8,就会这样快速增长。
崔升准 会快速指数级上升。
金成贤 所以对 pre-training 来说,仅靠 pre-training,CoT 生成概率会非常低并持续低,
但经过强化学习后,它会非常快地变成主流模式。
实际上只用相对较少计算量也能做到,因此通过强化学习,原本 pre-training 模型里那个极低概率的推理模式会迅速上升。
崔升准 那可以理解为模型输出分布本身发生了移动吗?
金成贤 对,会移动。而且移动得很快,会逐渐向更长的模式迁移。
强化学习是在调出已有能力吗? 49:01
卢正锡 这个就不得不问个有点哲学的问题:那是不是说强化学习并不是真的在培养它答对能力,而是它本来就有“把话说长会提高答对概率”的倾向,然后这个倾向不断被奖励。这样概括听起来也说得通。
金成贤 这点我想说的是,生成推理再答对,本身是可泛化能力。不生成推理却答对的概率,当然不全是这样,但多数更像记忆导致,所以正确率较低。
那模型就会朝可泛化模式前进。
会从原本“靠记忆作答”的不可泛化模式,转向可泛化能力方向。通过 RL。
卢正锡 然后这种方向会被激励,参数持续更新让这种倾向更强,这就是 post-training 了。
金成贤 所以这样想就会马上出现问题:这不就是把已有能力调出来吗?这也是持续争论的话题。
也就是说,推理能力本来就在 pre-training 里学到了,现在只是把它拿出来,这个问题就会出现。虽然争论很多,但也不能只这么看。
虽然是 pre-training 里反复出现的话题,但比如教了数学推理能力后,它写诗时也会推理,这会扩展到其他领域,这也是 pre-training 的一个作用。
因为 pre-training 把不同领域连接起来,所以对这些相连领域会发生泛化。这是一种扩展。最近还有一个说法是会出现“组合能力”。
比如推理过程中有“解 A 问题能力”“解 B 问题能力”,那把 A 与 B 组合,去解新问题的能力会在推理过程中出现。而学习这个过程后,会出现把 A 方法和 B 方法组合成 C 方法的能力。
也就是说,把已有的局部能力组合出新组合来解题,这种说法最近也很多。也有人说这种泛化是可能的。
关于 Kimi K2 也有个说法,说它学会了一次指令用 2~300 个工具。有人认为这种能力本身也是这样涌现出来的。也就是说工具使用能力逐渐涌现,可能进一步涌现出组合更多工具的能力。
崔升准 看 slide 里的合成函数会想到 lambda calculus。毕竟用合成函数这件事在 computation 里意义非常重大。
金成贤 对,是否会出现某些基础能力,这又是另一个问题。但基本上也有人说,把既有能力重新组合并延长组合链条,这些能力会由强化学习带来。不过它具体怎么发生,还需要更多研究。我觉得是很有意思的话题。
成功强化学习所需条件 52:26
金成贤 我把前面讲的综合一下。你可能会觉得线索分成了好几条,我再整理一遍,把分散的内容总结一下。
前面有个重要想法是:要让模型能泛化,就必须给模型“它能解的问题”。
也可以说,必须让它以“可泛化的方式”去解题。也就是以模型能解的方式。
也就是要在模型能力范围内提供问题。
并且要是 on-policy。
为什么要 on-policy?因为 off-policy 下,假设专家解了问题,专家具备的能力模型可能没有。那就像前面展示的,只会看到 B 路径。
可模型实际可行的是 C 路径,却只被训练 B 路径。
当模型按自己能力走到 C 路径时,就会卡住。
所以要让模型在自己可行能力内解题,就得 on-policy。模型要亲自解题、按自己的方式解,再拿反馈学习。
而不是别人给“你该这样解”的 guide 再照着学。
崔升准 也就是说要通过自己的经验去试错。
金成贤 对,这样才可能泛化。因为是在模型可解能力内做强化学习。不是让它用不可解方式去解。并且不只是“能解/不能解”,模型偏好的解法本身也会有,和人不同,所以要 on-policy。
还有就是给推理过程加结构。比如 MCTS 这类搜索问题,会把步骤拆开并给每步结构。但给某种特定结构本身也是人的想法。是某个专家觉得“这个问题应该这么解”的想法。
但这可能和模型实际接近并解决问题的能力脱节。所以强加结构也可能不必要,甚至有害。
还有像前面说的,在 pre-training 里推理概率很低,但推理路径正确率高,因此概率会快速上升。这个过程中关键是必须准确判断什么是正确答案。
也就是对那些不推理、靠记忆硬解而容易出错的部分,错了就要判错;而对通过推理、以可泛化方式正确解题并答对的情况,才给正确奖励。
不能把错误当正确反馈。这样才能防止不可泛化模式被错误强化。
崔升准 这就是你上次讲 false positive 时说的那个点,对吧。
金成贤 对,通过准确判断正确答案,可泛化模式会相对被更强强化。需要具备这些条件。
比如对推理采用较严格正确性判断,只有答案完全一致才算对。如果这样做了,就先假设不会把错判成对。那么相对获得更多奖励的,就只会是可泛化情况。
也就是说比较“做 CoT 后答对”和“不做 CoT 也答对”,不可泛化那边会有更多错答,所以它比例会下降;而能稳定答对、在多样问题上可泛化答对的行为模式会相对获得更大强化,因为正确答案被准确识别。
当不可泛化模式给出某答案时,如果误判为正确并强化它,这种“强化不可泛化行为模式”的情况,准确反馈能防止。也就是抑制“瞎猜猜中”。
但如果无法准确判断正确性,瞎猜猜中的路径相对更容易被强化。那就会妨碍可泛化模式上升。
所以给出准确反馈有助于发现可泛化模式,可以这么看。
DeepSeek R1 的推理学习方式 57:27
金成贤 所以回到 DeepSeek R1,DeepSeek R1 的方式非常简单。看 prompt 是“先执行推理过程再向用户提供回答。推理过程放在标签里,回答用 包裹。”
然后奖励只看 从 里出来的回答是否与标准答案一致,而在 内要用 这个标签包裹,这一点有奖励约束,但 内具体放什么则完全不碰。
而仅凭这些就产生了推理。
崔升准 这有意思的是,Anthropic 大概一年前吧,当时也有 这个 XML 标签。后来用户发现后还做过只把它显露出来的操作,甚至在正式发布推理模型之前。
金成贤 那时候具体怎么做 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
金成贤 人也是,最开始是通过模仿学习。按老师教的学,或挑自己觉得好的案例去模仿。
但人终究各自能力不同,拥有的能力不同,给定条件也不同。
为了在给定条件下做出成功选择,会有一个无法继续模仿的区域、节点,在那个点上只能做 on-policy。只能自己尝试、获取经验、拿到反馈奖励。他是这么说的。
人最终也一直有类似困境。要是人人都有一个可完全模仿对象并直接复制就好了,但所处环境和能力都不同,所以要在环境与能力之间找到真正可泛化模式,似乎只能通过自己行动来获得经验。
这也是为什么必须超越模仿。每次讲 on-policy、off-policy 我都会想到这个故事,所以拿它作结。
卢正锡 真有意思,很有意思。
崔升准 这就会连接到教育,有非常多可说的。
卢正锡 对。其实我们的人生本身就是 on-policy RL。奖励会掉下来,比如交到漂亮女朋友、赚很多钱、或者去哪儿拿奖,金钱和名誉这些形式构成了社会写好的 reward function;而除了这些 explicit reward function 之外,能从自己内在 structure 里提炼更高阶 reward function 的人,似乎会走向更伟大的方向。
其实成贤,今天我们聊这个时,我在脑子里追你说的每个下一个 token,所谓难度真的很高。下一个 token 的 perplexity 非常高。
我也这么觉得,但我们可能还得再给 audience 多提供一点帮助。
崔升准 从这个角度我提几个问题。
其实新手最先卡住的是“怎么把 LLM 和 RL 连起来”,我当时也是这样。
为什么 policy、action、actor 是 LLM?然后 LM 要能吐概率,还要有 action,也就是 next token prediction,
还有状态也就是 context,这些 notion 本身一开始就很难。
所以即便懂 LLM 也懂一点 RL,这座桥的搭建我们刚才其实都一笔带过了。
卢正锡 今天关于这座桥的部分,成贤其实通过 pre-train phase 里模型拥有什么,用类比讲得非常好;而 RL 在那里是如何提升某种倾向,该怎么说呢,应该是 propensity,这种倾向提升上 RL 的根本作用是什么,也讲得非常到位。
崔升准 但如果要严谨做,就得从 SARSA 开始,把那些公式全都捡起来,那就太难了。
卢正锡 是。不过 RL 现在是不是也可以不那样了?Q-learning、SARSA、TD 那些公式全学完,再学 policy gradient,以前是这样。但我觉得可以把前面的都去掉,直接从“policy gradient 理论就是这个,目标是 maximize 这个”开始,应该也行。
崔升准 其实从那里开始可能更好。
金成贤 其实其中 policy gradient 里看 REINFORCE 基本就对 LLM 足够了。
卢正锡 对。是,之后把那部分单独抽出来,请成贤再多 cover 一下,应该会很有帮助。
崔升准 对,我也很期待。你又有新任务了。不过你确实点出了很多有意思的地方,前半段虽然难,但到后半段就开始很顺地吸收了。前半段我本来跟得很吃力。
卢正锡 没错。是,听成贤讲的时候,刚才那些 cross-entropy、perplexity 在我脑子里也冒出了很多新方向,结束后我得去问 LLM 了。
看来得和模型一起学习。
那今天内容挺难。成贤,非常感谢你把这部分尽量简化并组织成一个完整叙事,真的下了很大功夫。谢谢。