通过Hub Bucket传输万亿参数:TRL中的Delta权重同步

异步RL训练有个脏秘密:每一步训练器都要把整个模型发给推理引擎。一个7B模型在bf16下是14 GB,一个1T前沿模型则高达1 TB。但这篇文章证明你其实不需要这么做。核心发现来自bf16的数学特性:bf16只有7位尾数,相邻可表示值之间的间距大约是|w|/256。而在RL的学习率下(约3×10⁻⁶),大多数权重更新都低于这个可见阈值,直接被舍入吸收。换句话说:优化器在低语,bf16根本听不见。实测Qwen3-0.6B每步有效载荷从1.2 GB降到20-35 MB,99%的权重位级不变。

实现上,他们用optimizer钩子记录bf16权重在每步前后的变化,生成稀疏mask。权重以稀疏safetensors格式(存储changed indices和values对)上传到Hugging Face Bucket,vLLM端只需30行扩展实现DeltaWeightTransferEngine,从bucket下载并重建完整张量。最关键的是:训练器和推理引擎从不需要直接通信,它们都只跟bucket说话。这意味着推理集群可以放在另一个区域、另一朵云,甚至在Hugging Face Space里。

他们真的跑了一个端到端demo:训练器在本地单GPU,vLLM跑在L4的Docker Space里,Wordle环境跑在另一个CPU Space,三者通过一个Hub bucket连接,全程没有共享网络、没有RDMA、没有VPN。训练收敛,inference暂停窗口稳定在约1秒。代码已合并进TRL PR #5417。

Shipping a Trillion Parameters With a Hub Bucket: Delta Weight Sync in TRL

查看原文