深度学习模型的内存与计算优化策略
1. 量化技术的数据类型选择
在深度学习模型训练和推理过程中,内存管理是一个关键问题,尤其是对于多十亿参数的大型模型。量化技术是解决这一问题的有效手段,通过使用不同的数据类型来减少内存占用。
-
bfloat16 :bfloat16 已成为 fp16 的流行替代方案,它仅用 16 位就涵盖了 fp32 的全范围,减少了模型训练期间因溢出导致的数值不稳定问题。与 fp16 相比,bfloat16 动态范围更大但精度稍低,通常是可以接受的。它用 1 位表示符号,8 位表示指数,分数部分截断为 7 位,因此常被称为“截断的 32 位浮点数”。例如,存储 20 位小数的 π 值时,bfloat16 表示为 3.140625,有轻微的精度损失,但保持 fp32 动态范围和减少溢出的好处通常超过了精度损失。较新的 GPU 如 NVIDIA 的 A100 和 H100 原生支持 bfloat16,许多现代生成式 AI 模型如 FLAN - T5、Falcon 和 Llama 2 都使用 bfloat16 进行预训练。
|数据类型|总位数|符号位|指数位|分数位|存储一个值所需内存|
| ---- | ---- | ---- | ---- | ---- | ---- |
|fp32|32|1|8|23|4 字节|
|fp16|16|1|5|10|2 字节|
|bf16|16|1|8|7|2 字节|
|fp8|8|1|7|1 字节|
|int8|8|1|n/a|7|1 字节| -
fp8
超级会员免费看
订阅专栏 解锁全文
1457

被折叠的 条评论
为什么被折叠?



