
前言国产之光 Deepseek 大模型成功出圈在效果比肩非开源模型ChatGPT的同时其运行成本很低。那么 Deepseek 是如何实现这么高效的训练呢文本将简要介绍 Deepseek 母公司幻方开源的 HAI-platform 大模型训练工具来一窥极限 AI 工程的秘密。为了更好地发挥 GPU 集群的计算能力训练具有惊人功能的、强大的万亿参数模型一个高效简洁的大模型训练工具十分必要。幻方-深度求索研发了一个能对 GPU 资源进行统一高效利用的 AI 平台同时实现了四种并行训练方式ZeRO 支持的数据并行、流水线并行、张量切片模型并行和序列并行。这种方式可以极大优化集群的使用提高模型训练的显存效率和计算效率。显存与计算效率首先我们先了解训练巨大模型的显存和计算效率的挑战。1、显存效率训练具有万亿参数的模型对显存的需求极为庞大远超过单个 GPU 的承载能力。举例来说当采用 Adam 优化器进行混合精度训练时仅保存模型的状态信息包括参数、梯度及优化器状态就需要大约12TB的显存空间。以英伟达A100 GPU为例其显存容量为40GB这意味着仅为了存储模型状态就需要多达400张 A100 GPU 的显存资源。在模型的前向传播过程中中间激活值会被保留直至反向传播完成并计算出损失函数后才会被释放。这部分额外的显存消耗与批量大小成正比。即便将批量大小设为1训练一个万亿参数的模型也会产生超过 400GiB 的激活显存占用。尽管可以通过 Checkpoint 技术以计算时间换取显存空间来提前处理这些激活显存但整体上训练过程中的显存需求依然极为巨大。因此为了确保这类大规模模型能够在显存不溢出的情况下进行训练必须将模型状态量和激活显存有效地分散到多个GPU设备上。这种分布式策略是实现大规模模型训练的关键。2、计算效率据估算端到端训练一个拥有万亿参数的模型大约需要消耗 5000 Zflops 的计算量即5乘以10的24次方这一估算基于OpenAI的研究《Scaling Laws for Neural Language Models》。这一庞大的计算需求意味着若使用4000张英伟达 A100 GPU 并以50%的计算效率运行大约需要100天的时间才能完成训练。虽然大型超级计算 GPU 集群可能配备超过4000个 GPU但由于批量大小batch size的限制要在如此规模上实现高计算效率仍然面临巨大挑战。计算效率与计算时间对通信时间的比率成正比而这一比率又与批量大小直接相关。然而训练模型时批量大小的设置存在一个上限超过该上限模型的收敛性能将显著下降。以目前最大的模型之一 GPT-3 为例其训练批量大小约为 1500。如果使用约 4000 张 GPU 进行训练即使将批量大小设置为 4000每张 GPU 上的批量大小也仅为1这将严重限制模型训练的扩展性。因此如何在保证模型收敛性能的同时优化批量大小和计算效率是实现大规模模型训练的关键难题。AIGC 集群整合 GPU 资源构建一个能管理大规模 GPU 集群资源的 AI 平台主要会遇到如下几个痛点问题资源调度算力规模不断扩大而训练任务的计算需求又多种多样如何处理任务和算力的关系以最大化集群资源使用使用效率集群使用有峰谷差异同时又要应对突发任务的需求如何兼顾时效性和集群整体效率迭代适配集群会有升级迭代在调整算力规模、类型、使用规则等场景下如何让平台快速适配尽可能降低切换成本幻方提出以任务级分时调度共享 AI 算力的理念将集群零散资源进行整合再分配成功支持在上千计算节点上稳定运行深度学习训练和其他多类型任务日常算力占用率 95% 以上日常 GPU 使用率 75% 以上。任务调度任务是集群使用的基本单位而非用户。所有用户提交的任务都由集群统一管理和调度。用户独占 vs 分时调度幻方提出分时调度理念对集群资源进行管理。用户提交任务如运行 python / bash 代码启动开发容器等由平台根据当前资源需求、集群忙闲程度等进行任务的中断和加载。任务代码需要遵循平台编码规则以确保可以断点续跑具体流程如下接受集群的打断信号保存 checkpoint模型参数优化器参数等通知集群打断从 checkpoint 恢复继续运行。这里集群不会将 GPU 资源池化而是以计算节点为基本单位根据资源类型、网络区域等条件进行分类标记。AIGC 集群鼓励用户一次性用满多张 GPU进行并行训练。用户提交任务时需选定节点数量 n则该任务可获得 n 的整数倍个 GPU比如在8卡计算节点上提交使用4个节点的任务则该任务会获得32张 GPU 进行并行训练。用户管理集群提供以配额的方式记录集群的各类资源通过优先级管理用户的使用权限。例如某用户在 NORMAL 优先级上拥有10个计算节点的配额其在集群上提交若干个任务则最多同时以 NORMAL 优先级调度10个计算节点运行。算力资源优先满足高优先级用户的训练需求同优先级内则交替使用集群算力资源。同时每个用户都可以归属于某一个用户组。计算资源和优先级配额是按用户为单位进行分配的而同组的用户可以共享自定义环境、私有数据存储。数据管理AIGC 集群会将训练数据存储在文件系统中。训练中的任务会实时从文件系统中读取数据流转到计算节点。这里优良的文件系统将是提高 GPU 利用率进而提升集群整体效率的决定性因素之一。为了最大化 GPU 利用率降低数据读取的成本幻方自研了高速文件系统 3FS其专门针对深度学习训练中样本读取的场景进行优化能支持计算和存储节点间 7TB/s 以上的数据吞吐。3FS 需要用户将原始数据中较多的小文件聚合成大文件进行存储从而实现优秀的性能。并行训练1、3D并行设计高效的并行方式对训练大模型至关重要。deepseek 结合集群的特性可以实现三种并行训练方式的灵活组合数据并行、流水并行、张量并行并使用序列并行方式对 Transformer 进一步并行优化极大地提升显存利用和计算效果。彩色块显示有 32 张 GPU 八个计算节点每个节点有四个 GPU的系统上进行 3D 并行训练的 GPU 映射。同一颜色的 GPU 在同一节点上2、数据并行为了减少显存的占用Deepseek 采用 ZeRO 数据并行的方式把训练优化器的状态均分到 1/N 个 GPU 上 N 是数据并行的数量如下图所示在做前向和反向传播时ZeRO 数据并行会先做 allgather 获得完整的参数然后在前向和反向传播结束后释放掉只保留 1/N 的参数和梯度。3、流水并行流水并行把模型切分成 M 个阶段分别放在 M 个 GPU 上能够大幅节省显存占用和提升扩展性能。训练的时候每个阶段接收上一阶段的输出作为输入然后传给下一个阶段。如下图所示可以看到这种并行方式会造成大量的 GPU 空闲Idle。为了减少浪费Gpipe 和 PipeDream 的概念被提出如果同时进行多个迭代每个节点在同一时刻负责不同的迭代的计算就可以避免数据依赖不用在原地干等了在 DeepSeek 中模型的切分是在 Builder 里由用户切分的用户可以继承并实现自己的 build_model 方法。Builder 创建出来的模型包含一个 forward_backward 方法用户可以传进输入、损失函数、标签该方法会执行前向传播和反向传播并返回 Loss。4、张量并行张量并行把全连接层的参数和计算切分到 K 个 GPU 上能够节省显存占用和提升扩展性能。假设 K2张量并行把矩阵乘法 X A B 变成 X A1 B1 X A2 B2其中 A 沿着纵轴切成 A1 和 A2B 沿着横轴切成 B1 和 B2GPU 0 会存放参数 A1 和 B1 并负责 X A1 B1 的计算GPU 1 则存放参数 A2 和 B2 并负责 X A2 B2 的计算。5、序列并行Megatron-LM 提出的序列并行方案旨在通过一些方式分摊张量并行中无法分摊的显存。如上图所示在张量并行的基础上将 Transformer 核的 LayerNorm 以及 Dropout 层的输入按序列长度维度进行了切分使得每个 GPU 上面只需要做一部分的 Dropout 和 LayerNorm 。这样做进一步降低了计算资源和显存的开销。最后的最后感谢你们的阅读和喜欢作为一位在一线互联网行业奋斗多年的老兵我深知在这个瞬息万变的技术领域中持续学习和进步的重要性。为了帮助更多热爱技术、渴望成长的朋友我特别整理了一份涵盖大模型领域的宝贵资料集。这些资料不仅是我多年积累的心血结晶也是我在行业一线实战经验的总结。这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习相信它们一定能为你提供实质性的帮助。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】DeepSeek全套安装部署资料大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】