距离ChatGPT发布已经过去两年多了,现在的主流大模型已经很不同了,最大的区别就是推理Reasoning能力的发掘和应用。
什么是推理?举一个很简单的例子。比如有一道很简单的数学题,27+62=?,传统大模型(LLM,Large Language Model)碰到这种题会调用自己的记忆和检索能力,从海量的数据库里找到27+62 = 89或者62+27 = 89这种结果,然后输出正确答案。
而推理大模型(LRM,Large Reasoning Model)处理这种问题的思路不一样,它是真正的在模仿人类的思考方式,首先个位数相加7+ 2 = 9,不需要进位,然后十位数相加2+ 6 = 8,最后组合成89这个正确答案。
你看出区别没,LRM学到的是真正的通用知识,而LLM更多的是靠脑子硬记,而一旦碰到没背过的题,很容易就捉瞎了。
但实际上对于大多数的问题,从结果出发这两种大模型可能并没有太多的不同。但是一旦涉及到稍微复杂点的问题,比如高等数学、复杂推理等,那LLM几乎无从下手。
其实大家对于LRM应该不陌生,因为几乎人人都用过LRM,大名鼎鼎的DeepSeek-R1就是典型的LRM,它就是靠火速追赶上OpenAI发布的一个推理模型而闻名于世的。而从LLM->LRM,最重要的一个步骤就叫强化学习RL(Reinforcement Learning),你来看DeepSeek-R1的论文标题,直接就点明了,LLM的推理能力就是靠RL激活的。
RL是一个好东西,它的训练逻辑很简单:先把一堆题目(prompts)一次性“跑完一遍”得到所有的思考链和答案,然后把这些完整的数据一次性拿去更新模型。等模型更新好了,再用新模型去下一批题目,重复同样的流程。
原理很简单,但是它麻烦就麻烦在需要大规模训练的时候,每一批的思考链和答案的长度可能相差很大,也就是说,有的回答早就生成好了,但有些距离结束还早,这样结束了的都在等还在生成的。
这就正好对应了现在LRM的主流训练方式,它叫同步(Synchronous)训练,与之相对的是异步(Asynchronous),同样的四个工作,同步需要的时间=所有工作的总和,而异步方式就要快很多。
这就是现在LRM训练时候的尴尬之处,特别是模型越来越大之后,训练时间也到了严重拖慢进度的程度,更重要的,同步训练方式会造成大量的资源在等,在AI大模型发展阶段,这种行为无异于是浪费最宝贵的算力资源。
那么总结一下:同步训练会主要带来了三个问题:
(1)GPU利用率低
(2)训练周期长
(3)难以扩展到更复杂的任务和更长的思考过程
而清华和蚂蚁近期开源的AReaL-boba²就是一项前瞻性的全异步强化学习工作,他们的论文《AREAL: A Large-Scale Asynchronous Reinforcement Learning System for Language Reasoning》,简称AReaL(这里其实指的是AReaLv0.3版,研究小组给它命名为AReaL-boba²,以下同)恰恰就是为了解决LRM同步训练的几个痛点的,它的解决方案就是利用异步训练方式,最终实现大规模异步强化学习系统。
开源地址:
https://github.com/inclusionAI/AReaL
论文:
https://arxiv.org/pdf/2505.24298
模型:
https://huggingface.co/collections/inclusionAI/areal-boba-2-683f0e819ccb7bb2e1b2f2d5
论文中图一⬇️里面提到了,现有的两种训练方式本质上都是同步模式,可以看到每一块的处理都得等最长的(用时最长)的那个生成任务(蓝色条)。
而实际上第二和第六个任务早就完成了,同步的思路会让GPU只能处于等待状态,而改良后的one-step overlap方式其实也差不太多,都得等最长的任务结束。
而AReaL-boba²最大的贡献就是把GPU等算力资源用到了极限了,达到了下面的这种效果,几乎所有算力资源都被用的满满当当,这就是LRM训练的理想状态。
而实现AReaL-boba²如此高效的主要原因有两个:
架构创新
算法创新
架构创新的主要点就在于下面这个图,它实现了一个关键功能,AReaL-boba²彻底解耦了数据生成与模型训练过程。这意味着生成工作节点(rollout workers)可以持续不断地产生新的推理序列,而无需等待其他节点或模型更新;同时,训练工作节点(trainer workers)一旦收集到足够的数据批次,即可进行模型参数更新。
原来的训练是需要等同一批次的数据生成,然后一次性全部送入下一次训练,这种固定模式的改变主要归功于AReaL-boba²提出的Interruptible Rollout Worker,其中interruptible是关键,它的意思是可中断,简单来说:可中断生成就是当模型还在“边想边写”某个回答时,如果训练那边出了新版本,就会立刻让它停下来,换上新版本后继续接着写。
这种方式可以把长流程拆成几段,让生成和训练同时进行,彼此不必等对方都结束才开始。
这就是「异步」实现的架构基础,这就是彻底的异步,你生成你的,我训练我的,两者互不干涉,并且都能以全速开动。
在论文提供的Github官方代码库中的,realhf/system/rollout_worker.py中可以看到这部分的实现逻辑,当模型需要更新权重的时候,rollout会用新的权重来生成数据。
你也能从partial_rollout文件中看到部分rollout的实现逻辑。
同时还有配套的Trainer Worker、Rollout Controller和Reward Service与可中断Rollout Worker形成了一个非常灵活的架构,大家通过一个共享的池子来实现信息共享和互换。
你可以看到这种灵活架构的优势,算力资源的利用率达到了最大,同时在处理很长的生成回答(长序列)文本也有巨大的优势。
当然了这种异步思想并不是第一次出现,在游戏AI领域有一些经典异步工作,如A3C, IMPALA, SEED RL等,他们也有类似的数据生成和模型训练“隔离”的操作,但是区别也很大,因为大型语言模型推理面临着两个独特的挑战:
极长的序列长度:LLM推理(思维链)可以产生非常长的token序列,这与游戏中通常较短的动作序列不同。
巨大的模型参数:LLM的参数量远大于传统RL任务中的模型。
前两个挑战相信大家也都有所了解,那就是现在的LRM动不动就需要消耗1,2万的token,因为LRM在推理的时候需要花费大量的资源进行思考,特别是在Agent AI的时代,有一些任务单步操作就需要用几十万-上百万的token进行阅读和思考。另外一个就是模型大小非常大,训练的时候需要循序渐进,步子太大容易扯着,这样很容易把大模型搞崩。
AReaL-boba²在架构层次上的创新也带来了算法层面的挑战,有两个主要的问题:数据陈旧性和解耦PPO算法。
第一个问题很好理解,以前的同步训练,生成一批,训练一批,所有的生成数据都是最新的,AReaL-boba²的异步不同,有些数据是新的,有些数据还是以前的老模型生成的,这就造成了一个问题,那就是如何处理这些老数据。
实际上,模型每一次的更新幅度并不大,特别是对于LRM来说,动不动训练几天,甚至几个月,每一次的更新幅度带来的生成数据差别并不大,旧的生成数据价值并不低。AReaL-boba²引入了最大允许陈旧度参数η。这意味着,如果当前模型版本为i,则训练时仅使用由版本i-η至i-1的策略生成的数据。系统会优先消耗经验池中相对较旧但仍在η范围内的轨迹,以此确保训练数据的整体新鲜度在一个可控的滞后范围内,避免因数据过度陈旧导致学习性能下降,同时最大化异步生成带来的数据吞吐量。
第二个问题也是由于异步带来的,那就是模型会中途更新,所以一个模型的更新可能会受到很多批数据的影响,那到底是新的数据带来的影响大还是旧的数据,传统的PPO算法需要这个信息,而AReaL-boba²的创新是承认这条数据是“集体智慧”的产物,它的好坏(优势)还是看实际效果。在进行PPO学习时,不直接比较当前策略与那条可能由多个旧策略混合生成的复杂数据,而是将当前策略与一个固定的、较新的旧策略版本进行比较和调整,以此来稳定学习过程。
同样做了算法消融实验,标准PPO对数据陈旧性非常敏感,即使是很小的陈旧度也会导致性能大幅下降(下a图),AReaL提出的解耦PPO目标函数能够在允许一定程度数据陈旧性(η ≤ 4甚至η=8)的情况下,依然保持甚至提升最终的模型性能(下b图)。
可以看到AReal做的算法创新并不是孤立的,而是与异步系统架构是相辅相成的,因为引入了新的结构必定会扰动原有的稳定性,AReal修正了这些变化。
这也是是AReaL-boba²这个工作的核心价值,它在效率和性能上的突破很明显,模型大小不变,在AReaL-boba²训练后,性能得到了明显的提升,同时训练时间只有其他方法的一半左右。
可以说,这个工作在LRM大行其道,并且越来越被Agent AI需要的时代,它未来的工作方向如同论文中所说,会集中在动态资源调配、多轮交互、智能体等)。特别是它对于降低顶尖LRM研发门槛有非常重要的作用,最终实现加速AGI实现的终极愿景。
领取专属 10元无门槛券
私享最新 技术干货