大模型面试宝典
21道高频面试题,一题一表,一句话总结
一、LoRA与模型微调
1. LoRA原理
| 维度 | 内容 |
|---|---|
| 核心思想 | 冻结原参数,训练旁路低秩矩阵 B×A |
| A矩阵 | 随机初始化(降维) |
| B矩阵 | 全0初始化(升维) |
| 参数量减少 | 99%+ |
| 效果 | 接近全量微调 |
💡 总结:用两个小矩阵模拟大矩阵的更新,成本低效果好。
2. LayerNorm
| 维度 | 内容 |
|---|---|
| 公式 | LN(x) = γ·(x-μ)/σ + β |
| 操作 | 减均值、除标准差、加缩放、加偏移 |
| 作用 | 稳定训练 |
💡 总结:对每个样本做归一化,让训练更平稳。
3. RMSNorm
| 维度 | 内容 |
|---|---|
| 公式 | RMSNorm(x) = γ·x / RMS(x) |
| 去掉的操作 | 减均值、加bias |
| 保留的操作 | 均方根缩放 |
💡 总结:LayerNorm的简化版,省掉均值和bias,计算更快。
4. RMSNorm vs LayerNorm
| 对比项 | LayerNorm | RMSNorm |
|---|---|---|
| 计算量 | 大 | 小 |
| 速度 | 慢 | 快 |
| 效果 | 好 | 相当 |
💡 总结:LN成功靠缩放不变性而非平移不变性,RMSNorm又快又不差。
二、Transformer架构
5. 三种架构对比
| 架构 | 代表模型 | 注意力 | 适用场景 |
|---|---|---|---|
| Encoder-only | BERT | 双向 | 分类、NER、问答 |
| Decoder-only | GPT | 单向 | 文本生成、对话 |
| Encoder-Decoder | T5 | 双向+单向 | 翻译、摘要 |
💡 总结:理解用BERT,生作用GPT,翻译用T5。
6. 为什么LLM都是Decoder-only?
| 原因 | 说明 |
|---|---|
| 低秩问题 | 双向注意力存在低秩效应,效果下降 |
| 成本效率 | 同等条件下Decoder-only效果最优 |
| Zero-shot | Decoder-only的zero-shot能力更强 |
💡 总结:不是双向不好,而是Decoder-only在成本、效果、泛化上更均衡。
7. Transformer六大核心创新
| 组件 | 作用 |
|---|---|
| 自注意力 | 全局建模 |
| 多头注意力 | 多角度捕捉 |
| 位置编码 | 引入顺序信息 |
| 编码器-解码器 | 理解+生成 |
| 残差连接 | 防梯度消失 |
| 层归一化 | 稳定训练 |
💡 总结:六剑合一的序列建模神器。
三、BERT详解
8. BERT的Mask策略
| 比例 | 操作 | 目的 |
|---|---|---|
| 15% | 选中做mask | 整体比例 |
| 80% | →[MASK] | 标准训练 |
| 10% | →随机词 | 防过拟合,依赖上下文 |
| 10% | 不变 | 避免finetune时没有[MASK] |
💡 总结:核心目的是让模型具备纠错能力,不能死记硬背。
9. Warm-up策略(学习率预热)
| 阶段 | 学习率 | 原因 |
|---|---|---|
| 初期 | 小 | 防过拟合 |
| 中期 | 大 | 加速收敛 |
| 后期 | 衰减 | 稳定接近最优解 |
💡 总结:先慢后快再慢,像开车起步一样。
10. BERT预训练任务
| 任务 | 类型 | 目标 |
|---|---|---|
| MLM | 词级分类 | 预测被mask的词 |
| NSP | 句级分类 | 判断两句话是否连续 |
💡 总结:同时学单词理解和句子关系。
11. BERT损失函数
| 公式 | 说明 |
|---|---|
| L = L_MLM + L_NSP | 两个任务联合训练 |
💡 总结:简单相加,联合优化。
12. BERT vs ELMo
| 对比 | ELMo | BERT |
|---|---|---|
| 提取器 | LSTM | Transformer |
| 上下文 | 双向拼接 | 真正双向 |
| 使用方式 | Feature-based | Fine-tuning |
💡 总结:Transformer+LSTM、双向注意双向拼接、微调特征提取,全方位碾压。
四、RNN vs GNN
13. 区别与适用场景
| 维度 | RNN | GNN |
|---|---|---|
| 数据 | 序列(时间顺序) | 图(节点+边) |
| 核心问题 | 长期依赖 | 关系捕捉 |
| 适用 | 语音、文本、时间序列 | 社交网络、分子结构、推荐 |
💡 总结:序列问题用RNN,图结构问题用GNN,别混用。
五、显存与训练技巧
14. 显存占用估算
| 阶段 | 公式 | 7B模型示例 |
|---|---|---|
| 推理 | 2×参数量 GB | ≈14GB |
| 训练 | 8×参数量 GB | ≈56GB |
💡 总结:训练显存 ≈ 推理的4倍,因为要存梯度和优化器状态。
15. LayerNorm的三种位置
| 类型 | 位置 | 优点 | 缺点 |
|---|---|---|---|
| Post-LN | 残差后 | 效果好 | 训练不稳定 |
| Pre-LN | 残差中 | 训练稳定 | 效果略差 |
| Sandwich-LN | Pre-LN上加一层 | 防值爆炸 | 可能崩溃 |
💡 总结:大模型训练用Pre-LN,稳定第一。
16. LLM训练七条建议
| # | 建议 | 一句话解释 |
|---|---|---|
| 1 | 弹性容错+自动重启 | 训练几周,不能断 |
| 2 | 定期存checkpoint | 断了能恢复 |
| 3 | 想清楚再训练 | 成本高,别重复 |
| 4 | 关注TFLOPs | GPU利用率不只是% |
| 5 | 选对框架 | DeepSpeed比原生好 |
| 6 | 环境一致 | python/pip版本要管 |
| 7 | 别乱升级GLIBC | 会导致系统崩溃 |
💡 总结:稳定 > 速度,省钱 > 面子,存盘 > 自信。
六、RAG专题
17. RAG基本原理
| 阶段 | 做什么 |
|---|---|
| 离线 | 文档→切块→向量化→存向量库 |
| 在线 | 用户问→向量化→检索TopK→拼Prompt→LLM生成 |
💡 总结:让LLM带着"小抄"回答问题,防幻觉。
18. RAG评估方法
| 类型 | 评估对象 | 指标 |
|---|---|---|
| 独立评估 | 检索模块 | Hit Rate、MRR、NDCG |
| 独立评估 | 生成模块 | 上下文相关性 |
| 端到端评估 | 最终回答 | 准确性、相关性、EM |
💡 总结:既要看检得准不准,也要看答得好不好。
19. RAG评估框架
| 框架 | 核心方法 |
|---|---|
| RAGAS | 手写Prompt自动评估 |
| ARES | 合成数据训练LLM裁判 |
💡 总结:不想人工标注答案,就上RAGAS或ARES。
20. RAG各模块优化策略
| 模块 | 优化策略 |
|---|---|
| 文档切分 | 重叠、多粒度、语义切分 |
| Embedding | 微调、动态表征 |
| 提示词 | 优化模板、改写 |
| 大模型 | 微调、量化、加长context |
| 检索结果 | 过滤、重排序 |
💡 总结:每一刀都能切出效果提升。
七、PDF数据提取
21. PDF提取方法
| 任务 | 推荐工具 | 一句话说明 |
|---|---|---|
| 提取文本 | PyMuPDF | 双栏排版也能保持顺序 |
| 提取表格 | camelot | 有线表效果好 |
| 提取扫描文本 | PaddleOCR+PPStructure | OCR+版面分析 |
💡 总结:文本用PyMuPDF,表格用camelot,扫描件用PaddleOCR。
八、面试速记卡(一句话版)
| 问题 | 一句话答案 |
|---|---|
| LoRA原理 | 冻结原参数,训练低秩旁路 |
| RMSNorm好在哪里 | 去掉了减均值,计算更快 |
| 为什么Decoder-only | 低成本+高效果+强zero-shot |
| BERT的mask策略 | 80%[MASK]+10%随机+10%不变 |
| 为什么warm-up | 初期防过拟合 |
| BERT vs ELMo | Transformer > LSTM,微调 > 特征提取 |
| 训练显存估算 | 推理2倍,训练8倍参数量 |
| Pre-LN vs Post-LN | 大模型选Pre-LN,稳定 |
| RAG原理 | 检索增强生成,防幻觉 |
| PDF提取 | PyMuPDF+camelot+PaddleOCR |
