bf16 和 fp16 分别指什么

FP16 全称

FP16 = Float Point 16-bit 中文:16 位标准浮点(半精度浮点数) 代码里常写作 float16,CUDA 里别名就是 half,所以 --dtype half = float16。

完整拆分

  • FP = Floating Point(浮点)
  • 16 = 总数据位宽 16 bit 标准名称:IEEE 754 Half-precision floating-point format,业内简称 half /fp16。

两个命名来源对比

格式 全称 起名方 设计初衷
FP16(float16/half) Floating Point 16bit IEEE 标准委员会 图形渲染、早期 GPU 计算
BF16(bfloat16) Brain Floating Point 16bit Google Brain 团队 专门适配神经网络训练 & 推理

补充小知识点

  1. FP32:Floating Point 32-bit(单精度浮点)
  2. FP64:Floating Point 64-bit(双精度浮点) 所有带 FP 开头的,都是 IEEE 标准浮点格式;BF16 不属于标准 IEEE fp16,是工业改良变体。
  3. 二者字节大小一致(都是 2 字节),只是内部指数、尾数分配不一样。

一、基础定义(都是 2 字节 = 16 位浮点数,结构不一样)

1. FP16(float16,你写的 --dtype half)

  • 全称:IEEE 754 Half-Precision Float
  • 比特分配(总共 16bit)
    • 符号位:1 bit
    • 指数位:5 bit
    • 尾数位:10 bit
  • 取值范围:±65504;精度更高,小数细节更精细
  • 缺陷:指数区间小,数值稍微一大就容易溢出

2. BF16(bfloat16,Brain Float 16)

  • 谷歌 Brain 推出,为 AI 训练 / 推理设计
  • 比特分配(总共 16bit)
    • 符号位:1 bit
    • 指数位:8 bit(和 FP32 指数位一样宽)
    • 尾数位:7 bit
  • 取值范围:和 FP32 基本一致,超大数值不会溢出;尾数精度比 FP16 略低一点

直观对比表

表格

参数 FP16(half) BF16 FP32(float32)
总比特 16bit 16bit 32bit
指数位 5bit 8bit 8bit
尾数位 10bit 7bit 23bit
数值范围 小,易溢出 大,匹配 FP32 标准全范围
计算精度 更高 略低 最高
显存占用 2Byte / 参数 2Byte / 参数 4Byte / 参数

二、显存层面关键结论

FP16、BF16 单个参数都是占用 2 字节,权重文件体积、模型空载显存占用完全一模一样 你在 A100 跑 Qwen3.6-35B: BF16 裸权重 ≈70GB,FP16 裸权重依旧≈70GB,刚性显存没有任何区别。 区别只在计算过程的数值稳定性、硬件加速效率

三、硬件适配(结合你的 A100)

  1. A100(Ampere)原生硬件支持 BF16 运算单元 BF16 推理速度 ≥ FP16,NVIDIA 对 BF16 做了深度优化,vLLM 默认自动选用 bf16 就是这个原因。
  2. RTX30 系及更早显卡:没有硬件 BF16 计算单元,跑 BF16 会落到 CPU 模拟 / 软计算,速度暴跌,此时用half(fp16)才是最优。
  3. RTX40 系、A10、H100:全都完美硬件 BF16。

四、放到你的两个使用场景讲解

场景 1:Embedding(Qwen3-Embedding-0.6B)

向量只需要相对相似度,BF16 损失的一点点尾数精度完全感知不到 。 A100 默认 bf16 即可,不用手动加--dtype half,性能更好。

场景 2:Qwen3.6-35B 大模型推理

  • BF16:数值稳定,大数值计算不易溢出,A100 跑更快,vLLM 默认方案
  • FP16:极少数极端场景会出现数值溢出、输出乱码;无收益,没必要强制 half

五、补充误区纠正

  1. 不是 BF16 = 省显存、FP16 = 费显存:二者显存开销完全相等
  2. 只有 FP32 才会显存直接翻倍
  3. 量化 INT8/INT4 是压缩权重,和这两个 16 位浮点不是一个维度

最简选择口诀

  • A100 / A10 / H100 / RTX40+:不用指定 dtype,默认 bf16 最优
  • RTX30 及以下老消费卡:手动加上 --dtype half
相关推荐
benchmark_cc13 小时前
批量获取量化数据时,如何设置合理的超时和重试机制?——QuantDash 高性能实战指南
开发语言·人工智能·python·pandas·量化·quantdash
Geek-Chow13 小时前
06 训练管线:数据如何变成权重
人工智能·算法
树欲静而风不止8613 小时前
AI赋能研发管理:全星APQP系统打通质量闭环,让高端制造项目管控更聪明
人工智能·制造
%4713 小时前
DAY 38
人工智能·pytorch·深度学习
北京靠谱的GEO优化机构13 小时前
媒体邀约怎么做才专业?详解企业高端品牌专访传播全流程
大数据·人工智能·媒体
user-猴子13 小时前
QoderWork、TRAE Work、AiPy、Kimi Work:四款桌面AI智能体定位与适用场景全拆解
人工智能
码农胖大海13 小时前
项目级 Skill 跨 Agent 共用的解决方案
人工智能
老纪的技术唠嗑局13 小时前
端侧智能爆火之后,为何模型反而不是主角了?
数据库·人工智能
陈童学哦13 小时前
别只看见模型强,Anthropic真正护城河是反馈闭环
人工智能
June bug13 小时前
【HCIA- AI(正课)】2.1 深度学习基础
人工智能·深度学习