浮点数精度

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

常见精度格式:

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 量化后部署推理,以在效果和效率之间取得平衡。
相关推荐
D2aZXN3FhrDa7e2123 分钟前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
林泽毅16 分钟前
PyTRIO:当强化学习不再需要本地GPU
人工智能·python·深度学习·机器学习
颜酱20 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱21 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
码上解惑23 分钟前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai
小陈phd26 分钟前
QAnything 阅读优化策略05——检索
人工智能·python·机器学习
vivo互联网技术29 分钟前
Agent 工程思考:从 ReAct 到 Agent Harness
agent
稚南城才子,乌衣巷风流38 分钟前
ST 表(Sparse Table)算法详解:原理、实现与应用
算法
hold?fish:palm44 分钟前
9 找到字符串中所有字母异位词
c++·算法·leetcode