
转载自:minimax 稀宇科技
跟着 minimax m2.5 的发布并在社区激励强烈反响,很欢乐能借此契机,分享在模子历练背后对于 agent rl 系统的一些念念考。
在大鸿沟、复杂的果真天下场景中跑 rl 时,耐久濒临一个中枢贵重:如安在系统婉曲量、历练平静性与 agent 天真性这三者之间取得均衡。为了搞定这个问题,咱们遐想了一个异步的原生 agent rl 系统—— forge。在 forge 中,咱们通过达成标准化的 agent-llm 交互条约,支持了对纵情 agent 脚手架进行历练,况兼通过极致的工程优化和平静的算法与奖励遐想,达成了超大鸿沟的强化学习。
在面对数十万个果真的 agent 脚手架和环境以及 200k 的险阻文长度时,咱们的 rl 系统作念到了每天百万级样本量的婉曲,并达成捏续平静的 reward 高潮和果真的模子才智普及,并最终栽种了 minimax m2.5 模子的性能突破。
问题建模
在深切磋商架构遐想之前,咱们领先将 agent 强化学习系统的优化场所姿色化为“最大化灵验历练收益(j)”:

其中,throughput 是指每秒处理的原始 token 数目,其主要受 rl 系统中的四部分限度: rollout、training、data processing 和 i/o。sample efficiency 则是指每个样本带来的平均性能普及,由数据漫衍、数据质地、算法成果以及 offpolicy 进程决定。而平静性和管感性则冒昧基于历练流程中监测观念来判定。
要达成(j)的最大化,咱们需要克服以下三类挑战:
面前常见的 rl 框架和范式对 agent 的复杂度终局很大,主要体面前:
agent 目田度受限:将 agent 视为白盒就条件在 agent 和 rl framework 之间分享和传递情状。这种遐想难以对复杂的 agent 架构(如动态险阻文管理、multi-agent rl 等)进行建模,导致模子才智无法在复杂的黑盒 agent 上灵验泛化。
token一致性问题:现存的 tito(token-in-token-out)模式迫使 agent 与底层的 tokenizer 逻辑深度耦合。在复杂的险阻文管理机制下,要想看守 agent 和 rl 之间的严格一致性,其工程老本黑白常大的。
rollout 的完成时刻存在极大的方差——短则几秒长则数小时。这带来了一个异程序度问题:
训推异程序度逻辑:跑过异步 rl 的同学都知谈,在 mfu 和 rl 算法平静性之间衡量黑白常复杂的。严格的 fifo(first in first out)/同程序度会被于长尾样本 block;而 greedy/fffo(first finish first out)诚然最大化了婉曲量,却带来了不行控的 distribution shift,极易导致 rl 半途崩掉。
前缀冗余:在多轮 agent 请乞降 group-level 的 rollout 中,tokenizer 的 encode-decode 不一致性和险阻文管理机制,会导致肯求间分享了大都的前缀,这种冗余在历练时刻形成了强大的谋略花消。
稀少奖励问题:复杂的 agent 任务的 trajectory 时常包括长达数千步,使得基于稀少奖励的 credit assignment 在数学上尽头不屈稳。这种稀少性导致答复谋略中的信噪比极低,引起高梯度方差,龙套了大鸿沟模子历练的平静性。
long cot 的负面影响:在 r1 出来之后内行的 rl 都很关注 response length 的增长。但在果真的 agent 场景中,用户其实对实施时刻尽头关注,淌若不加以终局可能会导致训出来的模子诚然刷榜很强,但用户体验很差。
系统架构与agent rl范式
rl 系统遐想
为了达成信得过可推广的架构,咱们不再局限于具体的 agent,而是转向了通用的详细层遐想,将 agent 的实施逻辑与底层的训推引擎澈底解耦。咱们的 rl 系统由 3 个中枢模块构成:

1.agent:该层详细了通用 agent(涵盖白盒和黑盒架构)过头初始环境。它发达协作环境交互,使 agent 成为一个隧谈的 trajectory producer。通过将环境交互与 llm generation 解耦,agent 不错专注于中枢业务逻辑(如 context management 和复杂的环境交互等),而无需热心底层的历练和推理细节。
2.中间件详细层:看成桥梁,该层在物理上将 agent 侧与历练/推理引擎圮绝。
gateway server:充任标准化通讯网关,处理 agent 与 llm 之间的交互肯求。通过通用标准条约,它灵验地将底层模子的复杂性与 agent 的高层行动逻辑圮绝开来。
data pool:看成漫衍式数据存储,异步集中 trajectory 和 process signal。它充任生成和历练解耦的缓冲区,允许天真的数据处理和批处理政策。
3.历练与推理引擎:
rollout engine:专用于高婉曲量 token 生成,反应 agent 的生成肯求。
train engine:通过 scheduler 从 data pool 中 fetch 数据,更新 agent model,并与采样引擎保捏同步,确保 agent 使用最新的政策漫衍进行探索。
咱们在离线评估中发现,不同 agent 脚手架会导致显耀的性能偏差。借助该模块化遐想,咱们在无需修改 agent 里面代码的情况下,使用大都的 agent 框架进行了历练。这种“引擎与 agent 完全解耦”的架构确保了模子能在各样环境中泛化,面前咱们已集成了数百种框架和数千种不同的器具调用方式。
对于白盒 agent,咱们不错通过充分的脚手架遐想和增广,以奏凯不雅测和优化模子在特定类型 agent 上的证据。在 m2.5 中,咱们很是优化了夙昔模子在带险阻文管理的长程任务(如 deepsearch)中出现的一些问题:
险阻文场景性能退化:跟着交互轮次加多,中间推理和冗余不雅察的积存会产生“珍目力稀释”。这种噪声会导致模子在满盈险阻文窗口内对关节信息失去焦点。
训推不一致:诚然险阻文管理不错延长交互周期,普及 agent 在长险阻文场景的证据,但仅在推理时使用会由于偏离 rl 历练的数据漫衍,迫使模子在推理时被动继承险阻文变迁,处理不常见的长下文,从而影响模子证据。
为了搞定这些问题,咱们将险阻文管理(context management, cm)机制奏凯整合到 rl 交互轮回中,将其视为驱动情状转化的功能性动作:
cm 驱动的情状转化:咱们将 cm 建模为 agent action,而险阻文变迁则蕴含在环境的 dynamics 中。情状从 s(t)到 s(t+1)的转化隐式包含了险阻文切换的逻辑,将险阻文相宜包含在了模子的历练场所中。
自相宜推理模式:通过在此框架内优化政策 π(θ),模子学会了内化漫衍偏移,泄透露优先关注 state-critical token 的鲁棒推理模式。
感知险阻文管理政策:在该政策下,模子在 rl 生成流程中就需要学会料到可能的险阻文管理和转变,米兰app官方网站模子通过主动保留与场所任务关联的信息和减少无关险阻文信息,大幅普及了在 context-management agent 下的性能。
很多用户的信得过在用的 agent 本体上是闭源的,咱们完全无法感知里面的 agent loop 逻辑。为了确保模子在不透明架构上也能对脚手架针对性优化,咱们采用了以下有筹划:
非侵入式集成:forge 不感知 agent 里面的达成细节,里面只需要将肯求打到 rl 做事的 gateway,框架里面即可进行数据集中和历练,因此在本体 rl 历练时不错兼容纵情险阻文操作(如驰念压缩、历史重写),纵情里面的 agent loop(举例 deep think、multi-agent 等等)。
多框架泛化:通过将历练轮回与 agent 里面情状解耦,minimax m2.5 野蛮适配大都黑盒 agent——无论所以沙盒+mcp 环境为主的代码 agent(举例咱们将 opencode agent 奏凯视为一个黑盒 agent 来历练),照旧使用激进险阻文缩减政策的 agent(如 truncate bc)。履行标明,该方式在完全不透明的黑盒系统上依然能带来平静的普及。

工程优化
为了搞定婉曲量与数据漫衍一致性之间的冲突,咱们提倡了 windowed fifo 调整政策。该政策介于 fifo 和 greedy 之间,即不错保证系统的婉曲,也限度了样本的 off-policyness。
假定面前达到了最大的生成并发量(如 n = 8192),生成部队为 q,面前头部位于索引 h。历练调整器受限于一个大小为w(如 w=4096)的可见窗口:
受限可见性:调整器只可从鸿沟内得到已完成的轨迹。
局部筹划(窗口内):在行径窗口内,调整器可立即索求任何已完成轨迹,幸免了队头结巴(hol),快速任务无需恭候头部任务完成。
全局严格结巴(窗口外):即使索引为 h+w+k 的任务已完成,调整器也辞谢得到它。
不断鼓励:惟有当头部的任务被破钞时,窗口才上前滑动(h→h+1)。这迫使调整器必须恭候面前窗口内的“长周期过期任务”,防守历练漫衍向“快而简便”的样本严重偏移。
{jz:field.toptypename/}
agent 的多轮肯求间存在很高的险阻文前缀重合度,传统方式将每个肯求视为悲怆样本,重迭谋略环球前缀,花消了大都的历练算力。
咱们提倡了 prefix tree merging 有筹划,将历练样本从“线性序列”重构为“树形结构”,底下是具体的数据处理和历练政策:
只消分享基础前缀,completions 就能在样本级别归拢到一棵前缀树中(即使后续反应或采样分支不同)。
通过欺骗 attention mask 原语(如 magi attention)暗示不同 branch 之间的依赖干系,不错保证前向谋略在数学上与 naive 有筹划完全一致,在谋略 loss 时,咱们会把前缀树 unmerge 为序列的方式,不影响后续的 loss 谋略和观念统计。
该有筹划破除了冗余的前缀,比拟于 naive 有筹划达成了约 40 倍的历练加快,且显耀缩小了显存支出。

引入异步 rl 之后诚然 rollout 阶段算力占比缩小到了 60% 傍边,但推理自身还有很大优化空间,咱们通过底下的几项优化来加快 llm 推理:
dynamic mtp:领先咱们引入 mtp 进行推理加快,同期为了保证历练流程中看守 draft model 的高继承率,咱们通过 top-k kl loss 在 rl 流程中捏续历练 detached mtp head,与 rl policy 保捏对皆。
rollout 侧的 pd 差异:pd 差异不错破除 moe 调整中的 pd 干预,为每个实例提供悲怆的并行和生成政策,在最大化婉曲量的同期优化长尾样本的延伸,防守极点样本结巴 fifo scheduler,并带来较高的 offpolicy。
全局 l3 kv cache pool:在多轮和超长险阻文的 agent 场景下,肯求间领有极高的分享前缀比例,然而局部的 kv cache 受容量终局,无法达到泄气的 prefix cache 掷中率,以致在 rl batch size 极大的情况下,会发生大都由于终结导致的重谋略,因此需要支持全局的 l3 kv cache。同期,forge 还通过 scheduler cost-aware 的调整机制,衡量列队延伸暖热存传输时刻来动态路由肯求,在不使实例超载的前提下最大化缓存局部性。
scalable agent rl 算法

为了搞定超长轨迹的信用分派问题并确保平静,咱们遐想了一个由三部分构成的复合奖励:
1.流程奖励(process reward):监督 agent 的中间行动(如刑事包袱话语羼杂或特定器具调用造作),提供密集反馈,而不单依赖最终结果。
2.任务完成时刻奖励:将相对完成时刻看成奖励信号。因为果真延伸不仅取决于 token 生成,还受器具实施和子 agent 调用影响,这能激励 agent 主动欺骗并行政策、选拔最短的实施旅途来加快任务。
3.用于缩小方差的后续奖励(reward-to-go):长周期任务的稀少奖励容易激励高梯度方差。咱们使用 reward-to-go 来标准化答复,大幅提高了信用分派的精度,平静了优化流程。
训出一个真碰劲用的模子,工程、数据、算法不行偏废,能赶在年前交出这份答卷,离不开背后每一位共事的勇猛。看到了社区尽头多的正向反馈感到尽头怡悦,其实 m2.5 还有很大的普及空间,里面 rl 也还在不竭跑,性能也在捏续涨。面前,m2.5 仍是全面开源。
hugging face: huggingface.co/minimaxai/minimax-m2.5
github: github.com/minimax-ai/minimax-m2.5
春节随即到了,祝内行新年鼎沸!
接待转发,但请注明出处“上海经信委”
上不雅号作家:上海经信委