随着DeepSeek的火爆,模型精度的概念被大家广泛讨论,怎么理解浮点精度、怎么计算不同模型精度对显存的需求?量化概念是什么等,常见的模型精度有FP32、FP16、TF16、FP8、Int8、Int4等,他们的区别和联系是什么?今天我们展开聊聊!
一、怎么理解“精度”和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%,虽然大模型的量化技术通过存储压缩与计算加速解决了部署资源瓶颈,但未来需要在精度-效率权衡、硬件适配性及算法复杂度间寻求最优解。
零基础如何学习AI大模型
领取方式在文末
为什么要学习大模型?
学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。
大模型典型应用场景
①AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
②AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
③AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
…
这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。
大模型就业发展前景
根据脉脉发布的《2024年度人才迁徙报告》显示,AI相关岗位的需求在2024年就已经十分强劲,TOP20热招岗位中,有5个与AI相关。
字节、阿里等多个头部公司AI人才紧缺,包括算法工程师、人工智能工程师、推荐算法、大模型算法以及自然语言处理等。
除了上述技术岗外,AI也催生除了一系列高薪非技术类岗位,如AI产品经理、产品主管等,平均月薪也达到了5-6万左右。
AI正在改变各行各业,行动力强的人,早已吃到了第一波红利。
最后
大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!
大模型全套学习资料领取
如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
部分资料展示
一、 AI大模型学习路线图
整个学习分为7个阶段
二、AI大模型实战案例
涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
三、视频和书籍PDF合集
从入门到进阶这里都有,跟着老师学习事半功倍。
四、LLM面试题
五、AI产品经理面试题
六、deepseek部署包+技巧大全
😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~