Jiayun's Blog

探索与分享

引子:训练 10 万卡的最大瓶颈,是"等"

如果你跟在 Meta、OpenAI、Anthropic、Google 任何一家公司里训练前沿模型的工程师聊,你会听到同一种抱怨——不是 GPU 不够、不是内存不够、不是带宽不够,是"同步"

在一个 10 万卡级别的训练集群里:

  • 一张 H100 因为电源毛刺崩了 → 整个 training step 重启
  • 一根 NVLink 短暂闪断 → AllReduce timeout → checkpoint 回滚
  • 一个数据中心因为冷却故障 throttling → 全集群等它
  • 一台交换机 firmware bug → 平均训练效率从 85% 掉到 35%

这就是为什么 Meta 在训练 Llama 3 时报告 45 天里发生 419 次中断——平均每 2.5 小时一次。OpenAI 训练 GPT-5 系列时,单卡故障率约 0.5% 每天,10 万卡集群一天会有 500 次故障。这些故障在传统同步 SGD 框架里几乎都需要 回滚 + 等待 + 重做 整个 batch。

2026 年 4 月 22 日,DeepMind 在 Blog 上发布了一项看起来不太惊艳但实质上具有架构级意义的工作——Decoupled DiLoCo: A new frontier for resilient, distributed AI training。它的核心 idea 一句话:把"通信"从"计算"里剥离出来,让两者完全异步

这听起来像 1980 年代分布式系统教材里的老课题。但在 LLM 预训练这个特殊语境下,它是一场容错革命

本文要讲:

  1. 传统分布式训练的"同步劫"——为什么 DDP/FSDP 这套架构在 10 万卡时代不再够用?
  2. DiLoCo 是什么?Decoupled DiLoCo 把它带到哪里?
  3. 对"民主化训练"的真实意义——它会让初创公司也能训前沿模型吗?

一、传统分布式训练的"同步劫"

要看清 Decoupled DiLoCo 的价值,先把传统方案的痛点摆出来。

Stage 0:单机多卡(Data Parallel)

最简单的分布式:一份模型复制 N 份,每张卡跑不同的 batch,每个 step 之后 AllReduce 同步梯度。

1
2
3
4
5
6
Rank 0 ──┐
Rank 1 ──┤── AllReduce ──┐
Rank 2 ──┤   (NVLink)    │── 同步更新参数
Rank 3 ──┘               │
每个 step 必须等所有 rank 完成 + AllReduce 完成

问题:每个 step 的总时间 = max(各 rank 计算时间) + AllReduce 时间。任何一张卡慢,全部慢。

Stage 1:FSDP / ZeRO-3

模型太大,单卡装不下了。FSDP(Fully Sharded Data Parallel)把模型 shard 到不同卡,前向时 AllGather、反向时 ReduceScatter。

1
2
3
4
5
6
Rank 0 持 layer[0:8]   ┐
Rank 1 持 layer[8:16]  │── 前向每层 AllGather 参数 + 计算
Rank 2 持 layer[16:24] │── 反向每层 ReduceScatter 梯度
Rank 3 持 layer[24:32] ┘

通信量:~6× 单机情况

问题:通信 burst 集中在每个 layer,对网络抖动极其敏感。NVIDIA H100 + InfiniBand 400G 都不一定够用。

Stage 2:3D Parallelism

DP(数据并行)+ TP(张量并行)+ PP(流水线并行)三轴叠加。Megatron-LM 和 DeepSpeed 都走这条路。

1
2
3
4
5
6
7
8
TP groups (NVLink within node)
DP groups (across nodes)
PP groups (cross-node pipeline stages)

通信:
  TP: AllReduce within node, 每个 layer
  DP: AllReduce across nodes, 每个 step
  PP: P2P send/recv, 每个 micro-batch

问题:复杂度爆炸。任何 1 个节点故障,整个 3D mesh 失效,需要重新计算 mapping、reload checkpoint、重启。Llama 3 训练记录里 419 次中断,主要发生在这里。

Stage 3:跨数据中心训练?

到 10 万卡 + 跨数据中心规模,问题变成:两个数据中心之间的网络延迟有 5-50ms,AllReduce 一次梯度可能要 100ms+。传统同步 SGD 在这个延迟下完全不工作。

但市场的供给侧已经在催促跨数据中心训练:单一数据中心电力 + 散热 + 占地都到了硬上限(参见 1 周前发表的"美国电力缺口"分析)。未来必然是跨地理位置的 federated GPU mesh

这就是 DeepMind 这条 DiLoCo 路线想解决的问题。

二、DiLoCo 是什么?(2023→2024)

DiLoCo = Distributed Low-Communication training。最早 2023 年 11 月由 DeepMind 发表(Douillard 等),核心思想从联邦学习借来:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
传统同步训练(每个 step 通信):
  step 1: 计算 → AllReduce → 更新 → 通信
  step 2: 计算 → AllReduce → 更新 → 通信
  step 3: 计算 → AllReduce → 更新 → 通信
  ...
  通信频率: 每个 step
  
DiLoCo(内外两层优化):
  Worker (内层):
    for 500 steps:
      本地 SGD 更新(用 AdamW 等 inner optimizer)
    报告: 累积参数差 Δ = W_new - W_old
  
  Master (外层):
    收集所有 worker 的 Δ
    Outer optimizer (Nesterov momentum) 更新全局参数
    把新参数广播给所有 worker
  
  通信频率: 每 500 个 inner step 才一次

这种"内外两层 SGD"在数学上类似 Federated Averaging(FedAvg),但 DeepMind 团队证明在 LLM 预训练场景下,这种方法只需要 500x 更少的通信量,最终模型质量却几乎与同步训练持平(perplexity 差距 < 1%)。

DiLoCo 2024 年的主要工作是 scale 实验——证明这套方法可以用在 7B、13B 模型上。但 2024 版本还有一个核心限制:每个 outer step 还是同步的。所有 worker 必须等到 500 个 inner step 都完成、Δ 汇总完成、Master 算完之后,才能继续。任何一个 worker 慢,全员等待。

三、Decoupled DiLoCo 的真正突破(2026)

Decoupled DiLoCo 是 DeepMind 2026 年 4 月发布的下一代版本。它把"同步"从训练循环里彻底剥离:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Decoupled DiLoCo 架构(简化)
────────────────────────────────────────────────────────

  Worker A                Worker B               Worker C
  ─────────              ─────────              ─────────
  inner step             inner step             inner step
  inner step             inner step             inner step
  ...                    ...                    ...
  inner step 500         inner step 500         inner step 500
  发送 Δ_A 到 master  ┐  发送 Δ_B 到 master ┐  发送 Δ_C 到 master ┐
                      │                      │                      │
  继续 inner step 501 │  继续 inner step 501 │  继续 inner step 501 │
  inner step 502      │  inner step 502     │  inner step 502     │
  ...                 ↓  ...                ↓  ...                ↓
                              ┌──────────────────────┐
                              │  Asynchronous Master │
                              │                      │
                              │  收 Δ_A, 应用 outer  │
                              │  step                │
                              │  收 Δ_B, 应用 outer  │
                              │  step                │
                              │  ...                  │
                              │                      │
                              │  每次接到 worker 的  │
                              │  最新模型,单独广播  │
                              └──────────────────────┘
              Worker 收到新模型 → 应用 staleness compensation → 继续

关键创新点:

(1) Worker 之间不互相等待。Worker A 跑完一个 outer round,立刻开始下一个,不等 B/C。 (2) Master 异步聚合。任何一个 worker 上来的 Δ,Master 都立刻应用、立刻广播——但只广播给愿意接受的 worker。 (3) Staleness compensation。Worker 收到的"全局参数"可能来自 N 个 round 之前,因此需要对自己的 Δ 做时间戳补偿(DeepMind 用的是 momentum decay)。 (4) 容错原生。Worker C 挂了?Master 直接停止给它广播,B 和 A 继续训练。Worker C 重启后从最新 checkpoint 恢复,重新加入。

这套架构在 DeepMind 报告的实验中实现了:

指标DiLoCo(同步)Decoupled DiLoCo提升
通信带宽需求-500× vs DDP-500× vs DDP(同)-
容错恢复时间几十分钟几秒钟100×
跨数据中心训练困难原生支持-
Worker 故障容忍整体 fail单独 fail-
Wall-clock 训练时间(同等模型)1.0×0.87×13% 加速
最终模型质量baseline-0.4% perplexity 差距几乎持平

四、为什么这是"架构级"创新?

很多人会说:“异步 SGD 早有人做过,Hogwild! 在 2011 年就有了。“对,但是:

(1) Hogwild! 是单机多线程异步。线程之间共享内存,“读到 stale 参数"代价小。Decoupled DiLoCo 是跨数据中心,stale 数据可能延迟数十秒甚至几分钟。这是完全不同的工程挑战。

(2) 联邦学习的异步 FedAvg 早已存在。但联邦学习场景下,模型小(<100M),客户端数据非 IID,目标是隐私。Decoupled DiLoCo 是大模型预训练,数据 IID(所有 worker 看同一份训练集 shard),目标是"少同步多算力”。

(3) DeepSpeed 的 Async SGD 早期版本有过类似探索,但 DeepSpeed 团队 2024 年的论文明确表示"在 LLM 训练场景下,异步 SGD 会损失 5-10% 模型质量”。Decoupled DiLoCo 通过外层 Nesterov + staleness compensation 把这个损失压到 < 1%。

这才是真正的突破——它是第一个在"前沿 LLM 质量 + 工业规模"两个维度都被验证的异步分布式预训练方法

五、对产业的真实意义

DeepMind 团队在 Blog 里非常克制地说:“Decoupled DiLoCo enables resilient, distributed AI training across multiple data centers.” 但这句话背后的产业含义极大:

含义 1:超大模型的"地理分布"成为可能

未来 3-5 年,单一数据中心的电力上限大概在 1-2 GW(已经接近上限)。一个 1T 参数模型 + 30T tokens 的训练任务,可能需要 50-100 万张 GPU——超出任何单一数据中心容量。

Decoupled DiLoCo 让你可以:

  • 训练任务分给 5 个跨州/跨国数据中心
  • 每个数据中心 10-20 万张 GPU
  • 中心内部用 NVLink + InfiniBand 高速互联
  • 中心之间用 100Gbps 公共骨干网(足够,因为通信稀疏)
  • 任何一个中心被电网/天灾中断,其他中心继续,恢复后无缝重新加入

这等于 重新定义了"最大可训练模型"的物理上限——之前的上限由"最大单数据中心电力"决定,现在由"全球数据中心总和"决定。

含义 2:开放训练的协议级可行性

Together AI、Hyperbolic、Bittensor、Flock.io 等"去中心化训练"项目,过去一直被同一个问题卡住:全球分散的 GPU 之间网络延迟太高,同步 SGD 不工作

Decoupled DiLoCo 的异步特性 + 500x 通信降低 + staleness 容忍,让这些"分布式训练协议"第一次有了在大模型上 work 的数学基础

具体可以预期:

项目Decoupled DiLoCo 前Decoupled DiLoCo 后
Bittensor subnet 训练规模<7B 模型30-70B 可行
Prime Intellect INTELLECT-210B 模型实验直接做 70-100B
Together AI 协议训练受限于单租户集群跨租户聚合
Hyperbolic GPU marketplace推理为主训练大幅增加

这是真正的"训练民主化”——不是说每个人都能训前沿模型,而是说不必拥有 10 亿美元 GPU 集群也能参与训练 100B 级模型

含义 3:闭源 vs 开源训练的成本差异收窄

OpenAI / Anthropic / Google 训练自己的旗舰模型,依然会用单 hyperscale 数据中心 + 同步训练(因为他们能负担)。但开源社区(Mistral、Qwen 系列、DeepSeek、Llama)会越来越依赖跨节点、跨地理的训练。

Decoupled DiLoCo 让开源训练的成本下降。我估算:

  • 同等质量的 70B 模型预训练成本
    • 2024 年(同步训练 H100 集群): ~$1500-2500 万
    • 2026 年 Decoupled DiLoCo: ~$800-1500 万(节省 ~40%)
    • 主要来源:故障恢复成本下降、空闲算力利用率提升、可使用更便宜的 spot GPU

这个数字短期对 OpenAI 影响不大,但对开源生态意味着每年多 3-5 个新的 70B 级开源模型

六、技术细节:Staleness Compensation 怎么做?

这部分是 Decoupled DiLoCo 最容易被低估的工程细节。我把 DeepMind 论文里的核心公式翻译成可读的形式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
传统 outer optimizer (Nesterov):
  W_global_{t+1} = W_global_t + α × (Δ_aggregate + β × momentum)

Decoupled DiLoCo 的 staleness-aware outer optimizer:
  当收到 worker_i 在 t-k 时刻送来的 Δ_i:
  
  effective_delta_i = Δ_i × decay(k)
  其中 decay(k) = exp(-λ × k)  或类似函数
  
  W_global_{t+1} = W_global_t + α × (effective_delta_i + β × momentum_t)
  momentum_{t+1} = β × momentum_t + effective_delta_i

其中 k 是 worker_i 的 round 与当前 master round 的差距。如果 k=0(worker 完全跟上),就是普通 DiLoCo;如果 k=10(worker 落后 10 个 round),那 Δ_i 的有效权重大幅下降。

这种 “信任最新的 worker、不全盘抛弃落后的 worker” 的设计,让落后的 worker 不会拖累整体收敛,但也不会被完全浪费。

实际实验中 DeepMind 发现 λ 的最优值约为 0.05-0.1——也就是说一个落后 10 round 的 worker,贡献被衰减到 60%-37%,落后 20 round 衰减到 36%-13%。

七、跨领域类比:这像 1990 年代的 CDN

如果你看过 CDN(内容分发网络)的发展史,会发现非常相似的逻辑。

90 年代中期,每个网站的内容都从中心服务器实时分发。带宽就是瓶颈,全球用户访问体验差。

Akamai 1998 年的核心 idea 是:内容不必实时同步。我可以把内容复制到全球边缘节点,用户从最近的节点读,节点之间用低频异步同步保持最终一致性。

这听起来不惊艳——但它彻底重塑了 Web 架构。今天 80% 的互联网流量经过 CDN。

Decoupled DiLoCo 在 AI 训练里扮演同样的角色。“训练不必实时同步"是这个时代的 CDN 时刻。它不解决任何单点性能问题,但它解决了"规模上限"这个最关键的瓶颈。

八、风险与挑战

我不想把 Decoupled DiLoCo 写成银弹。它的真实风险也很明确:

(1) 工程实现极难。DeepMind 公布的是研究成果,开源实现尚未跟上。社区已经在做(HuggingFace、torchtitan、Prime Intellect 都在开发),但工程化到生产级别需要 6-12 个月。

(2) 数据 shard 的设计仍然受限。Worker 之间数据完全 IID 的假设在跨数据中心时不一定成立——不同地区的数据访问延迟不同。

(3) 收敛性证明仍然是"经验性"的。理论保证比同步 SGD 弱,特定模型架构或学习率下可能出现训练不稳定。

(4) 对外层 optimizer 的选择敏感。Nesterov、AdamW、Lion 在不同 staleness 下表现差异大,需要仔细调参。

(5) 模型架构需要兼容。Mixture-of-Experts(MoE)这类有 routing 的架构,跨 worker staleness 会让 expert balance 变差,需要额外的负载均衡机制。

这些都是可解决的问题,但 2026 年内出现"用 Decoupled DiLoCo 训练的旗舰开源模型"的概率,我估为 ~30%。2027 年大概率会有。

九、给从业者的具体建议

如果你是 AI 训练工程师

  1. 去读 DeepMind 的原论文(Decoupled DiLoCo 配套 paper 在 arXiv 上)。这是未来 3 年分布式训练的基础知识。
  2. 关注 torchtitan / OLMo / Prime Intellect 的开源实现。这些会是社区版本的 Decoupled DiLoCo 实现。
  3. 不要立刻迁移生产训练。现在 production 训练用 FSDP/DDP 仍然是正确选择。Decoupled DiLoCo 适合"中等模型 + 跨节点 + 中等优先级"任务。
  4. 理解 momentum 在异步设置下的特殊作用——这是 Decoupled DiLoCo 收敛性的关键。

如果你是 GPU 集群运营商或新创 AI infra 公司

  1. 未来 12 个月,“支持 Decoupled DiLoCo 的训练平台"是新的差异化卖点
  2. 跨数据中心带宽不再是绝对瓶颈。100Gbps 链路加上 DiLoCo 类协议足够跑大模型。
  3. Spot GPU 市场会重新活跃——异步训练可以容忍 spot 中断。

如果你是模型创业公司创始人

  1. 70B 级模型的 self-train 在 2026 下半年到 2027 年门槛会显著降低。$10M 预算可以完成。
  2. 不必再 fine-tune 别人的模型——pretrain 一个真正"自己的” 70B 模型变得可行。
  3. 关键资源不再是 GPU 数量,是数据质量

十、判断:3 年内 AI 训练的最终形态

我的预测:

2027 年中:第一个用 Decoupled DiLoCo 风格协议、跨 3+ 数据中心训练的"前沿质量"开源模型出现(70-100B)。

2028 年:Google / DeepMind 公开承认其内部某个旗舰模型(推测是 Gemini 3.5 之后某代)使用了 Decoupled DiLoCo 派生方法。

2029 年:去中心化训练协议(Bittensor、Together、Prime Intellect 等)能够在某些任务上与商业 lab 训练的模型质量打平。

这一切发生的关键前提:Decoupled DiLoCo 这条 ideas 经过开源社区的工程加固。这个加固的速度比 DeepMind 的论文重要 10 倍。

最后一句话:AI 训练里最大的革命不会来自更大的 GPU、更宽的带宽、更聪明的 optimizer。它会来自"我们终于学会不再要求所有人同步”。这是分布式系统教科书里的老课题,是 1980 年代 BGP / CRDT / Paxos 这一代分布式协议给互联网带来的同种范式转移。AI 训练这次,迟到了 30 年,但终于到来了。


参考来源