大模型面试问题准备
1. BERT的多头注意力为什么需要多头?
为了捕捉不同子空间的语义信息,每个头关注不同的方面,增强模型的表达能力
2. 什么是softmax上下溢出问题?
问题描述:
上溢出:y=e^x中,如果x取非常大的正数,y(float32格式数据)就会溢出;
下溢出:如果x取非常小的负数,y就是0.00000000几,超过有效位数后,y就是0了,如果分母都是0,就会出错。
解决方法:
x同时减去x_max,即可解决。
上溢出:最大值变为了0,因此y不会溢出;
下溢出:分母必然存在1,因此不会为0。
3. 为什么NLP用LayerNorm而不是BatchNorm?
标准化的目的:1. 不同特征间的尺度需要归一化 2. 深度学习中矩阵乘容易导致向量元素不断变大,为了网络的稳定性需要归一化
BatchNorm是对一个batch-size样本内的每个特征的所有样本做归一化,LayerNorm是对每个样本的所有特征做归一化。
BN抹杀了不同特征之间的大小关系,但是保留了不同样本间的大小关系;LN抹杀了不同样本间的大小关系,但是保留了一个样本内不同特征之间的大小关系。batch size较小或者序列问题中可以使用LN。
总结原因:
首先,一个存在的问题是不同样本的序列长度不一致,而Batch Normalization需要对不同样本的同一位置特征进行标准化处理,所以无法应用;当然,输入的序列都要做padding补齐操作,但是补齐的位置填充的都是0,这些位置都是无意义的,此时的标准化也就没有意义了。
其次上面说到,BN抹杀了不同特征之间的大小关系;LN是保留了一个样本内不同特征之间的大小关系,这对NLP任务是至关重要的。对于NLP或者序列任务来说,一条样本的不同特征,其实就是时序上的变化,这正是需要学习的东西自然不能做归一化抹杀,所以要用LN。
4. RLHF训练过程是怎么样的?
RLHF 是一种结合强化学习(RL)和人类反馈(HF)的 AI 训练方法,能够有效提升 AI 生成文本的质量。其核心步骤包括:
监督微调(SFT):训练初始模型。
奖励模型训练(RM):基于人类反馈优化奖励函数。
强化学习(RL):使用 PPO 等方法优化策略,提高模型表现。
5. 大模型训练有几步?
大模型训练主要有4步:
Pretraining — 预训练阶段(自监督学习,数据库量大质量低)
Supervised Finetuning(SFT) — 监督微调,也叫指令微调阶段(人工问答数据用于训练,质量高数量少)
Reward Modeling — 奖励模型训练阶段(训练奖励模型,评价大模型的输出质量)
Reinforcement Learning(RL)— 增强学习微调阶段(利用RM对大模型进行参数更新)
6. 在PyTorch中model.train()和model.eval()的作用?
model.train()
:启用训练模式,开启Dropout和BatchNorm的统计量更新。
model.eval()
:切换为评估模式,关闭Dropout,固定BatchNorm的均值和方差(使用训练阶段的统计量)。
7. 如何解决大模型推理延迟问题?
模型优化:量化(FP16/INT8)、剪枝、知识蒸馏。
系统优化:动态批处理、KV Cache复用、内存高效注意力(如FlashAttention)。
硬件加速:TensorRT编译、GPU并行(如vLLM)。
8. Transformer中前馈层(FFN)的作用?
非线性部分:增强模型表达能力
线性部分:通过升维降维使模型捕捉复杂的特征和模式
总结:FFN通过非线性变换(如ReLU/SwiGLU)增强模型表达能力,对注意力层的输出进行特征映射和维度调整,捕捉更复杂的模式。
9. 深度网络中loss除以10和学习率除以10等价吗?
取决于优化器类型。对于带有自适应学习率的优化器(如Adam、RMSprop), loss
缩放与学习率调整并不等价。对于经典的SGD和Momentum SGD,将 loss
乘以常数等价于将学习率乘以相同的常数。
10. Self-Attention的时间/空间复杂度?
时间复杂度:O(n^2*d)
a. Q和K点积,nxd和dxn的计算复杂度是O(n2d)
b. 每行softmax的计算,计算复杂度为O(n),n行为O(n2)
c. 值矩阵和softmax结果点积,nxd和nxn,计算复杂度为O(n2d)
11. 大模型幻觉如何缓解?
大语言模型中的幻觉源于数据压缩(data compression)和不一致性(inconsistency)。由于许多数据集可能已经过时或不可靠,因此质量保证具有挑战性。模型回答偏向于它们见过最多的内容。为了减轻幻觉,可以采取以下方法:
12. 主流大模型为何是Decoder-only?
-
自回归生成:Decoder天然适合逐Token生成,Encoder-Decoder结构在训练时需对齐,效率低。
-
训练效率:Decoder-only架构参数量更少,预训练成本低(如GPT、LLaMA)。
13. Attention为何除以√d?
点积结果随维度d增大而幅值增加,导致Softmax梯度消失。除以√d缩放点积值,稳定训练。
14. BERT的Embedding相加合理性?
Embedding相加等价于拼接后投影,模型能自动学习各Embedding的交互。实验表明相加不影响效果且更高效。
15. 交叉熵与KL散度的含义?
KL散度=交叉熵-熵
16. 交叉熵损失的公式?
参考链接:
1. https://blog.csdn.net/HaoZiHuang/article/details/122616235
2.自然语言处理: 第二十四章 为什么在NLP领域中普遍用LayerNorm 而不是BatchNorm?_layernorm 在nlp cv区别-CSDN博客
3. 深入解析 RLHF(Reinforcement Learning from Human Feedback)-CSDN博客
4. 通用大模型训练过程必须经历的四个阶段!_大模型训练阶段-CSDN博客
5. 基本功|解读大模型预训练时候的损失函数_大语言模型损失函数-CSDN博客