大模型原理--训练显存消耗的构成
【摘要】 显存的消耗主要由以下五部分组成:模型参数(Model Weights)、梯度(Gradients)、优化器状态(Optimizer States)、激活值(Activations) 以及 其他运行时开销(Runtime Overhead)。
1.概述
在对大语言模型进行训练或微调时,显存(VRAM)的消耗主要由以下五部分组成:模型参数(Model Weights)、梯度(Gradients)、优化器状态(Optimizer States)、激活值(Activations) 以及 其他运行时开销(Runtime Overhead)。
2. 模型参数
模型参数指网络中所有可训练权重(如注意力投影矩阵、前馈网络权重等)。在训练过程中,这些参数需常驻显存,用于前向传播、反向传播计算和参数更新。参数所占显存与模型总参数量和存储精度直接相关。

3. 梯度
在反向传播过程中,每个可训练参数都会计算对应的梯度。梯度张量的形状与参数一致,通常以与参数相同的精度存储,因此其显存占用通常与模型参数相当。所以同上。
4. 优化器状态
现代优化器(如 Adam/AdamW)为每个可训练参数维护额外的状态变量(例如一阶矩和二阶矩)。这些状态通常以较高精度(如 FP32)存储,显存占用往往是模型参数的数倍,是微调中显存消耗的主要来源之一。

5. 激活值
激活值是前向传播中各层输出的中间结果,需在反向传播时用于梯度计算。其显存占用与模型深度、隐藏层维度、输入序列长度、批次大小呈正相关。

6. 其他运行时开销
包括CUDA 内核临时内存、分布式训练中的通信缓冲区等。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)