首页优化地图方法索引基础概念
返回技术汇总表 ↗

F006 · 基础讲解

精度基础:dtype、FP16、BF16 与累加

数据的存储格式、运算格式、累加格式和通信格式需要分别说明。

本页目录

01 · dtype 是什么

dtype 是每个元素采用的数据类型。例如 FP32 通常每元素 4 字节,FP16 / BF16 每元素 2 字节。同样元素个数下,较少字节能节省存储与部分搬运,但不保证所有操作更快。

浮点数用符号、指数和有效数值位表示范围很大的实数。指数位影响动态范围,有效数值位影响可区分的精细程度。

02 · 两种 16 bit 浮点格式

格式指数 / 显式尾数位直观取舍
FP165 / 10相对更多尾数位,动态范围较窄。
BF168 / 7动态范围接近 FP32,同数量级附近精度更粗。

两者位数相同,不代表数值行为相同。小梯度可能下溢,大数值可能溢出,训练需要观察梯度和收敛。

依据:PyTorch · torch.amp(main) ↗ · Mixed Precision Training · 原始论文 ↗

03 · 乘法输入与累加器可以不同

矩阵乘法的一个输出要加很多乘积。输入可能采用低精度,而内部累加采用更高精度。参数更新的状态、归一化或 Loss 也可能使用不同格式。只看到输入 Tensor 的 dtype,无法确定整条执行链的精度。

04 · Loss Scaling 与 FP8 配方

Loss Scaling 在反向前放大 Loss,扩大梯度量级,更新前再把梯度除回。它主要帮助控制低精度梯度下溢。FP8 还需要选择格式、缩放与适配内核;较低位数并不自动保持相同质量。

依据:PyTorch · torch.amp(main) ↗ · Transformer Engine 2.8 · FP8 / FP4 配方 ↗

带着这些概念,继续读优化方法

参考资料

继续:参数高效微调:LoRA / QLoRA / 冻结 →返回优化总览
AI Infra 知识库 · 总览 → 独立讲解网站更新 2026-10-08
搜索知识库

搜索方法与基础概念 · Esc 关闭