# 1. INT8 量化(对称/非对称)与 FP16/BF16 训练的精度差异是什么,量化误差如何用校准集评估? A 用 max/127 映射到 [-127,127],零点为 0 ✓ 正确答案 B 用 max-min 和零点映射 C 不缩放直接存 D 只用负值
# 2. 为什么 BF16 训练配合 FP32 主权重(master weights)成为大模型训练标配,它规避了什么问题? A BF16 尾数仅 7 位,FP32 主权重保存精确更新,规避精度损失 ✓ 正确答案 B BF16 动态范围不足 C 为了更慢 D 与精度无关
# 3. 低精度 GEMM 的累加器为何必须保持高精度,逐项乘积舍入与累加误差如何随矩阵维度累积,FP32 累加如何控制误差界? A 增加吞吐 B 让每个乘积的舍入误差不随 K 维无界累积,控制误差界 ✓ 正确答案 C 降低精度 D 与精度无关
# 4. bfloat16 的表示,与 FP16 相比的指数/尾数分配与训练稳定性如何? A 保留 8 位指数换来与 FP32 一致的动态范围,但尾数降到 7 位 ✓ 正确答案 B 指数更少 C 尾数更多 D 动态范围更小
# 6. bfloat16 相比 FP16 保留了 8 位指数而缩减尾数,这一取舍如何影响动态范围与精度? A 动态范围更小 B 精度更高 C 动态范围与 FP32 一致,覆盖大范围梯度/权重,训练更稳定 ✓ 正确答案 D 尾数更多
# 8. TF32 在 Ampere Tensor Core 上以 19 位(8 指数+10 尾数)格式运算并以 FP32 累加,解决了什么问题? A 截断 FP32 尾数为 10 位、保留 8 位指数,用 FP32 累加,兼顾动态范围与吞吐 ✓ 正确答案 B 完全等价 FP32 C 只有 5 位指数 D 不含累加
# 9. 混合精度训练中 loss scaling 为何必要,它如何防止 FP16 梯度下溢? A 加速收敛 B 减小显存 C 提高模型精度 D 放大 loss 使梯度移出下溢区,避免 FP16 梯度下溢为 0 ✓ 正确答案
# 10. FP16 的 5 位指数导致动态范围有限,训练中为何常因溢出而需改用 BF16? A 与动态范围无关 B BF16 精度更高 C BF16 显存更小 D FP16 只有 5 位指数,动态范围小,大值易溢出导致训练崩溃 ✓ 正确答案
# 12. FP8(E4M3/E5M2)与 TF32 在推理与训练中的精度取舍 A 两者精度相同 B TF32 精度更低 C TF32 位宽更小 D TF32 有 10 位尾数、精度更高,动态范围与 FP32 相同,但吞吐低于 FP8 ✓ 正确答案
# 13. FP16 与 BF16 的动态范围对比(5 位 vs 8 位指数),在梯度、激活与权重上分别如何选择? A 梯度可能跨越多个数量级,8 位指数提供大动态范围防下溢/溢出 ✓ 正确答案 B 梯度精度最高 C 梯度范围小 D 与格式无关
# 14. 低比特量化(INT4/NF4)与 QLoRA 在推理显存与精度上的取舍,逐层/逐通道量化粒度的影响? A 没有码本 B 位宽更大 C 用正态分布优化的码本,更贴合权重分布,精度损失更小 ✓ 正确答案 D 显存更大
# 15. FP8 训练的分块缩放(block-wise scaling)如何缓解小数值溢出,E4M3 与 E5M2 如何分工? A 让所有块共用全局 scale B 为矩阵每块独立算 scale,把各块数值归一化到 FP8 范围,缓解溢出 ✓ 正确答案 C 减小矩阵 D 与数值无关
# 16. 混合精度训练中优化器状态(Adam 一阶/二阶矩)为什么需要最高精度,它占显存的主要部分吗? A 只占很小 B 不占显存 C 是,每参数需 m/v 两份状态,且精度要求高 ✓ 正确答案 D 与参数无关
# 17. BF16 尾数仅 7 位,数值较大时相邻可表示数间隔(ULP)变大,对梯度与激活的绝对精度有何影响? A 大数值更精确 B 绝对误差恒定 C ULP 随数值增大而增大,大数值的绝对误差更明显 ✓ 正确答案 D 与数值大小无关
# 18. 低精度计算的缩放,loss scaling 与混合精度训练的工程实践如何? A 只用于推理 B 固定一个 scale 不动 C 不需要检测溢出 D 放大 loss 反向传播,检测溢出则减小 scale 并重试,无溢出则周期增大 ✓ 正确答案
# 19. 低精度梯度通信的误差反馈(error feedback),BF16/FP8 allreduce 时如何用残差补偿舍入误差以维持收敛? A 丢弃误差 B 记录每次压缩丢掉的残差,下一轮加回梯度再压缩,补偿舍入误差 ✓ 正确答案 C 增加带宽 D 只用于本地