上周和一位准备跳槽的朋友模拟面试,聊到 RAG 时他前 30 秒说得头头是道:检索、向量库、召回、重排,一个词都没落下。可当我追问一句:“为什么你们线上不是直接把 topK 提高到 20?”他突然卡住了。不是没做过,而是脑子里只有“知识点”,没有“表达结构”。这其实是很多 AI 岗位面试的真实困境:你会一点、做过一点,也看过很多资料,但一到面试现场,答案像散落的零件,拼不成完整机器。真正难的,从来不是背题,而是把概念、工程取舍和项目经验讲成一套有逻辑的回答。这也是 AgentInterview 里“04-面试题库”最有价值的地方:它不是把你训练成答题机器,而是帮你建立“会答、能讲、讲得像做过”的能力。
面试题库真正考的,不是记忆力,而是表达框架
很多人刷题的方式像背驾考题库:看到 Transformer,就条件反射说 Self-Attention;看到 Agent,就说 ReAct、工具调用、多轮规划;看到 RAG,就说 Embedding、Chunk、召回、重排。表面看答得不少,实际上面试官很快就能判断,你是在“背标签”,还是在“讲理解”。
一份有价值的 AI 面试题库,不该只给标准答案,而应该告诉你:这道题为什么问、考察的是哪一层能力、你应该怎么组织自己的回答。以 Transformer 中 Self-Attention 复杂度为例,很多人只会回答 O(n²),再进一步能补一句“序列越长越慢”。但更完整的表达,应该至少有三层:
第一层,定义清楚变量。n 是序列长度,d 是隐藏维度。第二层,解释计算来自哪里:QK^T 是 O(n²·d),attention 乘 V 还是 O(n²·d)。第三层,延伸到工程影响:长文本推理为什么吃显存、为什么要做 FlashAttention、Sparse Attention 或者滑动窗口注意力。
金句:面试里真正加分的,不是你知道答案,而是你知道答案背后的代价。
AgentInterview 的题库价值,就在于它把“知识点”往前推进了一步,变成“可表达的结构”。你不需要把每道题背成模板,但至少要形成一个稳定习惯:回答时先定义,再拆原理,再说工程意义,最后补应用边界。这个顺序一旦建立,很多问题都会从“会一点”变成“能讲清楚”。
如果时间很紧,别贪多,先搭出“能答”的骨架
准备 AI 面试最容易犯的错误,是一上来就想覆盖全部内容:模型结构、训练流程、微调方法、RAG、Agent、推理优化、评测、安全、工程化,一口气全扫。结果是看了很多,输出很少;收藏夹里资料越来越多,脑子里的结构越来越乱。
时间紧的时候,更有效的做法不是“刷完”,而是优先建立骨架。高频基础题必须先过,比如 Transformer、位置编码、归一化、KV Cache、采样策略、量化与推理延迟。这些题看起来基础,实际上经常是后续深问的入口。你连“为什么 KV Cache 会占显存”都说不顺,后面很难接住“为什么 GQA 能降低成本”。
举个典型例子,面试官问:“LayerNorm 和 BatchNorm 有什么区别?”
很多人会背表格:一个按 batch 维度,一个按特征维度;一个依赖 batch size,一个不依赖。这样的答案只能拿到及格分。更好的讲法是:
- 先说本质:它们都是归一化手段,但统计范围不同。
- 再说为什么 Transformer 更偏向 LayerNorm:序列任务里 batch 尺寸波动大,多卡场景统计也复杂,LayerNorm 不依赖 batch,更稳定。
- 最后结合经验:如果是在线推理或者小 batch 训练,BatchNorm 的统计不稳定问题会更明显。
这就是“高频基础题”的价值:它不只是知识检查点,还是你能否展开工程讨论的起点。
如果你只能挤出一周时间准备,建议优先盯三类内容:
- 高频基础题:保证“开口不翻车”
- Agent / RAG 题:保证“方向上不掉队”
- 新技术专题题:保证“能聊趋势,不像只会旧栈”
别追求题目全见过,先追求每个主题都能说出一套 1 分钟版本。
金句:准备面试不是攒答案,而是训练“在有限时间里稳定输出”的能力。
系统准备的关键,不是看答案,而是把答案“重组”成自己的语言
很多人题库刷得不少,问题出在刷题动作太单一:看题、看答案、觉得懂了、划走。这样的学习方式最容易产生一种错觉——“我会”。可一旦脱离参考答案,嘴里说出来的还是断裂的片段。
更有效的流程,应该是四步:先自测,再补盲,再回正文,再复述。这个顺序看似慢,实际是把“输入”变成“输出”的最短路径。
拿一个常见题来举例:
“LLaMA 相比传统 Transformer 做了哪些改进?”
如果你直接看答案,可能记住几个词:RoPE、SwiGLU、Pre-Norm、RMSNorm。但如果先自己回答,再看参考内容,你会发现自己的薄弱点往往不在“名词不知道”,而在“为什么这么改”。
比如 RoPE,不应该只说“位置编码更好”。更好的讲法是:它用旋转方式把位置信息融入表示,在长度外推上通常比绝对位置编码更自然,所以适合大模型长上下文场景。再比如 RMSNorm,也不只是“更快”,而是因为它少了均值中心化那一步,计算更简化,训练和推理都更友好。
下面这段 Python 小代码,就很适合拿来加深你对归一化差异的理解:
import torch
x = torch.randn(4, 8, 16) # [batch, seq_len, hidden_dim]
# LayerNorm: 对最后一维特征做归一化
layer_mean = x.mean(dim=-1, keepdim=True)
layer_std = x.std(dim=-1, keepdim=True)
layer_normed = (x - layer_mean) / (layer_std + 1e-5)
# BatchNorm 的简化理解:对 batch 维度统计
batch_mean = x.mean(dim=0, keepdim=True)
batch_std = x.std(dim=0, keepdim=True)
batch_normed = (x - batch_mean) / (batch_std + 1e-5)
print("LayerNorm shape:", layer_normed.shape)
print("BatchNorm-like shape:", batch_normed.shape)
这类代码不一定会原样出现在面试里,但它能帮你把抽象概念变成可解释的过程。你在回答时自然就不会只剩一句“LayerNorm 更适合 Transformer”。
真正的系统准备,最后一定要有一步:脱稿复述。不是把参考答案复述一遍,而是结合你自己的经验重新组织。例如,你做过推理服务,就把 KV Cache、量化、并发吞吐联系起来;你做过知识库问答,就把 Chunk 策略、召回质量、上下文窗口联系起来。面试官想听的不是标准答案复印件,而是你的理解是怎么落到项目上的。
有项目经验的人,差距往往不是概念,而是“为什么这样做”
真正能在面试里拉开差距的,通常不是定义题,而是设计题和排查题。概念题大家都能准备,真正见水平的,是你能不能把一个方案讲成“有目标、有约束、有取舍”的工程决策。
比如这样一道题:“设计一个帮助团队写周报的 Agent,你会怎么做?”
很多人会从“调用大模型生成周报”开始讲,这个起点其实就偏了。面试官更想听的是:输入来源是什么、工具链怎么设计、任务流怎么拆、质量怎么兜底、失败如何回退。
一个更成熟的思路可以这样展开:
先定义目标。不是“写一篇文采好的周报”,而是把零散工作记录整理成结构化输出,减少人工汇总成本。
再定义输入。日历事件、Git 提交、任务系统、聊天记录,这些来源噪声都很高。
然后定义 Agent 的动作链。先收集,再筛选,再归类,再生成,最后给用户确认。
最后说风险。会议多但无产出、提交多但价值低、聊天记录容易夹杂噪声,这些都需要规则或人工校验补位。
可以把流程简单写成这样:
1. 收集本周数据
- Calendar API: 获取会议主题和时间
- Git API: 获取 commit 摘要
- Task API: 获取完成/延期任务
2. 中间处理
- 去重:同一事项可能在多个系统出现
- 分类:成果、问题、下周计划
- 过滤:无效会议、无意义提交信息
3. 输出阶段
- 生成结构化周报
- 标注不确定内容
- 用户确认后再导出
这类回答的关键,不是“用了什么框架”,而是“你有没有工程视角”。
金句:方案设计题里,工具只是名词,取舍才是能力。
同样,RAG 和 Agent 面试里也很喜欢问排查题。比如:“为什么你们的问答系统明明召回到了相关文档,回答还是不稳定?”这时候别急着甩锅给模型。你可以按链路拆:
- 检索到了,但 chunk 切得太碎,关键信息分散
- topK 太大,引入噪声,模型被无关上下文干扰
- 重排质量不够,真正重要的片段没排到前面
- Prompt 没要求模型基于证据回答,导致自由发挥
- 多轮对话历史过长,把最新问题的关注点冲淡了
这样的回答会让面试官感觉:你不是停留在“知道 RAG 组件”,而是理解整条链路会在哪些地方失真。
趋势题越来越多,考的不是你追热点,而是你能判断边界
近两年的 AI 面试,一个明显变化是:新框架、新范式、新名词越来越多。今天聊 MCP,明天聊多 Agent 编排,后天聊长上下文和记忆机制。如果你的回答方式只是“我看过”“这个很火”“很多团队在用”,那很难建立可信度。
趋势题真正考的,是判断力。也就是:它解决了什么问题、适合什么场景、不适合什么场景、引入了什么成本。
以“KV Cache 如何节省显存”为例,很多候选人会说量化、MQA、GQA、Offload,但如果不能说明为什么这些手段有效,答案还是浮的。更完整的讲法是:
KV Cache 本质上是在增量生成时缓存历史 token 的 K/V,避免每轮都重复计算前文,所以换来更高吞吐,但代价是显存会随着上下文长度增长。显存压力大的时候,可以从三类方法入手:
- 降精度:把 FP16 压到 INT8,直接减少存储量
- 减结构:通过 MQA/GQA 共享部分 K/V head,降低缓存规模
- 换空间:把一部分 Cache 挪到 CPU 或更慢的存储层,但会牺牲时延
你会发现,这种回答不是在堆术语,而是在讲“收益—代价”关系。面试官最喜欢听的,恰恰是这种带边界感的表达。
再举一个趋势题常见问法:“你怎么看 Agent 会不会替代传统工作流编排?”
一个成熟答案不该是“会”或“不会”,而应该分场景说:
- 如果任务流程固定、规则清晰、容错要求高,传统工作流更可控
- 如果任务开放、多步骤、需要根据环境动态决策,Agent 更有发挥空间
- 很多线上系统最终不是二选一,而是“工作流兜底 + Agent 增强”
这类题非常能区分候选人层次。因为它要求你不能只会念新词,还要知道新词背后的真实边界。
金句:面试里谈趋势,最怕的不是保守,而是没有边界感的乐观。
一份好的题库,最后应该把你带向“能讲故事”的能力
很多技术人以为面试表达是“口才问题”,其实不是。表达差,往往不是嘴笨,而是脑子里没有结构。你对一个知识点的理解如果只停在定义层,讲出来就一定扁平;只有当你把概念、原理、场景、代价、选择依据串起来,表达才会自然有层次。
这也是为什么 AgentInterview 不只是给你一堆题目,而是更像一套成长型知识库。面试题库只是入口,真正的价值是把你推向四层能力:基础认知、工程理解、系统设计、趋势判断。你刷题不是为了“见过这道题”,而是为了形成一套稳定的回答方式:
- 这是什么
- 它为什么这样设计
- 它解决了什么问题
- 它在工程上有什么代价
- 如果换成我的项目,我会怎么选
你会发现,一旦这个结构建立起来,不只是面试有用,平时做技术汇报、写方案、复盘线上问题,都会顺很多。因为你不再是零散地讲知识点,而是在输出完整判断。
如果你正在准备 AI 岗位,或者已经在做 LLM / Agent / RAG 相关工作,建议别再把题库当作“考前突击材料”,而要把它当作表达训练场。先用高频题建立骨架,再用设计题和排查题补工程感,最后拿趋势题练边界判断。AgentInterview 的“04-面试题库”很适合作为这条路径的起点:不是替你答题,而是训练你把会的东西讲得更像自己。接下来如果你愿意,再继续看它后面的表达专题,你会更明显感受到——很多时候,决定 offer 的不是你懂多少,而是你能不能把懂的部分,讲成一个让人信服的故事。