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
相关推荐
xsd2024111812 小时前
3D双目相机 vs 面阵激光雷达:机器人的“眼睛“到底怎么选?
人工智能
2601_9656196914 小时前
把开源项目Changelog自动做成更新视频,AI工作流
人工智能·开源·音视频
Json____14 小时前
PHP 突发严重安全漏洞,AI 开始改变网络安全的攻防方式
人工智能·web安全·php·it学习·wwwoop.com
fxss15 小时前
我用AI给娃写了个拼音闯关大冒险
人工智能
驭渊的小故事16 小时前
Spring AI Alibaba 实战:从maven依赖治理到声明式工具调用
java·人工智能·spring
北京中科新远科技17 小时前
高速光链路健康检查实战:DOM、FEC、误码与压力回归
人工智能·数据挖掘·回归
火山引擎和TA的超级拍档们17 小时前
超级拍档・光影新生|火山引擎 AIGC 主题峰会回顾
人工智能
冬奇Lab17 小时前
一天一个开源项目(第245篇):Raven —— ‘Harness 的 Harness‘,把 Claude Code、Codex 等智能体编排起来并让它递归自我改进
人工智能·开源·资讯
工业视觉老A17 小时前
攻克牙膏朝向人工分拣痛点,AI 视觉检测保障包装工序稳定
人工智能·计算机视觉·视觉检测