文章目录
- 面试题库(120题·空白自测版)
-
- 一、大模型基础原理(1-20)
-
- **(0)Transformer架构简述**
- [(1)**简述 Transformer 架构,Encoder 和 Decoder 的区别。**](#(1)简述 Transformer 架构,Encoder 和 Decoder 的区别。)
- [(2)**Self-Attention 的计算公式,为什么要除以 √dk?**](#(2)Self-Attention 的计算公式,为什么要除以 √dk?)
- [**(3)Multi-Head Attention 的作用是什么?**](#(3)Multi-Head Attention 的作用是什么?)
-
-
-
- [(5)**LayerNorm 和 RMSNorm 的区别?**](#(5)LayerNorm 和 RMSNorm 的区别?)
-
-
- [二、RAG 检索增强生成(21-40)](#二、RAG 检索增强生成(21-40))
- [三、Agent 与 LangChain/LangGraph(41-65)](#三、Agent 与 LangChain/LangGraph(41-65))
- 四、提示词工程(66-75)
- 五、模型部署与工程化(76-90)
- [六、NLP 基础(91-100)](#六、NLP 基础(91-100))
- 七、计算机视觉(101-115)
- [八、Python / PyTorch / 深度学习基础(116-120)](#八、Python / PyTorch / 深度学习基础(116-120))
- 自测使用建议
面试题库(120题·空白自测版)
覆盖岗位:AI Agent算法工程师 / 大模型应用工程师 / NLP方向应用工程师 / 算法工程师(大模型、视觉、部署方向)
一、大模型基础原理(1-20)
(0)Transformer架构简述
之前的Transformer:
输入->位置嵌入编码->Encoder->Decoder->输出
(1)简述 Transformer 架构,Encoder 和 Decoder 的区别。
transformer架构由Encode, Decoder堆叠而成,核心是self-attention(自注意力机制)和Feedward(前馈神经网络)构成。
Encode是双向的,适用于理解式任务(如Bert)。Decoder是单向的,适用于生成式任务(比如GPT和Lamma等)。目前主流的NLP任务都已经被Decoder-only为主要架构的生成式任务统一了。
(2)Self-Attention 的计算公式,为什么要除以 √dk?
self-attention的计算公式: Attention(Q, K, V)=softmax(QK^T / √dk) V。其中Q^T会随着√dk变大而变大,而会逐渐的趋近与dk,所以要除一下,让方差趋近于1附近,让梯度保持健康。
(3)Multi-Head Attention 的作用是什么?
- 把QKV投影到各自的子空间做attention再拼接,
- 让模型从不同子空间关注不同位置的信息,比如有的head关注语法,有的关注语义。
- 计算量与单头接近(因为每头的维度缩小),但是表达能力更强。
(4)位置编码有哪些方式?RoPE 的原理是什么?
位置编码的作用:是Transformer里边用来告诉模型(每个词在句子中的顺序位置应该是什么),因为Transformer的核心(自注意力机制)本身不知道顺序。
因为Self-attention本质计算:
Attention(Q, K, V)=softmax(QK^T / √dk) V
它关注的是Token和Token之间的关系,但是没有Token的先后顺序。
- 绝对位置编码:sinusoidal(正余弦),learned(可学习)
- 相对位置编码:T5 relative bias, Alibi
- RoPE(旋转位置编码):通过旋转矩阵把绝对位置信息以相对形式注入Q/K,使内积结果只依赖相对位置。优点:外推性好,支持上下文扩展。
(5)LayerNorm 和 RMSNorm 的区别?
LayerNorm和RMSNorm都是Transformer大模型中归一化技术,作用是:稳定训练,让神经网络每一层输出的数据分布更稳定,从而更容易训练,更深。它们经常出现在LLM(GPT,LLAMA,Qwen,Claude)的Transformer Block中。
如果直接用Transformer的每一层输出,x = [10.2, 0.5, -8.3, 4.7],下一层接收到这么大的数值差异,训练时梯度容易,爆炸,小时,收敛慢等。
- LayerNorm对每个样本按特征维度做减均值除标准差,再缩放平移。
- RMSNorm去掉减均值这一步,只用均方根归一化。计算量更小,速度更快,效果相当,LLAMA系列都用RMSNorm
-
Pre-norm 和 Post-norm 的区别?哪个更适合深层模型?
-
KV Cache 原理,为什么能加速推理?
-
MQA / GQA 的原理和区别?
-
Flash Attention 的原理和收益?
-
大模型训练的三阶段:预训练、SFT、RLHF 分别是什么?
-
LoRA 的原理,为什么能减少训练参数?
-
QLoRA 相比 LoRA 的改进是什么?
-
PPO 和 DPO 的区别?
-
解码策略 Greedy / Beam / Top-k / Top-p / Temperature 的区别?
-
大模型幻觉问题的原因和缓解方法?
-
扩展上下文窗口的方法有哪些?
-
什么是大模型的涌现能力?
-
MoE(Mixture of Experts)架构原理?
-
大模型常见评测指标有哪些?
-
大模型的 Bias 和 Toxicity 问题如何缓解?
二、RAG 检索增强生成(21-40)
-
RAG 的基本流程是什么?
-
为什么用 RAG 而不是直接微调?
-
Chunking 分块策略有哪些?
-
Embedding 模型如何选择?
-
向量数据库 FAISS / Milvus / Chroma 的对比?
-
向量相似度度量:余弦、点积、欧氏,怎么选?
-
HNSW 索引原理?
-
RAG 检索召回率低的原因和优化方法?
-
什么是混合检索(稀疏 + 稠密)?
-
Rerank 重排的作用和常用模型?
-
Query 改写 / 扩展有哪些方法?
-
Parent-Child Chunking 是什么?
-
多路召回如何融合?
-
RAG 中如何规避幻觉?
-
知识库更新策略有哪些?
-
RAG 中表格和图片如何处理?
-
如何评估 RAG 系统?RAGAS 指标有哪些?
-
长文本 RAG 怎么做?
-
Self-RAG / Corrective RAG 是什么?
-
Embedding 维度选择的 trade-off?
三、Agent 与 LangChain/LangGraph(41-65)
-
Agent 的核心组件有哪些?
-
ReAct 模式的原理?
-
Plan-Execute 模式与 ReAct 的区别?
-
LangChain 的核心概念:Chain / Agent / Tool / Memory?
-
LangGraph 的 StateGraph 是什么?
-
LangChain 的 LCEL 是什么?
-
Tool Calling / Function Calling 的原理?
-
多 Agent 协作架构有哪些模式?
-
Agent 的短期记忆 vs 长期记忆?
-
Agent Memory 的常见实现方式?
-
Agent 任务分解策略有哪些?
-
Agent 异常恢复机制如何设计?
-
Agent 状态管理怎么做?
-
LangGraph 的 Checkpoint 机制?
-
ReAct / Plan-Execute / Reflexion 三者对比?
-
LangChain 中 Agent 有哪些类型(旧 AgentExecutor)?
-
如何开发自定义 Tool?
-
Agent 循环终止条件怎么设计?
-
多 Agent 之间如何通信?
-
Reflexion 反思机制怎么实现?
-
LangGraph 如何实现 Human-in-the-loop?
-
Tool 输出如何结构化?
-
Agent 如何并发执行?
-
LangGraph 的条件边怎么用?
-
Agent 推理成本与响应速度如何优化?
四、提示词工程(66-75)
-
Few-shot 提示的原理和注意点?
-
Chain-of-Thought (CoT) 思维链是什么?
-
Zero-shot CoT 和 Few-shot CoT 区别?
-
Self-Consistency 是什么?
-
什么是提示注入攻击,如何防御?
-
System Prompt 如何设计?
-
角色扮演提示的作用和风险?
-
提示词鲁棒性如何提升?
-
如何让 LLM 输出结构化 JSON?
-
Prompt 模板如何工程化管理?
五、模型部署与工程化(76-90)
-
vLLM 的核心原理 PagedAttention 是什么?
-
Continuous Batching 是什么?
-
Ollama 的原理和定位?
-
模型量化有哪些方法?INT8 / GPTQ / AWQ / GGUF 区别?
-
KV Cache 量化的作用?
-
如何用 Docker 部署大模型服务?
-
如何用 FastAPI 封装模型服务?
-
Speculative Decoding(推测解码)原理?
-
TensorRT-LLM 是什么?
-
张量并行(TP)和流水线并行(PP)的区别?
-
流式输出如何实现?
-
模型服务如何扛高并发?
-
知识蒸馏原理?
-
大模型推理优化手段总结?
-
模型加载与显存管理要点?
六、NLP 基础(91-100)
-
文本分类有哪些方法?
-
命名实体识别(NER)怎么做?
-
信息抽取有哪些子任务,怎么做?
-
抽取式摘要和生成式摘要的区别?
-
BERT 的原理?
-
文本相似度怎么计算?
-
分词算法 BPE / WordPiece / SentencePiece 区别?
-
困惑度 PPL 是什么?
-
文本纠错怎么做?
-
多模态理解的基本原理?
七、计算机视觉(101-115)
-
YOLO 系列的演进要点?
-
目标检测评价指标 mAP 怎么算?
-
U-Net 分割的原理?
-
语义分割、实例分割、全景分割区别?
-
OCR 的基本流程?
-
模型轻量化有哪些方法?
-
QAT(量化感知训练)和 PTQ 的区别?
-
知识蒸馏在 CV 中怎么用?
-
模型端侧部署要点?
-
数据增强方法有哪些?
-
SAM 分割大模型原理?
-
DETR 原理和贡献?
-
Anchor-free 检测原理?
-
NMS 原理和改进?
-
IoU / GIoU / CIoU / DIoU / Focal Loss 各是什么?
八、Python / PyTorch / 深度学习基础(116-120)
-
PyTorch autograd 自动求导原理?
-
DataLoader 和分布式训练要点?
-
梯度消失和爆炸原因及解决?
-
过拟合如何处理?
-
优化器 SGD / Adam / AdamW 区别?
自测使用建议
- 先不看答案通答一遍,标记"卡壳/空白"的题号。
- 每个题尝试口头讲满 2 分钟(模拟面试)。
- 重点重练卡壳题,第二天复述巩固。
- 划重点:报考哪个岗位重点刷哪个模块(详见带答案版"复习建议")。