跳到主要内容大模型面试核心知识点整理:基础、微调、推理与评测 | 极客日志PythonAI算法
大模型面试核心知识点整理:基础、微调、推理与评测
综述由AI生成系统梳理了大模型面试的核心知识点,涵盖基础架构、微调策略、推理优化、评测方法及硬件配置。内容包括主流开源模型体系、Prefix/Causal LM 区别、LoRA/QLoRA 等参数高效微调技术、LangChain 应用、Tokenizer 原理、LayerNorm/RMSNorm 差异及激活函数选择。文章旨在帮助求职者全面掌握 LLM 开发所需的关键技能与理论依据,提供从理论到实践的完整参考。
Eee_12318 浏览 大模型面试核心知识点整理
一、大模型(LLMs)基础面
1. 目前主流的开源模型体系有哪些?
主流开源模型主要包括 Llama 系列(Llama, Llama2, Llama3)、ChatGLM 系列、Qwen(通义千问)、Baichuan(百川)、InternLM(书生·浦语)等。这些模型在架构上多基于 Transformer,但在具体优化和训练数据上各有侧重。
2. Prefix LM 和 Causal LM 区别是什么?
- Causal LM (自回归语言模型):采用单向注意力机制,当前 token 只能关注前面的 token,适用于文本生成任务。
- Prefix LM:允许双向注意力,但限制生成的 token 不能看到未来的信息,常用于序列标注或混合任务。
3. 涌现能力是啥原因?
涌现能力(Emergent Abilities)指随着模型规模增大而突然出现的、小模型不具备的能力(如推理、指令遵循)。原因尚不完全明确,通常认为与参数量、数据量及架构的协同效应有关,使得模型能更好地捕捉复杂模式。
4. 大模型 LLM 的架构介绍?
主流架构为 Transformer Decoder-only 结构。包含 Embedding 层、多层 Transformer Block(Self-Attention + FFN)、LayerNorm 以及输出投影层。关键组件包括位置编码(RoPE/ALiBi)、激活函数(GeLU/Swish)及归一化策略。
二、大模型(LLMs)进阶面
1. Llama 输入句子长度理论上可以无限长吗?
不可以。受限于位置编码范围(如 RoPE 的频率矩阵),模型有最大上下文窗口限制(如 2048, 4096, 32k 等)。超出范围会导致外推效果下降,需通过插值或稀疏注意力优化。
2. 什么是 LLMs 复读机问题?
指模型在生成长文本时,重复输出相同的短语或段落。这通常由概率分布坍缩、解码策略不当或训练数据中的重复模式引起。
3. 为什么会出现 LLMs 复读机问题?
- 采样温度过低导致多样性不足。
- 惩罚机制(Repetition Penalty)未生效。
- 模型对特定 token 的概率预测过高。
4. 如何缓解 LLMs 复读机问题?
- 调整解码参数(Temperature, Top-P)。
- 启用重复惩罚(Repetition Penalty)。
- 使用约束解码或人工干预。
5. 什么情况用 Bert 模型,什么情况用 LLaMA、ChatGLM 类大模型,咋选?
- BERT:适合分类、抽取等判别式任务,参数量小,推理快。
- LLaMA/ChatGLM:适合生成、对话、复杂推理等 generative 任务,需更多算力。
6. 各个专业领域是否需要各自的大模型来服务?
是的。通用模型在垂直领域(医疗、法律)可能存在知识幻觉或术语理解偏差,通过领域微调(SFT/Continue PreTrain)可提升专业表现。
7. 如何让大模型处理更长的文本?
- 优化位置编码(如 YaRN, NTK)。
- 使用滑动窗口注意力。
- 压缩上下文(摘要、检索增强)。
三、大模型(LLMs)微调面
1. 如果想要在某个模型基础上做全参数微调,究竟需要多少显存?
取决于模型大小和 Batch Size。例如 7B 模型 FP16 全微调整理约需 40GB+ 显存(含梯度、优化器状态),通常需多卡并行。
2. 为什么 SFT 之后感觉 LLM 傻了?
可能原因:学习率过大导致灾难性遗忘、数据质量差(噪声多)、基座模型能力被覆盖、或评估指标不匹配。
3. SFT 指令微调数据如何构建?
格式通常为 {"instruction": "...", "input": "...", "output": "..."}。需保证指令多样性、答案准确性,并进行清洗去重。
4. 领域模型 Continue PreTrain 数据选取?
优先选择高质量、无版权风险的领域文档、书籍、论文。需进行分词对齐和格式统一。
5. 领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?
- 混合通用数据与领域数据(Curriculum Learning)。
- 使用正则化技术(如 EWC)。
- 控制领域数据比例。
6. 领域模型 Continue PreTrain,如何让模型在预训练过程中就学习到更多的知识?
增加高质量语料密度,优化 Tokenizer 以覆盖领域词汇,延长训练步数。
7. 进行 SFT 操作的时候,基座模型选用 Chat 还是 Base?
Base 模型更适合从头学习指令遵循;Chat 模型已具备一定对话能力,微调成本更低,但可能受限于原有偏好。
8. 领域模型微调指令&数据输入格式要求?
需符合模型训练脚本规范,常见为 JSONL 格式,包含 Prompt 模板填充后的完整输入输出对。
9. 领域模型微调领域评测集构建?
收集该领域的真实问答对,划分验证集和测试集,确保覆盖核心场景。
10. 领域模型词表扩增是不是有必要的?
如果领域有大量新术语且现有词表无法有效切分,建议扩增词表以提升 Token 效率。
11. 如何训练自己的大模型?
准备数据 -> 选择基座 -> 配置环境 -> 预训练/微调 -> 评估部署。
12. 训练中文大模型有啥经验?
注意中文分词优化,使用支持中文的 Positional Encoding,数据需清洗繁体/简体转换。
13. 指令微调的好处?
提升模型对自然语言指令的理解和执行能力,使其更符合人类交互习惯。
14. 预训练和微调哪个阶段注入知识的?
15. 想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?
若领域知识稀缺,微调即可;若需深度重构领域认知,可先 Continue PreTrain 再微调。
16. 多轮对话任务如何微调模型?
将历史对话拼接作为 Input,最后一轮回复作为 Output,并在 Prompt 中保留对话标记。
17. 微调后的模型出现能力劣化,灾难性遗忘是怎么回事?
模型过度拟合新数据,覆盖了旧任务的权重分布。可通过早停、混合数据缓解。
18. 微调模型需要多大显存?
全参数微调需大量显存;PEFT(如 LoRA)可大幅降低需求,单卡 24G 可跑 7B 模型。
19. 大模型 LLM 进行 SFT 操作的时候在学习什么?
20. 预训练和 SFT 操作有什么不同?
预训练是无监督预测下一个 Token,SFT 是有监督的指令跟随。
21. 样本量规模增大,训练出现 OOM 错
减少 Batch Size,使用梯度累积,或开启 ZeRO 优化。
22. 大模型 LLM 进行 SFT 如何对样本进行优化?
23. 模型参数迭代实验
记录不同超参数下的 Loss 曲线和验证集指标,对比收敛速度。
四、大模型(LLMs)LangChain 面
1. 基于 LLM+ 向量库的文档对话基础面
利用 Embedding 将文档切片向量化存入向量库,查询时召回相关片段,结合 Prompt 让 LLM 生成回答。
2. 基于 LLM+ 向量库的文档对话优化面
引入重排序(Rerank)、元数据过滤、混合检索(关键词 + 向量)。
3. 基于 LLM+ 向量库的文档对话工程示例面
使用 LangChain 搭建 Chain,连接 Retriever 和 LLM,封装 API。
4. LLMs 存在模型幻觉问题,请问如何处理?
- 引入事实核查模块。
- 限制模型仅基于提供的 Context 回答。
- 使用置信度阈值过滤。
5. 基于 LLM+ 向量库的文档对话思路是怎么样?
Query -> Embedding -> Vector Search -> Top-K Docs -> Prompt Construction -> LLM Generation.
6. 基于 LLM+ 向量库的文档对话核心技术是什么?
Embedding 模型、向量索引算法(HNSW/IVF)、Prompt 工程。
7. 基于 LLM+ 向量库的文档对话 prompt 模板如何构建?
包含 System Role、Context 内容、用户问题、回答约束。
8. 痛点分析
- 文档切分粒度:影响语义完整性,需按段落或语义块切分。
- 垂直领域表现:需优化 Embedding 模型以适应领域术语。
- 问答分句效果:LangChain 内置分句可能不准,需自定义 Splitter。
- 召回相关性:引入 Rerank 提升 Top-K 质量。
- Response 质量:优化 Prompt 引导模型总结而非复述。
9. LangChain 核心概念
- Components and Chains:组件组合成流程。
- Prompt Templates and Values:动态生成提示词。
- Example Selectors:Few-Shot 示例选择。
- Output Parsers:解析模型输出为结构化数据。
- Indexes and Retrievers:数据检索接口。
- Chat Message History:管理对话历史。
- Agents and Toolkits:自主决策与工具调用。
10. LangChain 功能与问题
- 功能:快速集成 LLM、向量库、工具。
- 问题:令牌使用低效、文档复杂、概念混淆、行为不一致、缺乏标准数据类型。
- 替代方案:LlamaIndex, Semantic Kernel。
五、大模型(LLMs)参数高效微调 (PEFT) 面
1. LoRA 篇
- 思路:冻结原权重,训练低秩分解矩阵 A 和 B,更新 ΔW = BA。
- 优点:显存占用少,训练快,权重可合并。
- 加速原理:减少可训练参数量,降低梯度计算开销。
2. QLoRA 篇
- 思路:在 LoRA 基础上引入 4bit 量化(NF4),进一步降低显存。
- 特点:几乎无损精度,显存需求极低。
3. AdaLoRA 篇
4. LoRA 权重是否可以合入原模型?
可以,通过 merge_and_unload 将增量权重加回基座。
5. LoRA 微调优点是什么?
6. 如何在已有 LoRA 模型上继续训练?
加载原 LoRA 权重,追加新的适配器或合并后重新训练。
7. 提示学习(Prompting)
- Why:无需更新参数即可适应新任务。
- Methods:Manual Prompt, AutoP, P-tuning, Prefix-tuning。
- P-tuning v2:引入连续可学习向量,比离散 Prompt 更灵活。
- Adapter-tuning:插入小型网络模块,保持主权重不变。
8. PEFT 对比
- 全量微调:性能最好,资源消耗大。
- PEFT:资源友好,适合边缘设备或快速迭代。
- 最佳实践:优先尝试 LoRA/QLoRA,必要时全量微调。
六、大模型(LLMs)推理面
1. 为什么大模型推理时显存涨的那么多还一直占着?
KV Cache 随序列长度增长而线性增加,且 GPU 显存碎片化管理导致占用高。
2. 大模型在 gpu 和 cpu 上推理速度如何?
GPU 远快于 CPU,因并行计算能力强;CPU 适合低延迟或小批量场景。
3. 推理速度上,int8 和 fp16 比起来怎么样?
int8 推理速度更快,显存占用减半,但可能损失少量精度。
4. 大模型有推理能力吗?
具备逻辑推理能力,但依赖训练数据和微调质量,复杂推理仍需思维链(CoT)辅助。
5. 大模型生成时的参数怎么设置?
Temperature(随机性)、Top-P(核采样)、Top-K(候选数)、Repetition Penalty(重复惩罚)。
6. 有哪些省内存的大语言模型训练/微调/推理方法?
量化(Int8/4bit)、蒸馏、剪枝、PEFT、Offloading(CPU 卸载)。
7. 如何让大模型输出合规化
七、大模型(LLMs)评测面
1. 大模型怎么评测?
使用基准数据集(如 MMLU, C-Eval),计算准确率、BLEU、ROUGE 等指标。
2. 大模型的 honest 原则是如何实现的?
通过 RLHF 奖励诚实回答,或在 SFT 数据中强调'不知道就说不知道'。
3. 模型如何判断回答的知识是训练过的已知的知识?
难以直接判断,通常通过检索增强(RAG)区分外部知识与内部知识。
八、大模型(LLMs)强化学习面
1. 奖励模型需要和基础模型一致吗?
2. RLHF 在实践过程中存在哪些不足?
- 人工标注成本高。
- 奖励模型过拟合。
- PPO 训练不稳定。
3. 如何解决人工产生的偏好数据集成本较高?
4. 如何解决三个阶段的训练过程较长?
并行训练、优化算子、使用更高效算法(如 DPO)。
5. 如何解决 PPO 的训练过程同时存在 4 个模型的问题?
九、大模型(LLMs)软硬件配置面
1. 训练集面
- SFT 数据格式:JSONL,Instruction/Input/Output。
- RM 数据格式:Pairwise 比较(Chosen/Rejected)。
- PPO 数据格式:Prompt + Response + Reward。
- 找数据集哪里找:HuggingFace Datasets, OpenDataLab。
- 微调需要多少条数据?:几千至几万条视任务复杂度而定。
十、大模型(LLMs)显存问题面
1. 分布式训练面
使用 DeepSpeed, FSDP 进行数据并行和模型并行,解决单卡显存不足。
十一、大模型(LLMs)Agent 面
1. 如何给 LLM 注入领域知识?
2. 如果想要快速体验各种模型,该怎么办?
使用云端 API 或本地轻量级部署工具(如 Ollama)。
十二、Token 及模型参数准备篇
1. 预训练数据 Token 重复是否影响模型性能?
2. SFT 需要训练 Token 数?
十三、LLMs 位置编码篇
1. 什么是位置编码?
2. 什么是绝对位置编码?
为每个位置添加固定向量(如 Sinusoidal)。
3. 什么是相对位置编码?
关注 Token 间的相对距离(如 T5 的 bias)。
4. 旋转位置编码 RoPE 篇
- 思路:通过旋转矩阵编码位置信息,支持外推。
- 优点:支持长序列,数学性质良好。
- 应用:Llama, Qwen 等主流模型。
5. 长度外推问题篇
- 解决方法:NTK-aware Scaled RoPE, YaRN。
6. ALiBi 篇
- 思路:Attention 中加入线性偏置,无需位置编码。
- 优点:支持任意长度推理。
十四、LLMs Tokenizer 篇
1. Byte-Pair Encoding (BPE) 篇
- 构建词典:初始化字符 -> 统计频率 -> 合并高频对 -> 迭代直至词典大小。
- 特点:处理未登录词能力强,广泛用于 GPT 系列。
2. WordPiece 篇
- 异同点:类似 BPE,但拆分策略不同(自顶向下 vs 自底向上),常用前缀
## 表示子词。
3. SentencePiece 篇
- 思路:基于 BPE 改进,支持 Unicode,不依赖空格分词,适合多语言。
4. 不同大模型 LLMs 的分词方式
- BERT:WordPiece。
- GPT:BPE。
- T5:SentencePiece。
十五、Layer Normalization 篇
1. LLMs 各模型分别用了哪种 Layer normalization?
- BERT/GPT:Pre-Norm 或 Post-Norm 变体。
- Llama:RMS Norm。
2. LN 在 LLMs 中的不同位置有什么区别么?
- Pre-Norm:输入到层之前归一化,训练更稳定。
- Post-Norm:输出之后归一化,早期使用较多。
3. Layer Norm 计算公式
$$\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} \cdot \gamma + \beta$$
其中 $\mu$ 为均值,$\sigma$ 为标准差,$\gamma, \beta$ 为可学习参数。
4. RMS Norm 篇
- 公式:$$\hat{x} = \frac{x}{\sqrt{\text{mean}(x^2) + \epsilon}} \cdot \gamma$$
- 特点:去除均值计算,仅保留均方根,计算更快,Llama 采用。
5. Deep Norm 篇
- 思路:在深层网络每一层插入归一化,解决梯度消失。
- 代码实现:见下方 PyTorch 示例。
import torch
import torch.nn as nn
class DeepNorm(nn.Module):
def __init__(self, input_dim, hidden_dims, output_dim):
super(DeepNorm, self).__init__()
self.layers = nn.ModuleList()
self.norm_layers = nn.ModuleList()
for i, hidden_dim in enumerate(hidden_dims):
self.layers.append(nn.Linear(input_dim, hidden_dim))
self.norm_layers.append(nn.LayerNorm(hidden_dim))
input_dim = hidden_dim
self.output_layer = nn.Linear(input_dim, output_dim)
def forward(self, x):
for layer, norm_layer in zip(self.layers, self.norm_layers):
x = layer(x)
x = norm_layer(x)
x = torch.relu(x)
x = self.output_layer(x)
return x
- 优点:改善梯度传播,提高泛化,减少对学习率敏感性。
十六、LLM 激活函数
1. FFN 块计算公式
$$\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2$$
2. GeLU 计算公式
$$\text{GeLU}(x) = x \Phi(x) = x \cdot \frac{1}{2} \left(1 + \tanh\left(\sqrt{\frac{2}{\pi}}(x + 0.044715 x^3)\right)\right)$$
3. Swish 计算公式
$$\text{Swish}(x) = x \cdot \sigma(\beta x)$$
4. GLU 线性门控单元
$$\text{GLU}(x) = (xW_1) \odot \sigma(xW_2)$$
5. 各 LLMs 都使用哪种激活函数?
- GPT/BERT:ReLU / GeLU。
- Llama 2:SwiGLU。
- PaLM:SiLU。
注:本文整理了大模型面试的核心技术点,涵盖从基础架构到高级微调的全链路知识。实际面试中请结合最新行业动态补充。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Gemini 图片去水印
基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online