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
相关推荐
人民广场吃泡面21 分钟前
什么是AI Agent?它又能给前端带来哪些效率提升?
前端·人工智能
沈管家AI数字员工29 分钟前
自研 AI 智能体 vs 采购数字员工平台:成本、风险与周期的真实对比
人工智能
集成电路芯片封装设备30 分钟前
除氧型真空共晶设备技术详解:从原理到应用
人工智能
武汉星际互动35 分钟前
咨询量大、时段受限、口语化难识别,政务AI数字人如何承接大厅导办?
人工智能·政务
资讯综合42 分钟前
500亿招聘市场悖论:AI技术能否填平行业的信任深坑
大数据·人工智能
早睡早起身体好1231 小时前
用 XGrammar 约束大模型工具调用:解决参数为空的问题
android·人工智能·神经网络·机器学习·自然语言处理·vllm
超智算科技1 小时前
2026服贸会现场直击|Net Zero Hub净零算力枢纽全球首发! 超智算受邀深度参与服贸会全球OPC共创节
网络·人工智能·科技·物联网·gpu算力
王红臣同学1 小时前
Microduck 强化学习源码拆解:一只 800g 的机器鸭怎么学会走路
人工智能·机器学习·ai
俊哥V1 小时前
AI 今日研究简报 · 2026-09-11
人工智能·ai
nagualky1231 小时前
AI Agent 别只返回“已完成”:用五字段验收契约定义任务终点
人工智能·机器学习·软件工程