BF16(Brain Float16)

BF16

比 FP16 更稳的低精度

亦作、亦称:Brain Float16 · Brain Float 16 · bfloat16

BF16(Brain Float16)是由 Google Brain 团队为深度学习硬件设计的 16 位浮点格式,其核心特点是保留与 FP32 相同宽度的 8 位指数位,使其动态范围远超传统 FP16,已成为大模型训练与推理中最主流的低精度数值格式之一。

概述

BF16 全称 Brain Float 16,专为神经网络计算设计,在保持足够数值稳定性的同时大幅降低显存与带宽消耗。

  • 位宽分配:1 位符号位 + 8 位指数位 + 7 位尾数位,共 16 位。
  • 动态范围:指数位与 FP32 一致,可表示约 ±3.4×10³⁸,与 FP32 量级完全相同。
  • 精度牺牲:尾数仅 7 位,十进制精度约 2–3 位,低于 FP16 的 3–4 位,但在梯度更新场景中通常可接受。
  • 硬件加速:Google TPU v2+、NVIDIA A100/H100、Intel Xeon(第 3 代以上)、ARM v8.6-A、Apple M2+ 等均对 BF16 提供原生矩阵乘法加速。

工作原理

BF16 通过截断 FP32 的低 16 位尾数来完成格式转换,转换代价极低。

  • FP32 → BF16 转换:直接丢弃 FP32 末 16 位尾数(或加入舍入),可视为「截断版 FP32」,无需复杂重编码。
  • 混合精度训练:通常与 FP32「主权重」(master weights)配合使用——前向传播和梯度计算用 BF16,权重更新用 FP32 累加,兼顾速度与精度。
  • 梯度稳定性:8 位指数避免了 FP16 在小梯度时频繁发生的梯度下溢(underflow)和梯度溢出(overflow)问题,训练无需额外损失缩放(loss scaling)。
  • 推理模式:推理阶段权重直接以 BF16 存储和计算,显存占用约为 FP32 的一半。

与相邻格式的区别

BF16 在低精度格式家族中处于「动态范围优先」的设计方向。

  • BF16 vs FP16:FP16 有 10 位尾数(精度更高)但仅 5 位指数(动态范围窄),训练中更易梯度溢出;BF16 指数位更多,稳定性更好,现已基本取代 FP16 成为大模型训练默认格式。
  • BF16 vs FP32:FP32 有 23 位尾数,精度远高于 BF16,但显存占用是 BF16 的 2 倍;两者动态范围相同,BF16 可视为「截断版 FP32」。
  • BF16 vs FP8:FP8(如 E4M3、E5M2)进一步压缩至 8 位,显存更省但精度损失更大,目前主要用于 H100 推理加速,训练稳定性低于 BF16。
  • BF16 vs INT8/INT4:整数量化格式通常需要额外的校准步骤(calibration)和量化感知训练,而 BF16 可直接替换 FP32 无需校准,迁移成本更低。

应用场景

BF16 已成为大规模 AI 训练与部署的事实标准低精度格式。

  • 大模型预训练:LLaMA、GPT 系列、Gemini 等主流大语言模型均在 BF16 混合精度下完成预训练,显存节省约 40%–50%。
  • 分布式训练:多卡通信时传输 BF16 梯度可减少约一半带宽消耗,提升 AllReduce 效率。
  • 推理服务:vLLM、SGLang、TGI 等推理框架默认使用 BF16 权重加载,在保持生成质量的同时最大化吞吐量。
  • 微调(SFT/LoRA/DPO):全参数微调和参数高效微调(PEFT)均支持 BF16,平衡显存与收敛稳定性。

局限与误区

BF16 并非万能,在特定场景下需谨慎使用。

  • 精度损失不可忽视:7 位尾数意味着相邻可表示数之间的间距较大,对数值敏感的操作(如大量小数累加、softmax 数值稳定性)建议保留 FP32 累加。
  • 并非所有硬件支持:较老 GPU(如 V100/Volta 架构及更早)不支持 BF16 原生计算,使用时会回退到软件仿真,反而比 FP32 更慢。
  • 误区——「BF16 就是半精度」:半精度通常指 FP16,两者位宽相同但格式不同、不可混用;BF16 更准确的描述是「截断版单精度」。
  • 量化叠加风险:在已量化为 INT8/INT4 的模型上再转换 BF16 无意义,双重压缩会加剧精度损失。

发展脉络

BF16 的普及与 AI 训练硬件的演进紧密交织。

  • 2017:Google Brain 为 Cloud TPU v2 引入 BF16 作为默认训练精度,这是该格式首次在生产硬件中使用。
  • 2018:Google 在 Google I/O 公开 BF16 的技术细节,Google Brain 团队正式对外推广此格式。
  • 2019:Google Cloud 博客发布《BFloat16: The Secret to High Performance on Cloud TPUs》,全面阐述 BF16 设计动机与性能优势。
  • 2020:NVIDIA A100 GPU 正式引入 BF16 Tensor Core 原生支持,将 BF16 推广至 GPU 训练主流场景。
  • 2022:LLaMA、Chinchilla 等大规模语言模型训练默认采用 BF16,确立其在 LLM 领域的主导地位。
  • 2023:NVIDIA H100 进一步引入 FP8 支持,ARM、Intel、AMD 等厂商相继完善 BF16 硬件加速,但 BF16 仍是稳定训练的首选格式。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「比 FP16 更稳的低精度」
  • 「大模型训练常用精度」
  • 「跟 FP16 不是一回事」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 3 篇文章,帮助深入理解该术语。

  1. 1

    模型量化与压缩:从 FP32 到 INT4 的完整指南(ML 全场景)

    系统讲解模型量化与压缩的核心技术——从 PTQ/QAT 实战到知识蒸馏与结构化剪枝,涵盖 INT8、INT4 等主流方案在 ML 全场景的应用

  2. 2

    LLM 推理优化:量化、剪枝、蒸馏与推理加速实战

    系统讲解大语言模型推理优化的四大核心技术——量化(Quantization)、剪枝(Pruning)、知识蒸馏(Knowledge Distillation)和推理引擎加速,覆盖从原理到实战的完整链路

  3. 3

    NVIDIA RTX Spark:消费级AI芯片架构与Windows AI代理平台全景解读

    2026年6月1日,NVIDIA CEO黄仁勋在GTC Taipei/COMPUTEX 2026主题演讲中发布RTX Spark超级芯片——这是NVIDIA时隔十余年再次挑战PC处理器领域,将Blackwell GPU与20核Grace CPU集成于单一SoC,支持128GB统一内存和1 petaflop AI算力。本文系统解读RTX Spark的硬件架构、与微软合作的AI代理平台生态、Windows on Arm战略意义,以及对PC行业格局的深远影响。

外部参考

维基百科:查看「BF16」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。