跳转至

原理题 - 面试题解答

生成日期:2026-05-05 | 共 28 题 来源:牛客 / 知乎 / Datawhale / 火山引擎 / 各大厂面经等 2026-05-05 更新:新增 8 题,删除 8 题偏算法深度内容(RoPE/PPO KL/Reward Hacking/VLM/CLIP/ZeRO/AMP/PPO 显存)


Q1:[来源:牛客][2025-04] Transformer 的自注意力机制是如何工作的?为什么比 RNN 更适合处理长序列?

考察点

对 Transformer 核心架构的理解深度,以及对比传统序列模型的优势分析能力。

解答思路

  1. 解释 Self-Attention 的计算流程:Q/K/V 矩阵 → 点积 → Softmax → 加权求和
  2. 对比 RNN 的顺序依赖,强调并计算能力和 O(1) 路径长度
  3. 补充 Multi-Head 的设计意义

参考答案

Self-Attention 的核心思想是让序列中每个位置都能"看到"所有其他位置,通过计算 Query 和 Key 的点积得到注意力权重,再用权重对 Value 加权求和。具体步骤:(1) 输入经过线性变换得到 Q、K、V 三个矩阵;(2) 计算 Q·K^T / sqrt(d_k) 得到注意力分数矩阵;(3) Softmax 归一化得到概率分布;(4) 用概率分布加权 V 得到输出。

相比 RNN,Self-Attention 有三大优势: - 并行计算:RNN 必须按时间步顺序计算,Attention 可一次性算完所有位置关系 - 路径长度 O(1):RNN 中相距 n 步的两个 token 需要 n 次传递才能建立联系,Attention 只需一步 - 全局感受野:每个位置同时关注所有位置,不会像 RNN 那样因梯度消失/爆炸而遗忘远处信息

加分项: 提到计算复杂度问题——Self-Attention 的计算复杂度是 O(n²),在超长序列场景下可用 Linear Attention、Flash Attention 或稀疏 Attention 优化。


Q2:[来源:Datawhale][2025-03] 什么是位置编码?为什么在 Transformer 中它是必需的?

考察点

理解 Transformer 架构中位置信息的处理方式。

解答思路

  1. 解释 Self-Attention 的排列不变性(置换输入不改变输出)
  2. 介绍几种位置编码方案
  3. 对比优缺点

参考答案

Self-Attention 对输入序列的排列是不变的——如果把输入 token 的顺序打乱,注意力计算结果完全一样。这导致模型无法区分"我爱编程"和"编程爱我"。因此必须显式注入位置信息。

主流位置编码方案: - 正弦位置编码(原始 Transformer):用不同频率的正弦/余弦函数编码位置,支持外推到训练时未见过的序列长度 - 可学习位置编码(BERT/ViT):随机初始化 + 训练中学习,简单但无法外推 - RoPE(旋转位置编码,主流选择):将位置信息编码为旋转矩阵,通过 Q/K 的旋转变换实现,具有优秀的长度外推能力,被 LLaMA、Qwen 等模型广泛采用 - ALiBi:在注意力分数上直接加与距离成比例的惩罚项,无需嵌入位置向量,外推能力极强

加分项: 提到 RoPE 的数学本质是将绝对位置编码转化为相对位置的旋转操作,兼具绝对和相对位置编码的优点。


Q3:[来源:Datawhale][2025-03] 什么是 Scaling Laws?它对 LLM 研发有什么指导意义?

考察点

对大模型训练基本规律的理解。

解答思路

  1. 解释 Kaplan 2020 原始 Scaling Laws
  2. 介绍 Chinchilla 定律的修正
  3. 说明对工程实践的指导价值

参考答案

Scaling Laws 描述了模型性能(Loss)与计算量(C)、数据集大小(D)、参数量(N)之间的幂律关系:L ∝ C^{-α}。

Kaplan et al. (2020) 发现:增大模型、增加数据、提升算力都能带来可预测的性能提升,且三者存在最优比例关系 N_optimal ∝ C^{0.5}。

Chinchilla 定律 (Hoffmann et al., 2022) 修正:最优训练配置下,参数量和训练 token 数应等比例增长。例如,70B 参数模型应匹配约 1.4T token 进行训练,而非 Kaplan 预测的更小数据量。

工程指导意义: - 预算有限时:与其训练一个 100B 大模型,不如训练多个 7B 模型并组合使用 - 数据量是瓶颈:高质量数据不足时,盲目增大模型参数会导致过拟合 - 合成数据价值:当自然语言数据接近枯竭时,合成数据成为突破 Scaling Laws 上限的关键


Q4:[来源:牛客][2025-04] MHA、MQA、GQA 的区别是什么?

考察点

对注意力机制变种的工程理解。

解答思路

  1. 定义三种 Attention 模式
  2. 对比 KV Cache 大小和计算速度
  3. 说明各自适用场景

参考答案

模式 Q 头数 KV 头数 KV Cache 大小 推理速度 效果
MHA (Multi-Head) H H H × d_kv 基准 最佳
MQA (Multi-Query) H 1 d_kv ~3x 快 略有下降
GQA (Grouped-Query) H G (1<G<H) G × d_kv ~2x 快 接近 MHA

MHA:每个 Query 头有独立的 K/V,效果最好但 KV Cache 大,推理阶段显存占用高。

MQA:所有 Query 头共享一组 KV,KV Cache 减少 H 倍,显著加速推理,但多头表达能力受限,质量略有下降。

GQA:折中方案,将 H 个 Query 头分为 G 组,每组共享一组 KV。LLaMA-2 70B 和 Qwen 系列均采用 GQA,在推理速度和效果之间取得良好平衡。


Q5:[来源:牛客][2025-03] 什么是 LoRA?它的核心思路是什么?

考察点

对参数高效微调技术的理解。

解答思路

  1. 解释 LoRA 的低秩分解假设
  2. 说明训练和推理时的权重合并
  3. 对比全量微调的优势

参考答案

LoRA(Low-Rank Adaptation)基于一个核心假设:模型在适应新任务时的权重更新具有低内在秩

具体做法:冻结预训练权重 W_0,在其旁边注入可训练的低秩矩阵 ΔW = B·A,其中 A ∈ R^{r×d},B ∈ R^{d'×r},r ≪ d。前向传播变为:h = W_0x + ΔWx = W_0x + BAx。

关键优势: - 参数量极少:r=8 时,可训练参数仅为全量微调的 ~0.01% - 零推理延迟:训练后将 BA 合并回 W_0,推理开销为零 - 多任务切换:不同任务只需替换 ΔW,W_0 可复用 - 显存友好:7B 模型在单卡 A100 上即可训练

加分项: 提到 LoRA 通常只加在 Attention 层的 Q 和 V 投影矩阵上,因为这些矩阵负责"理解"和"生成"信息,是最需要适配的部分。后续研究表明加入 MLP 层也可带来小幅提升。


Q6:[来源:牛客][2025-03] QLoRA 相比 LoRA 的核心改进是什么?NF4 量化为何优于 INT4?

考察点

对量化与微调结合技术的深入理解。

解答思路

  1. 解释 QLoRA 的三要素:NF4、双重量化、分页优化器
  2. 对比 NF4 和 INT4 的精度差异
  3. 说明显存节省的具体数字

参考答案

QLoRA 在 LoRA 基础上引入三项创新:

1. NF4(Normal Float 4-bit)量化: 将基座权重量化为 4-bit。NF4 不是均匀量化(如 INT4 的 [-8,7]),而是根据正态分布的分位数函数来设计量化级别——权重矩阵的值通常接近正态分布,NF4 在均值附近分配更多量化级别,在尾部稀疏区域分配较少级别,信息损失更小。

2. 双重量化(Double Quantization): 对量化常数(每个 block 的 absmax)也进行 8-bit 量化,进一步节省显存。

3. 分页优化器(Paged Optimizers): 利用 NVIDIA 统一内存机制,在 GPU 显存不足时自动将优化器状态溢出到 CPU 内存,防止 OOM。

显存对比: 65B 模型全量微调需 ~780GB,LoRA 需 ~78GB,QLoRA 仅需 ~48GB(单张 A100 即可训练)。


Q7:[来源:牛客][2025-03] LoRA 的 rank 参数如何选择?rank=8 和 rank=64 的区别是什么?

考察点

对 LoRA 超参数调优的实践经验。

解答思路

  1. 解释 rank 的物理含义
  2. 给出不同任务类型的推荐值
  3. 说明 rank 与 alpha 的关系

参考答案

rank(r)决定了可训练矩阵 ΔW 的表达能力。r 越大,模型能学到的任务特定知识越多,但参数量和显存也随之增加。

经验法则:

任务类型 推荐 rank 原因
指令微调(风格适配) 8-16 主要学习指令格式和语气,变化量小
领域适配(医疗/法律) 16-32 需要学习新领域的专业术语和知识
复杂推理(数学/代码) 32-64 需要更强的表达能力捕捉复杂模式

rank=8 vs rank=64: - 参数量差异:64/8 = 8 倍 - 效果差异:简单任务两者差距极小(<1%);复杂任务 rank=64 可能有 2-5% 的提升 - 显存差异:优化器状态随 rank 线性增长

alpha 与 rank 的关系: LoRA 的缩放系数通常为 alpha = 2×r 或 alpha = r。alpha 越大,LoRA 更新对原始权重的影响越大。


Q8:[来源:牛客][2025-03] LoRA 微调后的权重如何合入原模型?

考察点

对 LoRA 推理优化的理解。

解答思路

  1. 解释合并的数学操作
  2. 说明合并后的推理优势
  3. 提到不合并的场景

参考答案

训练完成后,将低秩矩阵 BA 加回到原始权重:W_merged = W_0 + BA。

由于 A ∈ R^{r×d},B ∈ R^{d'×r},它们的乘积 BA ∈ R^{d'×d} 与 W_0 维度相同,可以直接相加。

合并的优势: - 零推理开销:合并后只需一次矩阵乘法,无需额外计算 - 内存复用:可以加载合并后的模型,无需同时持有 W_0 和 ΔW - 兼容性:合并后的模型就是标准格式,任何推理框架都可直接加载

不合并的场景: - 多 LoRA 服务化(vLLM LoRA):多个 LoRA 适配器共享同一基座模型,动态加载不同 ΔW - 持续微调:保留 W_0 以便后续继续训练新适配器

加分项: 提到 HuggingFace PeftModel.merge_and_unload() 方法,以及 vLLM 的 LoRA 热加载方案可在不重启服务的情况下切换适配器。


Q9:[来源:牛客][2025-04] 大模型的 KV Cache 是什么?为什么能加速推理?

考察点

对 LLM 推理优化的深入理解。

解答思路

  1. 解释自回归生成的重复计算问题
  2. 说明 KV Cache 的存储内容和工作机制
  3. 量化加速效果

参考答案

在自回归生成中,每一步都需要将当前 token 连同之前所有 token 一起送入模型。如果不缓存,第 n 步需要对前 n 个 token 重新计算所有层的 K 和 V 矩阵。

KV Cache 的做法: 将之前已经计算过的 token 的 K 和 V 矩阵缓存起来,每一步只需计算新增 token 的 K/V,然后拼接到缓存后面。这样避免了 O(n²) 的重复 Attention 计算。

加速效果: - 无缓存时,生成 n 个 token 的总计算量为 O(n³) - 有缓存时,总计算量降为 O(n²) - 实际推理中,KV Cache 可减少 50-70% 的计算量,首 token 延迟不变,但后续每个 token 生成速度显著提升

代价: 显存占用增加。7B 模型在 2048 长度上下文下,KV Cache 约需 ~1-2GB 显存。


Q10:[来源:牛客][2025-04] 位置编码中的 ALiBi 是什么?与 RoPE 相比有什么特点?

考察点

对不同位置编码方案的理解和对比能力。

解答思路

  1. 解释 ALiBi 的核心机制
  2. 对比 RoPE 的优缺点
  3. 说明适用场景

参考答案

ALiBi(Attention with Linear Biases)不向输入中注入位置信息,而是在注意力分数上直接加上一个与 token 间距离成线性比例的惩罚值:score(q_i, k_j) += m · (i - j),其中 m 是固定的斜率。

对比 RoPE:

维度 ALiBi RoPE
实现方式 注意力分数上加偏置 Q/K 向量旋转变换
外推能力 极强(天然线性外推) 好(需配合 YaRN)
训练效率 稍慢
采用情况 MPT、BLOOM LLaMA、Qwen、DeepSeek
推理开销 几乎为零 极小(旋转变换)

ALiBi 的优势在于超长上下文场景下外推能力最强,训练到 2K 长度的模型可以很好地推理 8K 甚至更长的序列。劣势是效果略逊于 RoPE。


Q11:[来源:Datawhale][2025-04] 什么是混合专家模型(MoE)?它是如何在不显著增加推理成本的情况下扩大参数规模的?

考察点

对 MoE 架构的理解。

解答思路

  1. 解释 MoE 的路由机制和专家网络
  2. 说明稀疏激活的原理
  3. 对比密集模型的优劣

参考答案

MoE(Mixture of Experts)的核心思想:模型包含多个"专家"网络(通常是 FFN 层),每个输入只被路由到少数几个专家进行处理。

工作原理: 在每层中设置一个路由器(Router),根据输入 token 的特征决定激活哪 K 个专家(K 通常为 1-2,远小于专家总数 N)。其余专家不激活、不参与计算。

关键优势: - 总参数大:Mixtral 8x7B 有 46.7B 参数,但每次前向传播只激活 12.9B(2/8 × 46.7B) - 推理成本可控:实际计算量等同于较小的密集模型 - 训练效率高:不同专家可在不同数据子集上 specialization

劣势: - 显存占用大(需要加载所有专家权重) - 路由负载不均衡可能导致部分专家训练不充分 - 部署时需要更大显存的 GPU

加分项: 提到 DeepSeek-V2 采用更细粒度的 MoE 设计,将 FFN 和 Attention 都 MoE 化,实现了 236B 参数但仅激活 21B 的高效模型。


Q12:[来源:Datawhale][2025-03] 什么是词元化(Tokenization)?BPE 和 WordPiece 有什么区别?

考察点

对 LLM 输入预处理的理解。

解答思路

  1. 解释 Tokenization 的目的
  2. 对比 BPE 和 WordPiece 的合并策略
  3. 说明对模型性能的影响

参考答案

Tokenization 将原始文本切分为模型可处理的离散单元(token)。目标是在词汇表大小和序列长度之间取得平衡。

BPE(Byte-Pair Encoding): - 从字符级词汇表开始,迭代合并出现频率最高的字符/子词对 - 能处理任意 Unicode 字符(包括 emoji) - GPT 系列、LLaMA、Qwen 等采用

WordPiece: - 类似 BPE,但合并时最大化语言模型的似然增益(而非简单频率) - 倾向于合并成有意义的词根 - BERT、T5 等采用

对比: BPE 更通用(支持多语言字符),WordPiece 更注重语义完整性。现代模型大多选择 BPE 或其变体(如 SentencePiece)。


Q13:[来源:牛客][2025-05] LLM 推理阶段有哪些解码策略?Greedy、Beam Search、Top-K、Top-P 的优缺点是什么?

考察点

对 LLM 生成机制的理解深度。

解答思路

  1. 分别解释四种策略
  2. 对比确定性和多样性
  3. 给出适用场景建议

参考答案

策略 原理 确定性 多样性 适用场景
Greedy 每步选概率最高的 token 完全确定 分类、结构化输出
Beam Search 维护 k 个候选序列,选总概率最高的 近似确定 翻译、摘要
Top-K 从概率最高的 k 个 token 中采样 随机 创意生成、对话
Top-P 从累计概率达到 p 的最小 token 集合中采样 随机 自适应 对话、创意写作

Top-P vs Top-K 的关键区别: Top-K 固定候选数量,当模型很自信时(某个 token 概率 0.95)仍会从 k 个中随机选;Top-P 是动态的,自信时集合小、不确定时集合大,更灵活。

生产实践建议: - 代码生成:Temperature=0.1 + Top-P=0.95 - 创意写作:Temperature=0.8 + Top-P=0.9 - 结构化输出:Temperature=0 + Greedy


Q14:[来源:Datawhale][2025-04] RLHF 流程的三个阶段是什么?DPO 与 RLHF 的区别和优势是什么?

考察点

对大模型对齐技术的理解。

解答思路

  1. 解释 RLHF 三阶段流程
  2. 介绍 DPO 的核心创新
  3. 对比两种方法的工程代价

参考答案

RLHF 三阶段:

  1. SFT(Supervised Fine-Tuning):用高质量人工标注数据微调基座模型,使其具备基本的指令遵循能力
  2. RM(Reward Model)训练:让标注员对 SFT 模型的多个输出进行排序,训练一个奖励模型来预测偏好
  3. PPO 优化:用 PPO 算法训练策略模型,最大化 RM 给出的奖励,同时用 KL 散度惩罚防止偏离 SFT 模型太远

DPO(Direct Preference Optimization)的核心创新: 将 PPO 的 RL 优化问题转化为一个直接的分类损失函数,无需训练单独的 Reward Model,也不需要 PPO 的复杂超参调优。

维度 RLHF (PPO) DPO
实现复杂度 高(需要 RM + PPO 训练循环) 低(标准 SFT 流程即可)
计算资源 需要多个模型同时训练 只需一个模型
超参敏感性 高(KL 系数、PPO clip 等) 低(主要是 temperature)
效果 略优 接近

加分项: 提到 GRPO(Group Relative Policy Optimization)是 DeepSeek-R1 采用的方法,相比 PPO 省去了 Value Network,通过组内归一化替代 critic,进一步降低了训练复杂度。


Q15:[来源:牛客][2025-05] Attention 的计算步骤是什么?Multi-head 中每个 head 为什么要降维?

考察点

对 Attention 机制实现细节的掌握。

解答思路

  1. 逐步拆解 Attention 计算
  2. 解释 Multi-head 的降维原因
  3. 说明计算效率考量

参考答案

Attention 计算步骤: 1. 线性变换:Q = XW_Q, K = XW_K, V = XW_V 2. 点积计算:Q · K^T,得到 n×n 的注意力分数矩阵 3. 缩放:除以 sqrt(d_k)(防止大值导致 Softmax 梯度消失) 4. Softmax:每行归一化为概率分布 5. 加权求和:softmax(score) · V

Multi-head 中降维原因: 如果每个 head 都保持完整维度 d_model,H 个 head 的计算量是单头的 H 倍。因此将每个 head 的维度降为 d_model/H,这样所有 head 的总计算量与单头相当,但获得了多个"视角"的信息提取能力。


Q16:[来源:Datawhale][2025-04] SFT(有监督微调)的数据集格式是什么?

考察点

对大模型微调数据准备的理解。

解答思路

  1. 说明主流数据格式
  2. 解释各字段含义
  3. 给出示例

参考答案

主流 SFT 数据格式有三种:

Alpaca 格式(最常用):

{"instruction": "解释量子计算", "input": "", "output": "量子计算是一种..."}

ChatML 格式(对话场景):

{"messages": [
  {"role": "system", "content": "你是AI助手"},
  {"role": "user", "content": "你好"},
  {"role": "assistant", "content": "你好!有什么我可以帮助的?"}
]}

ShareGPT 格式(多轮对话):

{"conversations": [
  {"from": "human", "value": "你好"},
  {"from": "gpt", "value": "你好!..."}
]}

选择哪种格式取决于训练框架的支持。HuggingFace TRL 库支持 ChatML 和 ShareGPT,Unsloth 支持所有三种格式。


Q17:[来源:牛客][2025-04] 生成式大模型为什么生成的文本比较丰富不死板?

考察点

对 LLM 生成机制原理的理解。

解答思路

  1. 解释概率分布和采样策略
  2. 说明温度参数的作用
  3. 提到训练数据多样性

参考答案

LLM 的生成本质上是条件概率分布:给定前文,模型为下一个 token 预测一个概率分布。丰富性来自三个方面:

  1. 概率采样而非确定性选择:即使某个 token 概率最高,采样策略(Top-P、Top-K)允许选择其他高概率 token,带来表达的多样性
  2. 温度参数(Temperature):T>1 使分布更均匀(更多样化),T<1 使分布更尖锐(更确定),通过调节温度可以控制生成文本的创造力
  3. 训练数据的多样性:LLM 在万亿 token 的多样化语料上训练,学习了丰富的表达方式和语言风格

复读机问题: 当 Temperature=0 或使用 Greedy 时,相同前文总是输出相同后续,导致复读。这是因为模型在训练数据中见过大量重复模式。


Q18:[来源:Datawhale][2025-04] 什么是"涌现能力"(Emergent Abilities)?它在什么规模下出现?

考察点

对大模型规模效应的理解。

解答思路

  1. 定义涌现能力
  2. 举例说明
  3. 讨论争议

参考答案

涌现能力指模型在小规模时不具备,但当参数量达到某个阈值后突然获得的能力。这些能力在训练数据中并未显式教授,而是模型从大规模数据中"自发"学习的结果。

经典例子: - 思维链推理(CoT):只有当模型达到数十 B 参数时,"Let's think step by step" 才能有效触发推理 - 代码生成:小规模模型只能补全单行代码,大规模模型能生成完整函数 - 跨语言迁移:未显式训练的翻译能力在大规模时自然出现

出现规模: Wei et al. (2022) 发现涌现通常在 ~10B 参数以上开始出现,在 ~100B 时更加明显。但这存在争议——有些研究认为涌现是评估指标的离散性造成的"错觉",当用连续指标评估时,能力是渐进增长的而非突变的。


Q19:[来源:Datawhale][2025-05] ReAct 框架的工作原理是什么?如何将思维链和行动结合?

考察点

对 Agent 核心范式的理解。

解答思路

  1. 解释 ReAct 的 Thought-Action-Observation 循环
  2. 说明与传统 CoT 的区别
  3. 给出执行流程示例

参考答案

ReAct(Reason + Act)的核心思想:让模型在推理过程中交替进行思考和行动,而非一次性生成完整答案。

循环流程: 1. Thought(思考):模型分析当前状态,决定下一步需要什么信息或操作 2. Action(行动):模型调用外部工具(搜索、计算、API 等)获取信息 3. Observation(观察):工具返回执行结果 4. 回到 Thought,基于 Observation 继续推理,直到得出最终答案

示例:

Q: 苹果公司的创始人出生在哪一年?
Thought: 我需要先知道苹果公司的创始人是谁。让我搜索一下。
Action: Search["苹果公司 创始人"]
Observation: 史蒂夫·乔布斯、史蒂夫·沃兹尼亚克、罗恩·韦恩
Thought: 创始人是史蒂夫·乔布斯,现在我需要查他的出生年份。
Action: Search["史蒂夫·乔布斯 出生年份"]
Observation: 1955 年 2 月 24 日
Answer: 1955 年

加分项: 提到 ReAct 的失败模式——模型可能"幻觉"不存在的 Action(幻觉行动),或在 Action 返回意外结果时陷入死循环。


Q20:[来源:牛客][2025-04] Agent 如何学会调用外部工具?Function Calling 的原理是什么?

考察点

对工具调用机制的理解。

解答思路

  1. 解释 Function Calling 的训练方式
  2. 说明 JSON Schema 的作用
  3. 对比微调 vs 提示词方法

参考答案

Function Calling 的原理: 模型在预训练阶段见过大量"函数调用"模式,在微调阶段进一步学习了结构化输出的能力。当用户提供工具定义(JSON Schema)时,模型通过以下步骤决定调用哪个工具:

  1. 意图理解:模型分析用户输入,判断是否需要调用外部工具
  2. 工具匹配:根据工具的名称、描述和参数定义,选择最合适的工具
  3. 参数提取:从用户输入中提取工具所需的参数值
  4. 结构化输出:以 JSON 格式返回工具调用信息

训练方式: - 提示词方法:在 system prompt 中提供工具描述,依赖模型的 in-context learning 能力 - 微调方法:用工具调用数据集对模型进行 SFT,使其更可靠地输出正确的工具调用格式

现代模型(GPT-4、Claude、Qwen)已原生支持 Function Calling,无需微调即可在提示词中定义工具。


Q21:[来源:Datawhale][2025-04] 如何为 Agent 设计短期记忆和长期记忆系统?

考察点

对 Agent 记忆架构的理解。

解答思路

  1. 定义短期和长期记忆
  2. 说明各自的存储方案
  3. 提到检索策略

参考答案

短期记忆(对话上下文): - 存储在上下文窗口中,直接作为对话历史传递给模型 - 管理策略:滑动窗口裁剪(只保留最近 N 轮)、摘要压缩(用 LLM 将历史压缩为概要)、重要性保留(只保留关键信息) - 限制:受上下文窗口大小限制(通常 4K-128K token)

长期记忆(持久化知识): - 存储在向量数据库中,通过检索按需加载 - 写入时机:对话中的关键事实、用户偏好、任务状态 - 检索策略:时间衰减权重 + 语义相关性混合排序 - 前沿实践:MemGPT 使用分层存储,将"活跃"记忆放在上下文窗口,"休眠"记忆存储在向量库中按需召回

加分项: 提到记忆系统的质量比数量更重要——无差别记录所有对话会导致噪声淹没关键信息,应在写入时进行重要性过滤和去重。


Q22:[来源:Datawhale][2025-04] 如何全面评估 RAG 系统的性能?检索和生成阶段分别用什么指标?

考察点

对 RAG 评估体系的理解。

解答思路

  1. 分别说明检索和生成阶段的评估
  2. 介绍 RAGAS 四大指标
  3. 给出实操建议

参考答案

检索阶段评估: - Hit Rate:正确答案所在的文档是否在前 K 个检索结果中 - MRR(Mean Reciprocal Rank):正确答案在结果中的排名倒数均值 - NDCG:考虑排名权重的相关性指标 - Context Precision(RAGAS):检索到的上下文中与问题相关的内容占比

生成阶段评估: - Faithfulness(RAGAS):生成答案是否忠实于检索到的上下文,衡量幻觉程度 - Answer Relevancy(RAGAS):答案与问题的相关程度 - Context Recall(RAGAS):参考答案中的信息有多少在检索到的上下文中出现 - LLM-as-Judge:用 GPT-4 等强模型对答案进行整体评分

实操建议: 构建 100-500 条黄金 QA 数据集,每次系统改动后自动跑评估回归测试,防止效果退化。


Q23:[来源:Datawhale][2025-05] 什么是"Lost in the Middle"问题?如何缓解?

考察点

对长上下文 LLM 行为特征的理解。

解答思路

  1. 定义 Lost in the Middle 现象
  2. 解释原因
  3. 给出缓解策略

参考答案

Lost in the Middle 指 LLM 在长上下文中更容易利用开头和结尾的信息,而忽略中间部分内容的现象(Liu et al., 2023)。

原因: 注意力权重在序列两端天然更强,中间位置的 token 获得的注意力相对较少。位置编码在长距离下的精度衰减也是因素之一。

对 RAG 的影响: 如果把多个检索片段拼接成上下文,关键信息放在中间段落时,模型很可能"视而不见"。

缓解策略: - 重排序:将最相关的文档片段放在上下文开头和结尾 - 减少上下文长度:只保留最相关的 3-5 个片段,而非堆砌 20+ 个 - 结构化输入:用明确的标记(如 [Context 1], [Context 2])分隔不同片段 - 多轮生成:先让模型总结各片段要点,再基于总结生成答案


Q24:[来源:知乎/卡码笔记][2026-04] MCP(Model Context Protocol)和 Function Calling 有什么本质区别?

考察点

对 2026 年最新工具调用标准 MCP 的理解深度,以及与已有 Function Calling 机制的对比分析能力。

解答思路

  1. 解释 Function Calling 的本质:LLM 原生能力,模型直接输出结构化调用指令
  2. 解释 MCP 的本质:标准化通信协议,定义了 Client-Server 之间的交互规范
  3. 从架构、部署、生态三个维度对比

参考答案

Function Calling 的本质: 是 LLM 的内置能力——模型在训练时学习了结构化输出模式,能根据用户输入和工具描述(JSON Schema)生成工具调用指令。它不涉及通信协议,只是模型的一种输出格式。流程:用户输入 → LLM 决定调用工具 → 输出 JSON → 宿主程序解析 JSON → 执行工具 → 结果返回 LLM。

MCP 的本质: 是一个通信协议标准——定义了 AI 应用(Client)与工具服务(Server)之间如何通过 JSON-RPC 进行通信。它解决了 Function Calling 在规模化时的工程痛点:每个工具都需要手动编写适配代码,10 个工具就要写 10 套对接逻辑。

核心差异对比:

维度 Function Calling MCP
定位 LLM 输出格式 工具通信协议标准
实现 依赖模型训练 标准化接口,任何模型可用
工具接入 每次新增工具需改代码 实现 MCP Server 即可,零代码改动
发现能力 工具描述写在 Prompt 里 支持动态工具发现(tools/list)
生态 各模型厂商各自实现 一次接入,跨模型复用
权限管理 由宿主程序自行处理 协议层支持鉴权和沙箱隔离

生产实践建议: 1-5 个工具场景用 Function Calling 足够简单;10+ 工具或需要跨项目复用时,MCP 的工程优势显著。

加分项: 提到 MCP 基于 JSON-RPC 2.0 协议,支持 stdio 和 SSE 两种传输方式。stdio 适合本地进程间通信,SSE 适合远程服务调用。MCP 还支持 Resources(获取上下文数据)和 Prompts(预定义交互模板)两种能力,不仅是工具调用。


Q25:[来源:知乎/卡码笔记][2026-04] A2A(Agent-to-Agent)协议是什么?和 MCP 的关系是什么?

考察点

对 2026 年新兴 Agent 通信标准的了解,以及协议间的互补关系分析。

解答思路

  1. 定义 A2A 协议的目的和解决的问题
  2. 对比 MCP(Client-Server 工具调用)和 A2A(Agent 间对等通信)
  3. 说明两者如何协同工作

参考答案

A2A 协议: Google 主导推出的 Agent 间通信标准,定义了独立的 AI Agent 之间如何发现和协作。它解决的是 MCP 无法覆盖的场景——两个独立的 Agent 服务(可能属于不同组织、运行在不同基础设施上)需要跨网络进行任务委托和结果交换。

MCP 与 A2A 的关系:互补而非替代。

维度 MCP A2A
通信模式 Client-Server(主从) Agent-to-Agent(对等)
信任边界 同一应用内部 跨应用、跨组织
典型场景 Agent 调用内部工具(数据库、API) Agent A 委托 Agent B 完成子任务
身份验证 进程内或 API Key 需要跨域身份认证
工具发现 tools/list AgentCard 发布能力声明

比喻: MCP 像是"公司内部的工作流程"(你调用公司的打印机、数据库),A2A 像是"公司之间的商务合作"(你的公司委托另一家公司提供服务)。

为什么 MCP 解决不了 A2A 的问题: - MCP 假设 Server 是受信任的工具服务,不具备 Agent 的自主决策能力 - A2A 需要支持任务委派、进度回调、部分结果返回等复杂交互 - A2A 需要处理跨域安全、服务发现、能力协商等分布式系统问题

加分项: 提到 2026 年的趋势是 MCP + A2A 组合使用——Agent 通过 MCP 管理内部工具,通过 A2A 与外部 Agent 协作,形成完整的 Agentic 生态。


Q26:[来源:知乎/卡码笔记][2026-04] Skills 是什么?和 System Prompt、Few-shot 有什么区别?

考察点

对 Agent 能力扩展机制的理解,以及不同知识注入方式的适用场景判断。

解答思路

  1. 定义 Skills 的概念和存储形式
  2. 对比 System Prompt、Few-shot、Skills 的差异
  3. 说明各自的适用场景

参考答案

Skills 的本质: 是 Agent 的可复用能力包——通常以 Markdown 文件形式定义,包含场景描述、触发条件、可用工具、执行步骤和约束规则。当用户输入匹配 Skills 的触发条件时,Agent 自动加载该 Skill 的完整上下文,获得特定领域的专业能力。

三者对比:

维度 System Prompt Few-shot Skills
内容 角色设定 + 全局规则 输入-输出示例 完整的能力定义(触发+工具+步骤)
加载时机 会话开始时一次性加载 作为 Prompt 示例嵌入 按触发条件动态加载
作用域 整个会话 仅影响当前请求的生成 激活后影响后续多步执行
灵活性 静态,修改需重启 静态 动态,可按需启用/禁用
规模 较小(几百 token) 中等(每个示例 100-500 token) 较大(可达数千 token)

适用场景: - System Prompt:定义 Agent 的"人格"和全局行为准则 - Few-shot:纠正模型的输出格式或风格偏好 - Skills:赋予 Agent 完成特定领域任务的完整能力(如"邮件处理 Skill"包含邮件解析、模板匹配、发送工具调用等一整套流程)

安全风险: Skills 没有进程隔离——如果 Skill 文件被篡改,Agent 会忠实地执行恶意指令。因此需要 Skill 的版本控制、签名验证和权限审查。


Q27:[来源:53AI/CSDN][2026-04] LoRA+、DoRA、PiSSA 等进阶方法与基础 LoRA 的差异是什么?

考察点

对参数高效微调技术前沿发展的跟踪,以及不同 LoRA 变体的选型能力。

解答思路

  1. 简述每种方法的核心创新
  2. 对比效果和复杂度
  3. 给出选型建议

参考答案

LoRA+: 对 LoRA 的 A 矩阵和 B 矩阵使用不同的学习率(B 矩阵学习率是 A 的 16 倍)。理论基础:B 矩阵的梯度范数远大于 A,统一学习率会导致 B 更新过快。效果:训练速度提升 2 倍,最终效果提升 0.5-1%。

DoRA(Weight-Decomposed Low-Rank Adaptation): 将权重分解为幅度(magnitude)和方向(direction)两个分量,分别进行适配。公式:W = m · V / ||V||,其中 m 是可训练的幅度向量,V 是低秩方向矩阵。优势:比 LoRA 更接近全量微调的效果,特别是在复杂推理任务上。

PiSSA(Principal Singular Values and Vectors Adaptation):SVD 分解初始化 LoRA 的 A 和 B 矩阵,而非随机初始化。保留预训练权重的主要奇异值和奇异向量,使 LoRA 从一开始就沿着最重要的方向学习。优势:收敛速度更快(通常少 30-50% 训练步数),最终效果更好。

对比总结:

方法 核心创新 训练速度 效果提升 实现复杂度
LoRA 低秩矩阵注入 基准 基准
LoRA+ 差异化学习率 2x 快 +0.5-1%
DoRA 幅度-方向分解 1x +1-2%
PiSSA SVD 初始化 收敛更快 +1-2%

选型建议: 简单任务 LoRA+ 性价比最高;复杂推理任务选 DoRA 或 PiSSA;追求极致效果的可以用 DoRA+PiSSA 组合。


Q28:[来源:53AI/CSDN][2026-04] 什么是 Catastrophic Forgetting(灾难性遗忘)?微调中如何缓解?

考察点

对大模型微调中经典问题的理解和解决方案积累。

参考答案

Catastrophic Forgetting 指模型在学习新任务时,遗忘之前学到的知识的现象。根本原因:神经网络的所有参数在训练新数据时被更新,旧知识对应的权重被覆盖。

缓解策略:

策略 原理 适用场景
Rehearsal Buffer 保留一部分旧数据,每次训练时混合新旧样本一起训练 持续学习/增量微调
LoRA/PEFT 冻结基座权重,只训练少量新增参数,不破坏原始知识 任何微调场景
弹性权重固化(EWC) 对重要参数施加更大的正则化约束,防止其大幅变化 多任务学习
学习率衰减 使用极低学习率(1e-5 以下),避免参数剧烈变化 领域适配
梯度裁剪 限制单步梯度幅度,防止过大的参数更新 所有微调

生产实践: LoRA/QLoRA 是缓解灾难性遗忘最简单有效方案——冻结的基座权重不会被修改,旧知识天然保留。如果需要多任务,只需保存多个 LoRA 适配器并在推理时切换。