1 Star 0 Fork 0

Mr霖/temp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
模型显存.txt 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
Mr霖 提交于 2024-10-10 01:13 +08:00 . add 模型显存.txt.
0.基础知识
1GB=1024MB
1MB=1024KB
1KB=1024Byte
1Byte=8Bit
FP32 32Bits, 4Bytes
FP16 16Bits, 2Bytes
1G参数的模型:
FP32加载:占用4*1G显存
FP16加载:占用2*1G显存
1.模型训练的总内存(以混合精度训练为例)
Step1:优化器会先备份一份FP32精度的模型权重,初始化好FP32精度的一阶和二阶动量(用于更新权重)。
Step2:开辟一块新的存储空间,将FP32精度的模型权重转换为FP16精度的模型权重。
Step3:运行forward和backward,产生的梯度和激活值都用FP16精度存储。
Step4:优化器利用FP16的梯度和FP32精度的一阶和二阶动量去更新备份的FP32的模型权重。
模型训练的总内存 = 模型内存 + 梯度内存 + 优化器内存 + 激活值内存 + 其他(缓冲区、显存碎片等)
2.模型参数
Llama13B
1B=1000^3
1GB=1024^3byte
FP16: 13^2=26GB
3.优化器
Llama13B
Adam
模型参数:13*4 = 52GB
梯度指数平滑值:13*4 = 52GB
梯度平方指数平滑值:13*4 = 52GB
一共156GB
4.梯度值
Llama13B
FP16:
13B * 2 = 26G
5.激活值
Llama13B
s 序列长度:1024
b batch size:1
h 隐藏层大小:5120
a 注意力头:40
L 层数:40
FP16:
s * b * h * (34 + 5 * a * s/h) * L/1024/1024/1024 GB
=14.5GB
6.总结
Llama13B BatchSize=1, Seq_Len=1024, FP16
模型参数: 26GB
优化器: 156GB
激活值: 14.5G (和BatchSize, Seq_len相关)
梯度值: 26GB
合计: 222.5GB
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mr-lin314/temp.git
git@gitee.com:mr-lin314/temp.git
mr-lin314
temp
temp
master

搜索帮助