PrimeIntellect-ai/prime-diloco

prime is a framework for efficient, globally distributed training of AI models over the internet.

解决的问题

Prime 是一个专为在互联网上高效、全球分布式训练 AI 模型而设计的框架。它解决了在地理上分散的节点之间训练大型模型时面临的挑战,例如网络不稳定、高延迟以及检查点和恢复的高成本。

工作原理

Prime 采用 DiLoCo(分布式低通信)方法来最小化通信开销。它实现了多项关键优化:

  • ElasticDeviceMesh:一种容错抽象,可管理动态进程组,允许节点在训练运行期间加入或离开,而无需冷启动。
  • 异步检查点:为避免阻塞主训练流程,检查点首先保存到基于 RAM 的文件系统(/dev/shm),然后异步上传到磁盘或远程存储。
  • 实时检查点恢复:加入的节点可通过旁路 HTTP 服务器从对等节点快速获取最新模型状态,从而在训练过程中中途加入。
  • 自定义 Int8 All-Reduce 内核:使用 C++ 实现的环形归约内核,将伪梯度量化为 Int8,使网络负载减少 4 倍,且不影响损失曲线。
  • 带宽优化:通过分片伪梯度(多个同时连接)和 VPN 技术优化点对点路由,最大化网络利用率。
  • 内存管理:使用 PyTorch FSDP2/DTensor ZeRO-3 在节点内 GPU 之间分片模型权重、梯度和优化器状态,并将 DiLoCo 优化器张量卸载到 CPU 内存。

适用人群

需要在多个数据中心或公共互联网上而非单一高速集群内分布训练大规模 AI 模型的研究人员和工程师。

主要亮点

  • 通过 ElasticDeviceMesh 和心跳机制实现容错训练。
  • 使用自定义 Int8 All-Reduce 内核将通信负载减少 4 倍。
  • 通过基于 RAM 的异步上传实现零阻塞检查点。
  • 实现高带宽互联网训练,美国境内数据中心间最高可达 4Gb/s。
  • 集成 FSDP2 实现高效的内存分片(ZeRO-3)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目