
花了大几十万训练出来的模型最后卡在部署环节跑不动背了一堆八股文面试官一问到你的RAG为什么这么慢就卡壳。我这两年面试了上百个做LLM的候选人发现一个问题很多人能聊ChatGPT、能调API但一落到基础原理和工程细节上就露馅了。这篇东西不是让你背答案而是把LLM面试里出现频率最高、也最能筛人的8个问题拆开揉碎讲清楚每个问题背后面试官到底在考什么以及你该怎么答才不算踩坑。不管你是准备转岗做AI应用开发还是刚入门想系统补一遍大模型基础这份拆解都值得你花二十分钟看完。1. LLM面试到底在考什么一张能力地图先说个现象。我面过不少人简历上写着精通大模型微调熟悉RAG流程结果问到大模型为什么会有幻觉回答是因为数据不够干净。这个答案不能算错但顶多算表层理解。面试官问某个问题通常不只是要一个标准答案而是在快速判断你脑子里有没有一个完整的知识结构。LLM相关岗位面试不管你是面算法工程师、应用工程师还是部署运维核心考察点其实就三层第一层是底层原理。你能不能讲清楚Transformer为什么取代了RNN注意力机制到底在算什么Tokenization对中文场景有什么特殊坑。这一层筛掉的是只会调包的人。第二层是工程落地。模型训练完怎么部署量化选什么方案推理延迟怎么压RAG管道怎么设计数据标注怎么做质量管控。这一层筛掉的是只会跑demo的人。第三层是系统设计。当场景从跑通一个demo变成支撑100万用户并发当模型从回答问题变成自主调用工具完成任务你的架构设计、容错控制、评测体系是否还成立。这一层筛掉的是没有全局观的人。这8个问题我按这个逻辑线给你串起来你会发现它们不是孤立的背诵题而是一条完整的知识链路。面试官问完这8个题基本就能勾勒出你在这个领域的真实水平。另一个很多考生没意识到的事情面试官自己也可能没有标准答案。我问微调还是RAG不是等你给我一个看情况的万金油回答而是想听你的决策框架。所以下面每道题我都会给你一个分析框架 参考答案 实战经验的组合让你答得既有深度又不死板。2. 八个必问问题逐题拆解从原理到落地的完整答案2.1 Transformer为什么取代了RNN注意力机制解决了什么问题这是我面的所有候选人里几乎必问的一道题。表面考的是基础实际考的是你有没有真正理解深度学习范式的转变。先说标准答案RNN按时间步顺序处理序列当前时刻的隐状态依赖上一时刻的输出这个串行结构导致两个致命问题。一是长距离依赖难建模信息传到后面衰减严重梯度也容易爆炸或消失本质上是在处理记住今天早上说了什么到下午决策要用这类问题时的物理极限。二是无法并行训练GPU利用率上不去训练效率被锁死。Transformer的两个核心设计直接解决了这两个问题。自注意力机制Self-Attention让序列中任意两个位置的token直接建立关联路径长度为1。你可以把它理解成一个会议室里所有人同时举手发言每个人都能直接听到其他人说话而不是只能挨个传纸条。这解决了长距离依赖同时注意力权重本身提供了可解释性——你可以看到模型决定it指代什么时到底在关注哪些词。位置编码 并行计算解决了串行问题。因为注意力计算不依赖先后顺序整个序列可以同时进入网络。QKV矩阵运算全部是矩阵乘法在GPU上天然友好。至于顺序信息通过位置编码注入让模型知道第一个词和第二个词的先后关系。面试官在这个问题上会继续追问的一个经典变体是为什么用多头注意力如果你只回答多个头捕捉不同子空间的信息那就是教科书答案不算错但可以更深一层。实际原因是单头注意力容易被某个强相关关系主导多头拆成多个子空间并行算每个头倾向于关注不同类型的依赖关系——比如一个头关注语法依赖一个头关注指代关系一个头关注位置邻近关系。这也解释了为什么注意力头数通常是8、12、16这些数太少表达力不够太多计算开销涨得厉害。避坑指南别在这道题上说注意力机制让模型可以关注重要信息。这句话太泛了等于没说。你要强调的是直接建立任意距离的依赖 并行化这两个才是Transformer革命性的地方。2.2 Tokenization的原理是什么为什么说中文Tokenization是个坑这题每年能刷掉不少候选人。很多人把模型当黑盒完全没想过文本进模型之前经历了什么。Tokenization分词是把原始文本切成模型能处理的最小单元。英文场景下一个单词甚至一个子词就是一个token比如unbelievable可能被切成unbelievable。中文场景就麻烦了——中文没有天然空格分词所以主流做法是BPEByte Pair Encoding从字节级别开始不断合并高频共现片段。中文的坑在于token效率。同样的语义内容中文的token消耗通常是英文的1.5到2倍。为什么因为中文字符信息密度高Tokenizer词表里如果收录的常用中文词不够多一句话会被切成大量单字token数直接暴涨。这就意味着两件事输入成本更高按token计费、上下文窗口的实际承载能力打折。比如标称8K上下文英文能装8000个token的信息中文可能只能装一半不到。我实际测试过一个具体案例用某主流模型英文There was a cat sitting on the windowsill约11个token同样意思的窗台上坐着一只猫约9个token。表面上差不多但换成更长更复杂的表述中英文token比会迅速拉开。另一个坑是词表覆盖。预训练语料里中文占比低的模型对中文的切分质量明显差常见词可能被切成莫名其妙的碎片这不仅影响token数量还会影响模型语义理解——因为切碎了之后语义单元被破坏了。实操建议做中文NLU任务时先用高性能的tokenizer比如基于大规模中文语料训练的做预切分再喂给模型或者在微调阶段针对你的领域术语做分词优化。我做过一个医疗项目阿兹夫定这个词初始Tokenizer会切成3-4个token后来我们在分词阶段做了专项处理效果提升比调prompt明显得多。2.3 上下文窗口Context Window的本质是什么为什么超长上下文会迷失上下文窗口是每个调API的人都懂、但理解深度差异巨大的一个概念。面试官问这个是在考你对模型能力边界的理解。上下文窗口的标称值和实际可用值是两个概念。标称8K、32K、128K甚至1M指的是模型能接受的最大token输入。但学术界和工业界早就发现一个问题——Lost in the Middle。斯坦福那篇经典论文的结论是当输入序列变长时模型对中间位置信息的召回能力最差首尾两端的利用率最高。也就是说长文档场景下你把关键信息放在文档中间模型大概率看不见。为什么会出现这种现象这与注意力分布有关。模型在长文本里会倾向于依赖近期内容尾部和开头的全局线索中间区域的信息容易在注意力权重计算中被稀释。应对方案也很成熟核心是结构优化长文档先做分块和摘要不是无脑全塞进去。我在做合同审查项目时一份30页的合同拆成按条款分块每块单独做检索再拼装prompt效果比直接全文塞进去好很多。关键信息前置或后置。写prompt时把最重要的指令放开头、把需要模型重点回看的内容放结尾。用RAG做外部知识路由而不是依赖单次超长上下文硬扛。另外一个容易答偏的点有人会说上下文越长越占显存所以速度会变慢。这只是现象不是原理。原理是KV Cache的存在——推理时每个token的Key和Value矩阵都要缓存下来上下文越长缓存越大显存占用越高同时计算量线性增长。这也是为什么128K上下文在实际部署中很难跑满的原因不是模型不支持是你的GPU扛不住。2.4 微调Fine-tuning和RAG该怎么选什么场景选哪个这道题是应用方向的必考题也是最能看一个人有没有工程经验的分水岭问题。很多新手给的答案都是知识类用RAG风格类用微调这个结论没错但面试官如果只听到这层心里的评价是及格但普通。我更建议你答出决策框架。下面这个四象限可以帮你组织答案维度倾向RAG倾向微调知识时效性知识频繁更新新闻、政策、价格知识相对稳定知识组织方式分散、量大、结构化文档结构化方法清晰、可归纳正确性要求需要可追溯引用来源允许模型内化知识交互方式需要结合用户上下文动态检索固定风格/固定输出格式核心逻辑是RAG是让模型知道去哪里找答案微调是让模型变成某种答题风格的人。前者不改变模型的参数后者改变模型的参数。实操经验上我见过不少微调翻车的例子。有个电商客服的项目团队想通过微调让模型学会礼貌语气结果微调之后模型开始乱编产品参数因为训练数据里的产品信息互相冲突模型学成了混淆模式。正确做法是语气规范用prompt或微调产品信息查询走RAG两边解耦。微调也不是越大的模型越好——实际做项目时7B级别模型微调好一个特定任务比如JSON抽取的效果往往比直接调用大模型API更稳定而且延迟和成本低一个量级。另一个深度点微调的数据厚度直接决定效果。如果你的微调数据少于1000条趁早别微调大概率只会把模型学坏。我自己的经验边界是在1万条以上才开始考虑微调否则先优化prompt或引入few-shot。2.5 大模型的幻觉问题根本原因是什么有什么缓解手段幻觉Hallucination问题面试官爱问因为这是大模型落地最大的拦路虎而且没有一招制敌的方案最能看出一个人对问题复杂度的理解。标准答案要分几个层次第一层生成机制层面。大模型本质上是一个下一个token预测器它的目标函数是输出概率最高、语义最连贯的下一个词而不是事实正确。所以当模型遇到不确定的知识点时它还是会顺着语义惯性编一段看起来合理的文字。这个原理层面的理解很重要很多非科班候选人答不到。第二层训练数据层面。预训练语料里本身就有错误信息、过时信息和相互矛盾的信息模型把这些噪音学进去了。数据时效性问题也属于这一类——模型的知识截止日期是固定的说出2025年的新规本质上也是幻觉的一种。第三层解码策略层面。temperature高的时候模型输出随机性变强幻觉概率也随之上升。这不是bug是采样策略的副作用。缓解手段我总结为三层防线第一层在推理前RAG注入可信上下文用检索结果约束模型输出。尽量给模型不能编造的依据如果检索不到结果明确要求模型说知识库中没有相关信息。第二层在推理中约束解码。如果是结构化输出用JSON Schema约束如果是开放式问答设置更高的置信阈值。7B这种小模型尤其推荐vLLM的guided decoding实测能把格式错误降到几乎为零。第三层在推理后事实核查。接一个验证模块对模型输出做命名实体识别、关键断言抽取和知识库做语义比对。面试加分项如果你能主动提到幻觉是校准不足的表现不是简单的bug修复问题面试官对你的评价会有质的提升。2.6 LLM的数据标注怎么做才靠谱标注质量如何把控这个题目和热词里llm怎么数据标注对得上说明行业里确实很多人都卡在这一环。很多面试者说到数据处理就说标了10万条数据但你细问标注标准是什么、一致性怎么算、质量差的数据如何回流就答不上来了。先强调一个认知大模型的数据标注不是传统意义的标注。传统的分类标注是给一条数据打一个标签LLM时代的标注是为模型生成行为示范——具体来说是为监督微调SFT构造指令-回复对。这意味着标注工作对标注员的要求极高不是点点鼠标的活。我做SFT数据的时候最推荐的流程是这样的构造种子数据集由业务专家或建模团队手工编写200-300条高质量样本覆盖核心场景和各种边界case。建立标注规范把种子样本作为黄金标准标注员照着它们的风格和格式扩展。双人标注 仲裁每条数据至少两个人独立标注计算一致性Cohens Kappa低于阈值的进入仲裁环节。自动化质检用规则检查格式JSON合法性、字段完整性、长度、标签分布把明显不合格的批次打回去。半自动扩充让大模型生成候选答案人工筛选修改。这一步能大幅提效但绝对不能全自动模型生成的样本模式单一全盘接受会让微调后的模型也变得模式化。一个容易被忽略的细节数据分布控制。你要监控标注数据的类别分布、长度分布、难度分布。如果某类问题占了90%模型会被带偏。我在一个工业质检项目上做过统计初始标注数据里设备故障类问题占了75%微调完的模型只要遇到模糊描述就自动往故障方向扯。后面重新平衡了数据分布才纠正过来。质量控制方面有个实操心得每标注500条拿当前模型做一个中间评测。对比模型在未标注数据上的表现变化及早发现数据质量问题。不要等全部数据标完再后悔返工成本太高了。2.7 模型部署怎么选型GGUF量化是什么vLLM和传统框架差在哪部署相关的问题面试官问起来多半是看你有多少真实落地经验。热词里安卓本地运行gguf格式llm说明本地部署也是大热方向这里我系统地讲一遍。先说部署方案的选型逻辑可以按一个简单的矩阵看高吞吐在线服务API网关场景选vLLM或TensorRT-LLMPagedAttention优化显存利用率Continuous Batching提升吞吐。低延迟边缘场景手机、嵌入式选GGUF格式 llama.cpp追求的是在有限算力里塞下更大的模型。内部工具、企业私有化单机部署可以用Ollama或LocalAI运维省心。批量离线推理直接用HuggingFace Transformers 多卡并行也行吞吐不是瓶颈。再解释概念GGUF是什么。GGUF是llama.cpp团队设计的模型量化格式它的核心价值在于封装了模型权重分词器超参数元数据成单文件目的是让大模型在消费级硬件上跑起来。GGUF支持的量化方式包括Q4_K_M、Q5_K_M、Q8_0等原理是把32位浮点权重映射到4位或5位整数以牺牲少量精度换取内存占用大幅下降。举个例子Llama 3 8B原始FP16权重约16GBQ4量化后约4.8GB一台16GB内存的MacBook就能流畅跑。代价是困惑度perplexity略微升高但对话场景几乎感知不到。选量化档位时我习惯参考这张表量化档位内存占用质量损失适用场景Q8_08.5GB极低内存充足追求质量Q6_K6.6GB低均衡首选Q5_K_M5.4GB中低日常对话推荐Q4_K_M4.8GB中内存受限的首选Q3_K3.8GB偏高极端内存场景vLLM和Transformers推理的差距这个也要能说清楚。核心是vLLM做了两个重要优化PagedAttention解决KV Cache碎片化问题——类似操作系统的虚拟内存管理把KV Cache分成固定大小的块按需分配显存利用率提升Continuous Batching实现动态批处理——不像传统批处理要等整个batch结束而是请求完成一个就插入一个新请求吞吐提升数倍。实测数据8×A100跑Llama 3 70BvLLM吞吐能达到Transformers的4-8倍。如果面试的是安卓/移动端方向GGUF的实践一定要提用llama.cpp编译Android版本加载GGUF模型使用Metal/OpenCL做GPU加速。现在中端手机跑7B量化模型基本能做到2-4 token/s虽然不快但离线可用已经是质变。2.8 LLM智能体和Agent是怎么一回事工具调用Function Calling如何实现这个题基本是2025年面试的高频压轴问法。热词里识的llm智能体自主容错控制:构建可靠ai系统的工程实践说的就是这块进阶能力。面试官问到这个通常不是考你是不是听说过Agent的概念而是看你有没有做过完整的Agent系统。先说清楚底层逻辑Agent的本质不是一个会用工具的模型而是一个循环——大模型根据用户指令感知当前状态推理出下一步行动调用工具、查询知识、生成回复观察工具返回结果再推理下一步直到任务完成。这个循环也叫ReAct模式Reasoning Acting。Function Calling工具调用是Agent的基础能力。它的实现机制是这样的系统定义一组工具每个工具包含名称、描述、参数JSON Schema。用户提问时把工具定义和用户问题一起拼进prompt发给模型。模型判断是否需要调用工具如果需要输出一个结构化的调用意图函数名 参数。程序解析这个意图执行对应API把结果作为新的消息喂回模型。模型基于工具结果生成最终答案。关键在第三步模型如何输出调用意图主流的做法有两种一种是约束解码在解码阶段强制模型输出合法的JSON保证格式不会烂另一种是微调专用函数调用能力像Qwen系列专门做function calling微调使模型遵守调用格式更稳定。商用模型APIOpenAI、Claude、通义都直接支持function calling接口本质也类似——只是系统内部把工具列表注入到了请求上下文里。Agent架构的系统设计才是面试拉分点。一个可靠的Agent系统至少要解决这几个问题任务拆解复杂任务怎么拆成多个子任务主流有Plan-and-Solve先规划后执行、ReAct边做边想、Tree of Thoughts多路径探索等模式。状态管理多步骤任务中中间状态怎么保存要有Session级别的上下文管理跨轮次保持Agent状态。容错控制工具调用失败怎么办API超时怎么办模型输出烂JSON怎么办这些问题都要有明确的兜底逻辑。热词提到的自主容错控制就是这么回事。我在做一个智能订票Agent时模型连续两次调API失败如果没做重试和降级策略整个会话就崩了。安全边界Agent可以执行哪些操作不能执行哪些删除文件、转账这类高危操作必须加人工审批环节。实操上的经验教训是Agent不是串得越多越好链路越长失败概率越高。能3步解决的任务不要设计成8步能用一次Function Calling一次回复解决就不要设计成多轮循环。3. 从背题到会答一份可复用的面试准备方法论上面这8个题如果只记住答案那你面试的时候大概率表现还是会差一口气。真正有效的准备方式我总结成一套可执行的流程你自己照着练一到两周效果比死背强得多。第一步建一个自己的原理-案例配对库。每个问题下面除了参考答案再配一个你亲手做过的案例。比如讲RAG幻觉缓解配上你做客服知识库时的具体数据用什么检索器、阈值设多少、最后准确率提升多少。面试官听到这种能验证的细节信任度完全不同。千万不要编案例做过就是做过没做过可以提前动手做一个小demo两三天时间足够。第二步做一次面向输出的学习。找一个朋友或者直接用语音备忘录把上面8个问题每个用口语讲一遍每次控制在5-10分钟。敲黑板重点是这个讲的动作不是默念。你讲的过程中会发现自己哪里卡壳、哪里只能说出术语却解释不清这些卡壳点就是你的复习重点。这是一个快速暴露认知漏洞的方法比刷二十篇面经都管用。第三步准备一个提问清单。面试最后一般会给你提问时间问得好是有加分的。我建议准备3个层次的问题针对业务咱们团队现在LLM落地的最大瓶颈是算力还是数据针对技术如果候选人有1万条领域数据您更倾向先做RAG增强还是微调针对团队一个Agent任务从提出到上线我们团队内部要过哪几个评审节点这些问题能帮你在面试尾声拿下这个人有思考深度的印象分。还有一个很少人提但很管用的习惯复盘每次面试的未答题。面试官问到一个你没答上来的问题别紧张当场记下来面完立刻查资料补上。我见过太多人面试完了就撒欢结果面十次还是在同样的坑里摔。一次面试能暴露3个知识盲区十次面试就是30个盲区被补齐这种成长速度比闷头看书快得多。4. 面试现场最容易踩的坑避雷清单到最后一个环节我把我做面试官这几年看到的反面教材整理一下。这些坑不是知识层面的是表达和行为层面的踩一个就够让面试官对你的评价降一档。第一个坑答非所问。面试官问为什么Transformer能并行你从注意力机制开始讲到位置编码讲到参数量绕了十分钟没落到并行计算上。第二个坑术语轰炸。把Perplexity、LoRA、KV Cache、思维链这些词一个个往外抛仿佛在背词典但从不解释这些技术为什么存在、解决了什么问题。面试官能感觉到你是在囫囵吞枣。第三个坑只有结论没有推理。问微调需要多少数据你说至少一万条但说不出这个数字是怎么推演出来的、受什么因素影响。正确的思路是效果取决于任务复杂度和基座模型能力先从500条做起来用评测指标来反馈是否数据不够。第四个坑听不得质疑。面试官反问一句你这个方案在另外的场景会不会有问题候选人立刻开始辩护连一秒钟的思考都没有。资深候选人会先说这是个好问题然后诚实地分析自己方案的边界条件。第五个坑手滑式撒谎。有些候选人在简历上写了大规模部署经验结果连A100单卡能跑多少并发都答不上来。面试官最反感这个。你不如老实说我是在单卡上做的性能调优分布式部署正在学习然后立刻展示你已经掌握的知识深度。诚实学习能力永远比伪装露馅的评价高。面试的本质不是答对多少题而是让面试官对你建立信心相信你有能力解决他们业务里真实遇到的问题。这8个题是一个框架一份地图也是一种提示——你真正需要准备的不是答案而是应对任何未知问题的思考方式。我个人的体会是面试准备最忌讳的就是背标准答案。去年有个候选人每个问题答得都很流畅但一旦被追问到没准备过的变体就明显慌了。后来我问他怎么准备的他说把市面上面经全背了。我给他的建议很简单找两个真实场景亲手把从数据处理到部署上线的完整流程跑一遍比背任何面经都有用。大模型这个领域动手做过和只看过聊三分钟就能分辨出来。