返回课堂

完整深入材料 · 保留原页与全部停点。回到相关主讲

16 GB 的模型,训练状态可以是 128 GB

N45/b0 · 先数工作权重

8B 参数 · 本课混合精度 Adam 设定 · 十进制 GBBF16 工作权重16 GB低精度梯度16 GBFP32 主权重32 GBFP32 统计 m32 GBFP32 统计 v32 GB8×10⁹ × 2 bytes= 16 GB沿一次更新的需要,逐项加入状态。
先数工作权重

我们先只放工作权重。八十亿个参数,每个用两个字节保存,就是十六GB,这里用十进制单位。这个数字可以描述下载文件中这部分权重的大小,却还不能回答能否训练。沿着上一页的训练动作,其他对象会陆续出现。

教师备课:指图与模拟问答

指图与推进 · 不朗读只显示第一条工作权重,其他位置暂淡。

N45/b1 · 按更新过程加入状态

8B 参数 · 本课混合精度 Adam 设定 · 十进制 GBBF16 工作权重16 GB低精度梯度16 GBFP32 主权重32 GBFP32 统计 m32 GBFP32 统计 v32 GB2 + 2 + 4 + 4 + 4= 16 bytes / 参数沿一次更新的需要,逐项加入状态。
按更新过程加入状态

现在把其余四条同时放进账本,再沿着上一页的产生顺序逐项读。本例梯度每个参数也保存两个字节,因此是十六GB。FP32 主权重每个数四字节,是三十二GB;两份 FP32 统计,各自又是三十二GB。右边把每个参数对应的字节相加,得到十六字节。最大的几条来自更新所需状态,不是我们额外增加了模型层数。

教师备课:指图与模拟问答

指图与推进 · 不朗读沿已经同屏出现的梯度、主权重、m、v 四条依次指读,再指右侧每参数16字节;本态不声称逐条动画。

N45/b2 · 持久小计与运行峰值

8B 参数 · 本课混合精度 Adam 设定 · 十进制 GBBF16 工作权重16 GB低精度梯度16 GBFP32 主权重32 GBFP32 统计 m32 GBFP32 统计 v32 GB2 + 2 + 4 + 4 + 4= 16 bytes / 参数16 + 16 + 32 + 32 + 32 = 128 GB先不要除以四持久小计 ≠ 峰值(另有激活、临时量、通信缓冲)
持久小计与运行峰值

现在才把总和框出来:十六加十六,再加三份三十二,持久状态小计是一百二十八GB。请看下面保留的限定:这不是运行峰值。前向激活、当前算子的临时空间、通信缓冲都可能继续占用内存。其他精度或优化器实现也要重新记账,不能把一百二十八当成所有八十亿参数模型的固定需求。

权重文件能放下,不代表训练现场能放下。右边出现四张卡的轮廓:增加到四张卡,是否每张卡就自然只保存四分之一?先看最直接的数据并行。

教师备课:指图与模拟问答

指图与推进 · 不朗读指总和128GB及“持久状态”限定,再指四卡轮廓;不把四卡当作已完成的分片。

补充推导、边界与来源

以下全部采用十进制 GB,$1GB=10^9$ bytes,N=8×10⁹ 参数。

状态 每参数字节 本课容量
BF16 工作权重 2 16 GB
低精度梯度 2 16 GB
FP32 主权重 4 32 GB
FP32 统计 m 4 32 GB
FP32 统计 v 4 32 GB
持久状态小计 16 128 GB

图中五条从相同零点起,16GB 条长是32GB条的一半。128GB 不包括激活、临时算子空间、通信缓冲及运行环境;不能当实际运行峰值,也不是所有8B模型的固定训练需求。

分布训练正文 保留精度、激活重算和峰值条件;原账本说明。

本页证据与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

进入主题正文