AI-Agent 面试题汇总 - 大模型篇
一、大语言模型基础
1. 目前主流的开源模型体系有哪些?
主流开源模型体系包括:LLaMA 系、Qwen 系、GLM/ChatGLM 系、Mistral/Mixtral 系、Baichuan 系、DeepSeek 系、InternLM、Yi 等。面试里建议从以下维度比较:
- 参数规模(7B/13B/70B…)
- 上下文长度(8K/32K/128K…)
- 多语言能力
- 工具调用能力(function calling / agent)
- 推理成本与部署难度
- 开源协议(是否可商用)
2. Prefix LM 和 Causal LM 区别是什么?
- Causal LM:严格自回归,token 只能看左侧历史(下三角 mask)。
- Prefix LM:把输入分“前缀区”和“生成区”,前缀区通常可双向可见,生成区仍按自回归方式生成。
区别本质:Prefix LM在条件建模上更灵活,Causal LM在统一生成训练上更直接。
3. 为何现在的大模型大部分是 Decoder-only 结构?
核心原因:
- 训练目标统一:next-token prediction 可直接吃海量文本。
- 生成任务天然匹配:对话、写作、代码补全都属于自回归生成。
- 扩展性强:参数和数据放大时性能提升规律清晰。
- 工程生态成熟:KV Cache、并行推理框架都围绕 Decoder-only 深度优化。
4. LLM 复读机问题
“复读机”是模型重复输出相同短语/句子的现象。常见原因:
- 温度太低、top-p过窄
- repetition_penalty 未设置
- prompt指令不明确
- 长上下文导致局部高概率循环
常见解决:
- 调高 temperature / top-p
- 设置重复惩罚与 n-gram 限制
- 缩短上下文或分段生成
- 在提示词里明确“禁止重复”
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.8,
top_p=0.9,
repetition_penalty=1.1,
no_repeat_ngram_size=3
)
5. 如何让大模型处理更长的文本?
常见方案:
- 分块+检索(RAG):检索相关片段喂给模型。
- 长上下文模型:选支持 32K/128K+ 的模型。
- 滑动窗口:分段重叠处理后聚合答案。
- 层次摘要:段落总结→全局总结。
- 位置编码外推技术(如 RoPE 相关扩展)。
def chunk_text(text, chunk_size=1000, overlap=150):
res, i = [], 0
while i < len(text):
res.append(text[i:i+chunk_size])
i += chunk_size - overlap
return res
二、大语言模型架构
1. 讲讲对 Attention 的理解?
Attention本质是“按相关性做加权聚合”:给定 Query(当前需求)、Key(索引线索)、Value(内容),先算 Q-K 相似度,再对 V 做加权求和。它让模型在每一步都能动态关注最相关上下文,而不是把信息压缩成固定向量。
2. Attention 的计算步骤是什么?
步骤:
- 输入经线性层得到 Q/K/V
- 计算分数:(QK^T)
- 缩放:除以 (\sqrt{d_k})
- 加 mask(因果/padding)
- softmax 得注意力权重
- 权重乘 V 得输出
import torch, math Q = torch.randn(2, 16, 64) K = torch.randn(2, 16, 64) V = torch.randn(2, 16, 64) scores = Q @ K.transpose(-1, -2) / math.sqrt(64) attn = torch.softmax(scores, dim=-1) out = attn @ V
3. Attention 机制和传统 Seq2Seq 模型有什么区别?
传统 Seq2Seq(无 attention)把整句压成单一向量,长句易丢信息。Attention 允许解码时直接访问编码端各位置,提高长距离依赖建模能力。Transformer进一步完全用自注意力替代RNN,实现更强并行性。
4. Transformer 中 multi-head attention 中每个 head 为什么要进行降维?
原因:
- 控制计算量与显存
- 每个head在不同子空间学习不同关系
- 保持总维度不变(多头拼接后再投影回去)
5. Encoder 编码器与 Decoder 掩码有什么区别?
- Encoder自注意力通常是双向可见(除padding位)。
- Decoder自注意力使用因果mask,当前位置不能看未来token。
这决定了:Encoder偏理解,Decoder偏生成。
6. 为什么 BERT 选择 mask 掉 15% 这个比例的词,可以是其他比例吗?
15%是经验上“信息破坏”和“训练信号”之间的平衡点:
- 太低:监督信号不足
- 太高:输入被破坏过多,语义上下文不完整可以改成其他比例,但效果要靠实验验证,不同语料/模型可能最优点不同。
7. BERT 非线性的来源在哪里?
主要来自:
- FFN中的激活函数(GELU)
- 注意力中的softmax
- 多层堆叠后残差+归一化形成的复杂非线性表示能力
8. 为什么要进行 LN(LayerNorm)?
LayerNorm在特征维度做归一化,使每层输入分布更稳定,缓解训练震荡、加快收敛。相比BatchNorm,LN不依赖batch统计,更适合NLP可变长度与小batch场景。
import torch.nn as nn ln = nn.LayerNorm(768)
三、训练数据集
1. SFT(有监督微调)的数据集格式?
典型格式是指令数据:
- instruction / input / output或 chat 格式:
- system / user / assistant 多轮消息。
{"instruction":"解释过拟合","i
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.