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
相关推荐
lucas_AI几秒前
100 个 AI 组队做数学,27 分钟集体沦陷:DeepMind 记录了一场教科书级多智能体事故
人工智能
七七安8 分钟前
标准卷积和转置卷积
人工智能
nhdh14 分钟前
Higress:AI时代云原生网关新选择
人工智能·云原生
一木 之林17 分钟前
DeepSeek Agent 开发
java·前端·人工智能
王中阳Go17 分钟前
简历写「QPS 提升 3 倍」,面试官问「怎么压测的」,我卡在并发数怎么定
人工智能·后端·面试
方方洛19 分钟前
ai-agent教程-03-大模型接口与工具调用
人工智能·llm·agent
miofly20 分钟前
语言判别增强多语言语音模型的语言学习能力
人工智能
EatFan20 分钟前
当 CubeMX 遇上 AI Agent:用 MCP 让 AI 直接生成 STM32 HAL 工程
人工智能·stm32·嵌入式硬件·cubemx·stm32cubemx·hal·mcp
这张生成的图像能检测吗21 分钟前
(论文速读)Object-Driven Multi-Layer Scene Decomposition:从单张图像恢复遮挡后的多层场景
人工智能·算法·计算机视觉·rgb-d·场景分解
YOLO数据集集合24 分钟前
河道环境智能检测系统(YOLO + DeepSeek) | 河道巡检 YOLO DeepSeek 大语言模型 智慧水利 9144期
人工智能·yolo·目标检测·语言模型·河道污染·城市治理