DeepSeek重磅公开:他们的"AI训练神器"是怎么炼成的!

大模型

picture.imageDeepSeek 刚刚公开了他们的"秘密武器"是如何打造的!

这事儿有多火?

他们就放出了一个 GitHub 仓库,里面就一个说明文档,结果短短8小时就吸引了将近2000个开发者点赞关注!

picture.image

https://github.com/deepseek-ai/open-infra-index

所以这个文档里到底藏着什么宝贝?

它揭示了 DeepSeek 的"AI训练神器" - 一个叫"萤火2号"(Fire-Flyer AI-HPC)的超级计算机系统是怎么建成的。

通过这份文档,我们能窥见 DeepSeek 在AI基础设施上的独门秘籍!

picture.image

https://arxiv.org/abs/2408.14158

接下来,江树和大家一起来聊一聊这篇论文。

这篇论文讲的是如何通过软硬件协同设计,搭建一个既省钱又高效的AI超级计算机系统,专门用来训练深度学习模型,特别是现在很火的大型语言模型(LLMs)。

别担心,我会用最通俗的语言,尽量让小白也能看懂这篇论文的核心内容和亮点。


1. 背景:为什么需要Fire-Flyer AI-HPC?

首先,我们得明白为什么需要这样一个系统。深度学习,特别是大型语言模型(比如GPT-3、PaLM),发展得非常快。这些模型的参数量动不动就上百亿、千亿,训练它们需要的计算资源(主要是GPU)和存储、网络资源非常庞大。

  • 问题1:计算资源超贵

训练这些模型需要成百上千的GPU,而GPU的价格很贵,电费也不便宜。如果用传统的超级计算机或者昂贵的GPU集群(比如NVIDIA的DGX-A100系统),成本会非常高。

  • 问题2:能耗高,环保压力大

这么多GPU一起跑,耗电量巨大,碳排放也高,不符合现在节能减排的大趋势。

  • 问题3:性能和成本的平衡很难

如果用便宜的硬件,性能可能跟不上;如果用高性能的硬件,成本又太高。如何在性能和成本之间找到平衡,是一个大难题。

这篇论文的作者想解决这些问题,提出了Fire-Flyer AI-HPC系统,目标是用更低的成本和能耗,达到接近高端系统(如DGX-A100)的性能。


2. Fire-Flyer AI-HPC是什么?

Fire-Flyer AI-HPC是一个专门为深度学习设计的超级计算机系统。它最大的特点是 软硬件协同设计 ,也就是硬件和软件一起优化,既省钱又高效。下面我们来一步步看看它是怎么做到的。


硬件设计:选便宜但好用的零件

作者在硬件上做了一些聪明的选择,降低了成本:

  • GPU选择:PCIe A100,而不是SXM A100
  • NVIDIA的DGX-A100系统用的是SXM A100 GPU,性能很高,但价格也贵。
  • 作者选择了PCIe A100 GPU,性能大约是SXM A100的83%,但成本和能耗只有60%。
  • 简单来说,PCIe A100虽然性能稍低,但性价比更高,适合预算有限的场景。
  • 网络设计:Fat-Tree拓扑,省钱又高效
  • 网络是超级计算机中很重要的一部分,数据的传输速度直接影响训练效率。
  • 作者用了Fat-Tree网络拓扑,这种网络带宽很高,适合AI训练和存储任务。
  • 为了进一步省钱,他们把网络分成两个区域(Zone),减少了昂贵的交换机数量。
  • 存储和计算网络也整合在一起,减少了额外的硬件成本。
  • 存储设计:用NVMe SSD,速度快容量大
  • 训练AI模型需要处理大量数据,存储系统的性能很关键。
  • 作者用了NVMe SSD(一种很快的硬盘),搭配自己的文件系统(后面会讲),既能满足高速读写需求,又能省钱。

软件优化:让硬件更好用

光有硬件还不够,软件优化是Fire-Flyer AI-HPC的另一大亮点。作者开发了一些工具,让系统更高效、更稳定。

  • HFReduce:加速数据通信
  • 在CPU上做异步allreduce,减少对GPU资源的占用。
  • 计算和通信可以同时进行(overlap),提高效率。
  • 测试表明,HFReduce的通信速度比NCCL快很多,特别是在大数据量的情况下。
  • 在AI训练中,GPU之间需要频繁交换数据(比如梯度),这个过程叫allreduce。
  • 作者发现,传统的通信库(如NVIDIA的NCCL)在PCIe GPU上性能不太好,因为PCIe的带宽有限。
  • 他们开发了一个叫HFReduce的通信库,主要有以下优点:
  • HaiScale:训练框架,支持多种并行方式
  • 它支持多种并行方式,适配PCIe GPU的特性。
  • 通过优化通信和计算的重叠,减少了训练时间。
  • 比如,训练一个中等规模的模型(GPT2-medium),HaiScale比PyTorch的FSDP快了差不多一半。
  • 训练大型模型需要多种并行策略,比如数据并行(DP)、管道并行(PP)、张量并行(TP)、专家并行(EP)。
  • HaiScale是一个专门为PCIe架构优化的训练框架:
  • 3FS:高效的分布式文件系统
  • 用NVMe SSD,读写速度超快(实测读吞吐量高达8TB/s)。
  • 通过网络调优,减少了数据传输时的拥塞问题。
  • 还支持KV缓存技术(3FS-KV),降低了大型语言模型服务的成本。
  • AI训练需要频繁读写数据,存储系统的速度很重要。
  • 3FS是作者自己开发的文件系统,专门为大数据AI任务设计:
  • HAI平台:任务管理和故障处理
  • 任务调度 :根据资源情况,合理分配GPU,避免浪费。
  • 故障处理 :如果有硬件故障,系统能快速检测并隔离问题节点。
  • 灾备恢复 :定期保存训练进度(checkpoint),如果系统出问题,可以快速从最近的checkpoint恢复,减少损失。
  • HAI平台是一个任务调度和管理系统,功能包括:
  • 这个平台让系统的利用率和稳定性都大大提高。

稳定性与鲁棒性:系统更可靠

大型AI系统跑起来,硬件故障是难免的(比如GPU坏了、网络断了)。作者做了很多工作来提高系统的稳定性:

  • Checkpoint Manager:快速保存和恢复
  • 训练大型模型可能需要几周甚至几个月,中间如果出问题,可能得从头开始。
  • 作者的checkpoint manager每隔几分钟就自动保存一次训练进度,用3FS的高速读写功能,保存和加载都很快(几秒钟完成)。
  • 如果系统故障,只会丢失最近5分钟的进度,非常高效。
  • Validator:硬件故障检测
  • 检查GPU内存有没有坏掉。
  • 测试CPU和网络的性能。
  • 跑一些压力测试,确保硬件正常。
  • Validator是一个工具,每周自动检查硬件状态,比如:
  • 如果发现问题,系统会自动把坏掉的节点隔离,确保任务不会受到影响。
  • 硬件故障统计
  • NVLink(GPU之间的连接)故障占了42.57%,是因为用了很多NVLink桥,故障率自然高。
  • GPU内存错误(ECC错误)占了2%,需要特别注意。
  • 网络闪断(网络突然中断)占了30%,会影响任务进度。
  • 作者还分析了过去一年的硬件故障数据,发现:
  • 通过这些统计,他们能更好地优化系统,减少故障的影响。

3. 成果:省钱又高效

Fire-Flyer AI-HPC的成果非常亮眼:

  • 性能接近高端系统
  • 用了10,000个PCIe A100 GPU,性能达到了DGX-A100的80%以上。
  • 比如,训练LLaMa-13B模型,扩展到512个GPU时,效率高达91%;训练DeepSeekMoE-16B模型,320个GPU时效率达到92.92%。
  • 成本大幅降低
  • 相比DGX-A100系统,Fire-Flyer AI-HPC的建设成本降低了50%。
  • 网络成本(交换机等)降低了40%,因为用了更简单的Fat-Tree拓扑。
  • 能耗减少,环保
  • 能耗降低了40%,总功率不超过4 MW(DGX-A100系统更高)。
  • 这不仅省电费,也减少了碳排放。

4. 讨论:一些有趣的话题

  • 网络拥塞控制
  • 在RDMA网络中,通常会用DCQCN来控制拥塞。但作者发现,DCQCN在他们的网络中效果不好(同时支持HFReduce和3FS流量很难)。
  • 他们干脆禁用了DCQCN,通过网络调优(比如流量隔离)来避免拥塞,结果网络依然很稳定。
  • NVLink的选择
  • 一开始没用NVLink,因为想省钱,而且HFReduce已经够用了。
  • 但后来大型语言模型需求增加,作者加了NVLink,专门用来支持张量并行(TP),效果很好。
  • 不过NVLink也有问题,比如故障率高(Xid 74错误),需要权衡利弊。
  • 维护成本
  • 建设成本 :硬件成本占大头,软件开发成本相对低(几十个开发者的工资比GPU便宜多了)。
  • 能耗成本 :训练ResNet时,Fire-Flyer的能耗比DGX-A100低40%。
  • 运营成本 :主要包括电费和机房租金,用PUE(能效比)计算,总成本比传统系统低很多。
  • 稳定性对比
  • 相比DGX-A100,Fire-Flyer的NVLink故障率稍低(42.57% vs 52.42%)。
  • 不过GPU内存错误和网络闪断还是需要特别关注,作者通过Validator和checkpoint manager有效降低了影响。

5. 未来:支持更复杂的模型

作者还提出了未来的计划,主要是支持专家混合模型(MoE LLMs),因为这种模型需要更多的all-to-all通信:

  • 下一代架构
  • 每个GPU配一个网卡(NIC),提高带宽,类似DGX-H100/B100系统。
  • 用多平面网络(multi-plane network),在保持性能的同时降低成本。
  • 考虑用RoCE交换机代替InfiniBand,网络成本更低。
  • 目标
  • 支持更大规模的GPU集群(最高32,768个GPU),满足MoE模型的训练需求。
  • 继续优化软件和硬件,进一步降低成本和能耗。

6. 总结:为什么Fire-Flyer AI-HPC很牛?

Fire-Flyer AI-HPC通过软硬件协同设计,成功搭建了一个经济高效的AI超级计算机系统。它的亮点包括:

  • 硬件省钱 :用PCIe A100 GPU和Fat-Tree网络,成本和能耗比高端系统低很多。
  • 软件高效 :通过HFReduce、HaiScale、3FS和HAI平台,优化了性能和稳定性。
  • 成果显著 :性能接近DGX-A100(80%以上),成本降低50%,能耗降低40%。
  • 未来可期 :计划支持MoE模型,继续降低成本,提高性能。

这篇论文不仅展示了技术实力,也为其他想建AI集群的人提供了宝贵的经验。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论