浮点数精度

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

常见精度格式:

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 量化后部署推理,以在效果和效率之间取得平衡。
相关推荐
土豆3591 分钟前
那个叫 fix bug 的提交,改了 140 万行
人工智能
随风@飘扬4 分钟前
CCS Theia中F28035 工程调试连接排障记录
人工智能
用户7275107796317 分钟前
程序员第一次控制工业步进电机:Python + Modbus RTU,从串口报文到自动定位(附可运行代码)
人工智能
AI袋鼠帝7 分钟前
WorkBuddy悄悄干了件大事,下一代Office真来了!
人工智能·agent
浮链序9 分钟前
用 Claude Haiku 5.5 做子智能体路由,把 Agent 成本砍掉六成
人工智能·python·llm
IT_陈寒9 分钟前
为什么你应该学习JavaScript?
前端·人工智能·后端
谁在黄金彼岸11 分钟前
Qwen-Image-2512-vs-2.1-实测对比
人工智能
ProbeX13 分钟前
Ollama到底是什么?能跑多大模型?
人工智能
Soofjan14 分钟前
Agent基础(3):提示工程、采样参数与 Token
llm·agent
梧桐AI14 分钟前
手写ReAct Agent:从mock循环到公网部署的完整记录
人工智能