AI Agent 面试 - 八股文完整答案集

基于 DataWhale 开源题库的 69 道真实面试题,附详细参考答案 适用岗位:大模型算法工程师、Agent工程师、AI开发工程师、算法评测工程师


一、LLM 基础(必考)

1. ⭐必考 Transformer 自注意力机制如何工作?为什么比 RNN 更适合长序列?

自注意力(Self-Attention)的核心流程:

输入序列中的每个 token 被线性映射为三个向量:Query(Q)、Key(K)、Value(V)。注意力得分通过 Q 与所有 K 做点积计算,再除以 √d_k 进行缩放(防止梯度消失/爆炸),经 Softmax 归一化后作为权重对 V 加权求和:Attention(Q,K,V) = softmax(QK^T / √d_k) · V。

Multi-Head Attention 将 Q/K/V 分成 h 个头(如 GPT-3 用 96 头),每个头独立计算注意力后拼接,使模型能同时关注不同子空间的语义关系——一个头关注语法依赖、另一个关注语义相似性。

为什么优于 RNN:

  1. 并行性:RNN 必须逐步处理序列(O(n) 串行步),Transformer 对所有位置并行计算,训练速度提升数十倍。

  2. 长距离依赖:RNN 中距离为 n 的两个 token 需经过 n 步传播,信息衰减严重(即使 LSTM 在序列 >500 时也退化);自注意力中任意两个位置直接交互,路径长度 O(1)。

  3. 表达能力:自注意力可以自适应地学习不同范围的依赖模式,而 RNN 的隐状态容量固定。

代价:自注意力的时间和空间复杂度为 O(n²),这也催生了 Flash Attention、Sparse Attention 等优化方案。实践中,GPT-4 处理 128K 上下文就依赖了多种注意力优化技术。


2. 位置编码是什么?为什么必需?列举至少两种实现方式

Transformer 的自注意力是排列不变的(permutation invariant),即打乱输入顺序输出不变,因此必须显式注入位置信息。

实现方式:

  1. 正弦/余弦绝对位置编码(原始 Transformer):用不同频率的 sin/cos 函数生成固定编码,PE(pos,2i) = sin(pos/10000^{2i/d})。优点是无需训练、可外推;缺点是不能学习任务特定的位置模式。

  2. 可学习绝对位置编码(GPT-2、BERT):将位置编码作为可训练参数。灵活但难以泛化到训练时未见的序列长度。

  3. 旋转位置编码 RoPE(LLaMA、Qwen):通过旋转矩阵将位置信息融入 Q/K,使注意力分数自然依赖相对距离。是目前主流开源模型的首选。

  4. ALiBi(BLOOM):不修改嵌入,直接在注意力分数上加一个与距离成正比的线性偏置,实现简单且长度外推性能好。


3. 详细介绍 RoPE,对比绝对位置编码优劣势

RoPE(Rotary Position Embedding) 由苏剑林提出,核心思想是将位置信息编码为旋转操作。对于位置 m 处的向量 x,将其相邻维度两两配对视为二维平面上的向量,旋转角度 mθ_i,其中 θ_i = 10000^{-2i/d}。

数学本质:经 RoPE 编码后,q_m 和 k_n 的点积仅依赖于相对位置 (m-n),即 <f(q,m), f(k,n)> = g(q, k, m-n)。这天然捕获了相对位置关系。

优势:

  • 天然编码相对位置,无需额外参数

  • 通过 NTK-aware 缩放或 YaRN 可外推至远超训练长度(如 LLaMA 2 从 4K 扩展到 128K)

  • 与线性注意力兼容

  • 计算高效:只需逐元素旋转

vs 绝对位置编码劣势:

  • 实现稍复杂(需处理旋转矩阵)

  • 极长序列下仍需配合位置插值等技巧

目前 LLaMA、Qwen、Mistral、DeepSeek 等主流模型均采用 RoPE。


4. MHA、MQA、GQA 的区别

三者都是 Multi-Head Attention 的变体,核心区别在 K/V 头的数量:

方案 Q 头数 K/V 头数 KV Cache 大小 代表模型
MHA h h 100% GPT-3、BERT
MQA h 1 1/h PaLM、Falcon
GQA h g (1<g<h) g/h LLaMA 2、Mistral

MHA:每个头独立的 Q/K/V,表达能力最强,但 KV Cache 随头数线性增长,推理时显存占用大。

MQA(Multi-Query Attention):所有 Q 头共享同一组 K/V,KV Cache 缩小到 1/h,推理速度提升 ~30-40%,但质量有轻微下降。

GQA(Grouped-Query Attention):折中方案,将 Q 头分成 g 组,每组共享一组 K/V。LLaMA 2 70B 用 8 个 KV 头 vs 64 个 Q 头,质量接近 MHA 但推理效率接近 MQA。

实践建议:中小模型用 MHA,大模型(>13B)推荐 GQA 以平衡质量和效率。


5. Encoder-Only / Decoder-Only / Encoder-Decoder 各擅长什么任务?

Encoder-Only(BERT、RoBERTa):双向注意力,每个 token 能看到全部上下文。擅长理解类任务:文本分类、NER、情感分析、语义相似度。不擅长生成。

Decoder-Only(GPT系列、LLaMA、Qwen):因果注意力(只看左侧),自回归生成。擅长文本生成、对话、代码生成。通过 Scaling Law 验证,在足够大的规模下可以通过 In-Context Learning 完成几乎所有 NLP 任务,是当前大模型的主流架构。

Encoder-Decoder(T5、BART、Flan-T5):Encoder 编码输入,Decoder 交叉注意力生成输出。擅长 seq2seq 任务:翻译、摘要、问答。参数效率较高但架构更复杂。

趋势:Decoder-Only 因统一的预训练范式和出色的 scaling 特性已成绝对主流,GPT-4、Claude、Gemini、LLaMA 均为 Decoder-Only。


6. Scaling Laws 揭示了什么?对研发有什么指导意义?

Kaplan et al. (2020) 和 Chinchilla (Hoffmann et al., 2022) 提出的 Scaling Laws 表明:模型性能(loss)与模型参数量 N、训练数据量 D、计算量 C 呈幂律关系:L(N,D) ≈ (N_c/N)^α + (D_c/D)^β + L_∞。

关键发现:

  1. 三者同步扩展最高效:仅扩大参数而不增加数据会收益递减

  2. Chinchilla 最优:对于给定计算预算 C,最优配比约为 N ∝ C^0.5, D ∝ C^0.5,即参数量和数据量应等比扩大。这推翻了早期"越大越好"的做法——Chinchilla 70B 用更多数据训练,性能超过了 Gopher 280B

  3. Loss 平滑可预测:可以用小实验预测大模型性能

研发指导意义:

  • 做预算规划:先确定计算预算,再按最优比例分配模型大小和数据量

  • 避免浪费:不必盲目堆参数,数据质量和数量同样重要

  • LLaMA 的策略就是"小模型+大数据":LLaMA 7B 用 1T tokens 训练,推理效率远高于同性能的大模型


7. 推理阶段解码策略:Greedy / Beam / Top-K / Nucleus 原理与优缺点

Greedy Decoding:每步选概率最高的 token。快速但容易生成重复、缺乏多样性的文本。

Beam Search:保留 beam_size 个候选序列,选整体概率最高的。比 Greedy 好但仍偏保守,适合翻译、摘要等需要准确性的任务。

Top-K Sampling:从概率最高的 K 个 token 中按概率采样。K 固定是缺点——在分布平坦时 K 太小会遗漏好选项,分布尖锐时 K 太大引入噪声。

Nucleus (Top-p) Sampling:动态选择最小的 token 集合使累积概率 ≥ p。自适应调整候选数量,p=0.9 是常用值。是当前对话模型的主流策略。

Temperature:控制分布锐度,T<1 更确定,T>1 更随机。通常配合 Top-p 使用。

实践建议:代码生成用低温度 + Greedy/Beam;创意写作用 Top-p=0.9 + T=0.7-1.0;任务型对话用 Top-p=0.95 + T=0.3。


8. 词元化(Tokenization):BPE vs WordPiece 比较

BPE(Byte Pair Encoding):从字符级开始,迭代合并出现频率最高的相邻 token 对,直到达到预设词表大小。GPT 系列、LLaMA 使用。变体 Byte-level BPE 以 UTF-8 字节为基础单元,可处理任意语言无 UNK。

WordPiece:与 BPE 类似,但合并标准不是频率而是最大化语言模型似然(选择合并后使训练数据概率最大的 pair)。BERT 使用,子词以 "##" 前缀标记。

对比:

  • BPE 更简单直观,工程实现容易;WordPiece 理论上更优但计算更贵

  • BPE 现在更主流(GPT-4、LLaMA、Mistral 均用 BPE 变体)

  • 另有 SentencePiece(Unigram 模型),T5、LLaMA 使用,支持无空格语言(中日韩)

词表大小通常 32K-128K,LLaMA 用 32K,GPT-4 用 100K。更大词表提升多语言和代码能力,但增加嵌入层参数。


9. NLP 和 LLM 最大的区别?

传统 NLP 是任务驱动的:每个任务(分类、NER、翻译)训练专用模型,需要标注数据、特征工程,模型小(百万级参数),能力局限于训练任务。

LLM 是能力驱动的:一个通用模型通过大规模预训练获得广泛的语言理解和生成能力,通过 prompt/instruction 适配各种任务,无需为每个任务单独训练。

核心区别:

  1. 范式:NLP 是"预训练+微调",LLM 是"预训练+对齐+提示"

  2. 涌现能力:LLM 在规模超过阈值后展现 ICL、CoT 推理等传统 NLP 不具备的能力

  3. 泛化性:LLM 是 few-shot/zero-shot learner,NLP 模型需要大量标注数据

  4. 交互方式:LLM 以自然语言交互,NLP 需要特定的输入格式

  5. 知识存储:LLM 将世界知识压缩在参数中,NLP 模型主要学习任务模式


10. "涌现能力"如何理解?

涌现能力(Emergent Abilities) 指模型在规模(参数量/数据量/计算量)增大到某个阈值后突然出现的、在小模型中不存在的能力。Jason Wei et al. (2022) 的论文首次系统论述。

典型例子:

  • Few-shot In-Context Learning:GPT-3(175B)突然能通过几个示例完成新任务

  • Chain-of-Thought 推理:在 ~100B 参数时出现逐步推理能力

  • 代码生成、数学推理等复杂任务

争议:Schaeffer et al. (2023) 在 Nature 上发文指出涌现可能是评估指标的假象——当使用连续指标(如 Brier Score)而非阶跃指标(如精确匹配)时,性能增长是平滑的,并非突变。

面试回答要点:承认涌现现象的实用价值(指导 scaling 决策),但也要了解其争议性,体现批判性思维。


11. LLM 常用激活函数有哪些?为什么选用?

主流选择:

  1. GELU(Gaussian Error Linear Unit):x · Φ(x),其中 Φ 是标准正态 CDF。GPT 系列、BERT 使用。比 ReLU 更平滑,避免"死神经元"问题。

  2. SwiGLU:Swish(xW₁) ⊙ (xW₂),其中 Swish(x) = x·σ(βx)。LLaMA、PaLM、Mistral 使用。Noam Shazeer 在 2020 年提出,在 FFN 中表现显著优于 GELU 和 ReLU,是目前开源大模型的标配。

  3. ReLU/Leaky ReLU:早期模型使用,简单高效但存在死神经元问题。

为什么 SwiGLU 成为主流:实验表明在相同参数预算下,SwiGLU 能降低约 0.5-1% 的 perplexity。GLU 结构的门控机制让网络能学习性地过滤信息,表达能力更强。代价是 FFN 需要三个权重矩阵(而非两个),但通常通过减小隐层维度来保持总参数不变。


12. ⭐必考 MoE 如何不增加推理成本扩大参数?

MoE(Mixture of Experts) 的核心思想是"稀疏激活":模型包含大量参数但每次推理只激活其中一小部分。

架构设计: 在 Transformer 的 FFN 层,用 N 个并行的"专家网络"(每个是一个独立的 FFN)替换单个 FFN,加上一个门控网络(Router)。对于每个 token,Router 计算该 token 对所有专家的亲和度分数,只选 Top-K 个专家(通常 K=1 或 2)进行计算,其余专家完全跳过。

举例:Mixtral 8x7B 有 8 个专家,每次激活 2 个,总参数 ~47B 但每次推理的活跃参数仅 ~13B,推理成本接近 13B 的稠密模型,性能却媲美 LLaMA 2 70B。DeepSeek-V3 用 256 个专家中激活 8 个,总参数 671B 但活跃参数仅 37B。

关键挑战和解决方案:

  1. 负载均衡:若所有 token 涌向少数专家,其余专家浪费。通过辅助 loss(auxiliary load balancing loss)惩罚不均匀分配,或使用 Expert Choice routing 让专家选 token。

  2. 专家坍塌:部分专家长期不被选中而退化。可用 z-loss、noise injection 缓解。

  3. 通信开销:分布式训练时专家分布在不同 GPU 上,token 路由导致 All-to-All 通信。DeepSeek-V3 通过限制每个 token 最多发往 M 个节点来降低通信量。

MoE 优势总结:以稀疏激活实现"大容量、低成本",是当前最有效的 scaling 方式之一。GPT-4 据传也是 MoE 架构。


13. 训练百/千亿参数 LLM 面临哪些挑战?

1. 显存瓶颈:175B 模型仅参数就需 ~350GB(FP16),单卡装不下。解决方案:ZeRO(分片优化器状态/梯度/参数)、模型并行、流水线并行。

2. 计算效率:GPT-3 训练用 3640 PF-days。需要 3D 并行(数据+张量+流水线并行)、混合精度训练(BF16/FP16 + FP32 主权重)、Flash Attention 等。

3. 训练稳定性:大模型常见 loss spike、梯度爆炸。需要梯度裁剪、学习率 warmup、BF16(动态范围大于 FP16)。

4. 数据工程:需万亿级高质量 token。涉及去重、质量过滤、数据配比(代码/网页/书籍/论文的比例)。数据质量对最终性能影响可能超过架构选择。

5. 故障恢复:千卡集群训练数周,硬件故障不可避免。需要频繁 checkpoint、弹性训练框架。

6. 通信开销:跨节点通信带宽(InfiniBand/RoCE)是瓶颈。梯度累积、通信计算重叠是标准做法。


二、VLM 多模态(高频新方向)

14. VLM 核心挑战:不同模态信息如何对齐融合?

多模态对齐的核心问题是:图像像素空间和文本 token 空间语义完全不同,如何让模型理解"一张猫的图片"和"cat"是同一概念。

主流方案:

  1. 对比学习对齐(CLIP 范式):用 image-text pairs 训练,拉近匹配的图文对、推远不匹配的,学到共享的嵌入空间。CLIP 用 4 亿图文对训练,实现了 zero-shot 图像分类。

  2. 投影层对齐(LLaVA 范式):用一个线性层或 MLP 将视觉编码器(如 ViT)的输出投影到 LLM 的嵌入空间,然后和文本 token 拼接送入 LLM。简单高效。

  3. Q-Former 交叉注意力(BLIP-2 范式):用可学习的 query tokens 通过交叉注意力从视觉特征中提取固定数量的视觉 token,压缩信息同时实现对齐。

  4. 原生多模态:直接在预训练阶段混合图文数据(如 Gemini、Fuyu),不需要独立的视觉编码器。

挑战包括:细粒度对齐(区域级而非图片级)、时序对齐(视频)、多模态幻觉控制。


15. CLIP 模型工作原理

CLIP(Contrastive Language-Image Pre-training) 由 OpenAI 在 2021 年提出,用对比学习在 4 亿网络图文对上训练。

架构:图像编码器(ViT 或 ResNet)+ 文本编码器(Transformer),各自将输入映射到共享的嵌入空间。

训练:一个 batch 中有 N 个图文对,计算 N×N 的相似度矩阵,对角线为正样本,其余为负样本,用对称的交叉熵 loss(InfoNCE)训练。

Zero-shot 分类:将类别名构造成文本("a photo of a {class}"),计算图像嵌入与所有类别文本嵌入的相似度,选最高的。在 ImageNet 上 zero-shot 达到 76.2%,接近有监督的 ResNet-50。

意义:证明了自然语言监督的视觉学习可行,成为后续所有 VLM 的基础组件。


16. LLaVA / MiniGPT-4 如何连接视觉编码器和 LLM?

LLaVA:用预训练的 CLIP ViT-L 提取图像特征,经一个可训练的线性投影层映射到 LLM(Vicuna/LLaMA)的嵌入维度,然后将视觉 token 和文本 token 拼接作为 LLM 输入。训练分两阶段:(1) 预训练阶段只训练投影层(用 595K 图文对);(2) 指令微调阶段训练投影层+LLM(用 158K 多轮对话数据)。

MiniGPT-4:使用 BLIP-2 的视觉编码器(ViT-G + Q-Former)提取视觉特征,再通过一个线性层对齐到 Vicuna。只需训练这一个线性层,冻结视觉编码器和 LLM。

共同点:都是"冻结视觉编码器 + 轻量桥接层 + LLM"的架构,通过最小化可训练参数实现高效多模态融合。差异在于桥接模块的复杂度和训练数据。


17. 视觉指令微调为什么是关键步骤?

预训练阶段模型学会了视觉-语言对齐(理解图像内容),但不具备按指令完成复杂任务的能力(如"描述这张图中有趣的地方"、"根据图表回答问题")。

视觉指令微调的作用:

  1. 教会模型理解多样化指令:从简单描述到复杂推理、对话、创意写作

  2. 提升多轮对话能力:根据图像进行上下文相关的连续问答

  3. 注入任务知识:OCR、图表理解、空间推理等具体能力

LLaVA 的实验表明,仅做预训练对齐的模型在复杂指令上表现很差,而经过 158K 指令数据微调后性能大幅提升。GPT-4V 的强大能力也依赖于大规模的多模态指令微调。


18. 处理视频时 VLM 需要额外解决什么?

  1. 时序建模:视频是时间序列,需要理解事件的先后顺序、因果关系。常用方案:(a) 均匀采样关键帧独立编码后拼接;(b) 加入时序位置编码;(c) 使用 3D 卷积或时序 Transformer。

  2. 计算效率:一分钟 30fps 视频有 1800 帧,每帧产生数百个 token,总量爆炸。需要帧采样策略(如每秒 1 帧)、token 压缩、时空池化。

  3. 长上下文:视频信息量远超单图。需要大上下文窗口或分段处理+记忆机制。

  4. 音频整合:完整视频理解需要音频流(语音、音效),增加了多模态对齐的复杂度。

代表模型:Video-LLaVA、VideoChat、Gemini 1.5 Pro(支持 1 小时视频输入)。


19. Grounding 在 VLM 中的含义

Grounding(视觉定位/落地) 指将语言描述与图像中的具体区域关联——不仅说"图中有一只猫",还要指出猫在哪里(边界框坐标或分割掩码)。

两个方向:

  1. Referring Expression Comprehension:给定文本描述,找到对应的图像区域(如"左边戴红帽子的人"→ 输出 bbox)

  2. Grounded Captioning:生成描述时同时输出每个实体的位置

代表模型:Grounding DINO、Kosmos-2、GLaMM。GPT-4o 和 Gemini 也逐步支持坐标输出。

Grounding 对实际应用至关重要:机器人操控需要定位目标物体、医学影像需要标注病灶区域、自动驾驶需要检测行人位置。


20. 高分辨率输入图像带来什么挑战?

ViT 通常以 224×224 或 336×336 处理图像,但实际场景中文档、医学影像等需要高分辨率(>1K)。

挑战:

  1. Token 数量爆炸:ViT 将图像切成 14×14 patches,1344×1344 图像产生 9216 个 token,自注意力 O(n²) 变得极其昂贵。

  2. 位置编码外推:预训练位置编码在高分辨率下失效,需要插值。

  3. 显存瓶颈:特别是在 batch 训练时。

解决方案:

  • 分块策略(LLaVA-NeXT):将高分辨率图像切成多个子图,每块独立编码后拼接

  • 动态分辨率(InternVL):根据图像比例动态决定切分方式

  • Token 压缩:用池化或 Perceiver Resampler 减少视觉 token 数量


21. VLM 的幻觉问题与纯文本 LLM 有何不同?

共同点:都可能生成不符合事实的内容。

VLM 特有的幻觉类型:

  1. 对象幻觉:描述图像中不存在的物体(如把椅子说成沙发)。POPE benchmark 测试显示部分模型幻觉率 >30%。

  2. 属性幻觉:颜色、大小、位置等描述错误

  3. 关系幻觉:错误描述物体间的空间/动作关系

  4. OCR 幻觉:误读图中文字

原因:(1) 语言先验过强——模型根据统计规律"脑补"而非真正"看"图;(2) 视觉编码器分辨率不足丢失细节;(3) 训练数据中描述偏笼统。

缓解方法:对比解码(VCD)、视觉对比学习、引入负样本训练、RLHF 针对幻觉的奖励模型。


三、RLHF / 对齐技术(深水区)

22. ⭐必考 RLHF 三个核心阶段详解

RLHF(Reinforcement Learning from Human Feedback) 是让 LLM 与人类偏好对齐的核心技术,由 InstructGPT(Ouyang et al., 2022)系统化提出,包含三个阶段:

阶段一:监督微调(SFT) 在预训练模型上用高质量的 (instruction, response) 对进行微调,使模型学会遵循指令的基本格式。InstructGPT 用约 13K 人工编写的高质量示范数据。这一步建立了模型的"基础行为模式"。

阶段二:训练奖励模型(RM) 收集偏好数据:给定同一 prompt,让 SFT 模型生成多个回复(通常 4-9 个),人类标注员对回复进行排序。用这些排序数据训练一个奖励模型(通常是去掉最后一层的 LLM + 标量输出头)。损失函数为 Bradley-Terry 模型:L = -log σ(r(x, y_w) - r(x, y_l)),其中 y_w 是偏好回复,y_l 是非偏好回复。InstructGPT 用约 33K prompts 的比较数据。

阶段三:PPO 强化学习优化 以 SFT 模型为初始策略 π,RM 提供奖励信号,通过 PPO 算法最大化期望奖励,同时加 KL 散度惩罚防止策略偏离 SFT 模型太远: objective = E[r(x,y)] - β · KL(π || π_ref)

这需要同时维护四个模型:(1) 当前策略模型;(2) 参考模型(冻结的 SFT 模型);(3) 奖励模型;(4) 价值网络(Critic)。训练复杂度高,这也是后来 DPO 等方法试图简化的原因。

实际效果:InstructGPT 1.3B 的人类评价优于 GPT-3 175B,证明了对齐比 scaling 更高效地提升用户体验。


23. 成对比较数据 vs 绝对打分,各自优劣?

成对比较(Pairwise Comparison):"A 比 B 好"

  • 优点:标注一致性高(人类更擅长比较而非打分)、不需要定义复杂的评分标准

  • 缺点:O(n²) 的标注量、无法直接得到绝对质量分数、可能出现不传递偏好

绝对打分(Absolute Rating):给回复打 1-5 分

  • 优点:标注效率高(线性)、可直接作为奖励信号

  • 缺点:标注者间一致性差(主观标准不同)、容易出现评分漂移

实践选择:RLHF 主流用成对比较(InstructGPT、Claude),因为一致性更重要。部分工作尝试混合方案,如 Likert 评分 + 排序校准。


24. 奖励模型架构如何选择?损失函数背后的数学原理?

架构:通常用与策略模型同系列但更小的预训练 LLM,去掉 language modeling head,换成一个线性层输出标量奖励值。如 InstructGPT 用 6B RM 训练 175B 策略模型。也有工作用与策略模型同大小的 RM(效果更好但成本更高)。

损失函数(Bradley-Terry 模型): 假设人类偏好概率 P(y_w ≻ y_l) = σ(r(y_w) - r(y_l)),其中 σ 是 sigmoid。对数似然损失:

L = -E[log σ(r(x, y_w) - r(x, y_l))]

当有 K 个回复排序时,可扩展为所有有序对的平均损失。这等价于 Elo rating 系统的底层数学。

数学意义:RM 学到的是相对偏好而非绝对质量,r(y) 的绝对值无意义,只有差值有意义。这也是为什么需要 reward normalization。


25. 为什么选 PPO 而不是 REINFORCE?KL 惩罚项的作用?

REINFORCE 的问题

  1. 方差极高:用蒙特卡洛采样估计梯度,方差大导致训练不稳定

  2. 样本效率低:每次更新后采样数据就过时(on-policy)

  3. 无约束更新:策略可能剧烈变化导致训练崩溃

PPO 的优势

  1. Clipped objective:限制策略更新幅度,ratio = π_new/π_old,clip 到 [1-ε, 1+ε],保证稳定性

  2. 多 epoch 复用:同一批数据可训练多个 epoch,样本效率更高

  3. 价值网络(Critic) 作为 baseline 降低方差

KL 惩罚的作用: KL(π || π_ref) 惩罚策略偏离参考模型(SFT 模型)太远,防止: (1) 模型为了高奖励生成怪异但骗过 RM 的输出(reward hacking) (2) 丢失预训练学到的通用能力 (3) 语言质量退化(如重复、不通顺)


26. KL 系数 β 过大/过小分别什么问题?

β 过大:KL 惩罚过强,策略几乎无法偏离 SFT 模型,等于没训练。模型保持 SFT 时的行为,无法从人类偏好中学习改进。表现为 reward 几乎不增长。

β 过小:KL 约束过弱,策略可以自由偏离 SFT 模型。容易出现:

  1. Reward hacking:找到 RM 的漏洞,生成高奖励但实际质量差的输出

  2. 模式坍塌:输出多样性下降,所有 prompt 都生成相似的"讨好"式回复

  3. 能力退化:丢失通用知识和语言流畅性

实践:InstructGPT 使用自适应 KL 控制器,设定 KL 目标值(如 6 nats),动态调整 β。也有工作直接在 reward 中减去 β·KL 而非作为硬约束。


27. 什么是 Reward Hacking?举例 + 缓解策略

Reward Hacking 指策略模型学会了利用奖励模型的缺陷获取高奖励,而非真正提升回复质量。本质是 Goodhart's Law:"当一个指标成为目标时,它就不再是好指标。"

例子:

  1. 模型发现长回复获得更高奖励(RM 的长度偏差),于是生成冗长啰嗦的内容

  2. 模型大量使用特定短语(如"当然!让我详细解释")来取悦 RM

  3. 模型生成看似专业但内容空洞的回复(术语堆砌)

  4. 代码生成中模型添加无意义注释来提高 RM 评分

缓解策略:

  1. KL 惩罚:限制偏离幅度

  2. RM 集成:多个 RM 取平均或最低分,降低单个 RM 的偏差影响

  3. 长度归一化:在 RM 中控制长度偏差

  4. 持续更新 RM:用最新策略的输出重新收集偏好数据

  5. Process Reward Model:逐步骤给奖励而非只评估最终结果


28. ⭐必考 DPO 核心思想?与 PPO 的区别和优势

DPO(Direct Preference Optimization) 由 Rafailov et al. (2023) 提出,核心突破是证明了 RLHF 的最优策略可以用封闭解表达:

r(x,y) = β · log(π(y|x) / π_ref(y|x)) + β · log Z(x)

将此代入 Bradley-Terry 模型,消去奖励函数,得到直接在偏好数据上优化策略的损失函数:

L_DPO = -E[log σ(β · log(π(y_w|x)/π_ref(y_w|x)) - β · log(π(y_l|x)/π_ref(y_l|x)))]

与 PPO 对比:

维度 PPO(RLHF) DPO
训练阶段 SFT → RM → RL SFT → 直接优化
需要的模型 4个(策略/参考/RM/Critic) 2个(策略/参考)
训练复杂度 高(RL循环、采样、多模型协调) 低(类似SFT的监督训练)
超参数 RL相关超参多,调参困难 主要就是 β
稳定性 容易训练不稳定 非常稳定
在线采样 需要 不需要(离线)

DPO 优势:实现简单(~50行核心代码)、训练稳定、资源需求低(省去RM和Critic的显存)、在许多场景下性能与 PPO 相当甚至更好。

DPO 局限:(1) 离线方法,不能从策略自身的探索中学习;(2) 对偏好数据分布敏感——如果数据来自不同于当前策略的模型,效果会打折扣;(3) 可能存在过拟合偏好数据的风险。因此 Iterative DPO / Online DPO 等变体被提出来缓解这些问题。

Zephyr-7B、Tulu 2 等模型使用 DPO 取得了优秀效果。


29. ⭐必考 DeepSeek 的 GRPO 与 PPO 的区别?

GRPO(Group Relative Policy Optimization) 是 DeepSeek 在 DeepSeek-Math 和 DeepSeek-R1 中提出的强化学习算法,核心创新是去掉 Critic 网络,用组内相对奖励作为 baseline

PPO 的问题:需要训练一个与策略模型同等规模的 Critic(Value Network)来估计状态价值 V(s),用于计算优势函数 A = R - V(s)。对于 >100B 的模型,Critic 的显存和计算开销巨大。

GRPO 的做法

  1. 对同一 prompt 采样一组回复(如 G=64 个)

  2. 用 RM 对每个回复打分 r_i

  3. 在组内做标准化:Â_i = (r_i - mean(r)) / std(r)

  4. 用标准化后的 Â_i 作为优势估计,替代 Critic

  5. 其余沿用 PPO 的 clipped objective 和 KL 惩罚

关键优势:

  • 省去 Critic 网络:对于 671B 的 DeepSeek-V3,省下一个同等规模的 Critic 意义重大

  • 组内归一化自然去偏差:不需要训练和维护额外的价值网络

  • 训练更稳定:避免了 Critic 估计不准导致的训练波动

  • 简单有效:实现复杂度大幅降低

DeepSeek-R1 的成功验证:GRPO 在数学推理(AIME 2024 达到 79.8%)和代码任务上取得了与 OpenAI o1 可比的结果,证明了去掉 Critic 不仅不损失性能,反而因为训练更稳定而可能更好。

这个方法的核心洞察是:当你可以便宜地采样多个回复时,组内比较本身就提供了足够好的 baseline 估计,无需额外的价值网络。


30. GSPO 和 DAPO 与 GRPO 的区别?

GSPO(Group Sampling Policy Optimization):在 GRPO 基础上改进采样策略,使用更大的采样组和更智能的样本选择。主要区别在于对组内样本的筛选和加权方式,优先利用信息量更大的样本对。

DAPO(Decoupled Alignment Policy Optimization):字节跳动提出,核心改进包括:

  1. 解耦 clip 范围:对正样本和负样本使用不同的 clip 阈值,正样本用更宽的范围鼓励探索

  2. 动态采样:根据难度自适应调整每个 prompt 的采样数

  3. 去除 KL 惩罚:发现在某些场景下 KL 惩罚反而限制了性能提升

  4. Token-level loss:用 token 级别的 loss 替代 sequence 级别,更细粒度

共同趋势:都是在 GRPO "无 Critic" 的框架上做增量优化,核心思路一致——用组内比较替代价值网络,差异在采样、clip、奖励归一化等细节。


31. Token 级别 vs Seq 级别奖励的不同?

Sequence 级别奖励:整个回复完成后给一个总分。优点是简单,RM 只需评估完整回复;缺点是信号稀疏——模型不知道哪一步做对了哪一步做错了(credit assignment 问题)。

Token 级别奖励:每生成一个 token 都给奖励信号。优点是信号密集、归因精确;缺点是需要 Process Reward Model(PRM),标注成本极高(需要逐步标注每一步的正确性)。

实践对比:OpenAI 在数学推理中发现 PRM 显著优于 Outcome Reward Model(ORM),因为逐步验证能及时纠正推理错误。DeepSeek-R1 的"思考链"也隐含了对推理过程的评估。

折中方案:分段奖励(如每句或每段给奖励)、advantage 的时序分解(GAE)等。


32. RLAIF 的理解、潜力和风险

RLAIF(RL from AI Feedback) 用 AI(通常是更强的 LLM)替代人类标注偏好数据。

流程:给 LLM(如 GPT-4)展示两个回复,让它判断哪个更好,用 AI 的偏好训练 RM 或直接做 DPO。

潜力

  1. 成本大幅降低:AI 标注速度快、成本低(人类标注约 $1-2/比较,AI 约 $0.01)

  2. 一致性更高:不受标注员疲劳、主观差异影响

  3. 可扩展:轻松生成百万级偏好数据

风险

  1. 能力上限:AI 反馈质量受限于反馈模型本身的能力,可能放大偏见

  2. 自循环偏差:用 AI 训练 AI 可能导致 model collapse

  3. 价值观对齐缺失:AI 可能无法捕捉人类隐含的价值判断

  4. 安全性:在安全敏感场景(如有害内容判别)中 AI 判断可能不可靠

Constitutional AI(Anthropic)是 RLAIF 的成功案例,用 AI 自我批评和修正来提升安全性。


四、Agent 核心

33. 如何定义基于 LLM 的 Agent?核心组件?

定义:基于 LLM 的 Agent 是以大语言模型为"大脑",具备感知环境、自主规划、使用工具、执行行动能力的智能系统。与纯 LLM 的区别在于:Agent 能与外部世界交互并产生实际影响。

核心组件(参考 Lilian Weng 的框架):

  1. Planning(规划):将复杂任务分解为子任务,制定执行计划。方法包括 CoT、ToT、ReAct、反思/自我修正。

  2. Memory(记忆)

    • 短期记忆:上下文窗口中的对话历史
    • 长期记忆:外部存储(向量数据库、文件系统),通过检索访问
  3. Tool Use(工具使用):调用外部 API、搜索引擎、代码执行器、数据库等。通过 Function Calling 实现。

  4. Action(行动):执行具体操作并观察结果,形成 Observation → Thought → Action 的循环。

与传统 AI Agent 的区别:LLM Agent 具备自然语言理解能力和通用世界知识,不需要为每个任务从零设计状态空间和动作空间。


34. ⭐必考 ReAct 框架详解

ReAct(Reasoning + Acting) 由 Yao et al. (2022) 提出,是 LLM Agent 最基础也最重要的框架,核心思想是将推理(Thought)和行动(Action)交替进行。

执行流程:

1
2
3
4
5
6
7
8
Thought 1: 我需要查找2024年诺贝尔物理学奖得主
Action 1: Search["2024 Nobel Prize Physics"]
Observation 1: The 2024 Nobel Prize in Physics was awarded to John Hopfield and Geoffrey Hinton...
Thought 2: 得主是 Hopfield 和 Hinton,现在需要确认他们的贡献领域
Action 2: Search["Hopfield Hinton Nobel contribution"]
Observation 2: For foundational discoveries in machine learning with artificial neural networks...
Thought 3: 已获得足够信息,可以回答
Action 3: Finish["2024年诺贝尔物理学奖授予 John Hopfield 和 Geoffrey Hinton,表彰他们在人工神经网络机器学习领域的基础性发现。"]

三个关键元素:

  1. Thought(推理):LLM 用自然语言思考当前状态、分析需要什么信息、规划下一步

  2. Action(行动):调用外部工具(搜索、计算器、API)

  3. Observation(观察):接收工具返回的结果

为什么重要:

  • 可解释性:Thought 步骤暴露了推理过程,便于调试和信任建立

  • 错误纠正:模型可以根据 Observation 反思和调整策略,而非一次性生成(对比 CoT 只思考不行动)

  • 灵活性:可以动态决定调用什么工具、何时停止

与 CoT 和 Action-only 的对比

  • CoT (Reasoning only):只推理不行动,可能幻觉(无法验证事实)

  • Action only:只执行不推理,缺乏规划和错误分析能力

  • ReAct 结合两者优点,在 HotpotQA 上比 CoT 提升 ~6%,在 FEVER 上提升 ~10%

工程实现:LangChain 的 AgentExecutor、OpenAI 的 Function Calling + 循环调用,本质上都是 ReAct 变体。几乎所有现代 Agent 框架的核心循环都基于 ReAct。


35. 规划能力的主流方法:CoT / ToT / GoT

CoT(Chain-of-Thought):让模型逐步推理,"Let's think step by step"。线性推理链,适合数学、逻辑等结构化问题。Wei et al. (2022) 提出,在 GSM8K 上 PaLM 540B 从 18% 提升到 57%。

ToT(Tree-of-Thoughts):将推理过程组织为树结构,每一步生成多个候选思路,通过评估(LLM 自评或启发式)选择最优分支,支持回溯。适合需要探索和试错的问题(如 24 点游戏、创意写作)。

GoT(Graph-of-Thoughts):进一步将推理拓展为有向图,思路节点可以合并、分裂、循环引用。支持更复杂的推理拓扑,如将多个子问题的解合并为最终答案。

实践选择:大多数场景 CoT 足够且高效,ToT/GoT 在需要搜索/回溯的复杂问题中更优,但计算成本也更高(多次 LLM 调用)。


36. Memory 设计:短期 + 长期

短期记忆:即 LLM 的上下文窗口,包含当前对话历史和任务状态。受限于上下文长度(4K-128K tokens)。优化方式:摘要压缩、滑动窗口、重要信息标记。

长期记忆:持久化存储,超越单次对话。实现方式:

  1. 向量数据库:将历史对话/知识 embedding 后存储(Pinecone、Chroma),通过相似度检索相关记忆

  2. 结构化存储:知识图谱、关系数据库存储实体和关系

  3. 文件系统:直接读写文件记录(如 MemGPT 的分层记忆架构)

MemGPT 的设计特别有启发性:模仿操作系统的虚拟内存,将记忆分为"主存"(上下文窗口)和"外存"(数据库),Agent 自主决定何时读写外存。

设计要点:检索效率、记忆更新策略(遗忘/覆盖/追加)、隐私保护(不泄露其他用户的记忆)。


37. Tool Use / Function Calling 原理

原理:LLM 在训练时学会了一种特殊的输出格式——当需要使用工具时,输出结构化的函数调用(JSON 格式),而非纯文本。系统解析这个输出,执行对应的函数,将结果注入上下文,LLM 继续生成。

OpenAI Function Calling 流程

  1. 系统 prompt 中注入可用工具的 schema(函数名、参数定义、描述)

  2. LLM 根据用户请求决定是否调用工具、调用哪个、传什么参数

  3. 输出 {"name": "get_weather", "arguments": {"city": "Beijing"}}

  4. 系统执行函数,将结果返回 LLM

  5. LLM 基于结果生成最终回复

训练方式:在 SFT 阶段加入大量 tool-use 的示例数据,教会模型在什么场景下调用什么工具。也有工作(Gorilla、ToolLLM)专门构建工具使用的训练数据。

挑战:参数提取准确性、多工具协调、错误处理、工具选择的鲁棒性。


38. LangChain vs LlamaIndex 核心区别

LangChain:通用 Agent 开发框架,强调链式调用(Chain)和 Agent 构建。核心能力:prompt 管理、工具集成、记忆管理、Agent 执行循环。适合构建对话式 Agent、多步推理系统、工作流编排。更偏"行动层"。

LlamaIndex:专注于数据连接和检索的框架,核心能力:文档加载、索引构建、检索策略、查询引擎。适合构建 RAG 系统、知识库问答。更偏"数据层"。

选择建议

  • 建 RAG 系统 → LlamaIndex(更专业的索引和检索抽象)

  • 建复杂 Agent → LangChain/LangGraph(更灵活的 Agent 和工作流编排)

  • 两者可以组合使用:LlamaIndex 做检索,LangChain 做 Agent 框架

新趋势:LangGraph 提供了状态机式的 Agent 编排,比 LangChain 的线性 Chain 更灵活;CrewAI、AutoGen 专注多 Agent 协作。


39. 构建复杂 Agent 的最主要挑战?

  1. 规划可靠性:LLM 的规划能力不稳定,复杂任务容易规划失败或进入死循环。长链推理中每一步的错误都会累积。

  2. 错误恢复:Agent 执行过程中工具调用失败、返回异常结果时,需要鲁棒的重试和回退机制。

  3. 上下文管理:长时间运行的 Agent 上下文不断膨胀,如何在有限窗口内保留关键信息是核心挑战。

  4. 评估困难:Agent 行为空间巨大,相同任务可能有多条正确路径,难以自动化评估。

  5. 安全性:Agent 能执行实际操作(发邮件、修改文件),错误操作可能造成不可逆后果。需要人类确认机制(Human-in-the-loop)。

  6. 成本控制:多轮工具调用意味着多次 LLM 推理 + API 调用,成本快速累积。


40. 多智能体系统的优势和复杂性

优势:

  1. 专业化分工:每个 Agent 专注特定领域(如 Coder、Reviewer、Tester),类比人类团队

  2. 并行处理:独立子任务可并行执行,提高效率

  3. 涌现协作:Agent 间的讨论和辩论能提升决策质量(类似 debate)

  4. 鲁棒性:单个 Agent 失败不影响整体

复杂性:

  1. 通信开销:Agent 间消息传递增加延迟和 token 消耗

  2. 协调难题:任务分配、冲突解决、死锁避免

  3. 一致性维护:多个 Agent 对同一问题可能产生矛盾认知

  4. 调试困难:问题可能出在任意 Agent 或其交互中

代表系统:MetaGPT(软件开发团队)、AutoGen(微软,对话式多 Agent)、CrewAI(角色扮演式协作)。


41. A2A 框架与普通 Agent 框架的区别

A2A(Agent-to-Agent) 是 Google 提出的 Agent 间通信协议,核心理念是让不同框架、不同供应商构建的 Agent 能互相发现和协作。

与普通 Agent 框架对比:

维度 普通框架(LangChain等) A2A
关注点 单 Agent 内部构建 Agent 间互操作
通信 框架内部 API 标准化协议(HTTP+JSON)
发现 硬编码 Agent Card(能力声明)
跨框架 不支持 核心目标

A2A 核心概念:Agent Card(声明能力和端点)、Task(标准化任务格式)、Streaming(实时状态更新)。类比:如果 Agent 框架是编程语言,A2A 就是 HTTP 协议。

与 MCP(Model Context Protocol)互补:MCP 解决 Agent 与工具的连接,A2A 解决 Agent 与 Agent 的连接。


42. Agent 框架选型:用过哪些?怎么选?评价指标?

主流框架对比:

  • LangGraph:状态机式编排,适合需要精确控制流程的复杂 Agent,学习曲线适中

  • CrewAI:角色扮演式多 Agent,适合团队协作场景,API 简洁

  • AutoGen:微软出品,对话式多 Agent,支持人机协作,适合研究

  • Dify:低代码 Agent 平台,适合快速原型和非技术用户

  • Coze:字节跳动,面向消费者的 Agent 构建平台

选型评价指标:

  1. 可控性:能否精确控制执行流程和错误处理

  2. 可观测性:日志、trace、调试工具是否完善

  3. 扩展性:自定义工具、模型、存储的便捷度

  4. 社区生态:文档质量、社区活跃度、第三方集成

  5. 生产就绪度:并发、容错、监控、部署支持

面试建议:选 1-2 个深入讲,结合实际项目经验说明选型理由和踩坑经验。


43. 微调过 Agent 能力吗?数据集如何收集?

微调目标:提升模型的工具选择准确率、参数提取能力、多步规划能力、格式遵循能力。

数据收集方法:

  1. 人工构造:设计 prompt-tool-response 三元组,覆盖各种工具调用场景。成本高但质量好。

  2. 轨迹采集:让强模型(GPT-4)执行任务,记录完整的 Thought-Action-Observation 轨迹作为训练数据。

  3. Self-Instruct:让模型自动生成新的工具调用场景和对应的执行轨迹。

  4. 失败案例挖掘:收集 Agent 执行失败的 case,人工标注正确轨迹。

代表数据集/工作

  • ToolBench:16K+ 真实 API 的工具调用数据

  • AgentTuning:多种 Agent 任务的混合训练数据

  • Gorilla:API 调用专项训练

注意事项:微调 Agent 能力时要防止通用能力退化(catastrophic forgetting),通常混合通用 SFT 数据。


五、RAG

44. RAG 工作原理?与微调相比解决什么问题?

RAG(Retrieval-Augmented Generation) 在生成回复前,先从外部知识库检索相关文档,将检索结果注入 prompt 作为上下文,再由 LLM 生成回答。

核心流程:Query → Retrieval(从向量数据库检索 top-k 文档)→ Augmentation(拼接到 prompt)→ Generation(LLM 生成)

vs 微调:

维度 RAG 微调
知识更新 实时(更新知识库即可) 需要重新训练
幻觉控制 有据可查、可追溯 仍可能幻觉
成本 低(无需训练) 高(GPU 训练)
私有数据 无需暴露给模型 需要用数据训练
适用场景 知识密集型问答 风格/能力适配

RAG 解决的核心问题:知识时效性、事实准确性、数据隐私、领域专业知识注入。两者也可以结合使用。


45. 完整 RAG 流水线描述

离线索引阶段:

  1. 数据加载:从 PDF、网页、数据库等加载文档

  2. 文本切块:将长文档切分为合适大小的 chunk(通常 256-1024 tokens)

  3. Embedding:用嵌入模型(如 text-embedding-3-small)将 chunk 转为向量

  4. 索引存储:存入向量数据库(Milvus、Pinecone、Chroma)

在线查询阶段: 5. 查询处理:对用户查询做改写/扩展(Query Rewriting) 6. 检索:将查询 embedding,在向量数据库中做相似度检索(通常 top-5 到 top-20) 7. 重排序:用 Cross-Encoder 或 Cohere Rerank 对检索结果精排 8. Prompt 构建:将检索结果和原始查询组织成 prompt 9. LLM 生成:模型基于上下文生成回答 10. 引用标注:标明答案来源,支持可追溯性


46. 文本切块策略和权衡

常见策略:

  1. 固定长度切块:按 token 数切分(如 512 tokens),加重叠(overlap 50-100 tokens)防止语义断裂。简单但可能切断语义单元。

  2. 语义切块:按段落、标题、句子等自然边界切分。保持语义完整性但 chunk 大小不均匀。

  3. 递归切块:LangChain 的 RecursiveCharacterTextSplitter,按层级分隔符(\n\n → \n → 句号 → 空格)递归切分,兼顾语义和长度。

  4. 文档结构感知:利用标题层级、表格边界等结构信息。适合结构化文档(技术文档、法律合同)。

权衡:

  • Chunk 太小:语义信息不完整,检索准确但上下文不足

  • Chunk 太大:包含噪声信息,检索精度下降,占用上下文窗口

  • 通常 256-512 tokens 是甜点区间,具体需根据文档类型和查询特点实验

进阶:Small-to-Big(小块检索、大块送入 LLM)、Parent-Child 策略。


47. Embedding 模型选择和评估指标

主流模型:

  • OpenAI text-embedding-3-small/large:通用性好,支持维度缩减

  • BGE 系列(BAAI):开源最强之一,支持中英双语

  • E5-mistral-7b-instruct:基于 LLM 的嵌入模型,效果领先

  • Cohere embed-v3:支持不同任务类型(search_query/search_document)

  • GTE 系列(阿里):中文场景优秀

评估指标(MTEB Benchmark)

  1. 检索指标:NDCG@10、MRR、Recall@k

  2. 语义相似度:Spearman 相关系数

  3. 分类/聚类:Accuracy、V-measure

选择建议:先看 MTEB 排行榜,再根据语言(中文选 BGE/GTE)、维度需求(低延迟选小维度)、部署方式(本地选开源)做选择。embedding 模型一旦确定难以迁移(需重建索引)。


48. 提升检索质量的技术

  1. 查询改写(Query Rewriting):用 LLM 将用户查询改写为更适合检索的形式,如展开缩写、补充上下文。

  2. HyDE(Hypothetical Document Embeddings):让 LLM 先生成一个假设性回答,用这个回答做检索(假设回答和真实文档在嵌入空间更近)。

  3. 多路召回:同时使用向量检索 + 关键词检索(BM25),结果融合(Reciprocal Rank Fusion)。

  4. 重排序(Re-ranking):用 Cross-Encoder 对初步检索结果精细排序。Cohere Rerank、bge-reranker 效果显著。

  5. 查询分解:复杂查询拆分为多个子查询分别检索。

  6. 上下文压缩:只提取检索文档中与查询相关的部分,减少噪声。

  7. 元数据过滤:结合时间、来源、类别等元数据预过滤。


49. "Lost in the Middle" 问题及缓解

问题:Liu et al. (2023) 发现 LLM 对长上下文中不同位置的信息利用不均——模型倾向于关注开头和结尾的内容,中间的信息容易被忽略。在 20 个文档中,将正确答案放在第 10 个位置时,准确率比放在第 1 或第 20 个位置低 20%+。

缓解方法:

  1. 重排序策略:将最相关的文档放在 prompt 的开头和结尾

  2. 减少检索数量:只保留 top-3-5 最相关的文档,避免中间噪声

  3. 分段处理:对每个检索文档独立生成回答,再合并(Map-Reduce)

  4. 结构化 prompt:用明确的标记(如编号、分隔线)帮助模型定位信息

  5. 使用长上下文优化过的模型:如 GPT-4 Turbo、Claude 3 在长上下文处理上做了专门优化


50. RAG 系统性能评估:检索 + 生成两阶段

检索阶段评估:

  • Recall@k:top-k 结果中包含正确文档的比例

  • MRR(Mean Reciprocal Rank):正确文档排名的倒数平均

  • NDCG@k:考虑排序质量的评估指标

  • Hit Rate:至少有一个正确文档被检索到的比例

生成阶段评估:

  • Faithfulness(忠实度):回答是否基于检索文档,无幻觉

  • Answer Relevancy(相关性):回答是否切题

  • Context Precision:检索的文档中有多少是真正有用的

  • Context Recall:需要的信息是否被完整检索到

评估框架:RAGAS(自动化 RAG 评估)、TruLens(可观测性+评估)。建议人工评估 + 自动评估结合,人工评估 100-200 个 case 建立基准。


51. 图数据库/知识图谱 vs 向量数据库

维度 向量数据库 知识图谱/图数据库
存储 非结构化嵌入向量 结构化三元组 (实体-关系-实体)
检索 语义相似度 精确的关系查询和推理
擅长 语义匹配、模糊查询 多跳推理、关系推断
构建成本 低(自动 embedding) 高(需要实体/关系抽取)
适用场景 文档问答、语义搜索 医学诊断、合规审查、知识推理

Graph RAG(微软):先用 LLM 从文档中抽取实体和关系构建知识图谱,检索时在图上做子图匹配,再将子图信息送入 LLM。在需要全局摘要和多跳推理的场景下优于纯向量检索。

实践建议:两者结合(向量检索做初筛 + 知识图谱做精确关系查询)效果最佳。


52. 复杂 RAG 范式:多次检索、自适应检索

Naive RAG:单次检索 + 生成,简单但检索质量不稳定。

Advanced RAG:加入预处理(查询改写)和后处理(重排序),提升检索质量。

Modular RAG:将 RAG 拆分为可组合的模块,灵活编排。

具体技术:

  1. Iterative Retrieval(迭代检索):生成中间答案后,基于中间结果再次检索补充信息。适合复杂多步问题。

  2. Self-RAG:模型自主决定是否需要检索、检索结果是否有用、生成结果是否被检索支持。通过特殊 token 实现。

  3. Adaptive RAG:根据查询复杂度决定检索策略——简单问题直接回答,中等复杂度单次检索,复杂问题多次迭代。

  4. CRAG(Corrective RAG):检索后评估文档相关性,如果不相关则触发网络搜索或查询改写。


53. RAG 部署中的挑战

  1. 延迟:检索 + 重排序 + LLM 生成的端到端延迟可能达到 5-10 秒。优化:缓存热点查询、流式输出、异步检索。

  2. 知识库维护:文档更新后需要增量重建索引,处理文档版本和一致性。

  3. Chunk 碎片化:同一概念被切分到不同 chunk,导致信息不完整。需要 overlap 和上下文窗口扩展。

  4. 多模态:图片、表格、公式等非文本内容的索引和检索。

  5. 权限控制:不同用户只能访问被授权的文档,需要在检索层做权限过滤。

  6. 评估和监控:线上效果难以自动评估,需要用户反馈机制和 A/B 测试。

  7. 成本:embedding API + 向量数据库 + LLM 推理的综合成本,大规模部署需要优化。


六、评估

54. BLEU/ROUGE 对 LLM 的局限性

BLEU(机器翻译评估):计算生成文本与参考文本的 n-gram 重叠率。ROUGE(摘要评估):计算召回率为主的 n-gram 重叠。

对 LLM 的局限:

  1. 语义盲区:只匹配字面重叠,"快乐的小狗"和"开心的小犬"得 0 分

  2. 单一参考:LLM 的合理回答可能有无数种表述,单一参考答案覆盖不了

  3. 不适合开放式任务:对话、创意写作、推理等无标准答案的任务无法评估

  4. 长度偏差:BLEU 的 brevity penalty 和 ROUGE 的召回倾向可能误导

  5. 忽略流畅性和连贯性:碎片化的高重叠文本可能得高分

替代方案:LLM-as-a-Judge、人类评估、任务特定指标(如代码的 pass@k、数学的精确匹配)。


55. 综合基准:MMLU / Big-Bench / HumanEval

MMLU(Massive Multitask Language Understanding):57 个学科(STEM、人文、社科等)的多选题,14K 道题,测试知识广度。GPT-4 达 86.4%,是模型"知识水平"的标准指标。

Big-Bench (Hard):204 个任务涵盖推理、创造力、伦理等。BIG-Bench Hard(BBH)选出 23 个 LLM 表现低于人类的难题,专测推理能力。

HumanEval:164 个 Python 编程题,测试代码生成能力,用 pass@k(k 次采样至少 1 次通过的概率)评估。GPT-4 pass@1 ≈ 67%。

其他重要基准

  • GSM8K:8.5K 小学数学应用题,测试数学推理

  • MATH:竞赛级数学,难度更高

  • ARC:科学推理多选题

  • TruthfulQA:测试模型是否会生成常见误区


56. LLM-as-a-Judge 的优点和偏见

优点

  1. 成本低:相比人类标注便宜 10-100x

  2. 速度快:秒级评估

  3. 可扩展:轻松评估数万条

  4. 一致性高:同一模型对相同输入评价一致

  5. 可解释:可以要求 LLM 输出评判理由

已知偏见:

  1. 位置偏见:倾向于选择先出现的回答(GPT-4 有 ~65% 的概率偏好第一个)

  2. 冗长偏见:偏好更长的回答,即使简短回答更好

  3. 自我偏见:GPT-4 评 GPT-4 的输出时分数偏高

  4. 格式偏见:偏好使用列表、粗体等格式化的回答

  5. 权威偏见:偏好听起来更自信的回答

缓解方法:交换位置重复评估取平均、多个 Judge 模型投票、加入评分标准(rubric)约束。


57. 如何评估事实性/推理/安全性?

事实性评估:

  • 基于参考的:对比外部知识库验证每个 claim(FActScore 方法,将回答拆分为原子事实逐一验证)

  • 无参考的:LLM 自检一致性(采样多次回答看是否自相矛盾)

  • 基准:TruthfulQA、HaluEval

推理评估:

  • 数学:GSM8K、MATH(精确匹配)、AIME

  • 逻辑:LogiQA、ARC

  • 代码:HumanEval、MBPP(pass@k)

  • 关键:不仅看结果对错,还要检查推理过程(process evaluation)

安全性评估:

  • 红队测试:人工或自动化构造攻击性 prompt(越狱、有害内容诱导)

  • 基准:SafetyBench、ToxiGen、BBQ(偏见检测)

  • 指标:拒绝率(该拒绝的是否拒绝)、过度拒绝率(正常请求被误拒)

  • 自动化工具:Garak、HarmBench


58. ⭐必考 评估 Agent 为什么比评估 LLM 更难?

LLM 评估相对简单:输入一个 prompt,输出一个 response,可以用固定基准大规模评测。但 Agent 评估面临根本性的更高复杂度:

1. 行为空间爆炸 LLM 评估是 input → output 的一次映射,Agent 是多步决策序列。完成同一任务可能有 10 种正确路径和 100 种错误路径,每条路径包含 5-20 步操作。评估不仅要看最终结果,还要看过程的合理性、效率、安全性。

2. 环境依赖性 Agent 与真实环境交互(网页、API、文件系统),环境状态会变化。同样的 Agent 今天能搜索到正确信息,明天网页内容可能已更新。这导致评估结果不可重复。需要构建沙箱环境,但沙箱又可能过于简化不反映真实场景。

3. 多维度评估 LLM 主要评估回答质量,Agent 需要同时评估:

  • 任务完成度:是否达成目标

  • 效率:用了多少步、多少时间、多少 token

  • 鲁棒性:工具报错时能否恢复

  • 安全性:是否执行了危险操作

  • 成本:API 调用和 LLM 推理的总花费

4. 缺乏标准化 LLM 有 MMLU、HumanEval 等公认基准,Agent 领域基准碎片化、覆盖面窄。WebArena 只测网页操作、SWE-Bench 只测代码修复,缺乏综合性评估。

5. 评估成本极高 一次 LLM 评估只需一次推理(毫秒级),一次 Agent 评估可能需要几十次推理 + 多次工具调用(分钟级),大规模评测的计算成本和时间成本是数量级的差异。

6. 长尾问题 Agent 在 90% 的简单场景下表现完美,但在 10% 的边缘情况下可能灾难性失败。这些长尾场景恰恰是最重要的,但难以被标准基准覆盖。

当前解决方向:标准化沙箱环境(如 WebArena、OSWorld)、过程指标 + 结果指标结合、人类评估 + 自动评估结合、持续监控而非一次性评测。


59. Agent 评估基准测试有哪些?

网页操作类:

  • WebArena:真实网站环境(Reddit、GitLab、购物网站等),812 个任务

  • Mind2Web:2K+ 真实网站操作任务

代码开发类:

  • SWE-Bench:GitHub 真实 issue 修复,2294 个任务。SWE-Bench Verified 是人工验证的子集

  • HumanEval Agent:不只写代码,还要调试和测试

通用操作系统:

  • OSWorld:在真实操作系统中执行复杂任务(跨应用操作)

工具使用类:

  • ToolBench:16K+ API 的工具调用评估

  • API-Bank:API 选择和调用的评估

综合类:

  • AgentBench:8 个不同环境的综合评估

  • GAIA:需要多步推理和工具使用的问答


60. Agent 过程指标:效率、成本、鲁棒性

效率指标:

  • 步骤数:完成任务的平均操作步数(越少越好)

  • 冗余率:无效步骤占总步骤的比例

  • 时间:端到端完成时间

成本指标:

  • Token 消耗:总输入+输出 token 数

  • API 调用次数:外部工具/LLM 调用次数

  • 金钱成本:按 API 定价计算的实际花费

鲁棒性指标:

  • 错误恢复率:遇到工具错误后成功恢复的比例

  • 重试成功率:首次失败后重试成功的比例

  • 一致性:相同任务多次执行的结果方差

安全指标:

  • 越权操作率:执行了超出授权范围操作的比例

  • 确认遵循率:需要用户确认时是否正确暂停

综合评估应该是:完成率 × 效率 × 安全性的加权组合。


61. 红队测试的角色

红队测试(Red Teaming) 是通过对抗性测试发现模型安全漏洞的方法,借鉴自网络安全领域。

在 LLM/Agent 中的作用:

  1. 发现越狱漏洞:通过 prompt injection、角色扮演、编码绕过等手段测试安全防线

  2. 暴露偏见:针对不同人群的回复是否存在歧视

  3. 测试边界:确认模型对有害请求的拒绝是否一致

方法:

  • 人工红队:安全专家手动构造攻击 prompt,质量高但规模小

  • 自动化红队:用 LLM 自动生成攻击 prompt(如 Perez et al. 2022),可规模化

  • 梯度攻击:GCG(自动生成对抗后缀),白盒攻击效果强

Agent 特有的红队场景

  • 诱导 Agent 执行危险操作(删除文件、发送恶意邮件)

  • Prompt injection 通过工具返回值注入恶意指令

  • 让 Agent 泄露系统 prompt 或用户隐私数据

Anthropic、OpenAI 在发布新模型前都会进行大规模红队测试。


七、开放性问题(必问)

62. 当前 LLM 距离 AGI 还有多远?

乐观观点:GPT-4 已展现出跨领域推理、代码生成、创意写作等通用能力,某些维度已超越普通人类。OpenAI 认为 AGI 可能 5-10 年内实现。

谨慎观点:当前 LLM 仍有根本性局限:

  1. 缺乏真正的推理:更多是模式匹配而非逻辑推理,简单改变问题表述就可能出错

  2. 无持续学习:不能从交互中实时学习

  3. 缺乏世界模型:不真正理解物理世界的因果关系

  4. 幻觉问题:无法区分知道和不知道

  5. 缺乏主动性:不能自主设定目标

我的看法(面试建议结合个人思考):AGI 不是一个二元状态,而是光谱。LLM 已在语言智能维度接近人类水平,但在具身智能、持续学习、元认知等方面仍有显著差距。距离实用的"广义 AI"可能 3-5 年,距离哲学意义上的 AGI 仍然未知。


63. 开源 vs 闭源模型生态的未来?

闭源优势:更大的计算资源和数据规模、更完善的安全对齐、商业化服务成熟(GPT-4、Claude、Gemini)。

开源优势:可定制微调、数据隐私可控、部署灵活、社区创新速度快。LLaMA、Qwen、DeepSeek 已证明开源模型可以接近甚至匹敌闭源。

趋势判断

  1. 两者共存互补:闭源做最前沿探索和通用服务,开源做垂直场景深耕

  2. 差距在缩小:DeepSeek-V3 的性能接近 GPT-4,且以更低的训练成本实现

  3. 开源的护城河:微调自由度、数据安全、无 vendor lock-in 是企业级需求

  4. 模型商品化:基础模型能力趋同,竞争转向应用层和数据飞轮


64. Transformer 会被 Mamba/SSM 取代吗?

Mamba/SSM 的优势:线性复杂度 O(n)(vs Transformer 的 O(n²)),在极长序列上效率显著更高。Mamba 通过选择性状态空间模型实现了动态的上下文依赖建模。

Transformer 的护城河

  1. 生态成熟:海量预训练权重、优化工具链(Flash Attention、vLLM)

  2. Scaling 验证充分:Scaling Laws 在 Transformer 上得到了充分验证

  3. In-Context Learning:Transformer 的注意力机制天然支持 ICL,SSM 在这方面较弱

我的判断:短期(2-3年)内不会取代,更可能是混合架构(如 Jamba = Mamba + Transformer 层交替)。长期来看,若 SSM 在大规模训练中证明了同等的 scaling 特性,可能会在长上下文场景中逐步替代。但"全面取代"不太可能,更可能是各取所长的融合。


65. Agent 领域最大瓶颈是什么?

  1. 可靠性:目前 Agent 在复杂任务上的成功率偏低(SWE-Bench 最好的也只有 ~50%),生产环境需要 >95% 的可靠性。

  2. 规划能力:LLM 的规划仍然脆弱,长链任务中容易迷失方向或陷入循环。

  3. 评估体系缺失:缺乏标准化的评估方法和基准,难以比较不同 Agent 系统。

  4. 安全和信任:用户不信任 Agent 自主执行高风险操作,但频繁确认又损失效率。

  5. 成本:一个复杂 Agent 任务可能需要 50+ 次 LLM 调用,成本是纯对话的 10-50x。

最核心的瓶颈是可靠性——如果不能稳定完成任务,其他优化都是空谈。


66. 最近半年印象最深的 Agent 论文/项目?

面试建议:选 1-2 个自己真正读过/用过的,讲清楚技术创新点和个人思考。以下是可选素材:

  • DeepSeek-R1:通过纯 RL(GRPO)训练出强推理能力,不依赖人工标注的 CoT 数据,开创了"RL 驱动推理"的新范式

  • Claude Computer Use:Anthropic 让 Agent 直接操控计算机桌面,标志着 Agent 从 API 调用走向通用计算机操作

  • OpenAI Operator/Deep Research:浏览器 Agent 执行复杂研究任务

  • Manus:中国团队做的通用 Agent,引发了大量关注

  • SWE-Agent:将代码修复 Agent 的能力推到新高度

回答技巧:不要只描述项目,要表达自己的见解——"我觉得这个工作最有价值的地方是..."


67. 未来 1-2 年 Agent 最可能在哪个行业落地?

  1. 软件开发:代码生成、Bug 修复、PR Review 已基本可用(GitHub Copilot、Cursor),成功率高、风险可控。

  2. 客服/销售:FAQ 解答、工单处理、销售外呼。场景标准化程度高,错误容忍度相对高。

  3. 数据分析:自然语言查询数据库、自动生成报表和可视化。降低数据分析门槛。

  4. 办公自动化:邮件处理、日程管理、文档整理。低风险、高频需求。

  5. 研究助手:文献综述、数据收集、实验记录。学术和企业研发场景。

判断标准:(1) 任务结构化程度高 (2) 错误后果可控 (3) 人工验证成本低 (4) 已有明确的 ROI。


68. 如果让你自由探索,你想创造什么 Agent?

面试建议:展示技术视野和创造力,同时体现对实际问题的思考。示例结构:

  1. 问题描述:针对什么痛点?

  2. Agent 设计:核心能力、使用的技术栈

  3. 技术挑战:预见的难点和解决思路

  4. 可行性:为什么当前技术可以/接近实现

例如:"我想做一个持续学习型个人研究助手——它会跟踪我关注的研究领域,自动发现新论文,阅读后给我写简报,帮我维护一个知识图谱。核心挑战是长期记忆管理和个性化偏好学习。技术上可以用 RAG + 知识图谱 + 定时爬虫实现。"


69. 顶尖 AI Agent 工程师应具备哪些核心素质?

  1. LLM 底层理解:不仅会用 API,要理解 Transformer 架构、训练范式、推理优化,才能做出正确的技术决策

  2. 系统工程能力:Agent 是系统工程而非单纯算法,需要考虑延迟、成本、容错、监控、部署

  3. 产品思维:理解用户需求,知道什么场景适合 Agent、什么不适合,避免"技术自嗨"

  4. 全栈能力:前后端、数据库、DevOps 都要懂,Agent 串联的是整个技术栈

  5. 评估驱动:建立严格的评估体系,用数据而非直觉做决策

  6. 安全意识:深刻理解 prompt injection、数据泄露等安全风险

  7. 快速学习:领域发展极快(6个月一个时代),需要持续跟进论文、开源项目和行业动态

  8. 工程品味:知道何时用简单方案(prompt engineering)vs 复杂方案(微调/Agent),避免过度工程化


📌 本答案集基于 2024-2025 年的技术发展编写,具体数据和模型表现请以最新信息为准。 建议结合自己的项目经验补充个性化的案例和见解,面试中有真实经验支撑的回答远比背诵更有说服力。