浮点数精度

核心概念: 浮点数由三部分组成------符号位(正/负)、指数位(范围)、尾数位(精度)。总位数越多,能表示的数值范围和精度就越高,但计算速度越慢、显存占用越大。

常见精度格式:

FP32(Float32,单精度) --- 32位浮点数,1位符号 + 8位指数 + 23位尾数。这是传统的"标准精度",精度高但占用显存大、计算慢。

FP16(Float16,半精度) --- 16位浮点数,1位符号 + 5位指数 + 10位尾数。显存减半、速度更快,但数值范围小,容易出现溢出问题。

BF16(BFloat16,Brain Float16) --- Google Brain 提出的16位格式,1位符号 + 8位指数 + 7位尾数。它保留了和 FP32 一样的指数位(数值范围相同),只是牺牲了尾数精度。在大模型训练中非常流行,因为它兼顾了速度和数值稳定性。

FP8(Float8,8位浮点) --- 最新一代的低精度格式,只用8位。有两种常见变体:E4M3(4位指数+3位尾数,精度稍高)和 E5M2(5位指数+2位尾数,范围更大)。主要用于推理加速,NVIDIA H100/H200 等新GPU原生支持。

其他常见精度:

  • FP64(Float64,双精度) --- 64位,科学计算用,精度极高但很慢
  • TF32(TensorFloat-32) --- NVIDIA 提出的19位格式(8位指数+10位尾数),A100及以上GPU支持,训练时可自动替代FP32
  • INT8 / INT4 --- 整数量化格式,不是浮点数,常用于模型推理的量化压缩
  • FP4 / NF4 --- 4位浮点/归一化浮点,用于QLoRA等极致量化方案
    简单总结精度从高到低: FP64 > FP32 > TF32 > BF16 ≈ FP16 > FP8 > INT8 > INT4/FP4
    在大模型领域,当前主流做法是用 BF16 训练,用 FP8 或 INT8/INT4 量化后部署推理,以在效果和效率之间取得平衡。
相关推荐
何伯特1 小时前
越野环境自动驾驶状态机:基于TinyFSM的工程实践
人工智能·机器学习·自动驾驶
一人の梅雨1 小时前
京东工业平台商品详情接口进阶实战:B2B采购场景适配+合规落地+多规格解析全方案
java·大数据·人工智能
Flying pigs~~2 小时前
数据分析三剑客之Pandas
大数据·数据库·人工智能·数据分析·numpy·pandas
callJJ2 小时前
Spring AI 语音合成(TTS)完全指南:OpenAI Text-to-Speech
java·人工智能·spring·语音识别·spring ai
诸葛务农2 小时前
AI计算平台前沿进展:下一代AI计算平台——“OpenEmbodied AI Platform (OEAP)设计框架(2)
人工智能
blackicexs2 小时前
第四周第五天
数据结构·算法
诸葛务农2 小时前
AI计算平台前沿进展:下一代AI计算平台——“OpenEmbodied AI Platform (OEAP)设计框架(1)
人工智能
Baihai IDP2 小时前
Prompt caching 技术是如何实现 1 折的推理成本优化的?
人工智能·ai·llm
重生之后端学习2 小时前
98. 验证二叉搜索树
java·数据结构·后端·算法·职场和发展