公司未注明

面经合集

完整信息

74 条问法 · 87 道题

本篇目录

不写鸡汤,直接上干货。

一、整体感受:八股在降权,项目和"你到底懂不懂"在升权

这个是我最直观的感受。

23、24届的帖子里,面LLM还会被问一堆"Transformer的QKV怎么算""LayerNorm为什么放前面"这种,我这次被问的频率明显低了很多。不是不问,是问得很快,一带而过,你答上来就过,答不上来会被记一笔但不至于直接挂。

真正花时间的是:

  1. 你的项目,往死里抠
  2. 你对现在这套东西(RAG/Agent/微调/推理优化)到底有没有自己的判断
  3. 能不能现场解决一个开放问题

有个面试官(某厂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项目举例,说说被追问的路径,基本每一次都是这个套路:

  1. "你简单介绍下这个项目" → 3分钟讲完
  2. "数据来源是什么,多大规模" → 别说"公开数据集"就完了,会问你清洗了没,怎么清洗
  3. "chunk怎么切的" → 我说按段落+固定长度重叠 → "为什么是这个长度""试过别的没""重叠多少""为什么"
  4. "embedding用的什么" → bge → "为什么不用别的""有没有微调""怎么判断需不需要微调"
  5. "召回效果怎么样" → 我说top5命中率xx% → "怎么算的""测试集哪来的""多少条""谁标的"(这里我第一次被问懵了,因为测试集就是我自己拍脑袋写的50条)
  6. "rerank用了没" → 用了 → "加了rerank提升了多少""耗时增加多少""值不值"
  7. "最后的生成质量怎么评估" → 这里如果你只说"人工看了下感觉还行"基本就凉了
  8. "遇到的最大问题是什么,怎么解决的" → 必问
  9. "如果让你重新做一遍,你会改什么" → 必问
  10. "如果并发上来了/知识库大了一百倍,哪里会先出问题" → 应用岗常问

面试官最爱追问的三个点:

  • 数字:所有你说的效果都会被问怎么来的
  • 对比:你为什么选A不选B,试过B没有
  • 为什么:一直往下问为什么,问到你答不上来为止(这是正常的,不是你菜,是他想看你的边界在哪)

还有个规律:你简历上写的每个技术名词都可能被单拎出来问原理。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。

六、被难住的题(真实踩坑记录)

  1. "你的RAG评估指标是怎么来的?测试集多少条?" —— 上面说了,50条自己写的。面试官没说什么,但我知道他心里想的是什么。后来我花了一周补了一个几百条的评测集,并且加了ragas跑指标,之后再被问就好多了。
  2. "你为什么用LangChain而不是自己写?" —— 我说方便。面试官:"那你知道它底层多做了几次请求吗?"我不知道。后来发现它的某些chain默认会额外调一次模型做格式化,这个坑挺多人踩。教训:用框架可以,但要知道它替你干了什么。
  3. "DPO的loss写一下,然后说说β的作用" —— 公式我背了,但β的作用当时讲得含糊,面试官继续追问"β很大会怎样很小会怎样",我卡住了。回去补了。
  4. "GQA为什么能在效果几乎不降的情况下省显存,MQA为什么会掉点" —— 我只会说"共享KV头",说不出为什么MQA掉点更多。这题其实要从KV表达能力的角度去讲。
  5. "你的Agent遇到工具调用失败时怎么办" —— 我说重试。"重试几次?重试还失败呢?模型会不会因为失败信息陷入循环?"我的项目里根本没处理这个,只能硬编。
  6. 一道开放题: "假设让你给公司内部做一个知识库问答,员工反馈'答得不准',你怎么排查?" —— 这题当时我直接说"换个embedding模型",面试官笑了一下说"你连问题出在哪都不知道就换模型?"。正确思路应该是先分层排查:是检索没召回到、还是召回了没排到前面、还是排到前面了模型没用上、还是文档本身就没有答案。这题给我印象很深,后来我把这套排查思路也用到了别的场景。
  7. 手撕多头注意力时忘了mask的维度怎么广播,写了一半卡住,面试官让我口述,勉强过了。
  8. "最近在看什么论文" —— 我说了R1,面试官问"它的reward设计和以前的RLHF最大区别是什么,为什么这么设计能work"。我讲了规则reward,但被追问"为什么规则reward在数学题上work,在开放对话上就不行",答得不好。

七、一些不成熟的建议

  1. 项目里的每个数字都要能溯源。不知道怎么来的数字别写。
  2. 简历上不写自己讲不清楚的词。写了就是给面试官送题。
  3. 手写attention/多头/DPO loss/LoRA forward提前默三遍。
  4. RAG的评估一定要做,哪怕简陋,至少要有一套指标和一个像样的测试集。这是区分"跑通demo"和"做过项目"的分水岭。
  5. Agent项目要有失败处理和边界case,不然一问就穿。
  6. 准备一个"排查思路",无论是RAG效果差、微调loss不降、Agent死循环,面试官很喜欢问"怎么排查",这个比"怎么做"更能看出水平。
  7. 关注推理部署,今年明显比去年问得多,vLLM/量化/KV cache至少要能说清楚。
  8. 别迷信"八股没用",权重降了不代表不考,尤其中厂和某些大厂部门。
本篇目录
  1. 01
    24届的帖子里,面LLM还会被问一堆"Transformer的QKV怎么算""LayerNorm为什么放前面"这种,我这次被问的频率明显低了很多。不是不问,是问得很快,一带而过,你答上来就过,答不上来会被记一笔但不至于直接挂。
  2. 02
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  3. 03
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  4. 04
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  5. 05
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  6. 06
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  7. 07
    **手撕这块提一嘴**:算法岗手撕大多是lc mid,偶尔hard;但**手写attention/softmax/多头/RMSNorm这种出现频率非常高**,我至少被要求写了5次多头注意力,1次让写LoRA的forward。还有一次让写一个简化版的BPE合并过程。这个真的要提前默一遍,现场写不出来很尴尬。
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
    有个面试官问:你觉得Agent和workflow的边界在哪,什么时候该用哪个——这题我觉得问得挺好的
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
    **测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
  48. 48
    **测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
  49. 49
    **测开(AI方向)**:问得比较多的是大模型输出怎么测,非确定性输出的评估怎么设计,评测集怎么构建,prompt回归怎么做。会问一些基础的LLM概念,但深度要求不高。
  50. 50
    **AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
  51. 51
    **AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
  52. 52
    **AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
  53. 53
    **AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
  54. 54
    **AI产品**:我没面过,室友面过几个,据他说主要问:你觉得哪个AI产品做得好为什么、给你一个场景你怎么判断该不该用大模型、怎么评估效果、怎么设计一个prompt让模型稳定输出。也会有人问技术基础,比如RAG是什么。
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
    "最后的生成质量怎么评估" → 这里如果你只说"人工看了下感觉还行"基本就凉了
  62. 62
  63. 63
  64. 64
  65. 65
    还有个规律:**你简历上写的每个技术名词都可能被单拎出来问原理**。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。
  66. 66
    还有个规律:**你简历上写的每个技术名词都可能被单拎出来问原理**。我简历上写了"使用HNSW索引",就被问HNSW的原理和参数,我当时只知道它快,原理答得稀烂。后来老实把这个词删了。
  67. 67
    "你的RAG评估指标是怎么来的?测试集多少条?" —— 上面说了,50条自己写的。面试官没说什么,但我知道他心里想的是什么。后来我花了一周补了一个几百条的评测集,并且加了ragas跑指标,之后再被问就好多了。
  68. 68
    "你为什么用LangChain而不是自己写?" —— 我说方便。面试官:"那你知道它底层多做了几次请求吗?"我不知道。后来发现它的某些chain默认会额外调一次模型做格式化,这个坑挺多人踩。教训:用框架可以,但要知道它替你干了什么。
  69. 69
  70. 70
    "GQA为什么能在效果几乎不降的情况下省显存,MQA为什么会掉点" —— 我只会说"共享KV头",说不出为什么MQA掉点更多。这题其实要从KV表达能力的角度去讲。
  71. 71
  72. 72
    一道开放题: "假设让你给公司内部做一个知识库问答,员工反馈'答得不准',你怎么排查?" —— 这题当时我直接说"换个embedding模型",面试官笑了一下说"你连问题出在哪都不知道就换模型?"。正确思路应该是先分层排查:是检索没召回到、还是召回了没排到前面、还是排到前面了模型没用上、还是文档本身就没有答案。这题给我印象很深,后来我把这套排查思路也用到了别的场景。
  73. 73
    手撕多头注意力时忘了mask的维度怎么广播,写了一半卡住,面试官让我口述,勉强过了。
  74. 74