本次查询:FP8
中文解释:8位浮点格式
常见场景:深度学习模型训练与推理的混合精度计算
一句话解释
FP8是一种8位浮点数格式,专门为深度学习设计。它用更少的比特表示数值,既能像整数量化那样节省显存和带宽,又能保留浮点数的动态范围,在训练大模型时比FP16更快、更省资源。
为什么会被关注
随着GPT、Llama等千亿参数模型出现,显存和计算量成为瓶颈。FP8将每个数值从16位压缩到8位,显存占用减半,计算吞吐量翻倍。NVIDIA Hopper架构率先原生支持FP8,使大模型训练时间从周级缩短到天级。同时,FP8在推理时也能加速,降低部署成本。
核心逻辑
FP8有两种子格式:E4M3(4位指数、3位尾数)和E5M2(5位指数、2位尾数)。E4M3精度更高,适合前向传播和权重梯度;E5M2动态范围更大,适合梯度更新和累加。训练时采用混合精度:关键部分用FP16或BF16,大量运算用FP8,通过缩放因子防止溢出。这样既保留模型收敛质量,又获得2-4倍速度提升。
常见场景
1. 大语言模型预训练:如LLaMA、GPT-4的训练中,FP8可将单卡显存需求从80GB降至40GB,支持更大批次或更长序列。2. 微调与持续训练:LoRA等参数高效微调搭配FP8,即使消费级显卡也能微调7B模型。3. 推理服务:部署聊天机器人或代码生成时,FP8量化模型推理速度提升2倍,且精度几乎无损。4. 边缘端部署:在手机或IoT设备上跑轻量模型,FP8比INT8更准确,比FP16更省电。
容易混淆的点
FP8不是INT8。INT8是整数量化,需要校准过程且对分布敏感;FP8是浮点,范围更灵活,训练时可直接替代FP16,无需额外校准。FP8也不是BF16。BF16是16位浮点(8位指数、7位尾数),精度比FP16低但动态范围大;FP8精度更低但显存占用减半,两者配合使用效果最佳。另外,FP8的全称是“8位浮点”,不要和“8位定点”混为一谈。
