目录

一、强化学习基础与大模型训练的瓶颈

二、All‑Sync RL:同步训练和推理,提高 GPU 使用率

三、LoRA:降低通信开销的低秩微调技术

四、DAPO:面向 RLHF 的稳定化策略优化

五、截断重要性采样与系统工程细节

六、性能评估与讨论

七、结语与展望


今年以来,国内外出现了不少以 "个人代理" 为定位的人工智能产品。它们不再只是单纯回答问题,而是尝试把大模型与人类日常生活场景更紧密地结合:例如日程规划、理财助手、健康监测等。其中,Macaron(https://macaron.im/)因为同时强调安全性、隐私保护与丰富能力而备受关注。很多人在体验后好奇:为什么它在应对复杂问题时表现得较为沉稳,而且推理速度和成本似乎都比同类产品更低?带着这样的疑问,我查阅了 Macaron 团队公开的技术博客(https://mindlabs.macaron.im/)并整理出一些关键信息。本篇文章将以一个旁观者的视角,梳理其背后使用的大规模强化学习技术,尤其是如何在算法和系统层面协同减少训练成本并提高稳定性。

文章总体分为上下两篇。本篇(上篇)聚焦底层架构与算法的设计,主要从以下几方面展开:

  1. 强化学习基础与在大模型训练中的挑战:回顾 RL 的基本概念、常见训练框架以及为何大模型训练会暴露出新的瓶颈;
  2. All‑Sync RL 架构:介绍 Macaron 团队针对 GPU 闲置问题提出的同步训练和推理结构;
  3. 低秩微调技术 LoRA:解释为何低秩更新能够有效降低通信成本以及它在大模型 RL 中的实际作用;
  4. DAPO 算法:阐述这一策略优化方法如何解决熵塌陷与奖励噪声问题;
  5. 截断重要性采样与系统工程细节:讨论如何在分布不一致的训练和推理阶段保持策略优化稳定,并简要介绍背后使用的训练器与推理框架;
  6. 性能评估与思考:呈现这些技术组合带来的时间与资源节约,并对其局限与未来发展做出初步讨论。

一、强化学习基础与大模型训练的瓶颈

1. 强化学习的核心要素

强化学习(Reinforcement Learning,简称 RL)是机器学习的一个重要分支,用于解决决策问题。与监督学习不同,RL 通过与环境的交互来学习策略:在每个时间步,智能体(Agent)根据策略选择一个动作,环境反馈一个状态和奖励。智能体的目标是寻找一条策略,使得长期累积奖励最大化。根据值函数和策略的不同表示方法,可以得到 Q‑Learning、Policy Gradient(策略梯度)、Actor‑Critic 等不同类别的算法。对于连续动作或复杂策略空间,策略梯度类算法(如 PPO、A2C)较为常见,因其直接优化策略而无需预测值函数精确估计。

在大语言模型(LLM)领域,RL 被广泛应用于对齐模型输出与人类偏好,例如通过 RLHF(Reinforcement Learning from Human Feedback)或 RLCA(Reinforcement Learning with Critic and Assistant)来让模型不仅能在预训练语料上拟合语言分布,还能按照人类的打分或规则生成符合期望的答案。一般流程是:先进行 SFT(Supervised Fine‑Tuning),然后用一个奖励模型对模型输出进行评价,最后通过 RL 优化模型使其生成的文本在奖励模型评估下得分更高。

2. 大模型 RL 训练的资源矛盾

对于百亿级乃至千亿级参数的模型,上述训练流程变得异常昂贵。这种成本不仅源于参数数量本身,还体现在数据生成与更新之间的耦合。比如在经典的 On‑policy 方法中,策略每更新一次,就必须基于新策略重新收集样本,否则策略梯度会失去无偏性。当模型规模极大时,生成一次对话样本就需要大量 GPU 进行推理,更新时又需要分布式并行在多个 GPU 上计算梯度与同步参数。由于推理和训练阶段的时间相对固定,两者之间的交替会导致显著的 GPU 闲置,这种现象在 Macaron 博文中被称为 GPU 泡沫 (GPU Bubble)[1]

GPU 泡沫的本质是资源利用率不高:推理阶段结束后,必须等待所有样本收集完成才能进行下一步训练;而训练阶段完成后,又必须等待新一轮推理。这种交替导致大量 GPU 长时间处于等待状态。例如,如果推理需要 2 个小时而训练需要 1 个小时,那么在训练阶段开始之前,推理 GPU 已经闲置了 1 个小时;反之亦然。随着模型规模变大和参数同步复杂度增加,这种等待时间会进一步拉长,导致成本飙升。因此,许多研究致力于提高训练和推理阶段的并行效率,以缩短总体训练时间并降低硬件需求。

3. RLHF  RLCA 的特殊需求

在 RLHF 或 RLCA 中,模型通常需要生成整段对话,接着由奖励模型或 critic 对生成进行评分。在这个过程中,策略更新依赖于完整的对话轨迹。再加上大模型生成的文本通常较长,一次采样就要占用显著的计算资源。因此,如何在保证奖励反馈准确的同时减少采样开销,是训练效率的关键。此外,奖励模型本身也需要使用大量 GPU 进行推理,这进一步加重了系统负担。如果在这些环节中存在低效的等待或重复计算,训练成本将极为高昂。

二、All‑Sync RL:同步训练和推理,提高 GPU 使用率

为了解决 GPU 泡沫问题,Macaron 提出了 All‑Sync RL 架构。其核心思想是在同一批 GPU 上同步进行推理和训练,使两个阶段高度耦合,以减少等待时间和资源浪费。下面详细解释其运作机制以及与传统方法的区别。

1. On‑policy RL 的传统流程

在标准的 On‑policy 策略梯度方法中,流程可概括为以下几个步骤:

  1. 数据收集:用当前策略(Actor)对环境进行采样,生成一批轨迹(Observation、Action、Reward 的序列)。对于语言模型,这个过程就是让模型根据输入 prompt 生成对话,并由奖励模型打分;
  2. 策略更新:基于采集到的轨迹,按照策略梯度公式计算损失,更新 Actor(也称为 policy)。在 Actor‑Critic 系统中,还需要估计状态值函数(Critic)并更新相关参数;
  3. 重复迭代:用更新后的策略再次采集数据,迭代上述步骤,直至收敛。

由于策略在更新后立即使用,因此保证了梯度估计的无偏性,但也导致了收集与更新之间的强耦合。传统的改进方法是让数据收集过程和模型更新过程错开一点时间,例如 All‑Async RL,允许更新使用稍旧的样本,以缓解数据生成瓶颈。然而,这种异步方法会引入策略估计偏差,对训练稳定性不利。

2. All‑Sync RL 的设计原理

All‑Sync RL 的核心改进是:将推理与训练完全同步在同一 GPU 流上。具体步骤可以描述为:

  1. 分批生成与更新:模型首先在当前 GPU 上生成一个小批量的样本,而不是像传统方法那样一次生成一大批数据。生成过程结束后不必等待其它 GPU 或节点,而是立即利用同一 GPU 上的显存进行梯度计算和参数更新;
  2. 流水线交替:所有 GPU 都按照上述步骤进行,推理和训练的任务以流水线方式交替。在“推理”时占用部分 GPU 核心,在“更新”时占用另一部分核心,使资源最大程度被利用;
  3. 统一调度和同步:通过合理的进程调度和通信策略,每个 GPU 节点在完成自己的工作后无需长时间等待其他节点,实现跨节点的同步更新,从而消除等待空档[2]

这种架构类似于深度学习中的流水线并行(Pipeline Parallelism)和模型并行的组合,但更进一步在 RL 框架中考虑了推理与更新的同步。它需要对模型参数切分、计算任务划分和通信模式进行精细设计。例如,针对 Mixture‑of‑Experts (MoE) 模型,推理和训练时不同专家网络的激活路径可能不一致;All‑Sync RL 需要将这些差异纳入调度中,确保梯度同步和专家选择的正确性。

3. 结果与优势

Macaron 团队在博客中指出,通过采用 All‑Sync RL 架构,他们只需要 48 张 H800 GPU 就能完成 671B DeepSeek 模型的 RL 训练,相比传统方法需要 512 张 GPU[3]。此外,每一步 RL 训练的壁钟时间(wall‑clock time)从约 9 小时缩短到 1.5 小时[4]。这种量级的提升表明,All‑Sync RL 在硬件利用率和训练效率上均取得了显著突破。

值得注意的是,All‑Sync 并不适用于所有场景。例如,对于那些无需长时间推理或单次推理开销较低的模型,传统同步方式即可满足需求。All‑Sync 的优势主要体现在大模型需要大量推理生成样本且推理时间不可忽视的情况下。此外,为了成功运行 All‑Sync,需要对模型做出一定的结构适配和调度优化,这对一般研发团队而言可能具有一定复杂度。

三、LoRA:降低通信开销的低秩微调技术

1. 全参数微调的挑战

在大模型训练中,传统的微调方法会更新所有参数,但这对 RLHF 或 RLCA 类任务来说,成本极高。一方面,模型本身拥有巨量参数;另一方面,这些参数通常分布在多个节点上,并需要在训练过程中不断交换梯度。当参数量达到百亿级时,梯度传输很容易成为系统瓶颈,限制整体速度。

2. LoRA 的原理

LoRA(Low‑Rank Adaptation)是一种降低微调成本的技术,最早用于预训练语言模型的高效微调。它的核心思想是将权重矩阵的更新限制在一个低秩子空间中。具体来说,对于权重 $W\in\mathbb{R}^{m\times n}$,我们不对其全部元素进行更新,而是添加一个低秩矩阵 $\Delta W$,使得 $\hat{W} = W + \Delta W$。这里 $\Delta W = A B$,其中 $A\in\mathbb{R}^{m\times r}$,$B\in\mathbb{R}^{r\times n}$,$r$ 是秩(rank),远小于 $m,n$。通过这种方式,微调仅涉及参数 $A,B$,极大减少了需要同步和存储的数据。

需要强调的是,LoRA 并不改变原始网络的结构或性能。它在推理时可以将 $\Delta W$ 合并进 $W$,而训练时则只更新 $A,B$。因此,LoRA 兼具灵活性和节省内存的优势。实验表明,选择合适的 rank 和缩放系数 α 可以在保持模型性能的前提下有效降低通信量[5]

3.  Macaron RL 平台中的应用

在 Macaron 的实践中,LoRA 用于两方面:

  1. 减少梯度同步量:在 All‑Sync RL 中,由于每个节点在推理和训练之间快速切换,梯度同步的延迟更敏感。通过 LoRA,节点只需共享小规模的参数更新,极大缓解了通信瓶颈;
  2. 方便模型存储与共享:LoRA 的低秩更新存储开销小,多个任务之间可以共享同一基模型,并针对各自任务加载不同的 LoRA 权重。这对于需要在多个 RL 任务之间快速迁移模型的场景非常实用。

根据 Macaron 团队的测试,当选择 rank=128、alpha=256 时,模型在 671B 参数规模上表现良好[5]。这里的 rank 决定了可学习参数的数量,alpha 则控制更新的幅度。虽然更大的 rank 可以提供更高的表达能力,但也会增加显存需求;相反,过小的 rank 可能无法拟合任务差异。因此,选择合适的组合是一项需要充分实验验证的工程工作。

四、DAPO:面向 RLHF 的稳定化策略优化

1. 强化学习中的不稳定性来源

相比监督学习,RL 更容易出现训练不稳定的问题,这主要源于:

  1. 奖励信号稀疏或噪声大:在很多语言生成任务中,奖励只有在完整回答后才得到,或者奖励模型可能给出有偏差的分数;
  2. 策略更新幅度大:策略梯度更新可能导致策略与原策略差异巨大,尤其当分布差距大时,容易出现梯度爆炸或崩溃;
  3. 熵塌陷:模型在训练中可能变得过于确定性,失去多样性和探索能力,从而降低泛化性能。

针对这些问题,Macaron 团队提出了 DAPO(Decoupled Clip and Dynamic Sampling Policy Optimization)。以下是 DAPO 的主要设计理念和技术手段。

2. 扩展 Clip 区间与熵正则化

策略梯度算法如 PPO 使用 Clip 操作来防止更新过大导致策略崩溃。PPO 会对策略概率比值 $\frac{\pi_{\theta}(a|s)}{\pi_{\theta_{old}}(a|s)}$ 限制在某个区间 $[1-\epsilon,1+\epsilon]$ 内。如果比值超过此区间,则直接截断梯度。但是在大模型 RL 中,如果 clip 区间设置过窄,策略更新会过于保守,可能导致熵逐渐减小甚至塌陷。DAPO 通过适当扩大 clip 区间,并结合熵正则化(向损失函数中加入 $-\beta H(\pi)$ 项)鼓励策略保持一定随机性,从而缓解熵塌陷问题[6]

3. 动态过滤问题样本

生成式任务中,某些 prompt 会导致模型生成冗长或无效文本,给训练带来噪声。DAPO 在数据收集阶段动态过滤掉不合适的提示,例如生成内容过长或重复度过高的对话。这降低了训练样本的不确定性,提高了策略梯度估计的精度[6]

4. Token‑Level Loss  Reward Shaping

在很多 RLHF 系统中,只有对最终回答给予奖励,而忽略了中间步骤的优化。DAPO 改为使用 token‑level loss:在生成过程中的每一步,根据当前生成的 token 与最终奖励关联计算增量的优势值,从而细粒度地指导模型优化。与此同时,针对长文本带来的奖励噪声,DAPO 引入奖励整形,将奖励分配到关键句子或短片段上,减少无用文本的负面影响[7]

5. 实验效果与现象

根据博客的描述,DAPO 使得 RL 训练更为稳定,并在复杂任务上降低了整体成本[8]。例如,当采样候选数(num_generations)在复杂任务上增加时,虽然单步采样成本上升,但总体训练周期缩短。这表明,合理的 sampling 策略与 reward shaping 可以在效率和效果之间取得平衡。

五、截断重要性采样与系统工程细节

1. 训练与推理分布的不一致问题

在大型 RL 系统中,训练通常在包含大量 GPU 的环境中进行,采用 Fully Sharded Data Parallel (FSDP) 或类似技术来分割模型;而推理阶段则使用针对推理优化的后端,这些后端可能采用不同的分布策略或不同的参数布局。这导致训练时采集的轨迹分布与推理时实际使用的模型分布存在差异。如果不加修正,这种差异会导致策略梯度估计偏差,从而影响训练效果。

2. 重要性采样及其截断

为了解决分布不一致的问题,可以使用 重要性采样 (Importance Sampling)。该方法计算权重 $w = \frac{\pi_{infer}(a|s)}{\pi_{train}(a|s)}$ 来校正采样分布。然后在梯度估计中乘以权重 $w$,以获得与推理分布一致的期望。然而,如果训练和推理的策略差距过大,权重 $w$ 的方差会非常大,可能导致梯度爆炸或收敛缓慢。为此,Macaron 使用 截断重要性采样:当 $w$ 超过某一阈值时,对其进行截断或者平滑,避免极端权重主导更新[9]

这一策略的核心思想与 PPO 中的 Clip 类似:允许策略更新,但限制其在合理范围内变化,从而确保训练稳定。同时,通过控制截断阈值,可以在无偏性和方差之间做权衡。这对于使用不同后端的训练/推理闭环尤为重要,因为部署时模型通常会选择更高效的推理框架,而训练时的采样策略需要适当调整。

3. 系统工程:训练器与推理后端

除了算法层面的改进,Macaron 的成功还得益于对系统的深度定制。例如他们使用的 Coati 是一个开源的 RLHF/ILHF 训练框架,在此基础上实现了 All‑Sync RL 机制,并通过分布式流水线并行 (pipeline parallelism) 支持 671B 规模模型的训练。推理端使用 SGLang 作为路由器,对外提供接口并支撑异步分布式推理[10]。在通信层,他们采用 Ray 配合 Gloo 通信库和共享磁盘系统,实现多节点间高效且可靠的权重同步[11]

这些系统工作解决了以下问题:

  1. 多节点通讯效率:不同节点之间传递激活值和梯度需要高带宽和低延迟支持;
  2. 动态负载均衡:推理任务和训练任务的负载往往不均,系统需要动态调度;
  3. 错误恢复与容错:长时间运行的 RL 训练需要支持容错机制,以免单点故障导致长时间训练前功尽弃。

通过这些工程措施,Macaron 将 All‑Sync RL 与 LoRA、DAPO 等算法高效融合,形成了一个完整的 RLHF 平台。

六、性能评估与讨论

综合以上技术创新,Macaron 在大规模 RLHF 训练中取得了显著的效率提升。尤其值得关注的结果包括:

  1. 硬件资源节约:在训练 671B 参数模型时,GPU 数量从 512 张 H800 减少到 48 张[3]
  2. 时间效率提升:单步 RL 训练时间从大约 9 小时下降到 1.5 小时[4]
  3. 训练稳定性增强:DAPO 以及截断重要性采样减少了熵塌陷和梯度爆炸的概率,提高了收敛速度[7][9]
  4. 灵活的微调机制:通过 LoRA 可以快速在不同任务间迁移,并减少存储和通信开销[5]

这些数据表明,在实际生产环境中,合适的算法与系统优化组合能显著降低大模型 RL 的门槛。然而,我们也需要保持理性。首先,尽管 GPU 数量减少了一个量级,48 张 H800 仍然是一笔昂贵的资源投入,并不适合大多数个人或小型团队。其次,All‑Sync RL 等技术依赖于精细的系统工程和模型结构的适配,其通用性需要更多实践验证。最后,RLHF 策略的安全与价值对齐问题仍需谨慎对待,过度优化奖励模型可能导致训练出偏离人类意图的策略。针对这些挑战,后续研究需要继续探索更加经济高效的模型架构、更准确的奖励模型以及更完善的安全验证机制。

七、结语与展望

本篇作为 Macaron RL 技术解析的上篇,详细讨论了 Macaron 平台在强化学习训练层面的重要创新:All‑Sync RL 消除 GPU 泡沫;LoRA 减少通信开销;DAPO 提升训练稳定性;截断重要性采样应对训练与推理分布差异;以及面向大模型的系统工程实践。这些工作不仅让 671B 级模型的 RL 训练成为可能,还为整个行业提供了降低成本与提高效率的新思路。

未来的工作仍然充满挑战。如何进一步减少硬件需求,使个人或小团队也能开展大模型 RL 研究?如何在 RLHF 中引入更加精细的奖励模型和动态策略调节,实现对复杂任务的更好泛化?如何在保障隐私和安全的前提下,构建更具可信度的个人代理?这些问题将在下一篇(下篇)中结合具体应用场景继续探讨。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐