单选题
1.相关系数 ρxy
相关系数的取值范围是 [-1, 1]。
- ρ = 1:完全正线性相关
- ρ = -1:完全负线性相关
- ρ = 0:不表示一定独立,只表示无线性相关
2.SVD矩阵
奇异值分解:
其中 Σ 是对角矩阵,对角线上的值就是奇异值。
矩阵的秩就是非零奇异值的个数。因为秩本质上是矩阵中线性无关信息的维度,而每个非零奇异值对应一个有效维度。
-
若所有奇异值都非零,则矩阵满秩
-
SVD 常用于:
- 降维
- 去噪
- 压缩
- 伪逆计算
3.贝叶斯公式
其中:
- P(A):先验概率
- P(A|B):后验概率
4. 混合精度中的 loss scaling
混合精度训练中使用 FP16 存储梯度,其表示范围较小。在反向传播时,许多很小的梯度会下溢(变成 0),因此需要使用 loss scaling 将损失放大,使得梯度落在 FP16 的安全表示范围内。
loss scaling 的做法是:
先把 loss 乘上一个较大的系数,使得反向传播得到的梯度整体变大,避免这些很小的梯度在 FP16 中下溢为 0;之后再把梯度按同样比例缩回去,不影响最终更新结果。
拓展:
-
混合精度训练为什么快
- 因为 FP16 占用显存更少,计算吞吐更高,尤其在 GPU 上更明显。
-
为什么不用全程 FP16
- 因为 FP16 精度和动态范围不足,容易出现梯度下溢、溢出等数值不稳定问题,所以通常采用“混合精度”。
-
动态 loss scaling
- 如果缩放过大,可能又会导致溢出。
- 所以实际训练里常用动态 loss scaling:自动调节缩放倍数,在稳定性和精度之间平衡。
5.PCA投影值
在主成分分析(PCA)中,我们需要将原始数据投影到特征向量所指向的方向上。假设我们有一个已经完成中心化处理的二维数据点x=[3,4]^T。通过计算协方差矩阵,我们得到了对应于最大特征值的第一主成分方向的单位特征向量w=[0.8,0.6]^T。请问,数据点 x 在该主成分方向上的投影值(即降维后的一维坐标)是多少?
投影值是:
已知:
代入计算:
所以答案是:4.8
解析:
PCA 中,把样本投影到某个主成分方向上,本质上就是用该方向的单位特征向量与样本向量做点积。
因为:
- 主成分方向是 ( w )
- 数据点是 ( x )
- 投影后的一维坐标就是 ( w^T x )
这里 (w) 是单位向量,所以算出来的 4.8 就是点 x 在第一主成分方向上的标量投影长度,也就是降维后的一维表示。
拓展知识点:
- 为什么要先中心化
- PCA默认分析的是“围绕均值的变化方向”。
- 不中心化会让均值位置影响主成分结果。
- 投影值和投影向量的区别
-
投影值:一个数,表示在该方向上的坐标,这里是4.8 -
投影向量:真正投影到直线上的那个二维向量,为
- 如果做一维降维
-
原来二维点
- 降维后就变成一个数
4.8
- 几何意义
- 点积 = 向量长度 × 方向夹角余弦
- 所以它表示“x 在 w 方向上有多大分量”
6.Layer Normalization(LN)
以下关于Layer Normalization(LN)说法错误的是:
A.根据LN的位置不同可分Pre-LN和Post-LN
B.与RMSNorm相比,LN的主要区别在于去掉了减去均值的部分
C.LN首先计算每个样本的均值和方差,之后进行归一化,最后对归一化的值进行缩放和添加偏置
D.LN可在一定程度上避免梯度消失或梯度爆炸的问题,增强模型的泛化能力
错误的是:B
解析:
Layer Normalization(LN) 和 RMSNorm 的关键区别,不是“LN 去掉了减去均值的部分”,而是反过来:
-
LN会做:- 减去均值
- 除以标准差
- 再进行缩放
γ和偏置β
公式可写成:
RMSNorm通常不做减均值,只根据均方根进行归一化,核心是保留尺度归一化而省去中心化这一步。
各选项判断:
A 正确
-
LN 在 Transformer 中按放置位置不同,常分为:
Pre-LN:先 LN,再进子层Post-LN:子层输出后再 LN
B 错误
- 说反了。
- 实际上是
RMSNorm去掉了均值中心化。
C 正确
-
这是 LN 的标准流程:
- 对每个样本计算均值和方差
- 归一化
- 再用可学习参数进行缩放和偏置
D 正确
- LN 能稳定激活值分布,缓解训练中的梯度消失和梯度爆炸问题,在一定程度上提升训练稳定性和泛化表现。
拓展知识点
1. LN 和 BatchNorm 的区别
BatchNorm:按 batch 统计,依赖 batch 大小LayerNorm:按单个样本的特征维度统计,不依赖 batch- 所以 LN 更适合
NLP和Transformer
2. Pre-LN 和 Post-LN 的区别
Pre-LN训练通常更稳定,深层网络更常用Post-LN是早期 Transformer 常见结构,但深层时训练可能更难
3. 为什么 RMSNorm 会流行
- 它比 LN 更简单,计算稍省
- 在大语言模型里效果常常不错
- 核心思想:有时只做“尺度归一化”就足够了
4. 一句速记
LN = 减均值 + 除标准差 + 缩放平移RMSNorm = 只做幅值归一化,通常不减均值
7.狭长山谷曲面(病态曲率)
如果损失函数曲面呈现狭长的山谷形状(即在一个方向上曲率大,另一个方向上曲率小),SGD 容易发生什么现象?
SGD 容易出现的现象是:在陡峭方向来回震荡,在平缓方向前进很慢。
详细解析:
当损失函数是“狭长山谷”时,说明不同方向的曲率差别很大:
- 曲率大的方向:梯度变化很快
- 曲率小的方向:梯度变化很慢
这会导致 SGD 更新时:
- 在曲率大的方向上,步子容易迈得过大,左右来回摆动、震荡
- 在曲率小的方向上,更新又比较慢,所以整体收敛速度很低
也就是说,参数不会平稳地沿着山谷底部前进,而是像“之”字形一样不断震荡着往前走。
拓展知识点:
-
为什么会这样
- SGD 的学习率对所有方向通常是统一的
- 但不同方向最合适的步长其实不一样
- 一个学习率很难同时兼顾“陡峭方向稳定”和“平缓方向快速前进”
-
会带来什么问题
- 收敛慢
- 容易震荡
- 学习率稍大时甚至可能无法收敛
-
常见改进方法
Momentum:减少来回震荡,加快沿正确方向前进AdaGrad / RMSProp / Adam:对不同方向自适应调整步长- 合理的学习率衰减也有帮助
8.SGD
SGD 是 Stochastic Gradient Descent,中文叫随机梯度下降。
它是训练机器学习、深度学习模型时最常用的优化方法之一,作用是:不断调整模型参数,让损失函数变小。
通俗理解
训练模型时,我们希望找到一组最好的参数,让预测误差尽可能小。
SGD 就像“下山找最低点”:
- 当前位置:当前参数
- 山的高度:损失函数值
- 梯度:当前位置最陡的上升方向
- 负梯度方向:下降最快的方向
所以每次参数更新都会朝着负梯度方向走一小步。
公式:
其中:
为什么叫“随机”
普通梯度下降(GD)每次都用整个训练集计算一次梯度,代价很大。
而 SGD 每次只随机取一个样本,或者实际中常说的小批量 mini-batch,来近似梯度,所以速度更快,但会有一些波动。
严格来说:
GD:每次用全量数据SGD:每次用单个样本Mini-batch SGD:每次用一小批样本
实际深度学习里,大家口头说的 SGD,很多时候也包含 mini-batch 这种形式。
优点
- 计算快,适合大规模数据
- 能在线学习
- 在深度学习中非常实用
缺点
- 更新有噪声,容易震荡
- 收敛路径不稳定
- 需要合适的学习率
常见改进
在 SGD 基础上发展出了很多优化器:
MomentumNesterovAdaGradRMSPropAdam
9.KV Cache
关于KV Cache的量化压缩,以下哪种策略是错误的或存在明显缺陷的?
A.在推理过程中对KV Cache进行在线量化,每次访问都重新计算量化参数
B.采用INT8或INT4存储KV Cache,配合反量化到FP16进行注意力计算
C.使用分组量化(per-channel或per-head)平衡精度和效率
D.对Key和Value分别计算逐token的缩放因子进行动态量化
错误或明显有缺陷的是:A
解析:
KV Cache 的量化压缩目标,是减少显存占用,同时尽量不显著增加推理开销。
如果在推理过程中对 KV Cache 在线量化,并且每次访问都重新计算量化参数,会有明显问题:
- 计算开销很大
- 访存流程变复杂
- 会拖慢推理速度
- KV Cache 会被频繁读取,如果每次都重算 scale / zero-point,收益可能被额外开销抵消
所以 A 这种策略通常是不合理的,或者至少存在明显缺陷。
其余选项为什么对:
B 正确
- 用
INT8或INT4存 KV Cache,是常见压缩思路 - 在注意力计算前反量化到
FP16/BF16,这是可行方案
C 正确
- 分组量化,如
per-channel、per-head,能比整块统一量化保留更多精度 - 同时计算和存储开销又比更细粒度方法更可控
D 一般可行
- 对 Key 和 Value 分别做动态量化,甚至逐 token 设置缩放因子,虽然实现更复杂,但不是明显错误
- 它的优点是适应不同 token 的数值分布,能减少量化误差
- 缺点主要是元数据和计算开销增加,但不属于“明显错误”
拓展知识点:
- 为什么 KV Cache 要压缩
- 自回归推理时,序列越长,KV Cache 占用越大
- 大模型长上下文推理时,KV Cache 往往是显存瓶颈之一
- 量化 KV Cache 时最关心什么
- 显存节省比例
- 反量化额外开销
- 对注意力精度的影响
- 是否影响吞吐和延迟
- 为什么 Key 和 Value 的量化难点不同
Key直接参与注意力分数计算,对误差更敏感Value影响最终加权输出,也重要,但误差传播方式不同- 所以很多方案会对 K/V 采用不同精度或不同量化策略
多选题
编程题
