Understanding and Exploiting Weight Update Sparsity for Communication-Efficient Distributed RL

文章标题: 理解和利用权重更新稀疏性实现通信高效的分布式强化学习
作者/机构: Erfan Miahi (Covenant AI), Eugene Belilovsky (Mila, Concordia University)

A1 主要贡献

本文探讨了在带宽受限的分布式强化学习(RL)中,策略权重从训练器同步到推理工作节点的通信瓶颈问题,这一问题在商用网络或去中心化环境中尤为突出。尽管近期有研究指出RL更新仅修改模型参数的一小部分,但这些观察通常基于粗略的检查点差异。

本文的核心目标是系统性地研究权重更新的稀疏性,并利用这种稀疏性来设计一个高效的、无损的权重同步方法。

核心问题与研究目标:
1. 量化与理解稀疏性: 在单步和多步粒度上系统地研究权重更新的稀疏性,并探究其在训练动态、离策略延迟和模型规模下的演变规律。
2. 揭示稀疏性机理: 解释为什么在梯度几乎完全密集的情况下,权重更新却表现出高度稀疏性。
3. 设计高效同步方法: 基于稀疏性结构,提出一种无损、鲁棒且高效的权重同步方法,以解决分布式RL中的通信瓶颈。

创新点与主要贡献:
本文做出了三方面的主要贡献:

  1. 稀疏性的机理分析: 首次提供了权重更新稀疏性的机理分析,证明其主要源于BF16浮点数精度与强化学习中保守学习率之间的相互作用。通过实验验证,在各种实际场景中,权重更新稀疏性持续高达约99%,并且这种稀疏性对于离策略延迟具有鲁棒性,从而实现了超过100倍的压缩潜力。

  2. 提出PULSE方法: 介绍了一种名为PULSE(Patch Updates via Lossless Sparse Encoding,通过无损稀疏编码进行补丁更新)的无损同步方法。该方法只传输已改变参数的索引及其新值。与传输加性增量(additive deltas)的方法不同,PULSE存储参数的实际值,从而避免了在多跳转发重构过程中固有的浮点数漂移问题。文章还为不同带宽条件下的压缩算法选择提供了指导。

  3. 真实网络环境验证: 在一个节点通过公共互联网通信的真实去中心化网络上展示了PULSE的有效性。在数学推理任务的训练中,PULSE实现了超过100倍的带宽降低(例如,对于一个7B模型,为达到90%的GPU利用率,所需带宽从20 Gbit/s降至0.2 Gbit/s),同时成功地完成了训练,并保持了与全量权重同步完全相同的训练动态。

如下图所示,全量权重同步(14 GB)需要20 Gbit/s的链路才能为一个计算时间为50秒/步的7B模型维持90%的GPU利用率。而PULSE通过仅传输变化的1%参数(约140 MB),将所需带宽降低到0.2 Gbit/s(减少了100倍),从而使得在标准网络连接上进行高效训练成为可能。

图1:7B模型在50秒/步计算时间下,计算利用率与网络带宽的关系。
图1:7B模型在50秒/步计算时间下,计算利用率与网络带宽的关系。

A3 背景知识/关键Observation/设计原则

2 背景与问题设定

本节为我们提出的方法建立了技术基础:我们实验中使用的GRPO算法,以及分布式训练中离策略延迟的形式化定义。

2.1 使用GRPO进行推理的强化学习

研究重点。 我们专注于使用可验证奖励的强化学习(RLVR)【【索引编号:7,DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning,2025,arXiv】】进行推理任务,其中奖励由自动验证器(例如,最终答案匹配、单元测试)计算,而非学习人类偏好。

设置。 设 $\pi_{\theta}$ 是一个由 $\theta$ 参数化的语言模型策略。给定一个提示 $x$,该策略生成一个响应 $y \sim \pi_{\theta}(\cdot|x)$。一个验证器定义了一个奖励函数 $r(x, y) \in \{0, 1\}$,指示 $y$ 是否满足任务约束(例如,正确的最终答案)。

GRPO算法。 我们使用组相对策略优化(GRPO)【【索引编号:6,DeepSeekMath: Pushing the limits of mathematical reasoning in open language models,2024,arXiv】】,这是训练推理模型的主流算法【【索引编号:7,DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning,2025,arXiv】,【索引编号:22,DAPO: An open-source LLM reinforcement learning system at scale,2025,arXiv】】。GRPO通过组相对奖励来估计优势,而无需学习一个价值函数。对于每个提示 $x$,GRPO采样一组 $G$ 个响应 $\{y_i\}_{i=1}^{G}$,并计算相对于组均值的优势:

$$\hat{A}_i = \frac{r(x, y_i) - \bar{r}}{\sigma_r}, \quad \text{where} \quad \bar{r} = \frac{1}{G} \sum_{j=1}^G r(x, y_j)$$

策略使用类似于PPO【【索引编号:23,Proximal policy optimization algorithms,2017,arXiv】】的裁剪代理目标进行更新。我们遵循了近期工作【【索引编号:22,DAPO: An open-source LLM reinforcement learning system at scale,2025,arXiv】,【索引编号:24,Understanding R1-zero-like training: A critical perspective,2025,arXiv】】的做法,省略了KL散度惩罚项;Mukherjee等人【【索引编号:21,Reinforcement learning finetunes small subnetworks in large language models,2025,NeurIPS 2025】】的研究表明,这不会显著影响稀疏性。我们在附录E.1节中提供了完整的数学公式。

2.2 分布式训练中的离策略考虑

离策略延迟的定义。 在分布式RL训练中,不同的推理工作节点可能使用不同版本的模型权重。我们通过离策略延迟的概念来形式化这个问题。定义2.1(离策略延迟):设 $\theta_t$ 为优化步骤 $t$ 时的当前模型参数。使用参数 $\theta_{t-k}$ 生成的rollout被称为具有 $k$ 步的离策略延迟。

实际来源。 在实践中,这种延迟源于异步更新、通信延迟和批处理。这种离策略延迟不仅对训练动态有影响,而且正如我们将要展示的,它也对权重更新的稀疏性结构有影响。

3 权重更新稀疏性特征分析

引言。 为了让稀疏的权重更新能够实现通信高效的同步,必须满足三个条件:稀疏性必须在整个训练过程中持续保持高水平,其机理必须被理解以便从业者能够维持它,并且它必须对实际部署场景具有鲁棒性。本节将确立这三个条件,并量化由此产生的压缩潜力,这直接为PULSE方法的设计(第4节)提供了信息。

3.1 实验设置

模型。 我们在三个模型系列上进行实验:Qwen2.5-Instruct【【索引编号:25,Qwen2.5 technical report,2024,arXiv】】,参数量分别为0.5B、1.5B和7B;Llama-3.2-Instruct【【索引编号:26,The llama 3 herd of models,2024,arXiv】】,参数量为3B;以及Gemma-3-4B-it【【索引编号:27,Gemma 3 technical report,2025,arXiv】】。

训练算法。 我们使用GRPO(第2.1节),超参数基于DAPO【【索引编号:22,DAPO: An open-source LLM reinforcement learning system at scale,2025,arXiv】】:学习率为 $3 \times 10^{-6}$,裁剪参数 $\epsilon_{low} = 0.2, \epsilon_{high} = 0.28$,每个批次32个提示,每个提示16个rollouts。我们报告的结果是4个随机种子下的平均值。

数据集。 我们使用可验证奖励的强化学习(RLVR)【【索引编号:7,DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning,2025,arXiv】】在数学推理任务上进行训练。具体来说,我们使用MATH数据集【【索引编号:28,Measuring mathematical problem solving with the MATH dataset,2021,Advances in Neural Information Processing Systems (Datasets and Benchmarks Track)】】。我们从7500个训练样本(涵盖多个学科)中,提取一个分层的500个样本的验证集,该验证集在整个训练过程中保持不变;其余7000个问题构成我们的训练集。我们遵循DeepSeek-AI等人【【索引编号:7,DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning,2025,arXiv】】的做法,使用温度1.0和top-p=1.0采样rollouts以鼓励探索。此外,我们在第5节中证明,这些发现在数学推理之外,也推广到了代码生成任务。

奖励。 我们使用可验证奖励的强化学习(RLVR)【【索引编号:7,DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning,2025,arXiv】】。对于数学推理,我们使用基于正确性、格式和思考过程存在的复合奖励。两个任务的完整奖励公式在附录C.3节中提供。

训练时长。 我们训练400个步骤。这个时长足以观察到早期训练动态和稳定阶段的行为,同时在多个模型规模和实验条件下保持计算上的可行性。我们通过检查所有模型在验证集上的pass@1准确率曲线(附录D.2节)来验证训练在此窗口内已收敛;在大多数情况下,性能在第400步时已趋于平稳。

稀疏性度量。 我们将权重更新稀疏性度量为在连续优化步骤之间保持比特位完全相同的参数比例。形式上,给定第 $t$ 步的参数 $\theta_t$,稀疏性为 $|\{i : \theta^{(i)}_{t+1} = \theta^{(i)}_t \}|/d$,其中 $d$ 是总参数数量。更高的稀疏性意味着更少的参数发生变化,从而有更大的压缩潜力。我们在附录A.1节中提供了形式化定义,包括推广到k步稀疏性(比较 $\theta_t$ 和 $\theta_{t+k}$)。

3.2 训练全程更新的稀疏性如何?

核心发现。 图2总结了我们在所有模型上的发现。所有模型规模下的平均每步权重更新稀疏性约为99%,这证实并扩展了Mukherjee等人【【索引编号:21,Reinforcement learning finetunes small subnetworks in large language models,2025,NeurIPS 2025】】的先前观察,并将其推广到GRPO设置和指令微调模型。这种持续的高稀疏性表明,在每个优化步骤中,绝大多数参数保持不变,这是我们在第4节中利用以实现通信效率的结构。

模型规模和架构的影响。 稀疏性在不同模型家族(Qwen, Llama, Gemma)和规模(0.5B-7B)之间表现出惊人的一致性,尽管存在架构差异,所有模型都达到了98.9%–99.4%的单步稀疏性。这种一致性表明,这种现象是Adam优化与RL微调相互作用的基础特性,而非特定于某个模型。

训练过程中的稳定性。 稀疏性在整个训练轨迹中保持非常稳定:400个步骤中的标准差仅为0.2–0.4%。这种低变异性表明,稀疏性不是一个短暂的早期训练现象,而是一个持久的属性。关键的是,即使是最低稀疏性(最差情况的步骤)对所有模型也保持在98%以上,为方法设计提供了可靠的保证。

图2:不同模型规模和家族的权重更新稀疏性。
图2:不同模型规模和家族的权重更新稀疏性。

多步稀疏性。 当在多个步骤上测量稀疏性时(即比较 $\theta_t$ 和 $\theta_{t+k}$,其中 $k > 1$),稀疏性仍然很高,但随着更多参数累积变化而略有下降(图2)。最近的研究将 $k=8$ 确定为异步RL的最佳值,表明高达此水平的离策略延迟不会实质性影响渐近性能,同时能显著提高计算效率【【索引编号:29,The art of scaling reinforcement learning compute for LLMs,2025,arXiv】】。在这个推荐的范围内($k \le 8$),所有模型的稀疏性都保持在98%以上。超出这个范围,稀疏性会平稳下降,所有模型在 $k=32$ 时仍保持在97%以上。

核心结论1:基线稀疏性
RL微调在不同模型规模和家族中产生高度稀疏的权重更新(每步约99%)。在推荐的异步RL操作范围 $k \le 8$ 内,所有测试模型的稀疏性保持在98%以上,为通信高效方法的设计提供了可靠的保证。

3.3 理解并保持稀疏性

引言。 在确定了稀疏性持续很高之后,我们现在研究其底层机制和鲁棒性。理解稀疏性发生的原因可以让从业者保持它;理解影响它的因素可以确保在实际部署中的鲁棒性。

3.3.1 为什么梯度是密集的而更新是稀疏的?

核心机制:更新吸收。 一个自然的假设是权重更新稀疏性源于稀疏的梯度。然而,我们的测量揭示了相反的情况:梯度几乎是完全密集的,每一步大约有99%的参数接收到非零梯度(附录D.1节)。稀疏性是在下游的权重更新过程中出现的,通过一种我们称之为“更新吸收”(update absorption)的现象:现代LLM训练使用BF16精度,其分辨率有限,因此小于权重幅值约 $|w|/256$ 的更新无法被表示出来,并被四舍五入掉。由于学习率直接缩放更新的幅度,它决定了哪些权重可以被修改。在标准的RL学习率($\eta \approx 3 \times 10^{-6}$)下,大多数更新都低于这个阈值并被吸收。我们在附录A.2节中提供了正式的定义和分析。此分析假设使用Adam类型的优化器;其他优化器可能表现出不同的行为(附录A.6节)。

学习率、权重幅值与BF16精度的相互作用。 图3可视化了学习率、权重幅值和BF16精度之间的相互作用。对角线显示了修改一个给定大小权重所需的最小更新幅度。Adam更新有两个相关的界限:有效界限,即更新幅度等于学习率 $\eta$(当Adam的比率 $|\hat{m}| / \sqrt{\hat{v}} \approx 1$ 时的实际情况),以及吸收界限,代表理论上的最大更新(对于标准超参数为 $10\eta$)。这些水平线与对角线相交的点标记了相应的权重阈值。超过吸收界限的权重被永久冻结;位于两个阈值之间的权重可能在极端的梯度条件下偶尔接收到更新,但通常也是冻结的。

图3:为什么大多数权重在BF16中无法更新。
图3:为什么大多数权重在BF16中无法更新。

关键观察。 关键的观察是,大多数LLM的权重(灰色点)都位于更新界限与阈值线交点的右侧很远的位置。对于这些权重,即使是最大的梯度也无法产生足够大的更新来在BF16的舍入中幸存下来。这解释了为什么仅根据权重大小,大约96%的权重无法接收更新(详见附录A.4节中各模型家族的详细统计数据)。

学习率是控制稀疏性的主要因素。 由于更新幅度与学习率成线性关系,提高学习率会使图3中的水平线上移,从而允许更多的权重接收更新。这预测了更高的学习率应该会降低稀疏性。图4a证实了这一预测:当学习率从 $5 \times 10^{-7}$ 增加到 $5 \times 10^{-6}$ 时,对于所有的k值,稀疏性都单调下降。这种效应在较高的k值时更为明显,但即使在 $k=32$ 和测试的最高学习率下,稀疏性仍然保持在97%以上。

机理总结。 这些发现揭示了RL微调的高稀疏性并非偶然,而是实际训练配置所固有的。先前的工作【【索引编号:21,Reinforcement learning finetunes small subnetworks in large language models,2025,NeurIPS 2025】,【索引编号:30,RL’s razor: Why online reinforcement learning forgets less,2025,arXiv】,【索引编号:31,The path not taken: RLVR provably learns off the principals,2025,arXiv】】观察到这种稀疏性,并将其归因于RL优化动态或BF16精度。我们的分析统一了这些观点:BF16创造了吸收机制,而稳定RL训练所需的小学习率放大了其效果。这一点也得到了Shenfeld等人【【索引编号:30,RL’s razor: Why online reinforcement learning forgets less,2025,arXiv】】的独立证实,他们表明使用纯FP32训练可以完全消除稀疏性,同时达到相同的模型性能。重要的是,这指的是纯FP32训练;混合精度训练,即计算使用BF16而优化器主权重保持在FP32【【索引编号:13,HybridFlow: A flexible and efficient RLHF framework,2025,EuroSys ’25】,【索引编号:32,Mixed precision training,2018,International Conference on Learning Representations】】,则保持了相同水平的稀疏性(附录A.2节)。使用标准训练流程的从业者无需额外努力即可从这种稀疏性中受益。此外,该机制预测,更低精度的格式(例如FP8)将表现出更高的稀疏性,从而将计算节省与通信成本降低相结合。

核心结论2:学习率控制稀疏性
稀疏性主要源于BF16精度和学习率之间的相互作用。在标准的RL学习率下,大多数更新被吸收。较高的学习率会降低稀疏性但会使RL训练不稳定。高稀疏性是实际RL微调配置所固有的特性。

3.3.2 策略陈旧度如何影响稀疏性?

问题背景。 在分布式RL中,rollouts通常是使用陈旧的策略权重生成的,而学习器则在执行梯度更新。这种策略陈旧度在异步训练中很常见。我们研究它如何影响稀疏性。具体来说,陈旧度为N意味着每N个梯度步骤重新生成rollouts:N=1是完全在线策略,而N>1对应于一个在线策略更新后,使用相同的rollouts进行N-1个离线策略更新。

实验结果。 图4b展示了策略陈旧度和测量粒度如何影响稀疏性。对于单步更新(k=1),即使在32步的陈旧度下,稀疏性仍然保持在98.5%以上。当在更长的时间间隔(更高的k)上测量时,稀疏性随着更多参数累积变化而下降,但在所有测试条件下仍保持在97.5%以上。阴影误差带显示,方差随着陈旧度和k的增加而适度增加,但这种退化是平稳且可预测的。

图4:影响权重更新稀疏性的因素。
图4:影响权重更新稀疏性的因素。

核心结论3:策略陈旧度
稀疏性对策略陈旧度具有鲁棒性:即使是32步的陈旧度,也仅使单步稀疏性降低不到1个百分点(从约99.4%降至约98.7%)。带有延迟同步的异步分布式训练与稀疏通信仍然兼容。

3.4 通信影响

引言。 在确定了权重更新稀疏性是高的、机理上可理解的且鲁棒的之后,我们现在量化其对通信效率的影响。

压缩潜力。 在99%的稀疏度下,每步只有1%的参数发生变化。一种存储已更改参数的索引和值的稀疏表示,结合增量编码和通用压缩(例如,zstd),可以实现56-100倍的总带宽减少,具体取决于算法和模型(附录E.4节)。下限(56倍)对应于像lz4这样的快速算法;我们使用zstd-1的默认配置平均达到了79倍,某些架构甚至达到了100倍。

带宽影响。 这种压缩改变了权重同步的带宽需求。对于一个7B模型,根据上下文长度和硬件,训练步骤通常需要30-90秒【【索引编号:12,OpenRLHF: An easy-to-use, scalable and high-performance RLHF framework,2024,arXiv】】。如果每步60秒,完整的检查点同步需要14 GB/60秒 ≈ 1.9 Gbit/s的持续吞吐量。通过79倍压缩的稀疏同步(我们的默认配置),这个需求降至约24 Mbit/s,完全在商用互联网的容量范围内。下一节将介绍实现这种压缩同时保证无损重构的PULSE方法,并提供基于可用带宽的压缩算法选择的实用指南。

核心结论4:通信效率
在RL微调中观察到的约99%的稀疏性,使得通信量可以减少56-100倍(通常使用zstd-1时为79倍),将权重同步从一个高带宽瓶颈转变为一个与商用网络兼容的操作。

A2 方法细节

4 PULSE方法

引言。 基于第3节中确立的稀疏性特征和压缩潜力,我们提出了PULSE(通过无损稀疏编码进行补丁更新),这是一种无损同步方法,它在保证比特级精确重构的同时,实现了理论上的带宽缩减。本节描述了其核心算法(第4.1节)、分布式系统架构(第4.2节)以及实际的压缩选择(第4.3节)。

4.1 稀疏值补丁

核心思想。 PULSE的核心思想是只传输在训练步骤之间发生变化的参数,然后在接收端对模型进行“打补丁”。一个补丁 $P = (I, V)$ 由已更改参数的索引 $I$ 和它们的新值 $V$ 组成,并经过压缩以进行传输(算法1)。

算法1 稀疏值补丁
算法1 稀疏值补丁

编码。 给定连续的检查点 $W_{t-1}$ 和 $W_t$,我们通过一次 $O(d)$ 的按位比较来识别不同的位置。对于每个变化的位置,我们存储它的索引和新值(而不是算术差值)。这个设计选择至关重要:存储实际值避免了使用加法增量方案时会累积的浮点漂移。

编码优化。 为了最大化压缩效果,我们在通用压缩之前应用了两个可选的优化措施:(1)增量编码(delta encoding)对索引进行排序,并存储连续索引之间的差值而不是绝对位置,从而利用了空间局部性;(2)类型缩减(type downscaling)使用更窄的整数类型(例如,用uint16代替int32)来表示这些小的增量。这两项优化共同贡献了在稀疏表示之外约23%的额外压缩(见附录E.4节)。

图5:PULSE同步拓扑。
图5:PULSE同步拓扑。

解码。 重构过程是这个流程的逆过程:解压缩,从增量中恢复绝对索引,然后覆盖位置 $W_t[I] \leftarrow V$。这是一个直接的内存复制操作,不涉及浮点算术,保证了无论链接了多少个补丁,都能实现比特级的完全相同重构。

4.2 分布式同步

系统拓扑。 我们利用的稀疏性存在于权重更新中,而不是梯度中。正如第3.3.1节所证实的,梯度几乎是完全密集的(约99%非零),需要有损压缩【【索引编号:16,QSGD: Communication-efficient SGD via gradient quantization and encoding,2017,Advances in Neural Information Processing Systems】,【索引编号:17,Deep gradient compression: Reducing the communication bandwidth for distributed training,2018,International Conference on Learning Representations】】,而权重更新则表现出高度稀疏性(约1%变化),从而可以进行无损压缩。这种不对称性催生了一个自然的系统拓扑(图5):训练节点保持集中部署,利用高带宽互连进行密集的梯度通信,而推理节点则可以通过商用网络使用稀疏补丁进行同步。在RL后训练中,推理在计算量上占主导地位,其FLOPs比例约为4:1【【索引编号:15,INTELLECT-2: A reasoning model trained through globally decentralized reinforcement learning,2025,-】】,因此推理节点的数量通常超过训练节点的数量。关键在于,权重同步是一个从训练节点到众多推理节点的广播操作,这与使用带宽高效的all-reduce集合操作的梯度聚合不同。这种扇出模式使得权重传输对带宽限制尤为敏感,因为相同的负载必须到达每一个推理工作节点。

解耦架构。 训练节点将稀疏补丁发布到中心化的对象存储(例如,Cloudflare R2, AWS S3),而推理节点则独立地拉取更新。这种解耦的架构允许训练和推理独立扩展。如第3.3.2节所示,稀疏性在策略陈旧度高达32步的情况下仍然保持鲁棒,使得异步操作在实践中是可行的。

检查点链结构。 为了在效率和鲁棒性之间取得平衡,PULSE将更新组织成一个由周期性完整检查点锚定的稀疏补丁链(如图14所示)。训练节点每 $k$ 步(锚点间隔)发布一个完整的检查点。在锚点之间,它们只发布稀疏补丁。每个补丁都包含一个SHA256哈希值,用于验证生成权重的完整性。推理节点根据其状态通过两条路径进行同步。在快速路径中,一个已经同步到第 $t-1$ 步的节点下载并应用单个补丁以达到第 $t$ 步。相反,慢速路径处理那些加入较晚或错过步骤的节点:它们下载最近的锚点检查点,并应用最多 $k-1$ 个后续补丁。恢复延迟与锚点间隔 $k$ 成正比,较小的 $k$ 会减少最坏情况下的恢复时间,但代价是由于更频繁的完整检查点而增加了存储开销。关于同步机制的更多细节,包括锚点间隔选择、完整性验证和故障恢复,请参见附录G。

4.3 压缩算法选择

带宽依赖性。 最佳的压缩算法取决于可用的带宽。在高带宽下,编码时间占主导,因此快速算法(如lz4)可以最小化总传输时间。在低带宽下,网络时间占主导,因此更高压缩率的算法(如zstd-3)更为可取。对于一个99%稀疏度的7B模型,我们确定了三个主要的应用场景:

  • 数据中心 (>800 Mbit/s): lz4 (56倍压缩, 830 MB/s 编码速度)
  • 典型云环境 (14–800 Mbit/s): zstd-1 (79倍, 530 MB/s) [默认]
  • 受限网络 (<14 Mbit/s): zstd-3 (80倍, 197 MB/s)

附录中的图13可视化了这些带宽层级以及相应的算法选择。详细的消融研究、各模型的细分数据以及选择方法论请参见附录E.4节。

实现。 PULSE被集成到我们的开源去中心化RL后训练框架grail中。默认配置使用2D COO表示法,并结合了增量编码、类型缩减和zstd-1压缩,这为商用网络提供了最佳的吞吐量-压缩权衡(见附录E.4节)。完整的实现细节在附录E中。

A4 实验环境

数据集:
* 数学推理: 使用MATH数据集【【索引编号:28,Measuring mathematical problem solving with the MATH dataset,2021,Advances in Neural Information Processing Systems (Datasets and Benchmarks Track)】】。训练集包含7000个问题,验证集包含一个固定的500个样本的分层抽样。
* 代码生成: 使用MBPP数据集【【索引编号:34,Program synthesis with large language models,2021,arXiv】】。训练集包含774个任务,验证集包含190个任务。

模型架构:
* 稀疏性分析实验:
* Qwen2.5-Instruct (0.5B, 1.5B, 7B)【【索引编号:25,Qwen2.5 technical report,2024,arXiv】】
* Llama-3.2-Instruct (3B)【【索引编号:26,The llama 3 herd of models,2024,arXiv】】
* Gemma-3-4B-it【【索引编号:27,Gemma 3 technical report,2025,arXiv】】

  • 去中心化部署实验:

    • Qwen2.5-7B-Instruct (用于MATH任务)
    • Qwen2.5-Coder-7B-Instruct (用于MBPP任务)
  • 训练算法与参数: 采用GRPO算法,学习率在分析实验中为 $3 \times 10^{-6}$,在去中心化部署中为 $1 \times 10^{-6}$ 以保证稳定性。其他关键超参数(如GRPO裁剪、批大小等)在附录表4中有详细说明。

硬件配置:
* 稀疏性分析平台: 使用两块NVIDIA A100 80GB GPU,一块用于训练,另一块用于推理和评估。
* 去中心化部署平台:
* 训练器节点: 运行在一块NVIDIA H200 GPU上。
* 推理节点: 完全去中心化,由志愿者匿名参与,硬件规格未知且异构。
* 网络: 训练器与推理节点之间的通信通过公共互联网进行,带宽约为400 Mb/s。
* 存储: 使用S3兼容的对象存储(如Cloudflare R2)进行检查点分发。

软件配置:

  • 代码实现: 稀疏性分析使用TRL库【【索引编号:38,TRL: Transformer reinforcement learning,2020,https://github.com/huggingface/trl】】;去中心化部署使用集成了PULSE的开源框架grail【【索引编号:33 ,grail-v0: How we built a fully open, incentivized, decentralized reinforcement learning system,2025,Templar Research Blog】】。
  • 依赖库与环境: Python 3.10.12, PyTorch 2.2.0, CUDA 12.1, transformers 4.38.0, zstandard 0.22.0。

A4 实验结果

实验设置: 我们在grail【【索引编号:33,grail-v0: How we built a fully open, incentivized, decentralized reinforcement learning system,2025,Templar Research Blog】】这个去中心化的强化学习平台上对PULSE进行了验证。该平台上的节点地理位置分散,通过异构带宽的公共互联网进行通信。为了证明PULSE的领域无关性,我们在两个不同的RLVR任务上进行了评估:(1) 使用MATH数据集和Qwen2.5-7B-Instruct模型进行数学推理;(2) 使用MBPP数据集和Qwen2.5-Coder-7B-Instruct模型进行代码生成。每个任务都进行了3次独立的试验。

实验结果分析:
1. 带宽缩减效果: 如图6所示,在实际部署中,第3节观察到的高稀疏性直接转化为了通信节省。7B模型的上传数据大小平均为108 MB(标准误1.1 MB),与全量同步所需的14 GB相比,减少了超过100倍。具体来说,PULSE实现了约130倍的带宽缩减,这甚至超过了在基准学习率($3 \times 10^{-6}$)下观察到的79倍。这一提升与我们在第3.3.1节的分析一致,即更低的学习率($1 \times 10^{-6}$)会带来更高的稀疏性。

  1. 训练有效性: 尽管只传输了稀疏更新,但训练过程正常进行。如图6所示,验证集上的pass@1准确率在整个训练过程中稳步提升,在MATH和MBPP任务上最终分别提升了50.1和49.4个百分点。不同运行之间的标准差很低(≤1.5个百分点),表明训练过程稳定。

  2. 无损重构验证: 所有的权重传输都通过了SHA-256哈希验证,确认了在推理节点上实现了比特级的完全相同重构。这验证了PULSE的核心前提:由BF16精度引起的稀疏性可以在无需近似误差或误差反馈机制的情况下,实现无损压缩。

图6:使用PULSE的训练进展。
图6:使用PULSE的训练进展。

A5 结论

核心发现总结: 我们已经证明,在强化学习(RL)微调中,权重更新表现出显著的稀疏性:大约99%的参数在每个优化步骤中保持不变。这一现象源于BF16浮点数精度与RL中典型的保守学习率之间的相互作用。这种稀疏性在不同模型规模(0.5B-7B)、训练阶段以及高达32步的离策略延迟下都保持一致。

PULSE方法回顾: 基于这一观察,我们引入了PULSE,一种无损的检查点同步方法,它通过仅传输实际发生变化的参数来利用更新的稀疏性。与基于增量(delta-based)的方法会随时间累积量化误差不同,PULSE存储参数的实际值,从而为比特级完全相同的重构提供了数学保证。在实践中,与完整的检查点同步相比,这实现了超过100倍的带宽缩减。

实践验证: 我们在一个去中心化的RL训练网络上验证了PULSE,它在保持与全量同步相同的训练动态的同时,将通信成本降低了两个数量级。这表明,在受控基准测试中观察到的高稀疏性可以直接转化为真实世界的部署效益。

局限性与未来工作: 本研究存在一些局限性。我们主要研究了在单轮次推理任务上的GRPO算法;其他算法(如PPO, DPO)可能表现不同,尽管先前的工作【【索引编号:21,Reinforcement learning finetunes small subnetworks in large language models,2025,NeurIPS 2025】】发现RLHF具有可比的稀疏性。我们的分析假设使用Adam类型的优化器;其他优化器可能有不同的行为(见附录A.6)。除学习率外的其他超参数(如有效批量大小)也可能影响稀疏性。未来的工作将把这一分析扩展到长期运行的后训练和多轮次RL设置,其中环境反馈可能会引入新的令牌序列,从而影响更新的稀疏性。

最终展望: 通过将同步成本降低超过100倍,PULSE消除了限制去中心化RL训练的通信瓶颈,使得地理上分散的网络能够接近中心化训练的迭代速度。

A6 附录

A 理论分析

A.1 稀疏性的形式化定义

定义。 我们为本文中使用的稀疏性度量提供形式化定义。这些定义量化了在训练步骤之间有多少参数发生了变化。

定义 A.1 (权重更新)。 给定在优化步骤 $t$ 的模型参数 $\theta_t \in \mathbb{R}^d$ 和在步骤 $t+k$ 的参数 $\theta_{t+k}$,k步权重更新为:

$$\Delta_{t,k} = \theta_{t+k} - \theta_{t}$$

对于连续步骤(k=1),我们简化符号为 $\Delta_t = \theta_{t+1} - \theta_t$。

定义 A.2 (更新稀疏性)。 k步权重更新的稀疏性是指在步骤 $t$ 和 $t+k$ 之间保持比特位完全相同的参数所占的比例:

$$S_{k}(t)=\frac{1}{d} \sum_{i=1}^{d} \mathbb{1}[\theta_{t+k}^{(i)}=\theta_{t}^{(i)}]$$

其中 $\mathbb{I}[\cdot]$ 是指示函数。等式是在底层表示(例如,BF16)上进行比特位评估的。值越高表示变化的参数越少,从而可以实现更大的压缩。

核心洞见。 PULSE利用的关键洞见是,在RL微调中,$S_1(t)$ 约等于99%(第3节),这使得通信量可以大幅减少。

A.2 BF16精度与更新吸收

BF16特性。 BF16 (bfloat16) 使用1个符号位、8个指数位和7个尾数位。7位的尾数在连续的2的幂之间提供了 $2^7 = 128$ 个不同的值,使得最小可表示的相对变化约为 $\epsilon_{bf16} = 2^{-7} \approx 0.0078$。

可表示间隙。 关键在于,这个可表示的间隙会随着权重的大小而缩放。例如,在1.0和2.0之间,间隙是0.0078,但在10.0和20.0之间,间隙是0.078。

定义 A.3 (更新吸收)。 如果对参数 $w$ 的一次优化器更新 $\Delta w$ 后,其BF16表示保持不变,即 $\text{bf16}(w + \Delta w) = \text{bf16}(w)$,则称该更新被吸收。这发生在更新量小于可表示间隙的一半时:

$$\frac{|\Delta w|}{|w|}<2^{-8}=\frac{1}{256} \approx 0.004$$

混合精度训练中的吸收。 在混合精度训练中【【索引编号:32,Mixed precision training,2018,International Conference on Learning Representations】】,优化器以FP32计算 $\Delta w$,但结果在写入权重张量时被转换为BF16。如果 $|\Delta w|$相对于$|w|$太小,该值会四舍五入回$w$,更新就没有效果。

吸收机制图示。 图7阐释了这一机制。关键的洞见是,吸收取决于比率 $|\Delta w|/|w|$,而不仅仅是$|\Delta w|$。小的权重可以接受小的更新;大的权重则不能。

临界权重大小。 将吸收阈值与Adam的更新规则相结合,可以得出一个临界权重大小。在Adam中,$|\Delta w| \approx \eta$ 对于典型的梯度模式(正式分析见附录A.3节)。为了让更新得以保留,我们需要 $|\Delta w| > |w|/256$,即:

$$|w| < 256 \cdot |\Delta w| \approx 256 \eta$$

当学习率 $\eta = 3 \times 10^{-6}$ 时,这给出的临界权重大小为 $|w|_{crit} \approx 7.7 \times 10^{-4}$。由于典型的LLM权重大小在[0.01, 1.0]范围内,绝大多数都超过了这个阈值,实际上被“冻结”了。

混合精度训练的实证验证。 LLM后训练的标准配置使用混合精度训练【【索引编号:32,Mixed precision training,2018,International Conference on Learning Representations】】:优化器为保持数值稳定性而维护FP32主权重,而前向和后向传播则以BF16执行。这与纯FP32训练有根本不同,后者所有计算和存储都使用FP32,且完全消除了稀疏性【【索引编号:30,RL’s razor: Why online reinforcement learning forgets less,2025,arXiv】】。

图7:BF16算术中的更新吸收。
图7:BF16算术中的更新吸收。

PULSE在混合精度下的适用性。 在混合精度训练中,尽管优化器更新的是FP32主权重(其中小的更新确实会累积),但推理仍然需要BF16权重,因为所有前向计算都在BF16中进行。因此,对于PULSE而言,相关的问题是:当以BF16视角观察时,权重更新的稀疏性如何?我们通过在每个优化步骤后将FP32主权重转换为BF16,并比较连续的BF16快照来测量这一点。这反映了推理节点接收和使用的实际权重。

实验结果。 图8验证了在这种标准设置下稀疏性仍然很高。我们使用FP32主权重和BF16计算,通过GRPO训练Qwen2.5-1.5B-Instruct;由此产生的BF16转换后的权重更新表现出持续高于99.4%的稀疏性,与第3节中的纯BF16结果相当。

高稀疏性原因。 这种高稀疏性得以持续,是因为单步更新非常小,即使在FP32中累积,也需要很多步才能跨越BF16的阈值。在学习率 $\eta = 3 \times 10^{-6}$ 时,典型的更新幅度约为 $\eta$,而对于$|w|=0.01$的权重,其BF16阈值是 $|w|/256 \approx 4 \times 10^{-5}$。由于阈值大约是单次更新的13倍,大约需要13步的持续更新才能跨越它。因此,在任何给定的步骤中,只有一小部分权重累积了足够的变化来影响其BF16表示。与纯BF16训练中被吸收的更新永久丢失不同,混合精度中的更新最终会体现出来,但分散在许多步骤中,从而保持了高单步稀疏性。使用标准混合精度流程的从业者无需修改即可从此稀疏性中受益。

A.3 Adam更新界限

引言。 我们推导了Adam中每步更新幅度的上界。这个界限与BF16的吸收阈值相结合,可以描述哪些权重可以被更新。

定理 A.4 (Adam更新上界)。 对于参数为 $(\beta_1, \beta_2)$ 且 $\beta_2 > \beta_1$ 的Adam优化器,在步骤 $t$ 的更新幅度满足:

$$|\Delta w_t| \le \eta \sqrt{\frac{1-\beta_1}{1-\beta_2} \cdot \frac{1-\beta_2^t}{1-\beta_1^t}}$$

当 $t \to \infty$ 时,这简化为:

$$|\Delta w_{t}| \leq \eta \sqrt{\frac{1-\beta_{1}}{1-\beta_{2}}}$$

证明。 令 $\Delta w_t = \eta \cdot \rho_t$,其中 $\rho_t = \hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)$。经过偏差校正的指数移动平均(EMA)形式为:

$$\hat{m}_{t}=\sum_{i=1}^{t} p_{i} g_{i}, \quad \hat{v}_{t}=\sum_{i=1}^{t} q_{i} g_{i}^{2}$$
图8:混合精度训练的稀疏性(FP32主权重,BF16计算)。
图8:混合精度训练的稀疏性(FP32主权重,BF16计算)。

其中 $p_i, q_i \ge 0$ 是移动平均的权重,且 $\sum p_i = \sum q_i = 1$:

$$p_{i}=\frac{(1-\beta_{1})\beta_{1}^{t-i}}{1-\beta_{1}^{t}},\quad q_{i}=\frac{(1-\beta_{2})\beta_{2}^{t-i}}{1-\beta_{2}^{t}}$$

因为 $\beta_2 > \beta_1$,比率 $q_i / p_i$ 在最近的项 $i=t$ 时最小化:

$$\frac{q_i}{p_i} \geq c_t \quad \text{for all } i, \quad \text{where } c_t = \frac{1 - \beta_2}{1 - \beta_1} \cdot \frac{1 - \beta_1^t}{1 - \beta_2^t}$$

根据詹森不等式(因为 $x^2$ 是凸函数),我们可以对二阶矩进行界定:

$$\hat{v}_t = \sum_{i=1}^t q_i g_i^2 \ge c_t \sum_{i=1}^t p_i g_i^2$$ $$\ge c_{t}\left(\sum_{i=1}^{t} p_{i} g_{i}\right)^{2}=c_{t} \cdot \hat{m}_{t}^{2}$$

因此:

$$\frac{|\hat{m}_{t}|}{\sqrt{\hat{v}_{t}}} \leq \frac{1}{\sqrt{c_{t}}}=\sqrt{\frac{1-\beta_{1}}{1-\beta_{2}} \cdot \frac{1-\beta_{2}^{t}}{1-\beta_{1}^{t}}}$$

由于 $\sqrt{\hat{v}_t} + \epsilon \ge \sqrt{\hat{v}_t}$,我们有 $|\rho_t| \le 1/\sqrt{c_t}$,证明完成。

条件 $\beta_2 > \beta_1$ 的有效性。 该定理要求 $\beta_2 > \beta_1$,这在所有标准的AdamW配置中都普遍成立。在现代LLM预训练中,选择 $\beta_2 = 0.95$(而非默认的0.999)已变得普遍。这产生了一个更紧的界限 $\sqrt{(1 - 0.9)/(1 - 0.95)} = \sqrt{2} \approx 1.41$,相比于PyTorch默认值的 $\sqrt{100}=10$。

对标准超参数的影响。 对于PyTorch的默认参数 $(\beta_1, \beta_2) = (0.9, 0.999)$:

$$|\Delta w_t| \le \eta \sqrt{\frac{0.1}{0.001}} = 10 \eta$$
表1:主流LLM训练流程使用的AdamW超参数。所有配置均满足β2 > β1。
表1:主流LLM训练流程使用的AdamW超参数。所有配置均满足β2 > β1。
表2:各模型家族的权重幅度统计。学习率η = 3 × 10−6时的更新吸收临界阈值为|w|crit ≈ 7.7 × 10−4(典型情况,比率≈1)。高于此阈值的权重在BF16中无法接收更新,这解释了观察到的约99%的单步稀疏性。
表2:各模型家族的权重幅度统计。学习率η = 3 × 10−6时的更新吸收临界阈值为|w|crit ≈ 7.7 × 10−4(典型情况,比率≈1)。高于此阈值的权重在BF16中无法接收更新,这解释了观察到的约99%的单步稀疏性。

当学习率 $\eta = 3 \times 10^{-6}$ 时,这给出 $|\Delta w_t| \le 3 \times 10^{-5}$。

主流LLM训练流程超参数。 表1总结了主流LLM训练流程使用的超参数。现代LLM训练常使用 $\beta_2=0.95$,这产生了一个更紧的界限 $\sqrt{2}\eta \approx 1.41\eta$,相比于PyTorch默认值($\beta_2=0.999$)的 $10\eta$。

推论 A.5 (BF16的权重幅度阈值)。 为了让一个权重 $w$ 在BF16算术中接收一个不被吸收的更新,我们需要 $|\Delta w|/|w| > 2^{-8}$。结合定理A.4,这给出了通用界限:

$$|w| < 256 \cdot |\Delta w|_{\max} = 256\eta\sqrt{\frac{1-\beta_1}{1-\beta_2}}$$

对于PyTorch的默认值 $(\beta_1, \beta_2) = (0.9, 0.999)$,这简化为 $|w| < 2560\eta$。对于现代LLM配置中 $\beta_2=0.95$ 的情况,这变为 $|w| < 362\eta$。对于我们的实验设置 $(\beta_1, \beta_2) = (0.9, 0.99)$,这给出 $|w| < 810\eta$。

实践中的有效阈值。 在实践中,对于大多数梯度模式,比率 $|\hat{m}_t| / \sqrt{\hat{v}_t} \approx 1$(见图9),这产生了一个不依赖于 $\beta_2$ 的有效阈值:

$$|w|_{crit}^{effective} < 256\eta \approx 7.68 \times 10^{-4} \quad (\textit{for } \eta = 3 \times 10^{-6})$$

这个有效阈值决定了实际的稀疏性,解释了为什么在不同的 $(\beta_1, \beta_2)$ 配置下观察到的稀疏性是一致的。

A.4 权重幅度分布

验证临界阈值的相关性。 为了验证临界阈值 $|w|_{crit}$ 与实际LLM权重分布相关,我们分析了几个模型家族的权重幅度。表2显示,绝大多数LLM权重的幅度远高于临界阈值。

关键观察。 所有模型的权重幅值中位数约为0.011–0.012,大约是临界阈值 $|w|_{crit} \approx 7.7 \times 10^{-4}$ 的15倍。这意味着对于典型的Adam更新(比率≈1),大约96%的权重在BF16算术中无法接收更新。

图9:对抗性梯度序列下|mˆt|/ √vˆt的比率。
图9:对抗性梯度序列下|mˆt|/ √vˆt的比率。

与观察到的稀疏性的联系。 理论预测(基于权重幅度本身约96%的吸收)是一个下限;在第3节中凭经验观察到的约99%的稀疏性更高,这是由于其他因素:

  • 一些梯度产生的更新比率 > 1,允许稍微更多的权重被更新
  • 在 $|\Delta w| \approx |w|/256$ 的边界情况下的数值效应

可视化关系。 正文中的图3可视化了这种关系。BF16阈值线与Adam更新界限的交点定义了临界权重幅度。高于这些临界值的权重(绝大多数)无论梯度大小如何都无法接收更新。

上界的性质。 这个界限是一个上确界,任何单个序列都无法达到。界限 $|\rho_t| \le \sqrt{(1-\beta_1)/(1-\beta_2)}$ 是所有可能梯度历史的上确界。任何单个梯度序列都无法达到它,因为证明依赖于詹森不等式,而该不等式仅在所有梯度都相同时才成立。然而,如果所有梯度都相同(对所有 $i$ 都有 $g_i = g$),那么 $\hat{m}_t = g$ 且 $\hat{v}_t = g^2$,从而得出 $|\rho_t|=1$,而不是10。

通过对抗序列逼近上界。 为了理解我们能多接近理论界限,考虑以下对抗性梯度序列:一个长的“静默”期,梯度接近于零,然后是恒定的大梯度。这利用了 $\beta_2 > \beta_1$ 导致二阶矩 $v_t$ 比一阶矩 $m_t$ 响应更慢的事实。

对抗序列分析。 图9显示了序列 $[10^{-20}] \times 10^5 + [1.0] \times k$ 的比率 $|\hat{m}_t| / \sqrt{\hat{v}_t}$。关键观察:
- 在12个大梯度后,比率达到峰值6.57,仅为理论界限的66%。
- 峰值过后,$v_t$ 累积,比率衰减回1。
- 对于恒定梯度(训练中的典型情况),比率恰好等于1。
- 即使是这个需要$10^5$步设置的高度对抗性序列,也无法接近界限。

结论。 这个分析证实了 $10\eta$ 的界限是极其保守的。在实践中,对于训练中遇到的现实梯度序列,比率 $|\hat{m}_t| / \sqrt{\hat{v}_t}$ 很少超过2。

A.5 Adam稀疏更新的条件

引言。 我们系统地列举了Adam优化器更新变得稀疏(即被BF16精度吸收)的条件。回顾一下,当 $|\Delta w| < |w|/256$ 时,更新 $\Delta w$ 被吸收。Adam的更新公式为:

$$\Delta w = \eta \cdot \frac{m_t}{\sqrt{v_t} + \epsilon}$$
表3:导致RL微调中Adam更新稀疏的条件。
表3:导致RL微调中Adam更新稀疏的条件。

其中 $m_t$ 和 $v_t$ 是(经过偏差校正的)一阶和二阶矩,$\eta$ 是学习率,$\epsilon = 10^{-8}$。

条件1:极小的梯度 ($|g| \ll \epsilon$)。 当梯度极小(例如,$|g| = 10^{-12}$)时,更新简化为 $|\Delta w| \approx \eta \cdot |g|/\epsilon$。当 $\eta = 3 \times 10^{-6}$ 时,$|\Delta w| \approx 3 \times 10^{-10}$,这远低于任何权重幅度的吸收阈值。

条件2:振荡的梯度 ($m_t \to 0$, $v_t$ 增长)。 当梯度在零附近振荡(例如,交替出现+g和-g)时,一阶矩 $m_t$ 相互抵消,而二阶矩 $v_t$ 累积($v_t \approx g^2$)。这导致 $|\Delta w| \approx \eta \cdot 0/|g| \approx 0$。

条件3:大的权重幅度 ($|w| \gtrsim 10^{-2}$)。 BF16的吸收阈值随权重幅度而变化:$|\Delta w|_{min} = |w|/256$。即使更新达到其理论最大值($|\Delta w| \approx 10\eta$),如果 $|w| > 2560\eta$,大的权重也无法被更新。对于 $\eta = 3 \times 10^{-6}$,权重 $|w| > 7.68 \times 10^{-3}$ 实际上是“冻结”的。

条件4:小的学习率。 学习率 $\eta$ 直接缩放所有更新。标准的GRPO学习率($\eta = 3 \times 10^{-6}$)比典型的预训练率小100-1000倍,按比例减少了更新幅度。

条件5:高的 $\beta_2$ (二阶矩衰减慢)。 当 $\beta_2$ 较高(例如,0.999)时,二阶矩 $v_t$ 衰减非常慢。一个过去经历过大梯度的参数会有一个膨胀的 $v_t$,即使当前梯度适中,也会抑制未来的更新。

总结。 表3总结了这些因素。在RL微调中,稀疏性的主要驱动因素是大的权重幅度和小的学习率,它们与BF16精度相互作用,产生了约99%的单步稀疏性。

A.6 优化器依赖性

引言。 本文的稀疏性分析始终假设使用Adam类型的优化器。这个选择并非偶然:Adam的自适应缩放从根本上改变了梯度幅度如何转化为更新幅度,使得稀疏性具有SGD所不具备的鲁棒性。

Adam与SGD的更新动态。 在SGD中,更新是 $\Delta w = \eta g$,所以更新幅度直接与梯度幅度成正比。大梯度产生大更新,可能会超过BF16的吸收阈值。相比之下,Adam计算 $\Delta w = \eta \cdot \hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)$,其中 $\hat{m}_t$ 和 $\hat{v}_t$ 都追踪梯度统计。当梯度持续较大时,一阶矩 $m_t$ 和二阶矩 $v_t$ 按比例增长,使其比率保持在接近1的范围内(图9)。这种归一化效应意味着Adam的更新幅度在很大程度上与梯度幅度无关。

更新的上界。 当梯度裁剪被禁用或无效时,一个关键的区别就出现了。无论梯度大小如何,Adam的更新幅度都有一个理论上界:对于标准超参数,有$|\Delta w| \le 10\eta$(定理A.4)。SGD没有这样的界限;$|\Delta w| = \eta|g|$ 随着$|g|$的增加而无限制地增长。例如,当 $\eta = 3 \times 10^{-6}$ 且未裁剪的梯度 $|g|=100$ 时:
- Adam: $|\Delta w| \le 10\eta = 3 \times 10^{-5}$ (有界)
- SGD: $|\Delta w| = \eta|g| = 3 \times 10^{-4}$ (大10倍,对更多权重超过BF16阈值)

这个界限使得Adam的稀疏性是可预测的:即使在极端的梯度条件下,更新也保持在 $O(\eta)$ 的量级。

对稀疏性的影响。 在实践中,层归一化和梯度裁剪限制了梯度的大小。在全局范数为1.0的裁剪下,每个参数的梯度通常是 $|g| \le 1$,这意味着SGD的更新 ($\eta|g|$) 可能小于Adam的更新 ($\sim\eta$),从而可能产生相当甚至更高的稀疏性。然而,在没有裁剪或梯度突增的情况下,SGD的无界更新可能会显著降低稀疏性。我们没有在SGD下凭经验验证稀疏性;我们的分析始终假设使用Adam。

实际相关性。 由于现代LLM训练普遍使用Adam的变体(AdamW, Adam与解耦权重衰减),这种区别主要具有理论意义。然而,考虑替代优化器(例如,在特定微调方案中使用带冲量的SGD)的从业者应该意识到,本文中建立的稀疏性保证可能不适用。

A.7 无损重构保证

核心机制。 PULSE保证比特级精确的重构,因为它存储的是实际的权重值,而不是算术差异。

命题 A.6 (无损重构)。 对于任何从连续检查点 $W_{t-1}$ 和 $W_t$ 派生出的补丁 $P = (I, V)$,将 $P$ 应用于 $W_{t-1}$ 可以精确地重构 $W_t$:

$$\text{DECODE}(W_{t-1}, P) \equiv W_t \quad (bitwise)$$

这个属性可以扩展到补丁链:将 $P_1, P_2, \dots, P_n$ 顺序应用于锚点 $W_0$ 可以精确地重构 $W_n$。

证明。 证明直接源于算法的构造(算法1)。重构执行直接的内存赋值 $W[I] \leftarrow V$,不涉及浮点运算,如图10所示。对于索引 $i \in I$,我们复制来自 $V$ 的精确比特模式;对于索引 $i \notin I$,值保持不变且已经正确。在任何步骤中都不会发生舍入、截断或近似。

与加法增量方案的对比。 传统的增量压缩存储 $\delta_t = W_t - W_{t-1}$ 并通过 $W_t = W_{t-1} + \delta_t$ 进行重构。这个加法是一个浮点操作,会受到舍入误差的影响。在长链中,微小的误差会累积:

$$W_{\text {recon }}=W_{0}+\sum_{i=1}^{n} \delta_{i} \neq W_{n} \quad(\text { in general })$$

PULSE的优势。 PULSE通过存储值而非差异,完全避免了这个问题。每次应用补丁都会用其正确的最终值覆盖相应位置,这与链的长度无关。

实践验证。 我们通过SHA-256哈希在经验上验证了无损性。每个补丁都包含一个预期的重构权重的哈希值;推理节点在应用每个补丁后会验证这个哈希。在所有实验中(第5节),100%的重构都通过了验证,证实了网络中权重的比特级一致性。

B grail框架

引言。 我们在grail【【索引编号:33,grail-v0: How we built a fully open, incentivized, decentralized reinforcement learning system,2025,Templar Research Blog】】上部署了PULSE,这是一个基于Bittensor构建的去中心化强化学习平台。本节总结了grail的异步架构;完整的实现细节,请参见开源仓库。

图10:稀疏值补丁。
图10:稀疏值补丁。

B.1 系统概述

系统组件。 grail将计算密集的推理(rollout生成)与训练分离开来,使得分布式节点可以贡献计算力,而一个中心化的训练器负责处理梯度更新。该系统包括三种节点类型:
- 矿工(Miners): 使用当前的模型检查点生成推理rollouts。
- 验证者(Validators): 通过隐藏状态指纹验证rollout的真实性,并根据性能分配奖励。
- 训练器(Trainer): 使用经过验证的rollouts来更新模型。

协调机制。 所有的协调都通过与S3兼容的对象存储(例如,Cloudflare R2)进行,它作为检查点和rollout数据的共享层。

B.2 异步训练架构

设计理念。 grail采用完全异步的设计,训练器可以连续运行而不会出现同步停顿。矿工和训练器仅在窗口边界(大约每6分钟)同步一次,但训练器从不阻塞。相反,它持续从一个重放缓冲区中采样,而专门的后台进程处理所有的I/O。

训练器节点进程。 训练器节点运行三个并发进程:
1. 训练进程: 执行一个紧凑的循环,从重放缓冲区中采样批次并执行梯度更新。该进程从不等待I/O,从而允许在每个窗口内进行多次更新。
2. 上传进程: 异步处理检查点的序列化和上传。当训练器产生一个新的检查点时,它会被移交给这个进程而不会阻塞主进程。
3. 下载进程: 在窗口边界从存储中获取经过验证的rollouts,并将其添加到带有陈旧度元数据的重放缓冲区中。

重放缓冲区。 重放缓冲区将数据到达与训练消耗解耦。它存储来自多个窗口的rollouts,支持基于陈旧度的加权采样(偏好更新的数据),并实现了陈旧条目的自动驱逐。这种设计确保了即使在网络延迟期间,训练器也总是有可用的数据。

B.3 Rollout验证

验证机制。 验证者使用一种名为grail Proof的轻量级加密机制来验证rollouts是否源自正确的模型检查点:
- 为每个token选择前32个隐藏状态维度。
- 应用对数量化来处理重尾的激活分布。
- 为每个token生成4字节的加密草图(约148位的安全性)。
- 使用自适应容差来解决不同硬件上的数值漂移问题。

目的。 这种验证确保了矿工不能提交从过时或修改过的检查点生成的rollouts。

C 实验细节

C.1 硬件配置

配置差异。 我们为稀疏性分析(第3节)和分布式同步实验(第4节)使用了不同的硬件配置。

稀疏性分析(第3节)。 对于受控的稀疏性实验,我们使用两块NVIDIA A100 80GB GPU:一块用于训练,另一块用于推理/评估。这种设置确保了在不同模型大小和训练配置下对权重更新稀疏性的可复现测量。

分布式同步(第4节)。 对于分布式部署实验,训练器进程运行在一块NVIDIA H200 GPU上。推理节点是完全去中心化和匿名的,它们自愿参与网络,不披露其硬件规格。训练器和推理节点之间的网络带宽约为400 Mb/s。存储使用与S3兼容的对象存储进行检查点分发。

C.2 训练超参数

配置。 我们采用了标准的GRPO配置,如表4所示。为了确保我们的稀疏性分析能捕捉到优化过程的内在行为,我们在主要测量期间将权重衰减和KL惩罚项$\beta$设置为零。

表4:GRPO实验的训练超参数。这些是稀疏性分析(第3节)中使用的默认值。去中心化实验(第5节)使用了更低的学习率1 × 10−6。
表4:GRPO实验的训练超参数。这些是稀疏性分析(第3节)中使用的默认值。去中心化实验(第5节)使用了更低的学习率1 × 10−6。

C.3 奖励公式

方法。 我们对数学推理和代码生成任务都使用了可验证的奖励。

图11:标准GRPO在(a)模型架构和大小,(b)迭代次数,和(c)学习率下的整个训练过程中的梯度稀疏性。
图11:标准GRPO在(a)模型架构和大小,(b)迭代次数,和(c)学习率下的整个训练过程中的梯度稀疏性。

数学推理 (MATH)。 对于数学任务,我们使用一个包含四个部分的复合奖励:正确性(70%权重)、答案格式(15%权重)、思考过程存在(10%权重)和无尾随惩罚(5%权重):

$$R_{\text{math}} = 0.7 \cdot C_{\text{correct}} + 0.15 \cdot F_{\text{format}} + 0.1 \cdot T_{\text{thinking}} + 0.05 \cdot P_{\text{no-trailing}}$$

其中 $C_{correct} \in [0, 1]$ 是通过对最终答案进行归一化后的字符串匹配来验证的。

代码生成 (MBPP)。 对于代码生成任务,我们使用基于测试通过率(70%权重)、语法有效性(10%权重)、解决方案格式(10%权重)和思考过程存在(10%权重)的复合奖励:

$$R_{\text{code}} = 0.7 \cdot C_{\text{pass}} + 0.1 \cdot S_{\text{valid}} + 0.1 \cdot F_{\text{format}} + 0.1 \cdot T_{\text{thinking}}$$

其中 $C_{pass}$ 是生成代码通过的单元测试的比例。

C.4 软件环境

工具栈。 稀疏性分析(第3节)使用TRL【【索引编号:38,TRL: Transformer reinforcement learning,2020,https://github.com/huggingface/trl】】进行GRPO训练。去中心化实验(第5节)使用grail【【索引编号:33 ,grail-v0: How we built a fully open, incentivized, decentralized reinforcement learning system,2025,Templar Research Blog】】,该框架集成了PULSE以实现稀疏检查点同步。

环境版本。
Python : 3.10.12
PyTorch : 2.2.0
CUDA : 12.1
transformers : 4.38.0
zstandard : 0.22.0

D 扩展结果

D.1 梯度与参数变化稀疏性

核心发现。 为了理解参数稀疏性的机理来源,我们单独分析了优化器处理之前的梯度稀疏性。梯度几乎是完全密集的(约99%非零),然而参数更新却是高度稀疏的(约97%未变)。图11在广泛的训练配置中可视化了这一行为,证实了密集梯度是标准GRPO的一个普遍属性。BF16吸收机制(第3.3.1节)解释了从密集梯度到稀疏权重更新的转变:密集梯度产生的更新对于大多数参数来说,都低于可表示的阈值。

对系统设计的影响。 这对系统设计具有实际意义。梯度压缩技术【【索引编号:16,QSGD: Communication-efficient SGD via gradient quantization and encoding,2017,Advances in Neural Information Processing Systems】,【索引编号:17,Deep gradient compression: Reducing the communication bandwidth for distributed training,2018,International Conference on Learning Representations】】将比参数变化压缩实现低得多的压缩率,因为梯度在整个训练过程中都保持密集。

图12:不同模型规模的训练曲线。
图12:不同模型规模的训练曲线。

D.2 各模型规模的训练曲线

验证训练时长。 为了验证我们400步的训练时长能够捕捉到有意义的学习动态,我们展示了稀疏性分析中使用的所有模型家族和尺寸的pass@1准确率曲线。

学习动态分析。 图12显示,所有模型都表现出相似的学习动态:在最初的100-200步中迅速提升,随后逐渐收敛。到第400步时,所有模型规模和家族的性能都已基本稳定,这证实了我们的实验时长足以捕捉到稳定阶段的稀疏性行为。这种跨架构(Qwen, Llama, Gemma)和规模(0.5B-7B)的一致性让我们相信,我们的稀疏性观察反映的是收敛的训练状态,而非短暂的早期训练伪影。

E 方法细节

E.1 GRPO公式

优势估计。 GRPO通过从组相对奖励中估计优势,消除了对独立价值网络的需求。我们遵循DAPO【【索引编号:22,DAPO: An open-source LLM reinforcement learning system at scale,2025,arXiv】】的方法,使用不对称的裁剪界限 $\epsilon_{low}$ 和 $\epsilon_{high}$ 来鼓励探索。目标函数为:

$$ \mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}_{x \sim \mathcal{D}, \{y_i\}_{i=1}^G \sim \pi_{\theta_{\text{old}}}(\cdot|x)} \left[ \frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \left\{ \min \left[ r_{i,t}(\theta) \hat{A}_i, \text{clip}(r_{i,t}(\theta), 1-\epsilon_{\text{low}}, 1+\epsilon_{\text{high}}) \hat{A}_i \right] \right. \right. $$

$$ \left. \vphantom{\frac{1}{G} \sum_{i=1}^G \frac{1}{|y_i|} \sum_{t=1}^{|y_i|}} \left. - \beta D_{\text{KL}} [\pi_\theta || \pi_{\text{ref}}] \right\} \right] $$

其中 $\{y_i\}_{i=1}^{G}$ 是给定提示 $x$ 的 $G$ 个采样响应,重要性权重比为:

$$r_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t}|x, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t}|x, y_{i,<t})}$$ <p>第 $i$ 个响应的优势 $\hat{A}_i$ 是相对于组统计数据计算的:

$$\hat{A}_i = \frac{r(x, y_i) - \mu_G}{\sigma_G}, \quad \text{where} \quad \mu_G = \frac{1}{G} \sum_{j=1}^G r(x, y_j), \quad \sigma_G = \sqrt{\frac{1}{G} \sum_{j=1}^G (r(x, y_j) - \mu_G)^2}$$

裁剪与正则化。 裁剪机制防止了过大的策略更新,不对称的界限 ($\epsilon_{high} > \epsilon_{low}$) 放宽了上限以减轻熵崩溃。KL惩罚(由$\beta$控制)则对偏离参考策略 $\pi_{ref}$ 的行为进行正则化。

表5:各组件对压缩率的贡献。每行增加一个转换。稀疏率是相对于COO基线的;Δ显示了增量改进。所有测量均使用zstd-1(n=270)。
表5:各组件对压缩率的贡献。每行增加一个转换。稀疏率是相对于COO基线的;Δ显示了增量改进。所有测量均使用zstd-1(n=270)。

E.2 索引编码

方法。 我们使用增量编码(delta encoding)来提高索引的压缩率:
1. 按升序对索引进行排序。
2. 第一个索引按原样存储(4字节)。
3. 后续索引存储为与前一个索引的差值。
4. 对差值使用可变长度编码。

效果。 在使用zstd压缩之前,这种方法通常能将索引存储空间减少40-60%。

E.3 内存管理

内存开销。 PULSE方法需要维护前一个检查点以计算稀疏增量。内存开销是最小的:
- 训练节点:在GPU上维护当前权重,在固定的CPU内存中维护前一个权重。与标准训练相比,这导致总内存开销约为模型大小的1.1倍。
- 推理节点:加载一次基础权重,并就地应用传入的增量。初始加载后不需要额外的权重副本。

E.4 压缩消融研究

引言。 本节提供了对第3.4节中总结的压缩流程的全面消融研究。我们分析了:(1)各组件对压缩率的贡献,(2)稀疏表示格式的选择,(3)与帕累托分析的完整算法比较,以及(4)不同模型的差异。

方法论。 我们在来自3个模型家族(Qwen2.5, Gemma3, LLaMA3.2)的14个实验中的稀疏增量检查点上测量了压缩性能,每个实验有20个检查点文件(5个均匀间隔的步骤 × 4个种子)。我们测试了6种稀疏表示 × 5种压缩算法 = 30种组合,总共进行了8100次测量。计时测量在AMD EPYC 7763处理器上进行,包括1次预热和3次测量迭代,并验证了所有情况下decompress(compress(x)) == x。

压缩率定义。 在本节中,稀疏率 指的是对稀疏表示本身的压缩(压缩后的字节数 / COO基线字节数),而全量率指的是相对于密集BF16模型的压缩(密集模型字节数 / 压缩后的字节数)。

E.4.1 组件贡献分析

流程。 压缩流程在熵编码之前应用了几个转换。表5显示了使用zstd-1在所有模型上(n=270)每个组件的增量贡献。

索引排序。 按升序对索引进行排序本身没有直接的大小影响,但它使得增量编码成为可能。

表6:使用int32索引和zstd-1的稀疏表示格式比较(n=270)。
表6:使用int32索引和zstd-1的稀疏表示格式比较(n=270)。
表7:使用我们默认表示法的压缩算法比较(n=270)。稀疏率是相对于COO基线的;全量率是相对于密集BF16模型的。
表7:使用我们默认表示法的压缩算法比较(n=270)。稀疏率是相对于COO基线的;全量率是相对于密集BF16模型的。

增量编码。 我们不存储绝对索引,而是存储第一个索引以及后续的差值。由于变化的参数倾向于聚集,差值很小且易于压缩。这贡献了+13.3%的改进。

类型缩减。 对于COO格式,我们将行增量存储为uint8,列增量存储为uint16,利用了连续变化很少跨越超过255行或65,536列的事实。这额外贡献了+8.5%的改进,并且还提高了编码吞吐量(处理的数据更小)。

总改进。 完整的流程(增量编码 + 类型缩减)相比原始基线将稀疏压缩率提高了+22.9%(从2.71倍提高到3.33倍)。

E.4.2 稀疏表示格式比较

策略对比。 我们比较了两种稀疏表示策略:(1)2D COO:存储每个张量的(行,列)坐标;(2)1D Flat:将所有张量展平,存储全局索引。表6展示了在公平比较(两者都使用int32索引)下的结果。

发现。 当使用相同的索引类型时,1D Flat比2D COO实现了+3.9%的更好压缩,因为全局索引使得跨张量边界的增量编码效果更好。然而,2D COO支持类型缩减(uint8行增量,uint16列增量),这对于扁平索引更难实现。我们的默认配置使用带有类型缩减的COO(3.33倍),其性能优于使用int32的flat(3.19倍)。

E.4.3 完整算法比较

结果。 表7比较了使用我们默认表示法(delta_coo_downscaled)的压缩算法。我们标记了帕累托最优的配置。

关键观察。
- gzip-6 从不是帕累托最优的:zstd-1实现了相同的压缩率(3.33倍 vs 3.32倍),但编码速度快38倍(534 vs 14 MB/s)。
- snappy/lz4 用于速度:在高带宽下,snappy(1041 MB/s)或lz4(830 MB/s)尽管压缩率较低,但能最小化总传输时间。
- zstd 在中等范围占优:zstd-1为典型的云带宽(15 Mbit/s–1 Gbit/s)提供了最佳的权衡。

E.4.4 分模型剖析

结果。 表8显示了不同模型家族的压缩情况。

表8:使用zstd-1默认配置的各模型压缩情况。
表8:使用zstd-1默认配置的各模型压缩情况。

观察。 LLaMA3.2由于其高稀疏性(99.3%)和有利的权重分布,实现了最高的整体压缩率(100倍)。在不同模型家族中测得的76-100倍的范围与理论预期一致:更高的稀疏性产生更高的压缩率。这种变化反映了不同架构在稀疏水平和权重值分布上的差异。

E.4.5 带宽依赖的算法选择

原理。 最佳算法取决于带宽。总传输时间为:

$$T_{\text{total}} = T_{\text{encode}} + \frac{S_{\text{payload}}}{R \cdot B} + T_{\text{decode}}$$

其中 $S_{payload}$ 是未压缩的稀疏负载大小,$R$ 是压缩率,$B$ 是带宽。在高带宽 $B$ 下,编码时间占主导;在低带宽 $B$ 下,传输时间占主导。图13可视化了在不同带宽层级下的选择过程。

图13:带宽感知的算法选择。
图13:带宽感知的算法选择。

交叉点公式。 两种算法A和B总传输时间相等的交叉带宽可以解析推导。设 $T_A = T_B$ 并解出带宽:

$$B_{\text{crossover}} = \frac{S_{\text{payload}} \cdot (R_A^{-1} - R_B^{-1})}{(T_{\text{enc}, A} + T_{\text{dec}, A}) - (T_{\text{enc}, B} + T_{\text{dec}, B})}$$

交叉点。 根据我们的经验基准(194 MB负载,默认配置):
- zstd-3 → zstd-1: 约15 Mb/s(低于此值,zstd-3略好的压缩率胜出)
- zstd-1 → lz4: 约800 Mb/s(高于此值,lz4更快的编码速度胜出)

这些交叉点随负载大小而变化;更大的负载会将交叉点推向更高的带宽。

需要:当前权重 Wt, 先前权重 Wt-1
确保:稀疏增量 Δ = (I, V, S), 哈希值 h
1: I ← ∅; V ← ∅; S ← ∅
2: for each parameter tensor p ∈ params(Wt) do
3:   M ← {i : Wt[p]i ≠ Wt-1[p]i}   ▷ 查找变化的位置 (按位)
4:   if |M| > 0 then
5:     I[p] ← M; V[p] ← Wt[p][M]; S[p] ← shape(Wt[p])
6:   end if
7: end for
8: Δ ← COMPRESS((I, V, S)); h ← SHA256(Wt)
9: return Δ, h

算法3 稀疏增量应用

需要:基础权重 Wbase, 稀疏增量 Δ = (I, V, S)
确保:重构后的权重 Wrecon
1: Wrecon ← COPY(Wbase)
2: for each parameter p with changes in Δ do
3:   Wrecon[p][I[p]] ← V[p]   ▷ 直接赋值
4: end for
5: return Wrecon

为何zstd-1是默认选项。 大多数部署环境的带宽在15-800 Mb/s范围内(商用互联网、跨数据中心链路)。在这个范围内,zstd-1在实现79倍全量压缩的同时,最小化了端到端的延迟。具有不同带宽配置的用户可以通过配置覆盖默认设置。

E.5 算法

(算法伪代码已在E.4节末尾和方法论的图1中给出)

F 与相关方法的比较

与梯度压缩的主要区别。 (1) 我们操作的是权重差异,而不是聚合前的梯度;(2) 我们的方法是无损的;(3) 我们利用的是领域特定的结构(RL稀疏性),而不是通用压缩。

核心创新。 我们的核心创新是存储实际值而不是差异,这使得无损的多跳重构成为可能。

G 分布式同步细节

引言。 本节提供了第4.2节中描述的分布式同步协议的实现细节。我们涵盖了:(1)正式的同步协议,(2)如何选择锚点间隔,(3)完整性验证机制,(4)故障恢复策略,(5)端到端延迟分析,(6)存储格式规范,以及(7)保留策略。

G.1 分布式同步协议

协议运作。 PULSE同步协议在训练和推理节点之间异步运行。训练节点将检查点发布到共享存储,而推理节点独立地拉取更新。这种解耦设计允许训练和推理独立扩展。

协议形式化。 算法4形式化了该协议。关键参数是:$W_t$(步骤t的权重)、$k$(锚点间隔)和$h_t$(完整性哈希)。该协议区分了快速路径(单个增量应用)和慢速路径(锚点下载加增量链)。

算法4 分布式同步协议
算法4 分布式同步协议

就绪标记。 协议使用明确的就绪标记来确保原子性。一个检查点只有在其所有组成文件都已上传后才被认为是可用的。这可以防止推理节点读取部分上传的检查点。

并发上传。 在锚点窗口,FULL和DELTA检查点都会被上传。DELTA上传同步进行,而FULL上传在后台异步运行。这确保了即使大的FULL上传很慢,增量链也不会中断。

G.2 锚点间隔选择

权衡因素。 锚点间隔 $k$ 决定了发布完整检查点的频率。选择时涉及三个权衡:
- 冷启动延迟:新节点必须下载一个锚点和最多 $k-1$ 个增量。对于一个7B模型,这是14 GB + $(k-1) \times 108$ MB。
- 存储:在 $n$ 个步骤中,存储量约为 $\lceil n/k \rceil \times 14$ GB + $n \times 108$ MB。
- 训练器上传带宽:完整检查点比增量大约130倍,所以较小的 $k$ 会给训练器带来显著的上传负担。

实践指南。 在带宽受限的场景(PULSE的主要用例)中,通常倾向于选择较大的 $k$。处于稳定状态的推理节点无论 $k$ 值如何都使用快速路径(单个增量),因此锚点间隔只影响冷启动和训练器上传。我们在实验中使用 $k=50$,在合理的冷启动时间(在400 Mbit/s下约5分钟)和最小的训练器开销之间取得了平衡。

图14:检查点链结构。
图14:检查点链结构。

G.3 完整性验证

问题背景。 检查点在传输过程中或因恶意存储提供商可能被损坏。PULSE采用多级完整性验证。

文件级完整性。 每个检查点都包含一个签名的清单文件,其中包含所有文件的SHA256哈希值。该清单由训练器的加密密钥签名,防止存储提供商篡改。

权重级完整性。 每个增量都包含应用后生成权重的SHA256哈希值:

$$h_{t}=\mathrm{SHA} 256\left(\mathrm{CONCAT}\left(\left\{W_{t}[p]: p \in \text { params }\right\}\right)\right)$$

端到端验证。 这实现了端到端的验证:在应用增量链后,消费者验证重构的权重是否与预期的哈希匹配。哈希不匹配会触发自动回退到慢速路径(从锚点重新下载)。

确定性哈希。 为了确保哈希在不同硬件上的可复现性,我们使用确定性的序列化顺序和规范的字节表示。哈希是在原始的BF16比特模式上计算的,确保了比特级的一致性。

G.4 故障恢复

增量上传失败。 如果增量上传失败,系统会回退到上传一个完整的检查点。这确保了即使在网络不稳定的情况下,链也保持有效。

哈希验证失败。 如果推理节点检测到哈希不匹配,它会丢弃损坏的状态,并从最近的锚点重新同步。这种自愈行为确保了最终的一致性。

网络分区。 推理节点独立运行,可以容忍任意的网络分区。重新连接后,它们会同步到最新的检查点,必要时使用慢速路径。

G.5 端到端延迟分析

测量。 我们在400 Mb/s网络带宽的商用硬件上测量了端到端的同步延迟。表9分解了三种场景下的延迟。

表9:7B模型同步的端到端延迟分解(400 Mb/s网络)。慢速路径假设恢复需要应用9个增量。
表9:7B模型同步的端到端延迟分解(400 Mb/s网络)。慢速路径假设恢复需要应用9个增量。

快速路径的主导地位。 在稳态操作中,推理节点专门使用快速路径,在约4秒内完成同步。与下载完整的14 GB检查点相比,这代表了超过100倍的速度提升。

并行化。 增量下载和应用可以流水线化:在应用增量 $i$ 的同时,并行下载增量 $i+1$。在我们的实现中,这使得慢速路径的延迟减少了约30%。

G.6 保留策略

问题。 如果不进行清理,存储空间会线性增长。PULSE实现了一个自动保留策略。

增量保留。 保留最近的100个增量检查点。更早的增量会被删除,但如果任何保留的增量引用了它们的锚点,这些锚点将被保留。

锚点保留。 保留最近的10个完整检查点,以及被保留增量引用的任何锚点。

存储上限。 使用默认设置,一个7B模型的最大存储量为:

$$S_{\max } = 10 \cdot 14 \text{ GB} + 100 \cdot 108 \text{ MB} \approx 151 \text{ GB}$$