今天聊聊分布式训练Distributed Training:分布式训练(Distributed Training) 就是"人多力量大"在AI领域的体现。当模型太大、数据太多,单张显卡(GPU/TPU)算不过来或者算得太慢时,我们就把任务拆分给多台机器或多张卡,让它们协同工作,一起完成训练。为什么要用分布式训练?模型太大:像 Llama-3 这种千亿参数的模型,单卡显存根本装不下。数据太多:几TB的训练数据,单卡跑完一个Epoch可能要几个月。时间成本:大模型训练动辄几个月,用几百张卡并行,可以缩短到几周。核心策略:怎么"分"?分布式训练主要有三种切分方式,通常还会组合使用:数据并行 (Data Parallelism, DP/DDP)最常用,入门首选。原理:每张卡上都有一份完整的模型副本,但拿到的数据不同流程:各卡用自己的数据算梯度(Gradient)。所有卡把梯度汇总(All-Reduce),算出平均梯度。各卡用平均梯度更新自己的模型。优点:实现简单,通信量相对小。缺点:显存必须能装下整个模型。模型并行 (Model Parallelism)解决显存不够的问题。张量并行 (Tensor Parallelism, TP):把一层里的矩阵运算切开。比如一个 1000×10001000×1000 的矩阵乘法,4张卡各算 250×1000250×1000 特点:通信极其频繁,通常只在同一台机器内(NVLink互联)使用。流水线并行 (Pipeline Parallelism, PP):把不同的层分给不同的卡。比如 1-10层在卡A,11-20层在卡B。特点:像工厂流水线,但容易出现"气泡"(前面的卡算完了,后面的卡还在忙,导致闲)。专家并行 (Expert Parallelism, EP)MoE(混合专家)模型专用。原理:模型有很多"专家"子网络,每次只激活其中几个。把不同的专家放在不同的卡上,根据路由(Router)把数据发给对应的卡进阶:3D 并行.现在的超大模型训练,通常是 3D 并行:3D=数据并行 (DP)+张量并行 (TP)+流水线并行 (PP)3D=数据并行 (DP)+张量并行 (TP)+流水线并行 (PP).典型配置:机内:8张卡用 TP(因为NVLink带宽高,适合高频通信)。机间:用 PP(跨机通信慢,适合流水线这种通信相对少的)。全局:用 DP(把上述的"机内TP+机间PP"看作一个大模型,再在数据维度并行)。显存优化技术(省显存就是省钱).除了"切"模型,还有几个省显存的"魔法".ZeRO (Zero Redundancy Optimizer):DeepSpeed 的核心。把优化器状态、梯度、参数切碎,每张卡只存 1/N1/N 。ZeRO-1:切优化器状态。ZeRO-2:切优化器 + 梯度。ZeRO-3:切优化器 + 梯度 + 参数(显存省到极致,但通信变多)。Gradient Checkpointing (梯度检查点):前向传播时不存中间激活值,反向传播时重算一遍。代价:用计算时间换显存空间(约省 20% 显存,多 20% 时间).Mixed Precision (混合精度):用 FP16/BF16 计算,FP32 累加。显存减半,速度变快。
相关推荐
13线13 分钟前
为什么要合并飞书和豆包wangqiaowq16 分钟前
AI智能体学习科创致远19 分钟前
科创致远 eSOP 电子作业指导书系统落地应用指南宅小年20 分钟前
让 AI 用上你的资料,RAG 是怎么做到的?宅小年23 分钟前
为什么你的 AI 越聊越“笨”,还越来越慢?宅小年24 分钟前
AI 技能地图宅小年36 分钟前
DeepSeek Harness 的插件,到底该怎么用?仙魁XAN42 分钟前
【WorkBuddy · 三件套:技能/专家/技能】第 17 章 · 配置 MCP 服务器无忧.芙桃1 小时前
AI 生产力工具实践(四):豆包如何成为日常学习与写作助手IT_陈寒1 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢