面经合集
完整信息
本篇目录
不写鸡汤,直接上干货。
一、整体感受:八股在降权,项目和"你到底懂不懂"在升权
这个是我最直观的感受。
23、24届的帖子里,面LLM还会被问一堆"Transformer的QKV怎么算""LayerNorm为什么放前面"这种,我这次被问的频率明显低了很多。不是不问,是问得很快,一带而过,你答上来就过,答不上来会被记一笔但不至于直接挂。
真正花时间的是:
- 你的项目,往死里抠
- 你对现在这套东西(RAG/Agent/微调/推理优化)到底有没有自己的判断
- 能不能现场解决一个开放问题
有个面试官(某厂LLM应用组)原话大概是:"八股我们不太看了,现在这些东西GPT都能背,我想知道你踩过什么坑。"
不过——也有例外。百度和几家中厂的一二面八股还是很重,阿里的某些部门也会从头问到尾。所以别信"八股没用了",只是权重变了。
二、题型占比(我自己粗略统计的,22场,算法+应用岗混着)
- 项目深挖:40%左右,几乎每一轮都占大头
- 大模型八股(Transformer/注意力变体/训练/RLHF/量化等):20%
- RAG/Agent相关:15%,应用岗会更高,能到30%
- 手撕代码:15%,leetcode中等为主,偶尔手写attention/多头/BPE/beam search
- 开放/系统设计题:10%,比如"给你一个客服场景,你怎么设计"
手撕这块提一嘴:算法岗手撕大多是lc mid,偶尔hard;但手写attention/softmax/多头/RMSNorm这种出现频率非常高,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
应用岗手撕更偏工程,有让我写一个带重试和超时的异步请求封装的,还有让实现一个简单的token bucket限流。
三、高频题汇总(按方向)
LLM基础/训练类(算法岗几乎必问几个)
- MHA/MQA/GQA区别,为什么GQA现在主流(被问≥6次)
- RoPE的原理,怎么做长度外推,YaRN/NTK听说过吗
- Pre-Norm和Post-Norm的区别,为什么大模型都用Pre-Norm
- SFT和RLHF的区别,DPO和PPO的区别,DPO的损失函数写一下(这个被问了4次)
- GRPO是什么,和PPO比少了什么
- LoRA的原理,秩怎么选,为什么用A初始化为0/高斯B初始化为0(有一次面试官故意反着说看我会不会纠正)
- 训练时显存都被什么占了,ZeRO 1/2/3分别切了啥
- 为什么现在都用bf16不用fp16
- KV cache是啥,为什么能加速,占多少显存怎么估算
- Flash Attention核心思想(不要求写,但要说清楚为什么快)
- 幻觉怎么解决(这个是开放题,别只说RAG)
推理部署类(今年问得明显变多了)
- vLLM的PagedAttention解决了什么问题
- continuous batching是啥
- 量化:AWQ和GPTQ区别,W4A16是啥意思
- 投机解码原理
- 首token延迟和吞吐怎么trade off
RAG类(应用岗必问,算法岗也会碰)
- chunk怎么切,为什么这么切,有没有试过按语义切/父子chunk
- embedding模型选的啥,有没有微调过,怎么微调(负样本怎么构造被追问了3次)
- 召回后rerank用了没,用的啥,有没有对比过效果
- 怎么评估RAG效果(这个几乎每次都问,很多人答不好)
- 检索到的内容和问题不相关怎么办
- 多跳问题怎么解决
- 有没有做过query改写/HyDE/query拆解
- 知识库更新怎么处理
- GraphRAG了解吗,什么场景适合
Agent类(今年热度最高,但问得比较虚)
- ReAct的流程说一下
- Function calling的原理,模型是怎么"知道"要调工具的
- 多Agent怎么协作,有没有实际做过(大部分人包括我都是玩具级)
- Agent的记忆怎么设计,短期长期怎么分
- MCP是什么(今年春招开始高频出现)
- 工具调用失败/死循环怎么处理
- 怎么评估一个Agent的好坏
- 有个面试官问:你觉得Agent和workflow的边界在哪,什么时候该用哪个——这题我觉得问得挺好的
工程类(应用岗)
- 流式输出怎么做,SSE和WebSocket选哪个
- 大模型接口超时/限流怎么处理
- prompt版本怎么管理
- 怎么做灰度和A/B
- 日志和bad case怎么收集回流
四、不同岗位的倾向性(我自己的观察,样本有限)
LLM算法岗:训练细节+论文+手撕。会问你读过什么论文,最近关注什么方向,对某个热点(比如o1/R1的RL范式、长上下文、MoE)有什么看法。这个岗位很吃是否真的训过模型,哪怕是7B的LoRA微调,只要你能讲清楚数据怎么来的、loss曲线什么样、遇到什么问题,就比背再多八股都强。
AI应用开发/后端AI:Java或Python基础+一点LLM常识+RAG/Agent工程经验。这个岗有意思的地方是,很多面试官自己也是刚转过来的传统后端,所以八股里会夹杂JVM/MySQL/Redis这种,然后再问你RAG怎么搭。我有一场前半小时全是Spring和MySQL索引,后半小时突然问embedding怎么选。这个岗位对工程的稳定性、可观测性问得多,别光讲效果,要讲怎么监控、怎么降级。
Agent方向:目前感觉大部分公司自己也没完全想清楚,所以题偏开放。会给你一个场景让你现场设计,比如"做一个能帮用户订机票的Agent,你怎么拆"。考察的是拆解能力和对模型能力边界的认知。会问你有没有用过LangGraph/AutoGen/Dify这类,以及为什么不自己写(这题挺坑的,后面说)。
测开(AI方向):问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
AI产品:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
五、项目会怎么被挖(重点,这块占面试一半时间)
我拿我那个RAG项目举例,说说被追问的路径,基本每一次都是这个套路:
- "你简单介绍下这个项目" → 3分钟讲完
- "数据来源是什么,多大规模" → 别说"公开数据集"就完了,会问你清洗了没,怎么清洗
- "chunk怎么切的" → 我说按段落+固定长度重叠 → "为什么是这个长度""试过别的没""重叠多少""为什么"
- "embedding用的什么" → bge → "为什么不用别的""有没有微调""怎么判断需不需要微调"
- "召回效果怎么样" → 我说top5命中率xx% → "怎么算的""测试集哪来的""多少条""谁标的"(这里我第一次被问懵了,因为测试集就是我自己拍脑袋写的50条)
- "rerank用了没" → 用了 → "加了rerank提升了多少""耗时增加多少""值不值"
- "最后的生成质量怎么评估" → 这里如果你只说"人工看了下感觉还行"基本就凉了
- "遇到的最大问题是什么,怎么解决的" → 必问
- "如果让你重新做一遍,你会改什么" → 必问
- "如果并发上来了/知识库大了一百倍,哪里会先出问题" → 应用岗常问
面试官最爱追问的三个点:
- 数字:所有你说的效果都会被问怎么来的
- 对比:你为什么选A不选B,试过B没有
- 为什么:一直往下问为什么,问到你答不上来为止(这是正常的,不是你菜,是他想看你的边界在哪)
还有个规律:你简历上写的每个技术名词都可能被单拎出来问原理。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。
六、被难住的题(真实踩坑记录)
- "你的RAG评估指标是怎么来的?测试集多少条?" —— 上面说了,50条自己写的。面试官没说什么,但我知道他心里想的是什么。后来我花了一周补了一个几百条的评测集,并且加了ragas跑指标,之后再被问就好多了。
- "你为什么用LangChain而不是自己写?" —— 我说方便。面试官:"那你知道它底层多做了几次请求吗?"我不知道。后来发现它的某些chain默认会额外调一次模型做格式化,这个坑挺多人踩。教训:用框架可以,但要知道它替你干了什么。
- "DPO的loss写一下,然后说说β的作用" —— 公式我背了,但β的作用当时讲得含糊,面试官继续追问"β很大会怎样很小会怎样",我卡住了。回去补了。
- "GQA为什么能在效果几乎不降的情况下省显存,MQA为什么会掉点" —— 我只会说"共享KV头",说不出为什么MQA掉点更多。这题其实要从KV表达能力的角度去讲。
- "你的Agent遇到工具调用失败时怎么办" —— 我说重试。"重试几次?重试还失败呢?模型会不会因为失败信息陷入循环?"我的项目里根本没处理这个,只能硬编。
- 一道开放题: "假设让你给公司内部做一个知识库问答,员工反馈'答得不准',你怎么排查?" —— 这题当时我直接说"换个embedding模型",面试官笑了一下说"你连问题出在哪都不知道就换模型?"。正确思路应该是先分层排查:是检索没召回到、还是召回了没排到前面、还是排到前面了模型没用上、还是文档本身就没有答案。这题给我印象很深,后来我把这套排查思路也用到了别的场景。
- 手撕多头注意力时忘了mask的维度怎么广播,写了一半卡住,面试官让我口述,勉强过了。
- "最近在看什么论文" —— 我说了R1,面试官问"它的reward设计和以前的RLHF最大区别是什么,为什么这么设计能work"。我讲了规则reward,但被追问"为什么规则reward在数学题上work,在开放对话上就不行",答得不好。
七、一些不成熟的建议
- 项目里的每个数字都要能溯源。不知道怎么来的数字别写。
- 简历上不写自己讲不清楚的词。写了就是给面试官送题。
- 手写attention/多头/DPO loss/LoRA forward提前默三遍。
- RAG的评估一定要做,哪怕简陋,至少要有一套指标和一个像样的测试集。这是区分"跑通demo"和"做过项目"的分水岭。
- Agent项目要有失败处理和边界case,不然一问就穿。
- 准备一个"排查思路",无论是RAG效果差、微调loss不降、Agent死循环,面试官很喜欢问"怎么排查",这个比"怎么做"更能看出水平。
- 关注推理部署,今年明显比去年问得多,vLLM/量化/KV cache至少要能说清楚。
- 别迷信"八股没用",权重降了不代表不考,尤其中厂和某些大厂部门。
本篇目录
当前问题0174
- 01
24届的帖子里,面LLM还会被问一堆"Transformer的QKV怎么算""LayerNorm为什么放前面"这种,我这次被问的频率明显低了很多。不是不问,是问得很快,一带而过,你答上来就过,答不上来会被记一笔但不至于直接挂。
- 02
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 03
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 04
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 05
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 06
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 07
**手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
- 08
应用岗手撕更偏工程,有让我写一个带重试和超时的异步请求封装的,还有让实现一个简单的token bucket限流。
- 09
MHA/MQA/GQA区别,为什么GQA现在主流(被问≥6次)
- 10
RoPE的原理,怎么做长度外推,YaRN/NTK听说过吗
- 11
Pre-Norm和Post-Norm的区别,为什么大模型都用Pre-Norm
- 12
SFT和RLHF的区别,DPO和PPO的区别,DPO的损失函数写一下(这个被问了4次)
- 13
GRPO是什么,和PPO比少了什么
- 14
LoRA的原理,秩怎么选,为什么用A初始化为0/高斯B初始化为0(有一次面试官故意反着说看我会不会纠正)
- 15
训练时显存都被什么占了,ZeRO 1/2/3分别切了啥
- 16
为什么现在都用bf16不用fp16
- 17
KV cache是啥,为什么能加速,占多少显存怎么估算
- 18
Flash Attention核心思想(不要求写,但要说清楚为什么快)
- 19
幻觉怎么解决(这个是开放题,别只说RAG)
- 20
vLLM的PagedAttention解决了什么问题
- 21
continuous batching是啥
- 22
量化:AWQ和GPTQ区别,W4A16是啥意思
- 23
投机解码原理
- 24
首token延迟和吞吐怎么trade off
- 25
chunk怎么切,为什么这么切,有没有试过按语义切/父子chunk
- 26
embedding模型选的啥,有没有微调过,怎么微调(负样本怎么构造被追问了3次)
- 27
召回后rerank用了没,用的啥,有没有对比过效果
- 28
怎么评估RAG效果(这个几乎每次都问,很多人答不好)
- 29
检索到的内容和问题不相关怎么办
- 30
多跳问题怎么解决
- 31
有没有做过query改写/HyDE/query拆解
- 32
知识库更新怎么处理
- 33
GraphRAG了解吗,什么场景适合
- 34
ReAct的流程说一下
- 35
Function calling的原理,模型是怎么"知道"要调工具的
- 36
多Agent怎么协作,有没有实际做过(大部分人包括我都是玩具级)
- 37
Agent的记忆怎么设计,短期长期怎么分
- 38
MCP是什么(今年春招开始高频出现)
- 39
工具调用失败/死循环怎么处理
- 40
怎么评估一个Agent的好坏
- 41
有个面试官问:你觉得Agent和workflow的边界在哪,什么时候该用哪个——这题我觉得问得挺好的
- 42
流式输出怎么做,SSE和WebSocket选哪个
- 43
大模型接口超时/限流怎么处理
- 44
prompt版本怎么管理
- 45
怎么做灰度和A/B
- 46
日志和bad case怎么收集回流
- 47
**测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
- 48
**测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
- 49
**测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
- 50
**AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
- 51
**AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
- 52
**AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
- 53
**AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
- 54
**AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
- 55
"你简单介绍下这个项目" → 3分钟讲完
- 56
"数据来源是什么,多大规模" → 别说"公开数据集"就完了,会问你清洗了没,怎么清洗
- 57
"chunk怎么切的" → 我说按段落+固定长度重叠 → "为什么是这个长度""试过别的没""重叠多少""为什么"
- 58
"embedding用的什么" → bge → "为什么不用别的""有没有微调""怎么判断需不需要微调"
- 59
"召回效果怎么样" → 我说top5命中率xx% → "怎么算的""测试集哪来的""多少条""谁标的"(这里我第一次被问懵了,因为测试集就是我自己拍脑袋写的50条)
- 60
"rerank用了没" → 用了 → "加了rerank提升了多少""耗时增加多少""值不值"
- 61
"最后的生成质量怎么评估" → 这里如果你只说"人工看了下感觉还行"基本就凉了
- 62
"遇到的最大问题是什么,怎么解决的" → 必问
- 63
"如果让你重新做一遍,你会改什么" → 必问
- 64
"如果并发上来了/知识库大了一百倍,哪里会先出问题" → 应用岗常问
- 65
还有个规律:**你简历上写的每个技术名词都可能被单拎出来问原理**。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。
- 66
还有个规律:**你简历上写的每个技术名词都可能被单拎出来问原理**。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。
- 67
"你的RAG评估指标是怎么来的?测试集多少条?" —— 上面说了,50条自己写的。面试官没说什么,但我知道他心里想的是什么。后来我花了一周补了一个几百条的评测集,并且加了ragas跑指标,之后再被问就好多了。
- 68
"你为什么用LangChain而不是自己写?" —— 我说方便。面试官:"那你知道它底层多做了几次请求吗?"我不知道。后来发现它的某些chain默认会额外调一次模型做格式化,这个坑挺多人踩。教训:用框架可以,但要知道它替你干了什么。
- 69
"DPO的loss写一下,然后说说β的作用" —— 公式我背了,但β的作用当时讲得含糊,面试官继续追问"β很大会怎样很小会怎样",我卡住了。回去补了。
- 70
"GQA为什么能在效果几乎不降的情况下省显存,MQA为什么会掉点" —— 我只会说"共享KV头",说不出为什么MQA掉点更多。这题其实要从KV表达能力的角度去讲。
- 71
"你的Agent遇到工具调用失败时怎么办" —— 我说重试。"重试几次?重试还失败呢?模型会不会因为失败信息陷入循环?"我的项目里根本没处理这个,只能硬编。
- 72
一道开放题: "假设让你给公司内部做一个知识库问答,员工反馈'答得不准',你怎么排查?" —— 这题当时我直接说"换个embedding模型",面试官笑了一下说"你连问题出在哪都不知道就换模型?"。正确思路应该是先分层排查:是检索没召回到、还是召回了没排到前面、还是排到前面了模型没用上、还是文档本身就没有答案。这题给我印象很深,后来我把这套排查思路也用到了别的场景。
- 73
手撕多头注意力时忘了mask的维度怎么广播,写了一半卡住,面试官让我口述,勉强过了。
- 74
"最近在看什么论文" —— 我说了R1,面试官问"它的reward设计和以前的RLHF最大区别是什么,为什么这么设计能work"。我讲了规则reward,但被追问"为什么规则reward在数学题上work,在开放对话上就不行",答得不好。