Hugging Face 团队在 TRL 中实现了一种基于 Hub Bucket 的 delta 权重同步方案。该方法利用 bf16 精度下相邻优化步骤间 99% 权重不变的特性,仅传输稀疏变化的参数,将每次同步的负载从数百 GB 降至数十 MB,极大降低了异步强化学习训练中权重同步的开销和基础设施要求。

异步强化学习(Async RL)有一个公开的秘密:每一步,训练器都必须将整个模型发送到推理引擎。对于一个 7B 参数的 bf16 模型,这是 14 GB。而对于一个前沿的 1T 参数检查点,每步可能需要传输约 1 TB。但实际情况是,相邻两步间的权重变化极小——约 99% 的 bf16 权重是位相同的。Hugging Face 团队在 TRL 中合并了一项 PR,将仅发生变化的部分编码为稀疏 safetensors 文件,上传到 Hugging Face Bucket,并让 vLLM 获取。在 Qwen3-0.6B 模型上,每步负载从 1.2 GB 降至 20 到 35 MB。他们甚至在一个完整的分部署训练中,将训练器、vLLM 推理服务器和 Wordle 环境分别放在不同的空间,权重仅通过一个 Hub Bucket 流动,无需共享集群、RDMA 或 VPN。异步 RL 的权重同步从此变得廉价。
bf16 格式有 7 位尾数。两个相邻的 2 的幂之间,可表示的值只有 128 个。一个更新如果小于某个阈值,就会被 bf16 的舍入吸收,导致字节表示不变。在 RL 常用的学习率(如 3e-6)下,Adam 优化器对单个权重的更新幅度约为 3e-6,而大部分权重的值在 1e-2 到 1e-1 之间,对应的“可见阈值”约为 4e-5 到 4e-4,远大于更新量。因此,超过 99% 的参数在每一步实际上没有变化。PULSE 论文在多个模型上实证测量,平均每步稀疏度约为 99%,标准差仅为 0.2%-0.4%。这一性质并非偶然,而是 bf16 算术的自然结果。
训练器、vLLM 推理服务器和环境三者通过一个 Hugging Face Bucket 通信。桶中存放两种文件:锚点(anchors)——每隔 N 步(默认 10 步)保存一次完整模型;增量(deltas)——其他步仅保存变化的参数索引和对应值。safetensors 格式作为网络传输格式,每个增量文件包含变化参数的索引(int32)和值(bf16)。接收方通过读取元数据中的 sparse=True/False 决定是加载完整权重还是从最近锚点基础上应用增量。
训练器通过注册优化器前后钩子,捕获参数在 bf16 下的变化掩码。先前的尝试用 Adam 的动量和方差预测变化掩码,召回率仅 30%,因此选择直接比较字节。这一步在训练器 CPU 上保留一份 bf16 快照,代价可控。
vLLM 提供了 WeightTransferEngine 抽象。TRL 实现了 DeltaWeightTransferEngine,通过 receive_weights 方法下载增量文件并应用:若是锚点则直接加载并保留快照;若是增量则读取索引和值,更新到快照的对应位置,再将完整张量传给 vLLM。该扩展通过 --worker-extension-cls 参数注册,无需 fork vLLM。
团队进行了完全分部署的训练:训练器在一台有 GPU 的机器上,vLLM 部署在一个 Hugging Face Space(L4 GPU),Wordle 环境部署在另一个 CPU Space,中间是一个 Hub Bucket。整个设置只需几条 hf 命令。训练时,推理暂停时间仅约 1.1 秒,而上传增量文件(27.4 MB)在后台完成,不阻塞推理。
这一方案使得异步 RL 训练不再需要共享集群和 RDMA。只需一块 GPU 和一个 Hugging Face 账号,即可在多地部署推理服务器。多副本推理时,所有服务器从同一桶拉取数据,Xet 内容寻址存储可去重。对于 405B 模型,全量同步约 8 秒,而 delta 路径仅需数秒,且传输的字节量减少约 130 倍。对于 1T 参数的模型,delta 路径可将同步负载从 1024 GiB 降至约 15-20 GiB,使得通过通用对象存储传输权重成为实际可行的架构。
目前存在两个 CPU bf16 快照(训练器和推理端各一个),后者在 vLLM 支持稀疏 load_weights API 后可消除。锚点频率固定,未来可改为自适应策略。多节点 FSDP2 的支持尚未验证。尝试用 Adam 统计量预测变化掩码的召回率较低,仍需改进。
PR:huggingface/trl#5417。完整 Wordle 示例见 examples/scripts/openenv/async_wordle.py。Spaces Dockerfile 见 examples/scripts/openenv/vllm_space/ 和 examples/scripts/openenv/wordle_space/。背景阅读:异步 RL 综述、Fireworks 的“1 TB 问题”博文、Cursor Composer 2 报告。
原文链接:Hugging Face
本文由前途科技编辑整理
免费获取企业 AI 成熟度诊断报告,发现转型机会
关注公众号

扫码关注,获取最新 AI 资讯
3 步完成企业诊断,获取专属转型建议
已有 200+ 企业完成诊断