一、怎么理解“精度”和FP32、FP16等
在深度学习中,模型精度和量化技术直接影响模型的性能、资源消耗及部署效率。我们先聊浮点精度的概念,标准的FP英文全称是Floating Point,是IEEE定义的标准浮点数类型。由符号位(sign)、指数位(exponent)和小数位(fraction)三部分组成。和FP类似的还有TF32(全称Tensor Float 32),是英伟达提出的特殊数值类型,用于替换FP32,Google也提出BF16(Brain Float 16)。常见的数据精度有:
 

Float32 (FP32):标准的32位浮点数,精度高,能表示的数值范围大。大部分硬件都支持FP32运算,在训练和推理中广泛使用,如下图所示,符号位是占1位、指数位占8位、小数位占23位。

Float16 (FP16):16位浮点数,精度比FP32低,但占用内存少,计算速度快。FP16数值范围较小,容易出现上溢和下溢的问题,但在深度学习中可以通过一些技巧来缓解这些问题。

Bfloat16 (BF16):这是另一种16位浮点数,它的指数位数和FP32相同,所以动态范围较大,但精度比FP16低。BF16在处理大数值时表现更好,但在精度上会有所损失。

Int8:这是8位整数类型,能存储的数值范围有限,但占用的内存更少。Int8主要用于模型量化,通过将模型参数从FP32或FP16转换为Int8,可以大幅减少模型的内存占用和计算量。

Float8(FP8**)**:从英伟达H100 GPU开始增加了FP8 Tensor Core,可加速 AI 训练和推理。如下图所示,FP8 Tensor Core 支持 FP32 和 FP16 累加器,以及两种新的 FP8 输入类型(E4M3、E5M2);

E4M3:具有 4 个指数位、3 个尾数位和 1 个符号位
E5M2:具有 5 个指数位、2 个尾数位和 1 个符号位
E4M3支持动态范围更小、精度更高的计算,而E5M2 可提供更宽广的动态范围和更低的精度。与FP16或BF16相比,FP8可将所需要的数据存储空间减半,并将吞吐量提升一倍。H100的Transformer 引擎可结合使用 FP8 和 FP16 精度,减少内存使用并提高性能,同时仍能保持大型语言模型和其他模型的准确性。

二、DeepSeek不同 精度和所需显存多少的计算关系
大模型精度不同和计算和存储成本有关,精度越高肯定更准确,但是也会带来更高的计算和存储消耗。较低的精度会降低计算精度,但可以提高计算效率和性能。所以不同精度的精度类型可以让你在不同情况下选择最适合的一种。双精度比单精度表达的更精确,但是存储占用多一倍,计算耗时也更高,如果单精度足够,就没必要双精度。

以DeepSeek R1为例,根据模型参数量的不同可分为671B的满血版及各个蒸馏的版本,如下

模型参数量都以B为单位,B是billion的缩写,代表十亿,主流的FP8精度每B的大模型需要多大的部署显存呢?计算公式如下:

1B的参数模型=10亿参数x每个参数占用的Byte数量,1亿是10的八次方

1GB的Byte数=1024MB=10241024KB=10241024*1024Byte

1B FP8模型部署显存=1010⁸/(10241024*1024)*1=0.93132≈1G

同理:1B FP16模型部署显存为1010⁸/(10241024*1024)*2≈2G

DeepSeek推理所需显存=**模型参数部分+激活参数部分+**KV Cache部分

模型参数部分=模型参数量 × 精度系数
激活参数部分=激活参数量 × 精度系数
KV Cache部分=并发数 × (输入Token数+输出Token数) × 2 × 层数 × hidden_size × Sizeof(精度系数)
以FP8精度的满血版DeepSeek-R1 671B为例,假设batch size=30,isl=2048,out=2048,num_layers=61,hidden_size=7168

总的显存容量评估如下:=671×1GB+37x1G+30×(2048+2048)×2×61×7168×1Bytes=671 GB + 100.08GB=808.08GB

另外,模型推理的上下文长度不同会对KV Cache的显存占用影响很大。

不同的厂商对显存大小的推荐略有不同,下图是某大厂对R1不同模型参数量&模型精度的显存大小推荐,供参考:

三、怎么理解“量化 ”?
大模型量化技术是一种通过‌降低模型参数的数值精度‌,将高精度浮点运算(如FP32)转换为低精度整数或定点数(如INT8、INT4)的模型压缩方法‌。其本质是通过牺牲微小精度损失,换取模型‌存储空间‌、‌计算速度‌和‌能耗效率‌的显著提升‌,其优势总结如下:

1、 优化‌显存与存储的占用:通过将浮点参数(如FP32)压缩至低比特整数(如INT8/INT4),模型体积可减少4-8倍,显著降低内存占用‌35。例如,INT8量化后的模型体积仅为原FP32模型的25%‌。尤其在移动设备或嵌入式系统中,量化后的模型更易部署,支持在有限内存下运行超大规模模型(如70B参数模型)‌。

2‌、推 加速理与****降低‌能耗:低精度计算(如INT8)在支持专用指令集的硬件(如NPU、Tensor Core)上可提速2-4倍,尤其适合实时性要求高的场景(如自动驾驶感知)‌。能耗随计算精度降低呈指数级下降,INT4推理能耗仅为FP32的1/10,适用于IoT设备等低功耗场景‌。

‌3、 提升‌通信与计算效率:分布式训练中,通过量化梯度减少通信带宽需求,加速多机训练过程‌,FP8混合精度训练(如NVIDIA H100)结合浮点动态范围和低存储开销,提升大规模模型训练效率‌。

量化技术的劣势也比较明显,会带来‌精度损失与鲁棒性挑战,可能导致关键特征丢失,模型精度下降5-15%‌。例如,图像分类任务中INT4量化可能使Top-1准确率从92%降至85%‌,虽然大模型的量化技术通过‌存储压缩‌与‌计算加速‌解决了部署资源瓶颈,但未来需要在‌精度-效率权衡‌、‌硬件适配性‌及‌算法复杂度‌间寻求最优解。
————————————————
版权声明:本文为CSDN博主「和老莫一起学AI」的原创文章,遵循CC 4.0 BY-SA版权协议。
原文链接:https://blog.csdn.net/2401_85373691/article/details/146494849

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐