转自机器之心
新的扩展律Post-Training已经出现,后训练的时代已经到来。
OpenAI o1 在数学、代码、长程规划等问题取得显著的进步。一部分业内人士分析其原因是由于构建足够庞大的逻辑数据集 <问题,明确的正确答案> ,再加上类似 AlphaGo 中 MCTS 和 RL 的方法直接搜索,只要提供足够的计算量用于搜索,总可以搜到最后的正确路径。然而,这样只是建立起问题和答案之间的更好的联系,如何泛化到更复杂的问题场景,技术远不止这么简单。
AlphaGo 是强化学习在围棋领域中的一大成功,成功击败了当时的世界冠军。早在去年,Deepmind 的 CEO Demis Hassabis 便强调用 Tree Search 来增强模型的推理能力。根据相关人士推测,o1 的模型训练数据截止到去年十月份,而有关 Q * 的爆料大约是去年 11 月,这似乎展示 o1 的训练中也用到了 TreeSearch 的技巧。
实际上,OpenAI o1 运用的技术关键还是在于强化学习的
搜索与学习机制
,基于
LLM 已有的推理能力,迭代式的 Bootstrap 模型产生合理推理过程(Rationales) 的能力,并将 Rationales 融入到训练过程内,让模型学会进行推理,而后再运用足够强大的计算量实现 Post-Training 阶段的 Scaling。
类似于 STaR [1] 的扩展版本。
注意这里
合理推理过程
并不只是对问题的拆解和分步作答,还有对于为什么如此作答的分析和思考。
-
后训练扩展律 Post-Training Scaling Laws 已经出现
,并且 Post-Training Scaling Laws 为上述技术路径的成功提供了有力支持。
-
模型学习的是产生合理推理的过程,MCTS 在其中的作用是
诱导合理推理过程的产生或构建相应的偏序对形成细粒度奖励信号,而非直接搜索过程和最终答案。
-
模型的 BootStrap 有助于构建新的高质量数据,并且新的 Rationales 数据促进了模型进一步提升能力。
一、OpenAI o1 的发布是 Post-Training Scaling Laws 的强力体现
北京时间 9 月 13 日午夜,OpenAI 发布 o1 系列模型,旨在专门解决难题。OpenAI o1 在数学、 代码、长程规划等问题上取得了显著提升,而背后的成功最重要离不开后训练阶段 (Post-Training Stage) 中强化学习训练和推理阶段思考计算量的增大。新的扩展律 —— 后训练扩展律(Post-Training Scaling Laws) 已经出现,并可能引发社区对于算力分配、后训练能力的重新思考。
最新的发布的 OpenAI o1 在数学代码等复杂推理能力上取得巨大进步,在竞争性编程问题 (Codeforces) 中排名第 89 个百分位,在美国数学奥林匹克竞赛 (AIME) 资格赛中跻身美国前 500 名学生之列,在物理、生物和化学问题的基准 (GPQA) 上超过了人类博士水平的准确性。
而帮助 o1 取得如此性能飞跃的,是 Post-Training 阶段 RL 计算量的 Scaling 和测试推理阶段思考时间的 Scaling。
不过,如果仔细观察,OpenAI o1 在一些常规任务如英语考试和语言能力测试上并没有显著提升 —— 推理能力和强指令跟随能力的提升似乎呈现了分离,这个观察和思考,我们放到最后的分析。
后训练扩展律 Post-Training Scaling Law
随着模型尺寸逐渐增大,预训练阶段参数 Scaling Up 带来的边际收益开始递减,如果想要深度提升模型推理能力和长程问题能力,基于强化学习的 Post-Training 将会成为下一个突破点。早在 2018 年 Ilya 在 MIT 的客座讲座上,他便分享过自己对于通过 RL 和 Self-play 走向 AGI 的信心。
OpenAI 探索 Parameter Scaling Law 之外的 Scaling Laws 也并非空穴来风。
在 2021 年,他们便在 Training Verifiers to Solve Math Word Problems [6] 中提到,
自回归模型在数学推理问题上很难进步的一点在于没有办法进行回答的自主修正,如果仅是依靠生成式方法和扩大参数规模,那么在数学推理任务上带来的收益不会太大。所以需要寻找额外的 Scaling Laws。
现在看来,RL 带来了 LLM 训练的范式转变,也带来了新的 Scaling Laws,即 Post-Training Scaling Laws。
在 Post-Training Scaling Laws 下,训练阶段的计算量不再只是和参数量的上升有关,同时也会包含 RL 探索时 LLM Inference 的计算量。与此同时,测试阶段模型推理和反思的计算量也会影响模型最终的表现。在 DeepMind 最近的文章 [5] 中,也讨论了这种范式的转变。
Post-train 虽然参数没变,但是在训练算力上仍然会倍数增长;推理上也会随着模型 “思考能力提高”,单次算力增长。是否有足够的算力做 Post-Training 似乎已经成为能不能提升推理性能的入场券。
OpenAI 发现也证明了这一点:随着更多的强化学习(训练时计算)和更多的思考时间(测试时计算), o1 的性能也在不断提升,并且 Post-Training Scaling Laws 还没有被完全探索。
Sutton 在《Bitter Lesson》中已经指出,只有两种技术可以随着算力增长,学习和搜索。正如英伟达科学家 Jim Fan 所说,也许模型参数大部分是用于存储知识和记忆。
随着参数扩展律的边际效益逐渐递减,现在是时候将更多的算力转向 Post-Training 阶段和推理阶段。
二、OpenAI 的成功,
关键在于合理使用强化学习的探索
仅靠 MCTS 无法让模型学会思考问题的关联,隐式自动化 CoT 的背后,是模型真正学会了合理的中间推理过程 Rationales。
当人们写作或说话时,常常会停下来思考。然而,大语言模型在通过 Next Token Prediction 生成回答时,更像是一种 “快思考” 过程。由于缺乏详细的中间推理步骤,模型一开始可能会犯错,而这些错误可能会传播,最终导致生成的答案也是错误的。
为了优化这一过程,产生了一系列方法,其中包括在
Token 级别
或
子句级别
提供奖励信号,帮助模型调整生成的回答。这些方法如
蒙特卡洛树搜索(MCTS)
,将输出建模为一系列节点,这些节点可以是 Token 级别或句子级别。例如:
-
Token 级别的节点
:每个节点对应生成序列中的一个 Token。通过 MCTS,模型可以探索不同的 Token 序列,最终生成更连贯的响应。
-
句子级别的节点
:在复杂推理任务中,每个节点可以代表一个完整的句子或推理步骤,帮助模型更好地处理多步推理任务。
另一种方式是通过
思维链(Chain of Thought, CoT)
优化模型输出。CoT
通过分步推理的方式,要求模型在生成最终答案之前,先生成一系列中间推理步骤。
这种 “思考链” 的生成过程有助于增强模型的推理能力,尤其在数学和代码生成等任务中表现出色。
然而,CoT 虽然能够生成中间步骤,但并未教会模型如何从内部深入思考问题的关联。特别是对于尤其复杂且需要多步推理规划的任务,这样的合理的中间 CoT 推理过程(Rationales) 更为重要。
类似的思路在 STaR [1] 和 Quiet-STaR [7] 中有所体现。
STaR 的核心思路是利用 LLM 已有的推理能力,迭代式的 Bootstrap 模型产生合理推理过程(Rationales) 的能力,并将 Rationales 融入到训练过程内,让模型学会进行推理。
-
推理
:起始数据集仅有 [Question, Answer] ,首先利用一些带有推理过程的 Few-Shot Examples 来 Prompt 模型对于数据集中的问题生成对应的推理过程和答案。
-
过滤
:如果生成的答案正确,则将推理过程加入到原有的数据集中;如果生成的答案错误,则尝试在给出正确答案的前提下再次生成推理过程。将最终生成正确答案的推理收集,构建一个构建一个微调数据集 [Question, Rationale, Answer ] 进行微调。
-
迭代
:重复这一过程,且每次获得一个新的数据集,都从原始的模型开始进行 Fine-tune 从而防止过拟合。
STaR 的思路和 RL 中策略梯度算法是近似的,甚至整体的优化目标可以近似为一个策略梯度优化的目标。
模型首先采样潜在的推理路径(rationale)的过程类似于 RL 中通过策略选择动作(action),基于环境状态选择一个可能的策略路径。STaR 中,通过计算目标函数,模型对整个数据集的预测结果进行评估,并且只根据预测正确的样本更新模型。
STaR 在同一批数据上进行多次梯度更新,这类似于某些策略梯度算法中的策略,即通过多次调整同一批数据来稳定学习过程。在 RL 中,策略梯度算法通过这种方式在探索动作空间时进行学习,而 STaR 则通过探索推理和答案空间,逐步改善推理生成的准确性。
这种方法和先前提到的通过细粒度奖励或 MCTS
优化输出
有所不同,模型在正确和错误的示例中更多的学会的是如何进行
显式的合理推理
。
与此同时,这种合理推理不只是问题拆解分步理,更适用于一般常识问答任务上。例如:
-
问题:什么可以被用来装一只小狗
-
选项:(a) 游泳池 (b) 篮子 (c) 后院 (d) 自己的家
-
合理推理:答案必须是可以用来携带一只小狗的东西。篮子是用来装东西的。因此,答案是 (b) 篮子。
-
对少样本示例的依赖
:STaR 在推理任务中高度依赖少量的 Few-Shot 推理示例,这导致模型的推理能力较为有限,难以应对复杂和广泛的任务。
-
泛化能力受限
:STaR 虽然能够通过迭代的方式提升模型的推理能力,但其应用主要局限于特定的结构化任务(如问题回答),难以在开放域或任意文本生成任务中取得同样的效果。
针对 STaR 的局限性,Quiet-STaR [7] 提出 “内部思维” 的概念,将显式的 Rationales 推理过程转化为模型内部隐式的推理过程,从而摆脱对于外部示例的依赖。
同时,引入可学习的 <|startofthought|> 和 <|endofthought|> token 来标记思维的开始和结束。
Quiet-STaR 还实现了在更一般文本上的推理学习,这意味着大量复杂任务下的非结构化语料(如医疗、金融等领域)都可以被加入学习过程。同时利用带推理过程的结果与真实结果的分布差异引入奖励信号,通过 REINFORCE 的方法优化生成的推理,使得基于这些推理的模型预测未来的 tokens 更为准确。
就目前来看,STaR 和 Quiet-STaR 是最接近 o1 的技术路线和模型表现效果的,但是如果想要进一步达到 OpenAI o1 的效果,还需要克服很多问题。
-
Quiet-STaR 在生成内部思维的过程中,每个 Token 均会生成下一步的对应的思考过程,导致生成了大量额外的 tokens,这也导致了计算资源需求大幅增加。实际上模型需要学会动态的调整 Thinking Token。
-
对于更复杂的任务和长程问题,
如何针对内部思考过程提供细粒度的奖励信号?
仅仅通过比较合理推理的回答和正确回答是否一致(或者 Predicted Distribution 的相似度)是不够的。
这不禁引发我们对于 OpenAI o1 的技术路径的思考。OpenAI o1 应当也是沿着 STaR 和 Quiet-STaR 类似的路线,优化模型内部生成合理推理(即隐式的 CoT) 的过程。而 Post-Training 阶段 RL 的训练阶段主要算力也应当是放在了对于内部推理过程的优化上。
那如何构造隐式 CoT 的优化过程的 Reward?
可以通过不同温度采样出来的推理路径构建偏序,也可能是 MCTS 搜出来的正误参半的不同推理过程形成偏序。这点和先前的 MCTS 用法会有所不同,
MCTS 节点上不再是最终生成答案中的某个 token 或某步,而是隐式推理过程中的每一步。
同时,为了提供更加细粒度的反馈和指导,需要
引入过程性的奖励
,而针对模型自身已经难以提供合理推理过程的复杂问题,通过引入额外的足够强的 Critic Model 来解决这个问题。
最终通过
强化学习
,o1 学会了优化其思维链,并不断改进其使用的策略。它学会识别并纠正错误,学会将复杂的步骤分解为更简单的步骤,并在当前方法无效时尝试不同的解决方案。这个过程大幅提高了模型的推理能力。
同时,在 OpenAI 披露的细节中,生成过程中的 Reasoning Token 是动态引入的,这也尽可能的减少了不必要的思考带来的额外算力损耗。
可以说,OpenAI o1 已不再是即时给出答案的模型,而是能够先进行深入思考。这可以类比为 o1 正在从依赖
系统 1 思维
(即快速、自动、直觉、易出错的思维模式),逐步进化为采用
系统 2 思维
(即缓慢、刻意、有意识且更可靠的推理过程)。这一转变赋予了 o1 解决之前无法应对的复杂问题的能力,而这一切的实现,根源于训练后阶段中遵循的
扩展规律
(Scaling Laws)的应用与优化。
更有意思的是,我们可以构建一个
数据飞轮
:通过 o1 模型的推理过程自动生成大量高质量的训练数据,这些数据可以被反复用于进一步提升模型性能,形成一个自我强化的良性循环。