最近不少朋友在准备大模型和RAG方向的面试私信问我有没有系统性的整理。我把自己这两年从准备、面试到复盘的内容重新梳理了一遍沉淀出一份相对完整的面经覆盖技术栈、项目深挖、手撕代码、系统设计和高频问题希望能帮你少走点弯路。先说下我自己的情况非科班转码两年做过搜推广后端后来切到大模型应用方向主要做RAG检索增强生成相关的落地项目。面过大厂中厂也面过初创公司拿过offer也挂过简历踩过的坑不少。这篇内容我不想按教科书的方式来写而是站在实际面试的角度把面试官真正关心的东西掰开揉碎了讲清楚。不管你是刚入门想转岗还是已经做了一段时间想查漏补缺这份面经都值得收藏。1. 大模型RAG岗位面试到底在考什么1.1 岗位需求背后的真实逻辑很多同学把大模型面试理解为“背八股”以为把Attention、Transformer、LORA背一遍就完事结果一到现场就懵。实际上面试官考察的重点很明确你能不能把一个业务问题转化成一个可落地的大模型解决方案并且对其中涉及的工程细节有切实的认知。以RAG岗位为例表面考的是“检索增强生成”但深层考的是三件事第一你理不理解LLM的局限性比如幻觉、知识截止、长上下文成本高等这会直接决定你什么时候该用RAG而不是硬调Prompt第二你懂不懂非结构化数据的处理链路从文档解析、切分、向量化到召回重排每一步可能遇到什么问题第三你有没有工程sense比如召回效果怎么评估、检索延迟怎么优化、线上Bad Case怎么迭代。所以面试官经常会从一个很细节的点切入然后逐步放大。比如先问“你用的embedding模型是什么”接着问“为什么选它而不选别的”再问“这个模型的向量维度对你后续存储和召回有什么影响”到最后可能变成“如果在低资源环境下你怎么做向量检索”。这一串问题背后考的就是你有没有真正做过、想过而不是会用现成框架。1.2. 不同阶段岗位侧重点差异要根据自己的职级准备别用同一套模板打天下。初级岗位1-3年重点问基础知识和项目经验比如Transformer结构、RAG基本流程、Prompt工程、向量数据库基本使用也会考察代码能力手写一个简单的RAG调用链很常见。中级岗位3-5年重点问架构设计和优化策略比如如何设计一个高可用的RAG服务、如何做混合检索、如何评估RAG效果、如何降低幻觉、如何做记忆机制、长文档RAG如何处理等。高级岗位5年以上重点问方案选型和业务判断比如“为什么要做RAG而不是微调”“多模态场景下RAG怎么演进”“如何衡量大模型应用ROI”等更看重系统思考和全局视角。说实话我面下来最大的感受是你不需要每个细节都精通但一定要有一条完整且自洽的技术链路经验。如果你只做过PDF解析向量检索调LLM那就把这条链路做到极致能讲清楚每一步的输入输出、风险点和优化空间。面试官更愿意看到你对自己做过的系统有深刻理解而不是背了十个框架的名字却说不清细节。1.3 面试官视角一条隐藏的能力自查清单我后来和一位大模型团队的技术负责人聊过他说面试大模型应用岗时心里其实有一份“无字清单”对LLM基础机制的掌握程度如果不清楚tokenization、生成策略、上下文窗口、注意力机制项目很难有优化空间。对数据工程的敏感度懂不懂清洗、去重、SFT数据构建、评测集构建这些恰恰是RAG落地质量的根基。对评估体系的认知有没有自己的评估方法是只看主观感受还是建立了自动化评测链路。对成本与延迟的把握是否知道API调用成本、向量化吞吐、GPU资源占用能不能在方案设计中给出参数级别的估算。这份清单其实就是大模型应用工程师能力模型的具体化。面试时如果你能在这几个维度上主动输出内容面试官会对你高看一眼因为大部分人都在等面试官问一句答一句很少有候选人能主动展示完整闭环的。2. 核心知识点拆解从原理到实战2.1 Transformer与Attention别只会背公式大模型面试几乎必问TransformerRAG本身也是基于LLM的所以这块逃不掉。但面试官并不满足于你背出Attention公式而是希望你理解这个公式背后的why。我习惯用“查字典”类比来解释Attention你要生成一个词不能只看上一个词得看输入序列里哪些词和当前词有关。Q查询是你想要找什么K键是每个词能提供什么索引V值是每个词实际的内容信息。Q和K的点积除以根号d就是算相关性再用Softmax归一化成权重最后把V加权求和。面试官如果追问“为什么除以根号d”你要能解释深层原因当维度d增大时点积的方差会变大导致Softmax的梯度区域饱和除以根号d是为了把点积分布拉回方差为1保证训练稳定性。还有几个高频变体问题“多头注意力为什么有效”——相当于多个子空间学习不同关系模式有的头关注局部词序有的头关注长距离依赖类似多个专家各管一摊。“自回归生成时怎么避免看到未来token”——通过Mask矩阵把未来的位置置为负无穷比如因果掩码Causal Mask。“位置编码为什么重要”——Attention本身是Permutation Equivariant的不带位置信息所以需要绝对或者相对位置编码RoPE现在是大模型主流选择因为它在Attention阶段就能融入相对位置关系外推能力也更好。2.2 RAG全流程关键细节RAG不只是“检索”加“生成”它是一个完整的数据和推理管道。面试时你要能画出整体流程图并讲清楚每个环节的权衡。一个标准的RAG流程是文档加载 - 文档切分Chunking - 向量化Embedding - 向量存储Vector DB - 查询改写/检索Retrieval - 重排Rerank - 生成LLM - 输出后处理引用溯源等。每个环节都会出细节题文档切分怎么定Chunk大小固定长度还是语义切分重叠窗口怎么设如果是PDF和表格怎么办Embedding选型BGE、M3E、OpenAI的text-embedding-3等等怎么根据语言、领域、维度、成本选择向量数据库Milvus、Weaviate、Qdrant、Chroma、pgvector它们之间的区别是什么HNSW参数M、efConstruction、efSearch怎么调为什么用HNSW而不是暴力检索召回策略为什么不能只用纯向量检索BM25关键词召回什么时候更有优势混合检索的分数融合怎么做重排的必要性第一路召回可能返回100条但直接扔给LLM不仅浪费Token而且引入噪声用Rerank模型精排到Top 5效果提升明显。我当时面试讲自己做过的一个项目就是专门抠了“切分”这个点。有一段很长的技术文档固定512字符切分会导致表格断裂、代码块被拆开后来改成按Markdown块级结构结合固定大小窗口的混合切分并给每个切分块打上文档级元信息。就这么一个改进让最终问答的准确率提升了十几个百分点。这个例子经常被我拿来当“我懂工程细节”的佐证。2.3 评估RAG效果指标与评测集建设评估是RAG面试最能拉开差距的地方。很多人做过RAG但问他“效果怎么评估”只会说“人工看几个例子”。这恰恰是面试官最敏感的信号。RAG评估要分维度检索评估RecallK、PrecisionK、MRR平均倒数排名、NDCG归一化折损累计增益。这些指标不需要死记硬背含义但你要能说清楚一个实际场景比如我们要看召回Top20里有没有正确答案用Recall20再看正确答案是不是排在前面用MRR或NDCG。生成评估忠实度Faithfulness、答案相关性Answer Relevance、上下文相关性Context Relevance。业界常用RAGAS框架它把评估拆成这几个维度通过合成数据和LLM-as-Judge来打分子。评测集构建不要只用十几条手工数据就开跑。基于业务日志挖掘真实用户问题再根据文档生成参考答案构造正反例。我记得自己搭过一个半自动评测流水线先通过LLM从文档中生成候选问答对再用规则人工抽检过滤最后形成包含500条问题的评测集每轮改动后全量回归。A/B测试与线上监控光离线评测不够线上要有反馈闭环。比如用户是否采纳答案、是否点击引用来源、是否存在“对不起我无法回答”等拒答信号都要埋点收集。如果面试官问你“怎么判断一个改动是正优化”你可以说离线指标提升是必要条件但不是充分条件还必须结合线上Bad Case比例、平均首响延迟、Token消耗成本一起看。2.4 幻觉抑制与上下文工程RAG的核心目标之一就是降低幻觉。面试官会问“RAG真的能完全消除幻觉吗”答案是“不能但可以大幅降低概率”。你要能列出几种方案在Prompt中强调“仅根据提供的上下文回答不要编造”并且要求不确定时明确说不知道。对检索结果做相关性阈值过滤如果Top1向量距离太大就直接拒答。加入忠实性后验校验生成答案后让LLM自己判定每个句子是否有文档支撑或者用NLI模型对“答案-上下文”做蕴含判断。允许答案附带引用编号比如“根据文档[1][3]……”这样即使出错也能溯源。其中一个比较有实战价值的思路就是“失败落点分析”把错误答案分几类——检索没召回、召回了但排得太后、模型没有利用检索片段、模型外推了片段之外的知识。每次分析一个Bad Case都要明确它属于哪一类然后再针对性地改切分、改重排或者改Prompt。这种思维方式能让你在面试时表现得很务实。3. 面试实战问答实录这一节我整理了几个我在面试中遇到的问题以及我认为有价值的回答思路。这些问题并不完全是标准答案关键是背后的思考路径。3.1 “如果用户问题包含专有名词缩写怎么办”这个问题的核心是查询预处理和改写。你不应该只说“用规则替换”而要展开成一个可落地的方案第一步维护一个业务实体词表和文档标题/关键词做匹配把“OCR”扩展成“光学字符识别”把“LLM”扩展成“大语言模型”。第二步如果扩展后检索效果仍不理想可以走一个小模型生成查询改写候选比如基于SLM微调或者直接让LLM根据对话历史改写当前问题补全缺失指代。第三步做多路召回把“原query”“改写query”“扩展query”分别检索然后合并结果再重排。这是一个典型的RAG query处理示例体现的是“我能识别问题并独立设计解决方案”的工程能力。3.2 “你的Embedding模型是怎么选的”这个问题听起来简单但答得好的不多。我一般这么说先明确约束条件数据是中文为主还是中英混合领域是通用还是垂类如医疗、法律向量存储和查询预算大概多少线上推理机器是CPU还是GPU中文通用场景我常用BGE系列如BGE-large-zh在中文语义相似度评测上表现稳定。需要兼顾英文和代码会考虑多语言模型如M3E或BGE-M3。如果不想自己维护模型服务走OpenAI embedding但要关注维度、限流和成本。选型之后我会做离线评测拿自己评测集里的问题分别用几个候选模型生成向量计算召回指标再看看维度对整个存储和延迟的影响。面试官对“参考公开榜单 自建评测集验证”这个组合非常认可。3.3 “向量数据库怎么选型”不要一上来就背组件特性而是先搞清楚自己的场景。如果业务规模是千万级向量以下、并发量不大直接选轻量的Qdrant或Chroma甚至用pgvector配合PostgreSQL省了运维成本。如果是亿级向量、高并发、高可用再上Milvus或专门的云向量数据库。HNSW是个高频考点。你至少要说清楚HNSW相当于一个多层导航小世界图检索可以近似log复杂度。参数M控制每个节点的最大邻居数越大召回越高但内存和构建时间也越大efConstruction控制建图质量efSearch控制查询时的候选集大小越大召回越高但延迟越大。索引类型选择上如果数据量不大更推荐暴力检索或者IVF反而简单稳定数据量大了再上HNSW。3.4 “RAG与长文本微调怎么选”很多面试官会故意制造二选一的局面。回答思路是“不选而是组合”。当文档库巨长比如几百页说明书直接把全文塞进上下文既费Token也可能超限但微调不可能覆盖所有动态更新的文档。所以RAG是默认首选。但RAG如果效果不理想可以考虑精简PDF并抽取关键信息只保留章节标题、表格、结论部分。对高频问题做Few-shot示例的Prompt缓存而不是全文塞入。针对特定场景做轻量微调如LoRA专门提升生成风格和指令遵循能力而不是记忆知识。这样按层把问题拆开面试官会觉得你有架构判断力。4. 高频手撕题与系统设计题复盘4.1 手写一个简易RAG调用链不少面试会让你现场写一段代码核心不是考察你用了什么库而是考察你的代码组织能力和边界处理。我现场一般会写这样一段示例def simple_rag(question, index, docs, llm_api): # 1. query向量化 q_vec embed([question]) # 2. 检索top-k hit_ids index.search(q_vec, k5) # 3. 拼上下文 context \n\n.join(docs[i].text for i in hit_ids[:3]) # 4. 生成 prompt f请根据以下上下文回答问题。\n上下文\n{context}\n问题{question}\n如果上下文没有相关内容请回答我没有在资料中找到答案。 return llm_api(prompt)然后补充问自己几个问题如果命中结果为空怎么处理如果同一份文档被重复切分怎么去重如果用户一次问多轮对话是否要拼接历史这些边界说清楚代码题正确率不高也没关系。4.2 如何设计一个高可用的线上RAG服务系统设计题不要直接画一个大框而是从需求出发拆解。我会按照“接入层 - 预处理管道 - 检索层 - 排序层 - 生成层 - 反馈层”分层讲。接入层处理QPS、限流、认证、异常兜底。预处理管道文档上传触发的异步解析与切分、Embedding批量计算用消息队列削峰。检索层多路召回向量BM25加缓存降低热点query开销缓存key可以包含归一化后的query和TopN结果。排序层Rerank放到独立GPU服务控制超时和并发。生成层LLM调用的并发、重试、熔断、流式返回、上下文长度控制。反馈层记录用户点击、点赞、复制等行为形成闭环迭代数据集。再提一句成本优化向量召回可以提前把索引加载到内存避免IOEmbedding模型部署可以用ONNX或TensorRT加速LLM调用如果按Token计费尽量用缓存和摘要压缩。衡量标准也别漏掉比如端到端P95延迟有没有控制在2秒内、检索命中率有没有95%以上、故障时能否降级为“普通LLM对话”模式。4.3 候选集与评测手把手讲清一个具体Case这道题我遇到的概率很高。面试官给一个具体场景假设你有一个法律问答机器人用户问“交通事故对方全责我该如何索赔”如何从头到尾设计方案并评估效果回答先确认数据源法规条款、判例文书、律所FAQ。解析时用结构化模板抽取“法条编号”“适用情形”“赔偿标准”。切分尽量避免把一条完整法条切断可以用语义切分和规则切分结合。再说检索问题“对方全责”提到“责任认定”可以用BM25匹配“交通事故责任认定书”再用向量召回“损害赔偿计算方式”“保险理赔流程”。多路合并后重排取Top3。生成时Prompt要求“逐条引用法条原文不得自行解释”。输出后校验引用是否存在并给“AI生成仅供参考”的免责声明。评估方面先构建100条真实用户问题请法律专家标注参考答案和引用依据。离线看Recall5和忠实度线上监测答案收藏率和投诉率。这样做下来整个方案的完整度会很高面试官很难不认可。5. 经验教训与避坑指南5.1 简历与项目包装的真实陷阱很多面试挂在简历阶段因为你写的项目很可能被面试官识破是“抄的Demo”。比如简历上写“利用LangChain搭建客服机器人”但连LangChain的Agent工具调用机制都说不清这比不写还危险。写项目请参考这个思路每个项目必须有“业务背景 技术选型 我的核心贡献 效果量化”。我曾经把自己一个改造切分策略的项目写成业务背景知识库中包含大量Markdown表格固定窗口切分后表格被截断问答时上下文缺列效果差。技术选型采用“Markdown结构感知切分 2048字符窗口 128字符重叠”的混合方案对表格按行和列分块并保留表头元信息。核心贡献独立完成切分逻辑重构、离线评测集建设对比固定切分表格问答的准确率由62%提升到83%。效果量化用户对答案引用点击率提升21%人工干预率降低15%。这样写出来的项目面试官第一印象就是“这人是真的在解决问题而不是在跑流程”。5.2 面试中常见的“致命回答”“这个功能我直接调API实现的。”——等于告诉面试官你没思考过内部逻辑。哪怕你真的只是调API也要补充一句“我知道这个API的原理是……”。“我试了很多方法反正最后跑通了。”——等于没有分析和对比。要说出尝试了哪些方法基于什么标准选择了最终方案。“向量效果不好我就加数据。”——没有诊断过程纯靠堆数据。“Prompt调了十条终于满意了。”——没有提到如何评估、如何泛化。建议面试前做一两次模拟面试让别人专门攻击你的盲区。你会发现很多自己以为很熟的东西被追问到第二层就卡住了这就是面试准备的隐藏价值。5.3 简历外“软实力”的准备除了技术本身还要准备几个软性问题凭什么认为这个岗位适合你你想做RAG还是微调能不能接受脏活累活比如数据标注、Bad Case分析这些问题没有标准答案但面试官在判断你的长期稳定性和自驱力。你可以准备一个真实例子说明你为了解决某个线上问题“推动过跨团队协作”或“主动补充了缺失的评测数据”。具体、可信、不夸张就够了。5.4 关于“背题”的正确打开方式我不是让你别背题而是让你别傻背。把高频题整理成“问题 - 思路 - 关键词 - 例子”四栏表然后用口语复述一遍每道题控制在3分钟内。复述时要有画面感就像在给同事讲方案而不是在背书。我自己的做法是把每道高频题写成一张卡片正面写问题背面画几个关键词和一张草图然后随机抽卡片直接开讲。等到面试时你已经形成了条件反射式的叙事结构紧张感会小很多。6. 面试后的复盘与offer选择建议6.1 如何做好面试复盘面试结束后趁记忆还热立刻记录下来面试官问了哪些问题哪个问题没答好哪个问题回答后面试官追问了说明你的回答有信息增量。哪道题是你完全没准备到方向的面试官的整体状态是详细追问还是频繁打断频繁打断可能你跑题了详细追问说明你对某个点有勾住他的地方。定期把复盘笔记整理成一份“面试错题本”下次之前把错题过一遍。很多问题其实都是换着场景重复出现积累多了你自然就有答案库了。6.2 谈offer与岗位判断的实操心得我见过太多只问薪资、不关心业务方向的人入职三个月就后悔。真正合适的判断维度有三层第一层业务判断。公司/团队的RAG场景是不是核心业务有没有真实流量和数据如果只是做一个内部Demo你很难获得成长。第二层技术栈判断。团队有没有做底层优化还是纯粹套壳调API这对你未来一年能积累什么非常关键。如果团队连Embedding模型都不打算自研你的角色可能就是一个API编排者长期来看竞争力受限。第三层成长空间判断。有没有负责独立模块的机会面试你的Leader本身对RAG的理解深不深能不能在方向上给你有效的指导薪资方面不要只盯总包还要参考工作时长、成长速度、跳槽溢价能力。大厂稳定性强但可能螺丝钉小厂灵活但可能什么都要你干没有绝对好坏。结合我个人经验我想分享一个很多人容易忽略的细节面试中展示自己“会提问”很重要。当面试官介绍完团队业务后你可以追问“你们目前RAG的召回率大概多少”“你们怎么处理多轮对话中的指代消解”“有没有把评测自动化”这些问题表明你在思考实际落地中的难点而不是简单的候选人。最后再聊点实在的大模型和RAG方向的面试变化很快今天热门的工具和方法可能过半年就被新的取代。所以你有两件事要长期坚持第一不要停止写代码保持至少一个活跃的个人项目第二不要停止记录把你对某个技术点的理解写成文章或笔记这不仅帮你理清思路也让你在面试时表达更自然。我自己每次面试前都会做一次“一天速成冲刺”把简历里的项目重新讲一遍把RAG流程画一遍把高频手撕题默写一遍。这三件事做完面试时心里就踏实很多。技术岗面试本质上是一场信任建立面试官要相信你能在一个模糊的问题中找出路径并且真的能落地。多拿offer的人往往不是知识量最大的而是表达最准确的。希望这份面经能帮你把碎片化的努力串成一个体系然后在自己心仪的岗位面前从容发挥。