大模型面试常见问答
本文梳理了大模型面试中的7个核心问题,涵盖模型本质、Transformer原理、优化策略等关键技术点。重点解析:1)大模型与早期CNN的本质差异在于统一的自回归目标和涌现能力;2)自注意力的全局依赖性和表达下界;3)多头机制的低秩分解特性;4)RoPE位置编码的外推数学推导;5)AdamW/Lion优化器的内存优化对比;6)FlashAttention的三大显存优化技巧;7)INT8量化的KL散度
大模型面试 常见问答
电话面可直接背诵;现场面可展开白板推导。每题均给出:
① 面试官想听什么 ② 完整推导/代码 ③ 常见追问 & 反向提问
1. 什么是「大模型」?它与 2015 年的「大」CNN 有何本质区别?
面试官想听
不是参数数量级,而是「训练目标统一 + 涌现能力」带来的范式迁移。
完整回答
-
参数规模:>10 B 是行业约定,但关键在「训练数据量」与「参数线性正比」——Kaplan 律(2020):
L ∝ (Nα)(Dβ), α≈0.34, β≈0.28
即 10× 参数只需 3× 数据就能维持同样 loss。 -
目标函数统一:
2015 的「大」CNN 仍用任务相关损失(分类 CE、检测 Smooth-L1);大模型全部用自回归 LM 目标
max_θ Σ_t log P_θ(x_t | x_<t)
好处:① 无需标注 ② 任意任务可转成「续写」 -
涌现能力(Emergent Ability)定义:Wei et al. 2022
- 在 10^22 FLOPs 附近突然出现的 ICL、CoT、Instruction Following
- 非线性跳跃:10× 参数 → 100× 任务准确率
-
工程边界:
- 显存:单卡 80 GB → 模型权重 < 40 B(Adam 2 倍 + 梯度 1 倍 + 激活 0.5 倍)
- 计算:训练 1 T token 需 10^24 FLOPs ≈ 1 万 A100×30 天
常见追问
Q:涌现是度量 artifact 吗?
A:用 bits per parameter 归一化后依旧跳跃;且在不同下游任务同时出现,排除单指标假象。
反向提问
贵司业务指标到达多少 token 后出现非线性提升?
2. Transformer 自注意力为什么 work?请给出数学表达 + 可视化。
面试官想听
「全局感受野 + 可并行 + 表达下界」三板斧,最好现场画注意力矩阵。
完整推导
-
全局依赖:任意两位置距离=1
A = softmax( (QK^⊤) / √d_k ) ∈ R^{n×n}
每行是合法概率:Σ_j A_{i,j} = 1 -
并行性:
RNN 时间步依赖 → O(n) 顺序
Attention 矩阵乘法 → O(1) 常数深度(实际受 memory wall 限制) -
表达下界(Yun et al. 2020, ICML)
单头 + ReLU 前馈 → 在 L^2§ 空间稠密
即:∀ε>0, ∃ Transformer T s.t. ||T − f||_{L^2}<ε 对任意连续 f 成立 -
可视化技巧
画 4×4 矩阵:- 对角亮 → 指代消解
- 上三角亮 → 未来信息泄露(Decoder 需 mask)
代码级
def show_attn(attn, tokens): # attn: [n_heads, len, len]
import seaborn as sns
for h in range(attn.size(0)):
sns.heatmap(attn[h].cpu().numpy(),
xticklabels=tokens,
yticklabels=tokens,
cmap='Blues')
plt.title(f'head {h}')
plt.show()
追问
Q:self-attention 与卷积的等价性?
A:CNN = 稀疏 + 共享 + 局部;attention = 全连接 + 动态权重 + 全局。
Wang & Isola 2022 证明:softmax attention ≈ 归一化卷积当核大小→n。
3. 多头 attention 是精度更高还是正则化?请用矩阵秩解释。
面试官想听
低秩分解 + 噪声视角,而非「多头看得更全面」这种文学描述。
数学
设单头输出 O = softmax(QK^⊤/√d_k)V ∈ R^{n×d}
多头拼接 [O_1;…;O_h] = [V_1;…;V_h] · diag(A_1,…,A_h)
= W_O · [A_1V_1; …; A_hV_h]
等价于 块对角低秩近似 原全秩矩阵,秩 ≤ h·d_k
→ 1. 参数共享 2. 引入头间噪声 = 正则化
实验证据
h=1 → h=16 BLEU↑ 2.0;h>16 下降(正则化过度)
追问
Q:head 间 cosine 相似度通常多少?
A:训练后期 0.3~0.4;>0.7 说明冗余 → 可剪枝 30 % 头。
4. 位置编码:ROPE 为什么能外推 2× 长度不掉点?手推旋转矩阵。
面试官想听
复数旋转 → 线性插值无参数;现场写 2×2 块矩阵。
手推
把 q,k 当成复数向量:
q_m = (q_{2m} + i q_{2m+1})
旋转 R_θ = e^{i m θ} = cos mθ + i sin mθ
实部虚部展开:
[[cos mθ, −sin mθ],
[sin mθ, cos mθ]] · [x, y]^⊤
外推时 θ’ = θ · (L’/L) → 角度线性拉伸,无新参数。
代码验证
def rotate_half(x):
x1, x2 = x[..., ::2], x[..., 1::2]
return torch.cat((-x2, x1), dim=-1)
def apply_rope(x, seq_len, base=10000):
dim = x.size(-1)
inv_freq = 1.0 / (base ** (torch.arange(0, dim, 2).float() / dim))
t = torch.arange(seq_len, device=x.device).type_as(inv_freq)
freqs = torch.outer(t, inv_freq) # [seq, dim/2]
emb = torch.cat((freqs, freqs), dim=-1) # [seq, dim]
cos, sin = emb.cos(), emb.sin()
return x * cos + rotate_half(x) * sin
追问
Q:NTK-RoPE 与线性插值区别?
A:NTK 动态放大底数 base → 高频分量不衰减,长波保留。
5. 优化器:Adam vs AdamW vs Lion,大模型到底选谁?
面试官想听
权重衰减 vs L2 正则 + Lion 的二阶更新可视化。
完整对比
| 优化器 | 等价于 | 大模型 10 B+ 经验 |
|---|---|---|
| Adam | β1=0.9 β2=0.999 | 需 WD 解耦 |
| AdamW | WD ≠ λ·‖θ‖² | 默认选择,λ=0.1 |
| Lion | 符号动量 | 省 25 % 内存,lr×3,跑 1.5× epoch |
代码级
# AdamW (PyTorch 2.0 原生)
optimizer = torch.optim.AdamW(model.parameters(), lr=3e-4, weight_decay=0.1)
# Lion (谷歌官方)
from lion_pytorch import Lion
optimizer = Lion(model.parameters(), lr=1e-4, weight_decay=0.01)
追问
Q:Lion 为什么内存省?
A:仅保存一阶动量;符号操作让梯度 1-bit 化 → 优化器状态减半。
6. 长序列 OOM:FlashAttention 的 3 个核心 trick 是什么?
面试官想听
Tiling + Recompute + Softmax 数值稳定,最好现场画 GPU 内存瀑布图。
trick 1 Tiling
把 Q 分 Br 行块,K,V 分 Bc 列块 → 把 O(n²d) 显存 → O(Br·d)
Br=128, Bc=128 → A100 上 8 k 长度显存 < 16 GB
trick 2 Softmax 局部修正
online softmax 算法:
m_i = max(m_{i-1}, x_i)
f_i = exp(x_i - m_i) + exp(m_{i-1} - m_i) * f_{i-1}
→ 无需整张 n×n 得分矩阵
trick 3 反向重计算
只保存每块归一化常数,不保存得分 → 激活内存↓ 50 %
追问
Q:与 Memory Efficient Attention 区别?
A:MEA 用同样的 online softmax,但 Tiling 尺寸固定;Flash 针对 A100 SRAM 80 KB 手动调 Br,Bc → 带宽利用率 > 90 %。
7. INT8 量化:校准 512 条样本够吗?KL 散度怎么算?
面试官想听
校准集大小、长尾分布、KL 分段 → 现场写 numpy。
步骤
- 收集激活 x ∈ ℝ^N
- 建直方图 H(bin)=count,归一化 P=H/N
- 候选量化尺度 s ∈ [0.95,0.98,0.999]
- 对每 s 生成量化分布 Q:
Q(i) = ∑_{x∈bin_i} 1{|x|≤s} - KL(P‖Q)=∑ P(i) log(P(i)/Q(i))
- 选最小 KL 的 s → 截断长尾 0.1 %
代码
def kl_calibration(tensor, n_bins=2048, num_s=100):
hist, edges = np.histogram(tensor, bins=n_bins)
P = hist / hist.sum()
s_candidates = np.linspace(0.90, 0.999, num_s)
best_s, min_kl = None, np.inf
for s in s_candidates:
q_edges = [-s, s]
Q = np.histogram(tensor, bins=n_bins, range=q_edges)[0]
Q = Q / Q.sum() + 1e-12
kl = np.sum(P * np.log(P / Q + 1e-12))
if kl < min_kl:
min_kl, best_s = kl, s
return best_s
追问
Q:INT4 为什么不用 KL?
A:4-bit 区间只有 16 档 → 直方图太粗;改用 MSE 网格搜索或learned scale(LLM.int8() 2023)。
8. 小样本:每类 100 条如何做到 90 % 全量效果?
面试官想听
两阶段:continual pre-train → prompt-tune + 数据增强 MixUp
阶段 1 Continual LM pre-train
- 数据:任务领域 100 M token
- 目标:同自回归 LM
- 超参:lr=2e-5, 1 epoch, batch=1 M token
→ 领域适配,PPL ↓ 30 %
阶段 2 Prompt-tuning
- 仅训练 20 个 virtual token
- 学习率 0.1(比全模型高 1000×)
- 早停:验证 loss 连续 3 次不降
→ 参数量 < 0.1 %,收敛 10 min
数据增强
- 隐藏层 MixUp:
z = λ z₁ + (1−λ) z₂, λ~Beta(0.4,0.4) - 反向翻译(同义句)+ EDA 同义词
→ 指标↑ 2~3 点
实验结果
AGNews 4-class, 每类 100 样本
全量微调 94.2 % → Prompt 91.7 % → 两阶段 93.8 %
9. 模型并行 vs 数据并行 vs 张量并行,现场画图。
面试官想听
把 GPU 画成方块,标箭头;给出通信量公式。
图
数据并行:同一模型,不同 batch
[G0] ←→ [G1] ←→ [G2] ←→ [G3]
↕ All-Reduce gradient 4×
模型并行:同一 batch,不同层
[G0] → [G1] → [G2] → [G3]
↕ 激活传递 2×
张量并行:同一层,不同列
[G0] ←→ [G1] # QK 列切
[G2] ←→ [G3] # V 列切
↕ All-Reduce 2×
通信量
数据并行:bytes = 2 × model_size × n_gpu
张量并行:bytes = 2 × activation_size × seq_len × n_layer
→ 长序列用张量并行更划算
10. 线上 4-bit 量化落地:TensorRT-LLM 全流程
面试官想听
校准 → 量化 → 引擎 → 服务,给出延迟/吞吐数字。
步骤
- 校准:512 条业务 query → KL 选 scale
- 量化:
- 权重:GPTQ W4A16, group-size 128
- 激活:smoothQuant α=0.5
- 引擎:
trtllm-build --quantization gptq --max_batch_size 64 --max_input_len 2048 - 服务:
- inflight-batching + continuous batching
- 首 token 延迟 380 ms → 190 ms
- 吞吐 1200 → 3100 req/s
追问
Q:4-bit 后如何再微调?
A:QLoRA – 量化 backbone + LoRA adapter 16-bit,lr=1e-4,不掉点。
11. 注意力变体:为什么 Sparse/Sparse-Trans 仍打不过 Dense?
面试官想听
稀疏度-带宽-实现三角债:理论 FLOPs↓ 10×,实际 wall-time 只↓ 2×。
原因
- GPU 内存带宽主导:随机稀疏 → gather/scatter 耗时
- block sparse 需 mask 对齐 16×16 → 仍大量无效计算
- flash attn 优化后 dense 带宽已 > 70 % 理论峰值
结论:除非 sparsity > 95 % 且 模式固定(Longformer sliding window),否则 dense 更香。
12. 反向提问面试官(收割 offer 手势)
- 贵司线上最大长度是多少?首 token P99 目标多少毫秒?
- 长文本场景有试过 NTK-RoPE 吗?与 ALiBi 相比体验如何?
- 量化方案是 PTQ 还是 QAT?W4A16 vs W8A8 在业务指标差多少?
- 模型并行用 Megatron 还是 DeepSpeed-Ulysses?通信瓶颈在哪个 All-Reduce?
祝各位反向收割 offer,薪资 double!
更多推荐

所有评论(0)