LuAITools.com
提交工具
🌐AI
Distributed Training

分布式训练

把训练任务拆到多台机器、多张 GPU 上一起干,让原本要跑几个月的模型,几周甚至几天就能训完。

分布式训练是什么?

单个 GPU 的算力和显存是有限的,模型一旦大到装不下、或者训练慢到等不起,就得把活儿分出去。分布式训练,就是把训练任务拆成很多份,交给多台机器、多张 GPU 同时干,再把结果汇总起来。

为什么单机不够用了?

模型越来越大
从几亿参数到几千亿参数,模型体积早就超过了单张显卡的显存。
时间等不起
哪怕能跑,单卡训练一个超大模型可能要几个月甚至几年,商业上完全不可行。
数据也多
海量训练语料,单机读都读不过来。

它靠什么把速度提上去?

把数据切分(数据并行)
每个设备各拿一份完整模型,各处理不同的数据批次,然后同步梯度。
把模型切分(模型并行)
模型太大放不进一张卡,就把不同层分到不同卡上。
两者混着用
现实中的大模型训练,往往是数据并行、模型并行、流水线并行等多种策略叠加。

难点在哪?

通信开销
设备之间要频繁同步梯度和参数,网络慢了会拖后腿。
一致性
多台机器上的结果要保持同步、不出错,容错和调试都更复杂。

它带来了什么

分布式训练让「训练超大规模模型」从不可能变成工程问题。今天所有叫得上名字的大模型,背后都是成千上万张 GPU 协作的结果。

一句话记住:分布式训练就是把「一个人干不完的活」,拆给一群人同时干,还要保证结果对齐。

评论