面试前1小时看这个。每条5-10秒回想答案,想不起来的立刻回对应模块复习。
三个梯队:红色必考(答不出基本凉)、黄色高频(答得好拉开差距)、白色中频(答出来是加分)。
带"追问"标记的题目在面试中常被追问往下挖一层。
第一梯队:必考(13题)
100%掌握,每道题能口述3遍以上。
A1: Self-Attention公式
Attention(Q,K,V) = softmax(QK^T / √d_k) V 为什么除以√d_k? q_i, k_i ~ N(0,1)时,点积方差 = d_k,标准差 = √d_k 不缩放 → softmax饱和 → 梯度消失 缩放后方差恢复1 → 梯度正常追问:除以d_k行不行?
→ 不行。Var(x/d_k) = 1/d_k,方差太小,softmax太平,信息无法聚焦。
A2: 手写Multi-Head Attention
defmha(x,w_q,w_k,w_v,w_o,mask=None):B,T,d=x.shape Q=w_q(x).view(B,T,n_h,d_k).transpose(1,2)K=w_k(x).view(B,T,n_h,d_k).transpose(1,2)V=w_v(x).view(B,T,n_h,d_k).transpose(1,2)scores=Q @ K.transpose(-2,-1)/d_k**0.5ifmaskisnotNone:scores=scores.masked_fill(mask==0,float('-inf'))attn=F.softmax(scores,dim=-1)out=(attn @ V).transpose(1,2).contiguous().view(B,T,d)returnw_o(out)常见Bug:contiguous()不可忘;mask在softmax前加-inf;维度检查Q@K^T→(B,h,T,T)
A3: RLHF完整流程
Stage 1 - SFT:10K-100K高质量数据→监督微调。学"对话格式" Stage 2 - RM Training:生成K个回答→人类排序→训练Reward Model Loss = -E[log σ(r_w - r_l)] Stage 3 - PPO:Policy生成→RM打分→PPO更新→KL约束防偏离追问:KL惩罚为什么必要?
→ 没有KL → Policy学会"骗"RM → Reward Hacking。
A4: MHA vs MQA vs GQA
MHA:h个Q头,h个K/V头 → KV-Cache最大,质量最好 MQA:h个Q头,1个K/V头 → KV-Cache最小(MHA的1/h),质量微降 GQA:h个Q头,g个K/V头 → 折中,主流选择追问:GQA为什么几乎不损失质量?
→ 注意力分布主要在Q侧,K/V共享影响不大。LLaMA-2/3都选GQA。
A5: DPO推导(30秒版)
RLHF目标:max E[r(x,y)] - β·KL(π_θ || π_ref) 闭式解:r(x,y) = β·log(π_θ/π_ref) + β·Z(x) 代入Bradley-Terry → 消去r和Z → 只剩策略比值 L_DPO = -E[log σ(β·log(π_θ(y_w)/π_ref(y_w)) - β·log(π_θ(y_l)/π_ref(y_l)))]核心insight:Reward可被Policy比值替代 → 不需要RM
A6: ZeRO三阶段
ZeRO-1:分片优化器状态 → 显存省约4倍 ZeRO-2:+分片梯度 → 再省2倍 ZeRO-3:+分片参数 → 省N倍,通信量最大追问:实际怎么选?
→ ZeRO-2性价比最高。ZeRO-3配合TP使用(通信正交)。
A7: RoPE原理
在Q和K上乘以旋转矩阵,使内积只与相对位置(m-n)有关 θ_i = 10000^{-2i/d} 高频维度(小i):旋转快 → 近距离依赖 低频维度(大i):旋转慢 → 远距离依赖 叠加效果:|m-n|越大 → 内积越小(远程衰减)追问:RoPE怎么扩展长文本?
→ PI → NTK-aware → YaRN,调整θ_i缩放方式
A8: 分布式并行策略
DP:每卡一份模型,数据分片 ZeRO:在DP基础上分片优化器/梯度/参数 TP:每卡模型一部分,需高带宽(NVLink) PP:层分给不同卡 SP:序列维度分片,用于超长文本 典型300B配置:ZeRO-3 + TP-8 + PP-8 + SP,约2000+ A100A9: KV Cache显存计算
KV Cache = 2(K+V) × n_layers × n_kv_heads × seq_len × head_dim × dtype_bytes 例:70B, 80层, GQA-8(8组KV), seq=4096, head_dim=128, FP16 = 2 × 80 × 8 × 4096 × 128 × 2 = 5.4 GB MHA(64头): 2 × 80 × 64 × 4096 × 128 × 2 = 42.9 GB GQA节省约8倍A10: Flash Attention核心
问题:传统Attention对HBM读写太多 方案:QKV分块加载到SRAM,SRAM内计算局部Attention 用online softmax避免完整归一化 效果:HBM读写减少到1/N,加速2-4×,精度无损A11: RAG完整流程
离线:文档→Chunk(256-512t)→Embedding→向量库 在线:Query→[HyDE优化]→检索(Dense+Sparse)→Rerank→LLM生成 优化方向: Chunk:定长 < 语义切分 < 层级切分 检索:Dense < Sparse < Hybrid 高级:Graph RAG、Agentic RAGA12: 幻觉分类与检测
四类:事实性/忠实性/逻辑性/指令性 检测三法:Self-Consistency(多次生成一致性) Factual Grounding(知识库验证) Uncertainty(logprob分析) 缓解首选:RAG(外部知识锚定)A13: LLM-as-Judge偏差
三大偏差: Position Bias → 交换顺序取平均 Self-Enhancement → 换不同模型做Judge Verbosity Bias → rubric加长度无关说明 与人类一致率:GPT-4约80%,仍有20%噪声第二梯队:高频(12题)
全部掌握,每个能展开2分钟。
B1: Pre-LN vs Post-LN
Pre-LN: output = x + F(LN(x)) 梯度恒等项=1,保证梯度不消失 可以不warmup,训练更深模型 所有现代LLM都用Pre-LNB2: Scaling Law
Kaplan(2020):主要扩参数 Chinchilla(2022):参数和数据等比,最优~20 tokens/参数 意味着:预算有限时不要只堆参数,数据同样重要B3: LoRA原理
ΔW = BA (低秩分解,B: d×r, A: r×d) r=8覆盖大部分任务 为什么有效:预训练权重已高秩,ΔW的有效秩约4-8 QLoRA:NF4量化基座模型+双重量化+分页优化器B4: PagedAttention
借鉴虚拟内存分页:逻辑块→物理块 每块16 token,Block Table管理映射 Copy-on-Write支持beam search共享prefix 显存利用率从20-40%提升到90%+B5: Speculative Decoding
草稿模型(小)快速生成γ个候选 目标模型(大)一次验证所有候选 正确的接受,错误的从第一个错误位置重新生成 加速比2-3×(数学等价,不损失精度)B6: Prefill vs Decode
Prefill:处理完整prompt,compute-bound,GPU利用率高 Decode:逐token生成,memory-bound,需加载全量权重 优化方向不同:Prefill→高算力GPU,Decode→高带宽GPUB7: 数据污染检测
检测方法: n-gram重叠(训练集与测试集) Perplexity分析(污染样本PPL异常低) Min-K% Prob(最低K%token均值) Membership Inference(二分类器) 时间戳验证(用截止后数据)B8: 安全防御多层架构
L1: 输入过滤(关键词+分类器) L2: 注入检测(多信号同时出现→可疑) L3: Prompt加固(系统prompt强调安全规则) L4: 安全生成(低temp+约束解码) L5: 输出过滤(安全分类器) L6: 事后验证(LLM自检)B9: SwiGLU
输出 = down(silu(gate(x)) * up(x)) 三个权重矩阵:gate(w1), up(w2), down(w3) 中间维度8/3×d_model保持参数量与标准FFN一致 SwiGLU门控机制→更优梯度流动B10: 评估Benchmark对比
MMLU:57学科选择题,2024年区分度下降 GSM8K:小学数学,CoT提升15-30% HumanEval:164编程题,Pass@k指标 MT-Bench:80道多轮对话,GPT-4评分 Chatbot Arena:匿名成对比较+Elo排名B11: Self-Instruct vs Evol-Instruct
Self-Instruct:水平扩展(广度),种子池→LLM生成→ROUGE-L去重 Evol-Instruct:垂直深化(深度),进化操作(深度/约束/推理) 最佳实践:先Self-Instruct覆盖类型,再Evol-Instruct提升难度B12: Continuous Batching
每个请求有自己的KV Cache块 调度器每步检查活跃请求,padding-free 请求完成立即移除,新请求加入 吞吐量提升2-4×第三梯队:中频(10题)
熟悉核心Insight,答出来是加分。
C1: ALiBi位置编码
在QK^T后、softmax前加入偏置:score' = q·k/√d - m·|i-j| 距离越远惩罚越大,不需要显式位置编码 外推能力强,BLOOM使用C2: MoE负载均衡
路由器 = Linear(d_model, num_experts) Top-K选择专家 负载均衡Loss:L = α×N×Σ(f_i × P_i) 无此loss → 所有token去同一专家C3: BF16 vs FP16
BF16:8位指数(范围=FP32) + 7位尾数 → 训练稳定 FP16:5位指数 + 10位尾数 → 精度高但易下溢 训练首选BF16,推理可回退FP16C4: Gradient Checkpointing
用计算换显存:前向时只存部分中间结果 反向时重计算丢失的中间结果 约增加33%计算量,节省50%+显存 适合显存紧张的场景C5: GPTQ vs AWQ量化
GPTQ:基于二阶信息(Hessian)的逐层量化 AWQ:识别并保护关键通道(对输出影响大的) AWQ通常精度更好,速度更快C6: Constitutional AI
Anthropic提出,原则驱动的自我修正 SL-CAI:模型生成→根据宪法原则修正→SFT RL-CAI:用宪法原则训偏好模型→PPO 不依赖大量人工标注C7: Calibration校准
模型置信度与实际准确率是否匹配 ECE:分bin计算准确率与置信度的加权差 Platt校准:sigmoid后处理 Isotonic校准:保序函数(更灵活) 高风险场景必须校准C8: Needle-in-a-Haystack
在长文本随机位置插入关键信息,测试模型能否定位 热力图:上下文长度×针位置 Lost-in-the-Middle现象:中间位置检索准确率最低 变体:Multi-Needle、Adversarial、NumericalC9: DPO的β参数
β控制对偏好数据的信赖程度 β大(0.5):积极拟合偏好差异 β小(0.01):保守接近参考模型 β→0:退化为仅推高偏好回答概率 典型值0.1-0.5C10: Agent评估维度
任务完成率(Success Rate) 工具调用准确率(F1/EM) 效率(步数/耗时/Token消耗) 鲁棒性(错误恢复率) 规划能力(Plan Correctness)补充:按主题分类的高频问答速查表
A. Transformer核心(面试出现率>90%)
| 问题 | 一句话回答 | 关键词 |
|---|---|---|
| Self-Attention复杂度 | O(n^2d),n序列长,d维度 | 二次复杂度 |
| 为什么除以sqrt(dk) | 防止点积过大导致softmax梯度消失 | 缩放因子 |
| Multi-Head的作用 | 多个子空间捕获不同模式 | 信息多样性 |
| 位置编码为什么必要 | Attention本身无顺序感知 | 排列不变性 |
| RoPE vs ALiBi | RoPE=旋转编码,ALiBi=线性偏置 | 外推性 |
| FlashAttention核心 | IO感知,减少HBM读写 | 分块计算 |
| KV Cache为什么有效 | 避免重复计算已处理token的K/V | 空间换时间 |
| GQA vs MHA | GQA多Q共享一个KV,减少显存 | 效率-质量折中 |
B. 训练相关(面试出现率>80%)
| 问题 | 一句话回答 | 关键词 |
|---|---|---|
| Scaling Laws | Loss ~ N^(-alpha),数据/参数/算力幂律关系 | Chinchilla |
| 预训练数据量 | 20 token/参数(Chinchilla最优比) | 数据模型比 |
| 3D并行 | DP+TP+PP,按模型/显存/通信选 | 并行策略 |
| ZeRO三个阶段 | 优化器/梯度/参数依次切分 | 显存优化 |
| LoRA原理 | W+delta_W, delta_W=BA低秩分解 | 参数高效 |
| LoRA rank选择 | r=8通常够用,复杂任务r=16-64 | 调优 |
| RLHF三阶段 | SFT→Reward Model→PPO | 对齐 |
| DPO vs PPO | DPO跳过Reward Model直接用偏好数据 | 简化训练 |
C. 推理优化(面试出现率>70%)
| 问题 | 一句话回答 | 关键词 |
|---|---|---|
| Prefill vs Decode | Prefill计算密集,Decode内存密集 | 两阶段特性 |
| PagedAttention | 虚拟内存分页管理KV Cache | 碎片率降低 |
| Continuous Batching | 请求动态插入/移除,GPU持续满载 | 吞吐量提升 |
| 投机解码原理 | 小模型猜+大模型验证 | 加速比K/2 |
| 量化对精度的影响 | INT8几乎无损,INT4损失3-5% | 精度-速度权衡 |
| SmoothQuant | 将激活的异常值迁移到权重 | INT8友好 |
D. 评估与安全(面试出现率>60%)
| 问题 | 一句话回答 | 关键词 |
|---|---|---|
| MMLU是什么 | 57学科选择题,测知识广度 | 知识评估 |
| LLM-as-Judge | 用LLM评估LLM输出质量 | 自动评估 |
| 数据污染检测 | n-gram重叠+PPL异常+MIA | 评测有效性 |
| 幻觉类型 | 事实性/忠实性/逻辑性/指令性 | 四维分类 |
| RAG减少幻觉 | 提供外部证据grounding | 事实验证 |
| 越狱防御 | 多层防御:输入过滤+安全对齐+输出审核 | 纵深防御 |
E. RAG与Agent(面试出现率>70%)
| 问题 | 一句话回答 | 关键词 |
|---|---|---|
| RAG vs 微调 | RAG灵活可解释,微调深度优化 | 选型依据 |
| Chunk策略 | RecursiveCharacterTextSplitter最通用 | 分块 |
| Hybrid Search | Dense+BM25+RRF融合 | 检索优化 |
| ReAct框架 | Thought→Action→Observation循环 | Agent基础 |
| Function Calling | LLM输出结构化函数调用JSON | 工具使用 |
| LangGraph优势 | 有向图建模状态流转,支持循环分支 | Agent框架 |
F. 系统设计(面试出现率>50%)
| 问题 | 核心思路 | 关键点 |
|---|---|---|
| 设计RAG系统 | 分块→Embed→检索→Rerank→生成 | 检索质量>模型大小 |
| 部署70B模型 | TP=4+INT4量化+PagedAttention | 显存管理 |
| 多模型服务 | 级联路由+动态batch+GPU调度 | 成本-质量 |
| 对话系统 | 状态管理+上下文压缩+安全层 | 多轮一致性 |
| 数据飞轮 | 收集→标注→训练→评估→部署→收集 | 持续迭代 |
补充:易混淆概念对比速查
| 概念A | 概念B | 核心区别 |
|---|---|---|
| MHA | GQA | MHA每头独立KV,GQA多头共享KV |
| LoRA | QLoRA | LoRA用FP16,QLoRA用NF4+Double Quant |
| PPO | DPO | PPO训练RM再优化,DPO直接用偏好 |
| RAG | Fine-tuning | RAG外部知识注入,FT参数内化 |
| HNSW | IVF | HNSW图索引召回高,IVF倒排索引内存省 |
| TTFT | TPOT | TTFT首token延迟,TPOT每token延迟 |
| SFT | CPT | SFT指令微调,CPT继续预训练 |
| BGE | E5 | BGE中文强,E5英文强 |
| vLLM | TGI | vLLM性能优先,TGI生态优先 |
| BLEU | ROUGE | BLEU看precision(翻译),ROUGE看recall(摘要) |
| Perplexity | Loss | PPL=exp(Loss),PPL更直觉 |
| Token | Word | Token是子词级,Word是词级 |
补充:数字速记卡
| 数字 | 含义 |
|---|---|
| 20 | Chinchilla最优token/参数比 |
| 32K-128K | 主流模型词表大小 |
| 4096-8192 | 常见Embedding维度 |
| 57 | MMLU学科数 |
| 164 | HumanEval题目数 |
| 8.5K | GSM8K题目数 |
| 0.5-2x | LoRA rank=8时的显存占比 |
| 2-4x | INT8量化加速比 |
| 10-20% | INT4量化精度损失 |
| 4 | PagedAttention典型block大小(KB) |
| 5-8 | 投机解码典型草稿长度K |
| 0.6-0.9 | 投机解码典型接受率范围 |
| 60-80% | KV Cache碎片率(无PagedAttention) |
| <4% | PagedAttention后碎片率 |
| 10% | Attention占Transformer计算量比例 |
| 90% | Matmul占Attention计算量比例 |
补充:面试常考公式速查
| 公式 | 含义 | 场景 |
|---|---|---|
| Softmax(z_i) = exp(z_i)/sum(exp(z_j)) | 归一化为概率分布 | Attention输出层 |
| Attention(Q,K,V) = softmax(QK^T/sqrt(d))V | 缩放点积注意力 | Transformer核心 |
| RoPE: f(q,m) = q * e^(im*theta) | 旋转位置编码 | 位置编码 |
| LoRA: W’ = W + BA, B(dr), A(rk) | 低秩适配 | 参数高效微调 |
| InfoNCE = -log(exp(sim+/T)/sum(exp(sim/T))) | 对比学习损失 | Embedding训练 |
| KL(P | Q) = sum(P*log(P/Q)) | |
| pass@k = 1 - C(n-c,k)/C(n,k) | 代码评估无偏估计 | HumanEval |
| Bradley-Terry: P(A>B) = sigma(s_A - s_B) | 成对比较模型 | Arena排名 |
| ECE = sum( | acc(k)-conf(k) | *n_k/N) |
| NDCG@K = DCG@K/IDCG@K | 归一化折损累积增益 | 检索评估 |
补充:面试必背英文术语
| 中文 | 英文 | 缩写 |
|---|---|---|
| 大语言模型 | Large Language Model | LLM |
| 检索增强生成 | Retrieval-Augmented Generation | RAG |
| 人类反馈强化学习 | RLHF | RLHF |
| 低秩适配 | Low-Rank Adaptation | LoRA |
| 注意力机制 | Attention Mechanism | - |
| 位置编码 | Positional Encoding | PE |
| 知识蒸馏 | Knowledge Distillation | KD |
| 投机解码 | Speculative Decoding | SD |
| 键值缓存 | Key-Value Cache | KV Cache |
| 思维链 | Chain of Thought | CoT |
| 工具使用 | Tool Use / Function Calling | FC |
| 数据污染 | Data Contamination | - |
| 对齐 | Alignment | - |
| 幻觉 | Hallucination | - |
| 红队测试 | Red Teaming | - |
| 混合专家 | Mixture of Experts | MoE |
| 量化 | Quantization | - |
| 预训练 | Pre-training | - |
| 微调 | Fine-tuning | - |
| 提示工程 | Prompt Engineering | PE |
补充:面试常见陷阱与正确理解
| 陷阱 | 错误理解 | 正确理解 |
|---|---|---|
| “Attention就是加权平均” | 简单加权求和 | 是Q和K的相似度驱动V的信息聚合 |
| “模型越大一定越好” | 参数决定一切 | 数据质量+训练策略同样关键(LIMA) |
| “RLHF让模型变好” | RLHF提升能力 | RLHF是对齐而非提升基础能力 |
| “RAG替代微调” | 二选一 | 互补:RAG注入知识,微调提升能力 |
| “INT4量化损失大” | 不能用于生产 | 多数场景质量损失可接受,性价比极高 |
| “Prompt越长效果越好” | 越多上下文越好 | 上下文过长反而可能Lost-in-the-Middle |
| “Embedding维度越高越好” | 维度=效果 | 过高维度存在维度诅咒,需Matryoshka等策略 |
| “Beam Search一定更好” | 贪心不如Beam | 开放任务Beam Search可能导致重复/无聊 |
速查对照表
| 编号 | 主题 | 一句话核心 |
|---|---|---|
| A1 | Attention | QK^T/√d_k,方差缩放 |
| A2 | MHA代码 | 投影→分头→attention→合并,contiguous不可忘 |
| A3 | RLHF | SFT→RM→PPO,KL防Reward Hacking |
| A4 | MHA/MQA/GQA | GQA平衡质量和KV-Cache |
| A5 | DPO | Reward=Policy比值,不需要RM |
| A6 | ZeRO | 分片优化器→梯度→参数 |
| A7 | RoPE | 旋转矩阵→相对位置,远程衰减 |
| A8 | 并行 | DP/ZeRO/TP/PP/SP各适用场景 |
| A9 | KV Cache | 2×layers×heads×seq×dim×bytes |
| A10 | Flash | 分块SRAM计算,online softmax |
| A11 | RAG | Chunk→Embed→检索→Rerank→生成 |
| A12 | 幻觉 | 四类+三检测+RAG缓解 |
| A13 | Judge | Position/Self/Verbosity三大偏差 |
| B1 | Pre-LN | 梯度恒等项=1 |
| B2 | Scaling | Chinchilla 1:20 |
| B3 | LoRA | ΔW=BA, r=8够用 |
| B4 | Paged | 虚拟内存分页管理KV |
| B5 | Speculative | 小模型草稿+大模型验证 |
| B6 | Prefill/Decode | 计算vs内存瓶颈 |
| B7 | 数据污染 | n-gram/PPL/MIA检测 |
| B8 | 安全防御 | 六层纵深 |
| B9 | SwiGLU | 三矩阵门控,8/3×d |
| B10 | Benchmark | MMLU/GSM8K/HumanEval/Arena |
| B11 | 数据生成 | Self-Instruct广度+Evol深度 |
| B12 | Batching | 动态插入移除,padding-free |
考前1小时流程
0:00-0:15 第一梯队13题过一遍,每题30秒口述 0:15-0:30 第二梯队12题过一遍,每题1分钟口述 0:30-0:40 第三梯队10题过一遍,每题30秒 0:40-0:50 回顾手撕代码:Attention/KV Cache/LoRA 0:50-1:00 回顾场景设计题框架:五步法关键原则:
- 想不起来的立刻标记,考后重点复习
- 不要在一个知识点上卡太久
- 口述比默看有效10倍
- 带追问的题目要能展开讲2-3分钟