INTELLECT-1: Training a 10B Model Across 3 Continents
速读卡片 (TL;DR)
一句话: 用 DiLoCo + int8 ring-all-reduce + 弹性 process group, 把 10B Llama-3-类模型横跨 5 国 3 大洲、最多 14 个动态进出的节点训练 1T tokens, 通信带宽相比标准 data parallel 砍掉 400×, 全球 MFU 仍达 36%。
立场: 这是一份系统工程报告, 不是新算法。亮点不在 DiLoCo 本身, 而是在 "公共互联网 + 不可靠节点 + 单机 8×H100" 这种从未被严肃认真处理的环境下, 把训练真正跑出来的工程实现 (PRIME framework + ElasticDeviceMesh)。
1 · 动机: 为什么去中心化, 以及为什么这事不平凡
1.1 历史脉络: 从单卡到 InfiniBand 的一路爬坡
过去十年大模型训练的所有"加速史"本质都是把通信塞进越来越快的内网:
- 2017 之前: 单机多卡, NVLink (300 GB/s), 通信几乎免费。
- 2018–2020: 多机数据并行 + AllReduce。InfiniBand HDR (200 Gb/s) → NDR (400 Gb/s) → 现在的 3.2 Tb/s。Megatron-LM、DeepSpeed、FSDP 这套栈的设计前提都是"网内带宽接近 NVLink"。
- 2022 起: Tensor + Pipeline + Data 三维并行, 跨机通信粒度更细 (每 layer / 每 microbatch 一次), 进一步绑定到内网。
- 2023–2024: 训练集群规模到 32k GPU, 但全部来自同一家公司、同一个数据中心、同一根光纤。
这条爬坡曲线带来一个隐含假设: "训练 = 高带宽内网", 强到没人会去问"如果带宽掉一千倍呢?"
2024 年开源社区开始反问这个假设, 因为:
- 前沿模型训练成本飙到 $100M+, 只有 5 家公司付得起。
- 开源生态有大量散落的 H100 节点 (Hugging Face, Together, Arcee, 个人捐赠者), 但没有一根 IB 把它们连起来。
- DiLoCo (Douillard 2024) + OpenDiLoCo (Jaghouar 2024) 在算法层证明: 不需要每步同步, 模型也能收敛。
INTELLECT-1 是把这条算法路线真正在野外跑出来的第一个 10B 规模实验: 5 国 3 洲, 30 家算力贡献方, 14 个并发节点, 1T tokens。
1.2 别的方案为什么"够呛"
| 方案 | 跨洲带宽够不够 | 动态节点 | 致命问题 |
|---|---|---|---|
| 标准 Data Parallel (PyTorch DDP) | 远远不够 — 每步都要 all-reduce 整个 gradient (10B 模型 = 20 GB / step in fp16) | 不支持 | 500 Mb/s 链路上, 一次 all-reduce 要数十分钟; 计算时间 1 分钟。通信比 ≈ 50:1。 |
| FSDP (Fully Sharded DP) | 更糟 — 每个 layer 都要 all-gather 参数, 比 DDP 通信还频繁 | 不支持 | 诞生就是为了挤压 NVLink 带宽; 公网上是反向优化。 |
| Pipeline Parallelism (GPipe / 1F1B) | 不行 — 每个 microbatch 在 stage 间传 activation | 极难 | P2P 带宽延迟敏感; 跨洲 100ms 延迟会让 pipeline bubble 爆炸。 |
| Tensor Parallelism (Megatron) | 完全不行 | 不支持 | 每个 matmul 都要 all-reduce 中间结果, 必须 NVLink 级别。 |
| Federated Learning (FedAvg) | 够 — 通信非常稀疏 | 支持 | 设计给 non-IID + 隐私场景; 收敛速度慢 2–5×, 不适合从零预训练。 |
| Async SGD (Hogwild! / Hivemind) | 够 | 支持 | 梯度 staleness 在 10B 规模上会显著伤收敛; 实际只有 MoE / embedding 这类容易并行化的层用得起。 |
| DiLoCo (本文) | 够 — 每 H=100–500 步同步一次 | 支持 (本文新增) | 需要内/外两层 optimizer + 大量 CPU 内存放伪梯度 |
1.3 为什么"naive sync 跨洲不可能" — 算一笔账
来一个具体的数字推演, 体会一下问题的尺度:
- 10B 参数, fp16 权重 = 20 GB; bf16 gradient 也是 20 GB。
- 标准 DDP: 每个训练 step 都要做一次 all-reduce, 通信量 ≈ 2×(N−1)/N × 20 GB ≈ 40 GB (N=节点数, ring all-reduce 数学)。
- 跨洲带宽: 论文实测 500 Mb/s 到 4 Gb/s。取中位 1 Gb/s。
- 40 GB = 320 Gbit, 单链路 1 Gb/s → 320 秒一次同步。
- 10B 模型在 8×H100 上一次 forward+backward 约 1 秒。
- 通信:计算 = 320:1。GPU 99.7% 时间在等网络。
对比内网 (3.2 Tb/s):
- 40 GB / 3.2 Tb/s ≈ 0.1 秒, 通信:计算 = 0.1:1 → 还能 overlap。
三个数量级的带宽差异直接让 DDP 在公网"不可行", 不是慢, 是根本跑不动。
DiLoCo 的关键算法贡献: 把同步频率从"每 step"降到"每 H=100 step", 通信量从 40 GB/step 降到 40 GB / 100 step = 0.4 GB/step。再叠加 int8 量化 4× = 0.1 GB/step, 这就是论文宣称的 400× 通信带宽缩减。
2 · 背景速查
2.1 关键术语
| 术语 | 含义 |
|---|---|
| DiLoCo | Distributed Low-Communication training (Douillard 2024)。Local SGD 的现代版: 每个 worker 跑 H 个 inner step (AdamW), 然后用 outer optimizer (Nesterov) 同步一次。 |
| OpenDiLoCo | 本团队 2024 年的开源复现 (Jaghouar et al.), 在 1B 规模上验证 DiLoCo 跨洲可行。INTELLECT-1 是它的 10× 放大版本。 |
| PRIME | 本论文的训练框架名, 含 ElasticDeviceMesh + int8 all-reduce + fault tolerance。 |
| ElasticDeviceMesh | PyTorch DeviceMesh 的弹性变体: 节点数动态可变, 同时管理 intra-node FSDP 组和 inter-node DiLoCo 组。 |
| Pseudo-gradient | DiLoCo 里跨节点同步的不是普通梯度, 而是 H 步内 inner optimizer 累积出来的参数变化量 Δθ = θ⁽ᵗ⁻¹⁾ − θᵢ⁽ᵗ⁾。 |
| Inner / Outer optimizer | Inner = 每个 worker 本地的 AdamW (跑 H 步); Outer = 跨 worker 同步用的 Nesterov SGD (每 H 步跑 1 步)。 |
| FSDP / FSDP2 | Fully Sharded Data Parallel, PyTorch 的内存高效分片方案。FSDP2 是新一代 (DTensor based)。本文用 FSDP2 处理节点内。 |
| Ring All-Reduce | 所有节点排成环, 每节点只与左右邻居通信, 总通信量 2(N−1)/N × |G|, 是公网上对带宽利用最友好的 collective。 |
| Heartbeat / deathrattle | 本文的容错机制: 每个节点每 2s 向 master KV store 发心跳, 6s 无心跳即视为故障; 优雅退出时主动发"死亡声明"加速移除。 |
| Hivemind | Ryabinin 团队 (Together AI) 的去中心化训练库, 早期 baseline。 |
| Tailscale | 基于 WireGuard 的 mesh VPN, 本文用它给所有节点建立私网 (Gloo collective 库要求节点处于同一私网)。 |
| MFU | Model FLOPS Utilization = 实际 throughput / 理论 peak FLOPS。论文报 36–41%。 |
2.2 DiLoCo 算法回顾
DiLoCo 把训练分成两层:
for worker i = 1...k (并行):
θᵢ ← θ⁽ᵗ⁻¹⁾
for inner step h = 1...H:
θᵢ ← AdamW(θᵢ, ∇L(xᵢ, θᵢ))
Δ⁽ᵗ⁾ ← (1/k) Σᵢ (θ⁽ᵗ⁻¹⁾ − θᵢ) # pseudo-gradient
θ⁽ᵗ⁾ ← Nesterov(θ⁽ᵗ⁻¹⁾, Δ⁽ᵗ⁾)
关键洞察: Inner SGD 走得越远, outer 同步越像一个"路径平均"而不是"梯度平均", 这一现象在 Local SGD (Stich 2019) 里有理论保证。代价: 在 batch 总量相同时, DiLoCo 比 DDP 的 sample efficiency 低一点点 (论文不展开, OpenDiLoCo 报 < 5%); 收益: 通信频率降到 1/H。
3 · DiLoCo 的内外两层优化器拆解
3.1 数据流 — 一个具体 outer step 的轨迹
3.2 Worked example: 跟踪一个具体的参数张量
设第 5 层的 attention output projection W ∈ ℝ⁴⁰⁹⁶ˣ⁴⁰⁹⁶, fp32 大小 = 64 MB。
- t=0 起点: 所有节点的 W 完全相同 (来自上一次 outer step 的同步, 或初始化)。
- Inner step 1 (worker 0, USA): 一个 batch 在 GPU 上跑 forward+backward, AdamW 更新 W → W' (差异 ~1e-5 量级)。
- Inner step 2..100 (worker 0): 继续, 每步差异累积。100 步后 W 与 t=0 的版本差异 ~1e-3 量级。其他 worker 在用不同的数据 shard做同样的事, 所以 100 步后 3 个 worker 的 W 已经显著分叉。
- Inner 完成 → CPU offload: Worker 0 计算 Δ₀ = W₀⁽⁰⁾ − W₀⁽¹⁰⁰⁾ ∈ ℝ⁴⁰⁹⁶ˣ⁴⁰⁹⁶, 这就是 pseudo-gradient。值的分布: 大致零均值, std ~1e-3。
- Int8 量化: 计算 µ ≈ 0, σ ≈ 1.2e-3。range = [−7.2e-3, 7.2e-3], 256 个 bucket, 每个 bucket 宽 ~5.6e-5。Δ₀ 量化成 uint8, 大小变成 16 MB (4× 缩减)。
- Ring all-reduce: 3 个 worker 的 Δ 在环上传一圈, 累加成 Δ̄ = (Δ₀ + Δ₁ + Δ₂) / 3 (累加在 fp32 中做, 仅传输 int8)。
- CPU 上 outer step: Nesterov 优化器把 Δ̄ 应用到 θ⁽ᵗ⁻¹⁾。本文用的超参: outer LR = 0.7, momentum = 0.9。
- θ⁽ᵗ⁾ 同步回 GPU: 所有 worker 复制更新后的 W 进入下一个 outer step。
3.3 反向论证: 为什么 outer LR = 0.7 这么大?
普通 SGD/Adam 的 LR 一般 1e-4 数量级, 这里 outer LR = 0.7 看起来像疯了。直觉:
- Inner optimizer (AdamW) 已经在参数空间移动了相当大的距离 (100 步累积)。
- Pseudo-gradient Δᵢ 不是一阶导数, 而是"如果只用我这个 shard, 100 步走多远"的位移向量。
- Outer optimizer 的工作是"在多个 shard 走出来的位移之间做加权平均", 想让最终效果接近"跑完 100 步全数据"。
- 0.7 接近 1.0 表示: 平均下来直接覆盖几乎全部位移。Nesterov 的 momentum=0.9 让多次 outer step 之间的方向有连贯性。
把 outer LR 设成 1e-4 是错的: 那相当于把 100 步本地训练的成果稀释 10000 倍, 模型几乎不动。
4 · Int8 Ring-All-Reduce: 把通信量再砍 4×
4.1 量化策略 (uniform with clipping)
- 对每个 tensor 分别算 µ 和 σ。
- 裁剪范围 = [µ − 6σ, µ + 6σ] (覆盖 ~99.9999% 数据点, 假设近高斯)。
- 把这个范围均匀分成 256 个 bucket (uint8 的码空间)。
- codebook 值 = 每个 bucket 内数据的平均值 (而不是 bucket 中点)。
这是 Hivemind (Ryabinin 2020) 的方案。"取平均而非中点"这个细节让量化误差最小化 — 它本质是把每个 bucket 的离散化误差降到该 bucket 的方差。
4.2 关键工程细节: 量化只用于传输, 累加保 fp32
论文反复强调:
(Q(a) + Q(b)) ≠ Q(a + b)
这是个简单但容易踩的坑: 如果你在量化空间里直接加, 误差会随节点数线性放大。正确做法: 接收方收到 int8 → 立即解量化回 fp32 → 在 fp32 上累加 → 发送前再量化。
4.3 数字示例
10B 模型, fp32 pseudo-gradient = 40 GB。
- Naive fp32 all-reduce, 14 节点 ring: 通信量 = 2×13/14 × 40 GB ≈ 74 GB
- Int8 量化后: 74 GB / 4 = 18.5 GB
- 跨洲 1 Gb/s 链路: 18.5 GB × 8 / 1 Gb/s ≈ 148 秒
- 实测 median: USA 内 103 秒, USA+EU 382 秒, Global 469 秒 — 与上述带宽预算量级一致, 跨洲多花的时间主要来自网络抖动 (figure 4 的长尾)。
4.4 为什么对 pseudo-gradient 量化"更安全"
权重量化 (LLM.int8 等) 在大规模训练中已知会因 outlier 累积问题伤模型质量 (Dettmers 2022, Kumar 2024)。论文的论点:
我们量化的不是权重而是权重的差分 Δθ。差分是"两个时间点权重的相对变化", outlier 在差分上比在绝对值上小得多, 量化噪声不会随训练进程系统性累积 — 每个 outer step 都是从同步点开始的"新差分"。
这个论点经验上 OK, 但论文承认没有形式化证明。1T tokens 的实验是事实证据。
5 · ElasticDeviceMesh: 双层并行的拓扑
关键工程问题: 一个节点内部 (8×H100) 想用 FSDP2 切分 10B 模型 (单卡放不下); 节点之间又要用 DiLoCo。这两套并行体系如何共存?
5.1 双重 rank 设计
每个 GPU 进程有两个身份:
local_rank: 在自己节点内的位置 (0..M-1, M=节点内卡数, 通常 8)。FSDP 用它做 intra-node all-gather/reduce-scatter。global_rank: 在所有节点间这一类 shard 的位置 (0..N-1, N=节点数)。DiLoCo 用它做 inter-node all-reduce。
5.2 工程结果
- FSDP2 让单节点能放 10B 模型 (单卡 H100 80GB 放不下完整模型, 必须 shard)。
- 跨节点同步只需传输自己持有的 shard 部分, 而非整个模型 — 通信量 / 节点数。
- 每个 shard 各自跑独立的 ring all-reduce, 互不阻塞。
6 · 容错系统: heartbeat / deathrattle / TSP 拓扑
6.1 Three failure modes 及对应机制
| 事件 | 检测方式 | 处理 |
|---|---|---|
| 新节点想加入 | 主动注册到 master KV store | P2P 下载 checkpoint (blocking, 30–60 min) → 加入下一个 outer step |
| 节点优雅退出 | "Deathrattle" 信号到 master KV | 立即从 process group 移除, 不等 timeout |
| 节点崩溃 | 2s 心跳, 6s 无响应即视为故障 | 剔除 → all-reduce 重试时排除该节点 |
| All-reduce 中节点掉 | collective op 超时 | retry, exclude failed peer; 极端情况下从 checkpoint 恢复 |
6.2 Bandwidth-aware ring topology (Hamiltonian TSP variant)
Ring all-reduce 性能由环上最弱链路决定 (因为是 sequential)。论文用一个后台进程持续测量 pairwise 带宽, 每次 outer step 前重新计算最优环序:
这是 max-min Hamiltonian cycle, NP-hard 但节点数 ≤ 14, 暴力枚举 14! ≈ 87B 太多, 但配合剪枝 (DP on subsets) 几秒内能解。
6.3 Worked example: blocking vs non-blocking checkpoint
论文同时实现了 non-blocking (新节点训练继续, 后台拉 checkpoint) 和 blocking (训练暂停, 同步拉) 两种新节点 onboard 策略。
| 策略 | cluster utilization | 稳定性 | 实际选择 |
|---|---|---|---|
| Non-blocking | 高 (训练不停) | 新加入者初始几步出现 loss spike | 弃用 |
| Blocking | 低 (整个集群停 30–60 min) | 完美同步 | 采用 |
论点: 因为 onboard 频率低 (几天一次), blocking 总损失不到 1% 训练时间, 换来稳定性更划算。这是系统设计中"理论最优 ≠ 工程最优"的典型例子。
7 · 带宽数学: 为什么标准 DP 在公网必死
7.1 关键比例
当 R < 0.1, GPU 大部分时间在算 (compute-bound, MFU 高); R > 1 GPU 大部分时间等网 (network-bound, MFU 暴跌)。
7.2 三种配置的预算
| 配置 | 同步频率 | 每次同步通信量 | 带宽 | T_comm | T_compute (100 step) | R |
|---|---|---|---|---|---|---|
| DDP, 内网 | 每 step | 40 GB | 3.2 Tb/s | 0.1s × 100 = 10s | ~38 min | 0.004 |
| DDP, 公网 | 每 step | 40 GB | 1 Gb/s | 320s × 100 = 9 hr | ~38 min | 14 |
| DiLoCo + fp32, 公网 | 每 100 step | 40 GB | 1 Gb/s | 320s = 5.3 min | ~38 min | 0.14 |
| DiLoCo + int8, 公网 | 每 100 step | 10 GB | 1 Gb/s | 80s ≈ 实测 100s | ~38 min | 0.04 |
结论: DiLoCo 的 100 步同步频率把 R 从 14 降到 0.14 (100×); int8 量化再降一档到 0.04 (4×)。两者共同把 GPU 从"99% 在等网"扭成"95% 在算"。
8 · 实战数据
8.1 三种地理拓扑的 MFU (Table 2 复刻)
| 拓扑 | MFU | Inner step time | Median all-reduce | Compute util |
|---|---|---|---|---|
| Baseline (无通信) | 43.3% | 38 min | — | 100% |
| USA-only | 41.4% | 38 min | 103 s | 95.7% |
| USA + EU (跨大西洋) | 37.1% | 38 min | 382 s | 85.6% |
| Global (USA + EU + Asia) | 36.0% | 38 min | 469 s | 83.0% |
读法: Inner step time 不变是因为它在节点内, 与跨洲网络无关。差距全在 all-reduce: 美国内 ~100s, 全球 ~470s, 4–5× 差距。MFU 从 43.3 → 36.0 损失只有 ~7 个百分点, 几乎全部由通信占比解释。
8.2 网络抖动 — 长尾比中位更头疼
Figure 4 显示 USA-only 的 all-reduce 时间相对集中 (80–180s), 但 Global 时长尾极重 (median 469s 但极端 1400s+)。这意味着训练总时间被最坏情况拖累, 不是被平均拖累。这就是为什么动态 TSP 拓扑优化 (§6.2) 重要 — 砍掉最弱链路。
8.3 节点动态 (Figure 5)
- 训练从 4 节点开始, 逐步增长到 14 节点。
- 过程中节点频繁加入/退出 (每天数次)。
- 失败模式: 一次同时丢 4/12 节点, 训练不稳定 → 从 checkpoint 恢复。
8.4 最终模型质量 (Table 3 摘要)
10B INTELLECT-1 训 1T tokens, 与同期开源 baseline:
| Model | Size | Tokens | MMLU | HellaSwag | ARC-C | GSM8K |
|---|---|---|---|---|---|---|
| INTELLECT-1 | 10B | 1T | 37.5 | 72.3 | 52.1 | 8.1 |
| MPT-7B | 7B | 1T | 26.8 | 77.4 | 46.7 | 8.3 |
| LLaMA-7B | 7B | 1T | 35.1 | 78.2 | 50.4 | 9.7 |
| LLaMA2-7B | 7B | 2T | 45.3 | 78.6 | 54.1 | 13.5 |
读法: INTELLECT-1 的 MMLU 略高于 LLaMA-7B (1T tokens 同等量级), 但落后于 LLaMA2-7B (2T tokens)。HellaSwag/ARC 略低 — 与基础 baseline 接近, 这是论文的核心声明: "去中心化训练得到的模型与同等规模 + 同等 token 数的中心化训练 comparable"。这不是 SOTA 论文, 是可行性 demonstration。
9 · 与同类工作对比
| 工作 | 定位 | 关键差异 |
|---|---|---|
| Megatron-LM (NVIDIA) | 中心化, TP+PP+DP, 最大化 IB 带宽 | 无法跑公网; 设计前提就是 1+ Tb/s 内网。INTELLECT-1 在它做不到的环境下补位。 |
| FSDP / FSDP2 (PyTorch) | 中心化, 显存高效 | 每 layer all-gather, 公网爆炸。INTELLECT-1 把 FSDP 限定在单节点内使用。 |
| DeepSpeed ZeRO | 中心化, 显存优化 | 同 FSDP, 跨节点通信密集。 |
| Hivemind (Together AI / Ryabinin) | 去中心化, async SGD + decentralized averaging | 更早的工作, 原生支持公网, 但没在 10B 规模做严肃预训练; INTELLECT-1 复用了它的 int8 量化策略。 |
| DiLoCo (Google DeepMind) | 算法层 — 内外两层 optimizer | 论文层面证明可行 (1B 规模), 但没有开源生产级实现 + 没解决 fault tolerance。 |
| OpenDiLoCo (Prime Intellect, 2024) | 本团队上一篇, DiLoCo 开源复现 | 本论文是它的 10× 放大 + 容错系统。 |
| RLHF / RLOO 中心化栈 (NeMo-RL, OpenRLHF) | 不同问题域 — 后训练而非预训练 | RL post-training 对通信容忍更高 (rollout 占大头), 但还没有公开尝试公网 RL post-training 的工作。INTELLECT-1 之后这是自然延伸。 |
| Federated Learning (FedAvg) | 同样减少同步, 但用于客户端 ML | FL 假设 non-IID + 隐私; INTELLECT-1 是 IID + 公开训练。算法本质 (LocalSGD) 是同一家族。 |
| INTELLECT-1 (本文) | 10B 规模、公网、动态节点的系统集成 | 不是新算法, 是把 DiLoCo + Hivemind 量化 + FSDP + 自研容错栈缝合到 production。 |
10 · 局限 / 个人 take / 待验证问题
论文承认或我看到的局限
- 10B 规模仍小; 真正的前沿模型 ~400B。DiLoCo 在 100B+ 是否仍 viable, 论文没数据 (但仿真层面没有明显障碍)。
- Tailscale (WireGuard VPN) 自己成了瓶颈 — 论文 §2.5 说"intercontinental data transfer 时被 Tailscale 拖累", 后续用自研 PCCL 直接走 public IP。
- Outer optimizer 的超参 (LR=0.7, momentum=0.9) 没做大量消融, 在更大规模可能要重调。
- "400× 通信缩减"实质是 100×4, 但 DiLoCo 的有效通信缩减 (考虑收敛慢) 没量化。
- 极端故障 (一次掉 4/12 节点) 仍要 checkpoint 回滚 — 真正的"continuous training under failure" 没解决。
- Blocking checkpoint onboard 30–60 min 全集群停止, 在更大集群上是个开关阻塞问题。
- Asia 节点的 all-reduce 中位 469s, p99 超过 1400s — 长尾决定上限, 实际上 Asia 节点拖累整个集群。
我的疑问 (落地后想验证)
- H=100 是个超参, 不同规模 / 不同数据 mix 下最优 H 怎么选? 论文说"up to 500" 但实际用 100, 没消融。
- Pseudo-gradient 量化的 [µ−6σ, µ+6σ] 裁剪假设近高斯, 但 transformer 在 outlier 显著的 layer (LayerNorm, embedding) 是否需要 per-tensor 不同 σ multiplier?
- Outer optimizer 用 Nesterov, 不用 Adam — 直觉是 outer step 数太少 Adam 的 second moment 估计不准。但有人试过 Adam outer 吗?
- FSDP2 单节点放 10B 没问题, 但放 70B+ 单节点就爆了, 那时需要节点内 TP, TP 又不能跨节点。在去中心化场景 70B+ 训练的拓扑是怎样的?
- Async DiLoCo (worker 不等彼此, lag 一个 outer step) 能更好处理慢节点, 论文未试。
- P2P checkpoint 30–60 min 是因为模型 ~20 GB / 1 Gb/s. 这个时间随模型规模线性增长, 100B 模型就要 5+ hr P2P, blocking 几乎不可接受。
- 对节点贡献者的激励 (Bitcoin 比喻) 这个论文只在 §4 讨论里提了一句, 但实操是 30 家自愿者 — 真正的"激励驱动 decentralized AI"还没起来。
记忆点
公式 通信缩减 = H (DiLoCo) × 4 (int8) = 400×
数字 38 min 算 : 2-10 min 通信; MFU 36-41%
关键 trick Pseudo-gradient 量化比 weight 量化安全, 因为差分上 outlier 小
工程哲学 Blocking checkpoint > non-blocking, 因为稳定性 > 利用率; outer LR=0.7 因为 pseudo-grad 本身就是大位移
陷阱 Tailscale 跨洲会自己变瓶颈; Q(a)+Q(b)≠Q(a+b), 累加必须 fp32
陷阱 Ring all-reduce 取决于最弱链路, 必须 bandwidth-aware TSP 重排
语境 内网生态 (Megatron/FSDP) 与公网生态 (DiLoCo/Hivemind) 设计目标镜像相反
精读笔记 v1 · 2026-05-07 · 配套论文 PDF 在 /data/szhang967/papers/paper-notes/INTELLECT1_2412.01152.pdf