LLM面试8大核心问题:从Tokenization到推理优化的实战解析 1. 为什么这8个问题能决定面试生死面过几十个LLM岗位候选人之后我越来越确信一件事面试官问的那些问题表面上在考知识点实际上在筛人。筛什么筛你有没有真正动手跑过模型、调过参数、踩过坑。背八股文的人能说出Transformer由Encoder和Decoder组成但一问你实际部署时KV Cache怎么处理的就露馅了。这篇内容适合三类人看正在准备LLM岗位面试的工程师、想转行进入大模型领域的开发者、以及需要面试别人的技术负责人。我会把LLM面试中最常被问到的8个核心问题逐一拆解不光给答案更要讲清楚面试官问这个问题时到底想听到什么以及你应该怎么组织回答才能体现真正的实战经验。先说说这8个问题的分布逻辑。它们基本覆盖了LLM从输入到输出的完整链路Tokenization处理原始文本、Embedding把token变成向量、Transformer架构完成核心计算、注意力机制决定信息流动、Function Calling让模型与外部世界交互、微调和推理优化则考察工程落地能力。面试官通过这条链路能快速判断你是只看过论文还是真正跑过模型。面试官的心理我问的每一个问题都在判断你是在复述别人的结论还是在分享自己的经验。我见过太多候选人简历上写着熟悉Transformer结果连Multi-Head Attention里为什么要除以根号d_k都说不清楚。也见过工作三年的工程师被问到你们线上推理的batch size怎么定的时支支吾吾。这些问题不难但需要你真的想过、做过。接下来的内容我会按照面试中问题出现的自然顺序来组织每个问题都给出面试官的真实意图、回答的核心框架、容易踩的坑、以及加分项。你可以把它当作一份面试准备清单也可以当作一次知识体系的自我检查。2. Tokenization被低估的第一道分水岭2.1 面试官到底在问什么你能说说Tokenization是怎么回事吗这个问题看起来像是热身实际上淘汰率不低。面试官想听到的不是把文本切成token这种废话而是你对分词粒度、词表设计、多语言处理、以及分词对下游任务影响的理解。我面过一个候选人他说Tokenization就是把句子切成词。我追问那中文怎么切代码怎么切他愣了几秒说用jieba吧。这个回答直接暴露了他没有真正处理过LLM的输入数据。现代LLM用的都是子词分词Subword Tokenization主流方案有BPE、WordPiece、Unigram Language Model这几种每种都有自己的适用场景和取舍。2.2 BPE、WordPiece和SentencePiece的实际差异BPEByte Pair Encoding的核心思路是从字符级别开始不断合并出现频率最高的相邻字符对直到达到预设的词表大小。GPT系列用的就是这种方案。它的优势在于能平衡词表大小和序列长度但缺点是分词结果依赖于训练语料的分布。WordPiece是BERT用的方案和BPE类似但它合并的标准不是频率最高而是能最大化训练语料的似然概率。实际效果上WordPiece倾向于产生更合理的子词切分。SentencePiece则是把空格也当作普通字符处理不依赖预分词对中文、日文这类没有天然空格分隔的语言特别友好。LLaMA系列、T5都用的这个方案。方案代表模型核心思路适用场景BPEGPT系列频率最高的字符对合并英文为主通用场景WordPieceBERT最大化似然概率理解类任务SentencePieceLLaMA、T5无预分词空格视为字符多语言、中日韩面试时如果你能说出我们当时对比过BPE和SentencePiece在中文语料上的压缩率最终选了SentencePiece因为它的词表利用率更高这比背定义强一百倍。2.3 词表大小怎么定一个容易被追问的细节面试官经常会追问词表大小设多少合适这个问题没有标准答案但你有思路就行。词表太小序列会变得很长推理成本飙升词表太大Embedding矩阵参数量暴涨低频token训练不充分。常见的词表大小在32K到128K之间。LLaMA 2用的是32KGPT-4据传用了100K左右。实际选择时需要考虑目标语言的字符集大小、训练语料的规模、以及推理时的显存预算。我自己的经验是如果主要做中文任务50K左右的词表是个比较稳妥的起点。还有一个坑特殊token的设计。[PAD]、[UNK]、[CLS]、[SEP]这些在BERT时代很重要但在生成式LLM里更重要的是|im_start|、|im_end|这类对话控制token。如果你在面试中提到我们自定义了对话模板的special token来区分角色面试官会觉得你真的做过对话系统。3. Embedding从离散符号到连续空间的桥梁3.1 不只是把词变成向量Embedding这个词在面试中出现频率极高但很多人对它的理解停留在词向量层面。面试官问Embedding的时候可能是在问三个不同层面的东西词嵌入层模型内部的Embedding矩阵、句向量模型如BGE、M3E这类用于检索的模型、以及位置编码Position Embedding。你得先判断面试官问的是哪个。如果是架构层面的讨论他大概率在问词嵌入层和位置编码如果是在RAG检索增强生成的上下文里他问的是句向量模型。3.2 词嵌入层的参数量与初始化词嵌入层本质上就是一个[vocab_size, hidden_dim]的矩阵。以LLaMA 2 7B为例词表32K隐藏维度4096这个矩阵就有1.3亿参数占了总参数的近2%。这也是为什么词表大小不能随便设太大的原因之一。初始化方面早期用Word2Vec预训练好的向量来初始化现在主流做法是随机初始化然后端到端训练。但有一个细节Embedding层和输出层是否共享权重。GPT-2就采用了权重共享Weight Tying这样可以减少参数量同时让输入和输出的语义空间保持一致。面试时提到这一点能体现你对模型结构的深入理解。3.3 句向量模型选型排行榜之外的考量如果面试官问的是RAG场景下的Embedding模型选型那你要准备好回答为什么选这个模型、维度是多少、检索效果怎么评估的。现在市面上主流的句向量模型有BGE系列、M3E、GTE、以及OpenAI的text-embedding-3系列。选型时不能只看排行榜还要考虑维度768维和1024维的模型检索精度和存储成本差异明显。1024维的索引文件大小差不多是768维的1.3倍。最大输入长度很多模型只支持512个token处理长文档时需要切块。BGE-M3支持8192适合长文本场景。语言支持中文任务上BGE和M3E的表现通常比多语言模型更好。推理速度如果用GPU做在线检索模型大小直接影响QPS。我自己的做法是先用排行榜筛出3-5个候选然后在自己的业务数据上跑一遍检索评测看Recall10和MRR指标。排行榜上的分数和你的实际场景可能差很远。一个真实的坑我们曾经用某个英文排行榜很高的模型做中文检索结果发现它对中文成语和缩写的理解很差后来换成BGE-large-zh才解决问题。4. Transformer架构面试官真正想听的细节4.1 从八股文到你实际调过什么介绍一下Transformer架构——这是LLM面试中出现频率最高的问题没有之一。但面试官想听的绝对不是Transformer由Encoder和Decoder组成Encoder有N层每层有Multi-Head Attention和前馈网络这种维基百科式的回答。他想听的是你在实际使用中遇到过什么问题怎么解决的。比如为什么现在的LLM大多只用Decoder因为生成式任务不需要完整的EncoderDecoder-only架构更简洁训练效率更高。Pre-LN和Post-LN有什么区别Pre-LN把LayerNorm放在注意力之前训练更稳定不需要warmup也能收敛这是现在的主流做法。位置编码从正弦函数到RoPE再到ALiBi各自解决了什么问题如果你能说出我们在训练7B模型时发现Post-LN在深层网络里梯度消失严重换成Pre-LN之后训练稳定了很多这比背十遍架构图都管用。4.2 注意力机制的参数量计算面试官经常会让候选人现场算一下注意力的参数量。以标准Multi-Head Attention为例假设隐藏维度d_model4096头数h32那么每个头的维度d_k128。Q、K、V、O四个投影矩阵的参数量是Q投影4096 × 4096 16.7MK投影4096 × 4096 16.7MV投影4096 × 4096 16.7MO投影4096 × 4096 16.7M总共约67M参数。前馈网络FFN通常是两层中间维度是4倍d_model参数量是2 × 4096 × 16384 134M。所以每个Transformer层的参数量大约是200M32层就是6.4B加上Embedding和其他部分差不多就是7B模型。这个计算过程面试时能流畅说出来面试官会知道你不仅懂原理还有工程直觉。4.3 KV Cache推理优化的必考题你们线上推理怎么优化的这个问题几乎必问。KV Cache是标准答案但你要能说清楚它的原理和代价。自回归生成时每生成一个token都需要重新计算所有历史token的Key和Value。KV Cache的思路是把之前算过的K和V缓存下来新token只需要计算自己的Q然后和缓存的K、V做注意力。这样把每步的计算复杂度从O(n²)降到了O(n)。但KV Cache的代价是显存。以LLaMA 2 7B为例32层32个头每个头128维序列长度2048batch size为1时KV Cache的大小是2 × 32 × 32 × 128 × 2048 × 2字节FP16≈ 1GB。如果batch size是16序列长度4096那就是32GB直接爆显存。所以实际部署时会用MQAMulti-Query Attention或GQAGrouped-Query Attention来减少KV Cache。MQA让所有头共享一组K、VGQA则是分组共享。LLaMA 2 70B用的就是GQA把KV Cache减少了8倍。面试时如果你能说出我们用了GQA把KV Cache从XXGB降到了XXGB支持的并发数提升了X倍这就是实打实的工程经验。5. Function Calling与Agent从会聊天到能干活5.1 Function Calling的本质是什么Function Calling这个词听起来很高级本质上就是让LLM输出结构化的JSON告诉程序该调用哪个函数、传什么参数。面试官问这个问题是想看你有没有做过LLM与外部系统集成的项目。实现方式有两种Prompt驱动和模型原生支持。Prompt驱动就是在系统提示里写清楚可用函数的描述让模型自己生成调用格式原生支持则是模型在训练时就学会了输出特定的函数调用格式比如OpenAI的tools参数、Anthropic的tool_use。面试时你要能说清楚函数描述怎么写模型才容易理解、参数校验怎么做、调用失败怎么重试、多轮调用怎么管理上下文。这些都是实际落地时绕不开的问题。5.2 Agent的容错设计面试官最看重的工程能力现在稍微高级一点的LLM岗位都会问Agent相关的问题。Agent的核心是自主决策给定一个目标模型自己规划步骤、调用工具、观察结果、调整策略。但面试官真正关心的是你怎么保证Agent不出错。我面过一个候选人他说我们用ReAct框架做了个Agent能自动查天气、订机票。我问他如果模型调用了一个不存在的函数怎么办如果函数返回了错误信息模型会怎么处理如果模型陷入循环调用同一个函数呢他答不上来。这些才是Agent落地的核心难点。实际工程中需要做函数白名单只允许调用注册过的函数防止模型幻觉出不存在的工具。参数校验对模型生成的参数做类型检查和范围校验不合法就返回错误让模型重试。最大调用轮数设置硬性上限防止无限循环。超时和降级单个工具调用超时后要有降级策略不能卡死整个流程。结果截断工具返回的内容可能很长需要截断后再喂给模型防止上下文溢出。一个实用的经验在系统提示里明确告诉模型如果连续两次调用同一个函数且参数相同请停止并输出当前结论能有效减少循环调用。5.3 多Agent协作的坑如果面试官问到多Agent系统你要小心了。这是当前比较前沿的方向但坑也很多。多个Agent之间怎么通信、怎么避免信息丢失、怎么处理冲突、怎么控制成本每一个都是难题。我的建议是如果你没有实际做过多Agent项目就诚实地说我主要做单Agent的工具调用多Agent还在调研阶段。面试官更看重你的诚实和学习能力而不是硬编一个不存在的项目经验。6. 微调与对齐从能用到好用的关键一步6.1 全量微调、LoRA、QLoRA怎么选你们模型微调用什么方法这个问题几乎每个LLM岗位都会问。答案取决于你的资源预算和任务需求。全量微调效果最好但需要大量显存。7B模型全量微调至少需要4张A100 80G普通团队根本玩不起。LoRALow-Rank Adaptation冻结原模型参数只训练低秩矩阵显存需求降到1/3左右效果能到全量微调的90%以上。QLoRA在LoRA基础上把原模型量化到4-bit单张24G显存就能微调7B模型适合个人开发者和小团队。方法显存需求7B效果适用场景全量微调4×A100 80G最好大厂、核心业务LoRA1×A100 40G接近全量中小团队、快速迭代QLoRA1×RTX 4090 24G略低于LoRA个人开发者、实验面试时如果你能说出我们用QLoRA在单卡上微调了7B模型rank设的64alpha设的128在业务数据上跑了3个epoch效果比prompt engineering提升了15个百分点这就是非常扎实的回答。6.2 数据质量比数据数量重要十倍微调的效果七分靠数据三分靠方法。我见过太多团队花大力气调参结果数据里全是噪声怎么调都没用。数据准备的核心原则多样性覆盖各种输入模式避免模型过拟合到某一种问法。准确性标注必须准确错误的标注比没有标注更糟糕。格式一致训练数据的格式必须和推理时的prompt格式完全一致否则模型会迷惑。数量适中对于特定任务1000-5000条高质量数据通常就够了太多反而容易过拟合。一个实操技巧用强模型生成训练数据再用人工筛选。比如用GPT-4生成候选回答人工审核后作为训练数据。这样效率比纯人工标注高很多质量也比纯模型生成好。6.3 对齐RLHF和DPO的取舍如果面试官问到对齐Alignment说明这个岗位比较高级。RLHF基于人类反馈的强化学习是ChatGPT成功的关键但流程复杂先训练奖励模型再用PPO算法优化策略。DPODirect Preference Optimization则跳过了奖励模型直接用偏好数据优化实现更简单效果在很多场景下不输RLHF。面试时你可以说我们对比过RLHF和DPORLHF效果略好但训练不稳定DPO实现简单、训练稳定最终选了DPO。这种有对比、有取舍的回答比单纯说我们用了RLHF要加分很多。7. 推理优化与部署面试官最看重的落地能力7.1 量化精度与速度的平衡模型太大跑不动怎么办量化是标准答案。从FP16到INT8再到INT4模型大小减半再减半推理速度提升但精度会下降。实际选择时FP16精度最好显存需求最高适合A100/H100。INT8精度损失很小通常1%显存减半适合大多数场景。INT4精度损失明显2-5%但显存只有FP16的1/4适合消费级显卡。量化方法上GPTQ和AWQ是当前最主流的两种。GPTQ训练后量化速度快AWQ对激活值敏感的权重做保护精度更好。我自己的测试中AWQ在7B模型上的困惑度比GPTQ低0.2左右但推理速度慢10%。7.2 推理框架选型vLLM、TGI、TensorRT-LLM面试官问你们用什么推理框架时你要能说出选型理由。vLLM的核心优势是PagedAttention把KV Cache分页管理显存利用率高吞吐量大。TGIText Generation Inference是HuggingFace的方案集成度高支持连续批处理。TensorRT-LLM是NVIDIA的方案性能最强但编译复杂灵活性差。框架核心优势适用场景上手难度vLLMPagedAttention高吞吐高并发在线服务中TGI集成度高易用快速原型、中小规模低TensorRT-LLM极致性能大规模生产环境高我自己的经验是如果团队没有专门的推理优化工程师vLLM是最稳妥的选择社区活跃文档齐全遇到问题容易找到解决方案。7.3 批处理与并发吞吐量和延迟的博弈线上服务最核心的指标是吞吐量每秒处理多少请求和延迟单个请求多久返回。这两个指标往往是矛盾的增大batch size能提升吞吐量但会增加单个请求的延迟。实际调优时需要根据业务场景找平衡点。如果是对话场景用户对延迟敏感batch size要小如果是离线批量处理吞吐量优先batch size可以大。连续批处理Continuous Batching是当前的主流方案不等一个batch的所有请求都完成而是动态地把新请求加入正在处理的batch。vLLM和TGI都支持这个特性能把吞吐量提升2-5倍。一个容易忽略的细节Prefill和Decode阶段的资源需求完全不同。Prefill是计算密集型Decode是显存带宽密集型。把这两个阶段分开调度能显著提升整体效率。vLLM的chunked prefill就是做这个的。8. 面试中那些答不上来直接淘汰的送命题8.1 场景设计题没有标准答案但有标准思路面试官经常会抛出一个开放场景如果让你从零搭建一个企业知识库问答系统你会怎么做这种问题没有标准答案但面试官在看你的思考框架。一个合格的回答应该覆盖需求分析知识库规模多大、更新频率如何、用户量多少、延迟要求是什么。技术选型Embedding模型选什么、向量数据库用哪个、LLM用API还是自部署。架构设计文档切块策略、检索策略稠密稀疏混合、重排序、生成控制。评估方案怎么衡量检索质量、怎么衡量生成质量、怎么做A/B测试。迭代计划先跑通MVP再逐步优化。如果你能说出我们先用BGE-M3做EmbeddingMilvus做向量库检索Top-20后用bge-reranker重排取Top-5再喂给LLM生成答案这就是一个非常具体的方案面试官会觉得你真的做过。8.2 故障排查题考察你的实战经验线上模型突然开始输出乱码你怎么排查这种问题考察的是你的排查思路。一个系统的排查链路先看输入是不是输入格式变了有没有特殊字符再看模型是不是加载错了模型量化版本对不对然后看推理参数temperature、top_p是不是被改了最后看环境GPU显存够不够有没有OOM导致的静默错误面试时你要展示的是分层排查的思路而不是直接猜一个原因。8.3 成本控制题LLM工程师的必修课你们怎么控制推理成本这个问题越来越常被问到因为LLM的推理成本是实打实的钱。控制成本的手段包括模型选型不是所有任务都需要最大的模型7B能做的不用70B。量化INT8量化能省一半显存成本直接减半。缓存相似问题缓存答案减少重复推理。路由简单问题用小模型复杂问题用大模型。批处理提高GPU利用率摊薄单次推理成本。我自己的经验是通过模型路由和缓存能把推理成本降低60%以上。面试时说出这个数字比说我们做了优化有说服力得多。9. 我面了几十个人之后的一些真实体会准备LLM面试背八股文只能帮你过第一轮。真正决定成败的是你有没有自己的项目故事。面试官每天听几十个熟悉Transformer的回答早就麻木了。但如果你能说出我在微调LLaMA 2的时候发现loss突然飙升排查后发现是数据里混入了大量重复样本去重之后训练就稳定了他会立刻记住你。我的建议是面试前把你做过的项目从头到尾捋一遍每个技术选型都问自己为什么选这个不选那个每个参数都问自己为什么设这个值。这些为什么的答案才是面试中最有价值的东西。还有一点诚实比装懂重要。遇到不会的问题说这个我没有实际做过但我的理解是……比硬编一个答案要好。面试官都是过来人你编没编他一眼就能看出来。最后分享一个我自己的习惯每次面试结束后把没答好的问题记下来回去查清楚。面完十家公司你的知识体系就补得差不多了。面试本身就是最好的学习过程。