大模型面试核心知识点与参考答案
一、大模型基础面
1. 目前主流的开源模型体系有哪些?
当前主流开源大模型体系主要包括:
- LLaMA 系列:Meta 推出的 LLaMA、LLaMA2、LLaMA3,生态最丰富。
- ChatGLM 系列:智谱 AI 推出,中文支持较好。
- Qwen 系列:阿里云通义千问,多语言能力强。
- Baichuan 百川:百川智能,注重中文场景。
- Falcon:TII 推出,推理速度快。
- Mistral:欧洲开源代表,效率高。
2. Prefix LM 和 Causal LM 区别是什么?
- Causal LM (因果语言模型):如 GPT 系列。只能看到当前 token 之前的信息,用于自回归生成。掩码机制确保每个位置只能关注前面的词。
- Prefix LM (前缀语言模型):如 T5。允许模型同时看到输入的前缀(上下文)和目标部分,常用于序列到序列任务(翻译、摘要)。编码器 - 解码器架构常见于此。
3. 涌现能力是啥原因?
涌现能力(Emergent Abilities)指模型在参数量达到一定规模后突然表现出的小模型不具备的能力(如推理、指令遵循)。原因尚不完全明确,主流观点认为与模型容量增加带来的表示空间扩展、注意力机制的复杂化以及训练数据规模有关。
4. 大模型 LLM 的架构介绍?
主流架构为 Transformer Decoder-only 结构:
- Input Embedding:将 token 转为向量。
- Positional Encoding:加入位置信息(RoPE, ALiBi 等)。
- Multi-Head Attention:捕捉长距离依赖。
- Feed Forward Network (FFN):非线性变换。
- Layer Normalization:稳定训练。
- Residual Connection:残差连接缓解梯度消失。
二、大模型进阶面
1. Llama 输入句子长度理论上可以无限长吗?
不可以。受限于位置编码(Positional Encoding)的范围和显存限制。虽然可以通过插值或外推技术(如 YaRN, NTK)扩展上下文窗口,但硬件显存决定了最大可处理的序列长度。
2. 什么是 LLMs 复读机问题?
指模型在生成长文本时,重复输出相同的短语或段落,无法继续生成新内容。这通常与采样策略(如 Temperature 过低)、概率分布坍缩或训练数据中的重复模式有关。
3. 为什么会出现 LLMs 复读机问题?
- 采样参数设置不当:Temperature 太低导致确定性过高。
- 概率分布问题:某些 token 概率过高,形成循环。
- 训练数据偏差:数据中包含大量重复片段。
4. 如何缓解 LLMs 复读机问题?
- 调整采样参数(提高 Temperature,使用 Top-K/Top-P)。
- 引入惩罚机制(如 Repetition Penalty)。
- 优化解码算法(如 Beam Search 调整)。
5. 什么情况用 Bert 模型,什么情况用 LLaMA、ChatGLM 类大模型?
- BERT:适合分类、抽取等判别式任务,理解能力强但生成能力弱。
- LLaMA/ChatGLM:适合生成、对话、创作等任务,具备强大的泛化和推理能力。
6. 如何让大模型处理更长的文本?
- RoPE 插值:线性插值位置编码。
- YaRN:动态缩放位置编码。
- 滑动窗口注意力:只关注局部窗口。
- 稀疏注意力:减少计算复杂度。
三、大模型微调面
1. 全参数微调需要多少显存?
取决于模型大小和 Batch Size。例如 7B 模型 FP16 全量微调通常需要 80GB+ 显存(单卡),需配合 ZeRO 优化或分布式训练。
2. 为什么 SFT 之后感觉 LLM 傻了?
- 灾难性遗忘:过度拟合特定领域数据,丢失通用知识。
- 数据质量差:指令数据格式混乱或逻辑错误。
- 学习率过大:破坏了预训练权重。
3. SFT 指令微调数据如何构建?
- 收集高质量问答对。
- 统一格式(如
Instruction, Input, Output)。
- 清洗噪声,确保多样性。
4. 领域模型 Continue PreTrain 数据选取?
选取该领域的专业文档、书籍、论文等,保持与预训练数据相似的分布,避免领域偏移过大。
5. 如何缓解模型遗忘通用能力?
- 混合数据:SFT 数据中加入少量通用数据。
- 正则化:限制参数更新幅度。
- LoRA 微调:冻结基座,仅训练适配器。
6. 预训练和微调哪个阶段注入知识的?
- 预训练:注入通用世界知识和语言规律。
- 微调:注入特定任务技能和指令遵循能力。
7. 进行 SFT 操作的时候,基座模型选用 Chat 还是 Base?
- Base:适合继续预训练或从头开始微调。
- Chat:适合直接进行指令微调,对齐效果通常更好。
8. 领域模型微调指令&数据输入格式要求?
需严格遵循模型期望的模板(如 Alpaca, ChatML)。例如:<|user|>... <|assistant|>...
9. 领域评测集构建?
- 人工构造测试用例。
- 使用现有基准(如 C-Eval, CMMLU)。
- 专家打分评估回答质量。
10. 领域模型词表扩增是不是有必要的?
对于专业术语极多的领域(如医疗、法律),建议扩增词表以覆盖未登录词,提升分词效率。
11. 如何训练自己的大模型?
- 准备算力集群。
- 清洗大规模语料。
- 选择基座模型。
- 执行预训练、SFT、RLHF 流程。
12. 训练中文大模型有啥经验?
- 重视中文分词和字符编码。
- 语料需包含足够的古籍、新闻、社交媒体数据。
- 注意繁体简体转换。
13. 指令微调的好处?
提升模型对用户意图的理解能力,使输出更符合人类偏好,增强可控性。
14. 想让模型学习某个领域知识,是应该预训练还是微调?
- 新知识:预训练(Continue Pre-training)。
- 新技能/风格:微调(SFT)。
15. 多轮对话任务如何微调模型?
在数据中保留完整的对话历史(History),并在 Prompt 中明确标识用户和助手角色。
16. 微调后的模型出现能力劣化,灾难性遗忘是怎么回事?
模型参数被过度更新,覆盖了预训练阶段的通用特征。可通过降低学习率、混合通用数据解决。
17. 微调模型需要多大显存?
- 全量微调:7B 模型约需 80GB+。
- LoRA 微调:7B 模型约需 24GB-48GB。
18. 大模型 LLM 进行 SFT 操作的时候在学习什么?
学习如何将输入指令映射到符合预期的输出,掌握任务特定的格式和逻辑。
19. 预训练和 SFT 操作有什么不同?
- 预训练:无监督,预测下一个 Token,目标是语言建模。
- SFT:有监督,模仿人类回答,目标是任务对齐。
20. 样本量规模增大,训练出现 OOM 错?
- 减小 Batch Size。
- 使用 Gradient Accumulation。
- 开启 Flash Attention。
21. 大模型 LLM 进行 SFT 如何对样本进行优化?
- 去重、过滤低质量样本。
- 平衡不同类别的数据分布。
- 数据增强。
22. 模型参数迭代实验?
记录每次迭代的 Loss 曲线,监控验证集指标,防止过拟合。
四、LangChain 面
1. 基于 LLM+ 向量库的文档对话基础面
利用 Embedding 将文档切片向量化存入 Vector DB,检索相关片段作为 Context 输入 LLM 生成答案(RAG 架构)。
2. 基于 LLM+ 向量库的文档对话优化面
- 混合检索:结合关键词搜索与向量搜索。
- 重排序(Rerank):对召回结果进行二次排序。
- 查询改写:优化用户 Query 以提高召回率。
3. 痛点:文档切分粒度不好把控?
- 按语义段落切分而非固定字符数。
- 重叠切片(Overlap)保留上下文。
4. LangChain 核心概念?
- Models:LLM 接口封装。
- Prompts:提示词模板管理。
- Chains:任务编排。
- Agents:自主决策工具调用。
- Memory:对话状态记忆。
5. LangChain 替代方案?
- LlamaIndex:侧重数据索引与 RAG。
- Semantic Kernel:微软出品,集成度高。
- Haystack:开源检索框架。
五、参数高效微调 (PEFT) 面
1. LoRA 篇
- 思路:冻结原权重,训练两个低秩矩阵 A 和 B,W' = W + BA。
- 优点:显存占用少,训练快,不改变原模型结构。
- 合入权重:可以将 LoRA 权重合并回原模型以便部署。
2. QLoRA 篇
- 思路:在 LoRA 基础上引入 4-bit 量化(NF4),进一步降低显存。
- 特点:可在消费级显卡上微调大模型。
3. AdaLoRA 篇
4. 提示学习(Prompting)
- Why:无需更新参数即可引导模型行为。
- Methods:Manual Prompt, AutoPrompt, P-Tuning, Prefix-tuning。
- P-Tuning v2:引入可学习的连续向量嵌入,效果优于离散 Prompt。
5. Adapter-tuning 篇
- 思路:在 Transformer 层间插入小型适配器模块。
- AdapterDrop:动态跳过部分层的 Adapter 以加速推理。
6. PEFT 最佳实践
- 优先尝试 LoRA/QLoRA。
- 选择合适 Rank (r) 和 Alpha。
- 监控验证集 Loss。
六、推理面
1. 推理显存占用高原因?
KV Cache 随序列长度增长而线性增加,激活值也占用显存。
2. GPU 和 CPU 推理速度对比?
GPU 远快于 CPU,尤其是批量推理时。
3. int8 和 fp16 对比?
int8 显存减半,速度可能更快,但精度略有损失。
4. 省内存方法?
- 量化(Quantization)。
- 卸载(Offloading)到 CPU/磁盘。
- 使用 vLLM 等优化引擎。
七、评测面
1. 大模型怎么评测?
- 自动化:使用 Benchmark(如 MMLU, GSM8K)。
- 人工:专家打分一致性。
- Honesty:诚实原则,模型应承认不知道的内容。
八、强化学习面 (RLHF)
1. RLHF 不足?
- 成本高(需标注数据)。
- 训练不稳定(PPO 难收敛)。
- 奖励黑客(Reward Hacking)。
2. 如何解决成本问题?
3. 三个阶段训练?
SFT -> RM (Reward Model) -> PPO (Policy Optimization)。
九、软硬件配置面
1. 数据集找哪里?
- Hugging Face Datasets。
- Common Crawl。
- 公开竞赛数据集。
2. 微调需要多少条数据?
- 全量微调:百万级。
- LoRA 微调:千级至万级即可见效。
十、Token 及位置编码篇
1. 位置编码 RoPE
- 思路:通过旋转矩阵将绝对位置信息融入相对位置关系。
- 优点:支持外推,计算高效。
- 应用:LLaMA, Mistral。
2. ALiBi
- 思路:添加线性偏置,不依赖具体位置 ID。
- 优点:支持任意长度外推。
3. Tokenizer 篇
- BPE:字节对编码,自底向上合并。
- WordPiece:Google 提出,基于概率拆分。
- SentencePiece:无空格依赖,支持子词。
十一、归一化篇
1. Layer Norm vs RMS Norm
- Layer Norm:减均值除标准差。
- RMS Norm:仅除均方根,去掉均值减法,简化计算(LLaMA 采用)。
2. Deep Norm
十二、激活函数篇
1. GeLU
- 高斯误差线性单元,Transformer 默认激活函数。
2. Swish
3. GLU
注:本文档整理自技术社区常见问题,旨在提供面试参考与技术概览。