自测题库¶
用这些题检查哪块数学需要补:答得上来的直接跳过,答不上来的先点开参考答案,再回到链接的那一节去读。每道题都对应推理工作里的一个真实问题,数字都来自正文在真实模型上的测量。
怎么用这个题库
- 第一遍:每题限时 2 分钟,只标记"能答 / 模糊 / 不会";
- 第二遍:只看"模糊"和"不会"的题,读答案里链接的那一节,然后不看答案重新回答;
- 模型结构、训练、推理原理和跨章节的综合题,在大模型原理手册的自测题库里。
线性代数¶
1. 预训练权重是低秩的吗?KV Cache 呢?这对压缩意味着什么?
参考答案
用 SVD 看奇异值的能量分布。Qwen3-0.6B 的 gate_proj 保留 128 个方向只剩 36.1% 的能量(随机矩阵是 25.7%),权重不是低秩的,不能直接对整个模型做低秩分解。K、V 则明显低秩:1024 维里约 90~130 个方向就覆盖 90% 的能量。这正是 MLA、KV 低秩压缩这类方法的依据。见秩与低秩近似。
2. QuaRot 这类旋转方法为什么能改善 W4A4 量化?为什么旋转不改变模型的输出?
参考答案
正交矩阵满足 \(QQ^\top = I\),所以 \(xW = (xQ)(Q^\top W)\),在数学上与原计算等价,可以把 \(Q^\top\) 提前乘进权重。旋转把集中在少数通道上的离群值"摊"到所有通道上:实测最大值/中位数从 47.2 降到 9.0,W4A4 的相对误差从 0.421 降到 0.148(随机正交旋转)。用 Hadamard 矩阵做旋转,乘法可以用快速变换在 \(O(d \log d)\) 内完成。见正交矩阵与旋转。
概率与信息论¶
3. 投机解码中,一个草稿 token 被接受的概率是多少?
参考答案
按 \(\min(1, p/q)\) 接受时,接受率为 \(\sum_x \min(p(x), q(x)) = 1 - \text{TV}(p, q)\),即 1 减去两个分布的总变差距离;被拒绝时从 \(\max(0, p - q)\) 归一化后的分布中重新采样,最终输出的分布严格等于目标分布。用 INT4 版本当草稿,实测平均接受率 0.70,与 1 − TV 完全一致。见拒绝采样与投机解码。
4. 评估量化模型时,为什么除了困惑度还要看 KL 散度和 top-1 一致率?
参考答案
困惑度只看正确答案的概率,两个模型的困惑度接近,不代表它们在每个位置给出的分布接近。KL 散度直接衡量量化模型的分布偏离原模型多少,top-1 一致率反映贪心输出会有多少不同。实测 INT8 的 KL 只有 0.005、top-1 一致率 96%;INT4 按组量化 KL 0.46、一致率只有 64%。KL 也与投机解码的接受率直接相关。见KL 散度:量化改变了多少。
微积分与反向传播¶
5. GPTQ 为什么比逐个四舍五入(RTN)好?
参考答案
逐层的目标是让量化后的输出 \(XW\) 不变,误差的二阶近似由 \(H = X^\top X\) 决定。RTN 相当于假设 \(H\) 是对角的,忽略了输入维度之间的相关性;GPTQ 按列量化,每量化一列就用 \(H^{-1}\) 把误差补偿到尚未量化的列上。实测 INT4 按通道量化:原模型困惑度 25.94,RTN 55.02,GPTQ 36.85。见二阶信息:GPTQ。
浮点与数值计算¶
6. 为什么 Tensor Core 用 BF16/FP8 做乘法,却要用 FP32 累加?
参考答案
浮点加法会舍入,和越大,相邻可表示数之间的间隔越大。BF16 只有 8 位有效位,和达到 256 时间隔是 2,再加一个小于 1 的数就原封不动。实测用 BF16 逐个累加 2 万个数得到 256,正确答案约 10034;用 FP32 累加器几乎没有误差。见累加:误差会积累。
性能与服务中的数学¶
7. 服务的利用率从 90% 升到 95%,平均延迟会怎样变化?为什么不能把服务规划在满载附近?
参考答案
以 M/M/1 排队模型为例,平均逗留时间为 \(\frac{1}{\mu - \lambda} = \frac{1}{\mu}\cdot\frac{1}{1-\rho}\),利用率 ρ 从 0.9 到 0.95,\(\frac{1}{1-\rho}\) 从 10 变成 20,平均延迟翻倍,尾部延迟涨得更多。推理服务能批处理,但规律相同:请求速率超过某个点之后,TTFT 会突然爆炸。所以容量规划要留余量,把利用率控制在延迟曲线平坦的区间。另外,用 Little 定律 \(L = \lambda W\) 可以从并发数和吞吐反推延迟。见排队论。
8. 压测了 200 个请求,P99 是 233 ms,这个数可信吗?
参考答案
200 个样本中只有 2 个落在 P99 以上,估计的方差很大。用 bootstrap 重采样估计置信区间:200 个样本时 95% 置信区间是 [204, 313] ms,5000 个样本时才收窄到 [310, 341] ms。报告尾部延迟时要有足够的样本,最好给出置信区间。见性能测量的统计学。
发现错误或有更好的写法?在 GitHub 上编辑此页提交问题