
应用开发岗不会要求你推公式,但面试官会通过基础题判断两件事:你是真理解了模型怎么工作,还是只会调 API;你能不能把原理和工程问题联系起来——比如知道 KV Cache,就能解释为什么长上下文会让并发上不去。
回答时少背定义,多说「所以在工程上意味着什么」。
题库

Transformer 里的自注意力(self-attention)在做什么?为什么它取代 RNN 成了大模型的主流结构?
- 做什么:每个 token 生成 Query、Key、Value 三个向量,用 Q 和所有 K 的点积(除以 √d 后做 softmax)算出「该关注谁」,再按这些权重把 V 加权求和,得到融合了上下文的新表示。多头注意力让不同的头关注不同类型的关系。
- 为什么取代 RNN:任意两个位置一步就能直接交互,长距离依赖不会像 RNN 那样逐步衰减;训练时整段序列可以并行计算,适合大规模扩展。
- 补充:需要位置编码(如 RoPE)提供顺序信息;生成模型用因果掩码,只看前文;计算量随序列长度平方增长,这是长上下文贵的原因之一。
什么是 token?分词方式会对模型的效果和成本带来哪些影响?
- token 是模型处理文本的单位,通常是 BPE、SentencePiece 这类算法切出来的子词,不等于一个字或一个词。
- 成本:计费、上下文上限、输出速度都按 token 算。同样一段话,在不同模型的分词器下 token 数可能差不少,中文和代码的切分效率也不同。
- 效果:模型看到的是 token 而不是字符,所以数字母、反转字符串、多位数运算这类任务容易出错。
- 实践:估算成本和长度时用目标模型自己的分词器,或直接看接口返回的 usage,不要按字数硬算。
一个对话大模型是怎么训练出来的?请说说预训练、SFT、RLHF 和 DPO 各自的作用。
- 预训练:在海量文本上做「预测下一个 token」,学到语言能力和大量知识;这时的基座模型擅长续写,还不会好好按指令回答。
- SFT(监督微调):用「指令—高质量回答」数据训练,让模型学会对话格式和按要求作答。
- RLHF:人对多个回答排序,训练奖励模型,再用 PPO 等强化学习让输出更符合人类偏好。
- DPO:直接用「好回答 / 差回答」的偏好对优化模型,不用单独训练奖励模型,流程更简单、训练更稳定。
- 近年的推理模型还会在数学、代码等答案可验证的任务上做强化学习,提升多步推理能力。
temperature 和 top_p 分别控制什么?在不同业务场景下你会怎么设置?
- temperature:对下一个 token 的概率分布做缩放。值低,高概率的词更占优,输出更稳定;值高,分布更平,输出更多样也更容易跑偏。
- top_p(核采样):只在累计概率达到 p 的那批候选里抽样,把长尾的低概率词排除掉。
- 一般只调其中一个,两个同时改不好判断效果。
- 场景:信息抽取、分类、写代码、生成 JSON 用低值;文案、头脑风暴可以调高。
- 注意 temperature 设为 0 也不保证每次输出完全一致;部分推理模型固定了这些参数或不支持修改。
上下文窗口是什么?上下文很长时会遇到哪些问题,工程上怎么应对?
- 上下文窗口是一次请求里输入加输出能容纳的 token 上限,超出会报错或被截断。
- 问题:输入越长,费用越高、首 token 越慢;信息放在中间位置时更容易被忽略;无关内容多了会干扰回答质量。窗口大不等于模型能把每个细节都用好。
- 应对:多轮对话只保留最近几轮,早期内容做摘要;用检索(RAG)只放相关片段,而不是整篇文档塞进去;关键指令放在开头或结尾;控制输出长度;把固定的系统提示放在前面,利用 prompt cache 降低重复前缀的成本。
大模型为什么会产生幻觉?在应用里你会用哪些手段降低幻觉?
- 原因:模型按概率生成「看起来合理」的文字,而不是去查事实;训练数据可能缺失或过时;训练过程也往往奖励「给出答案」,而不是「承认不知道」。
- 降低手段:
- 用 RAG 提供资料,要求只依据资料回答并标注引用;
- 在提示词里明确允许回答「不知道」;
- 实时数据(价格、天气、订单)通过工具查询,不让模型凭记忆说;
- 结构化输出后用程序校验字段和数值;
- 事实类任务降低随机性;
- 用评测集持续测幻觉率,关键结论(医疗、法律、金额)人工复核。
什么是 KV Cache?它为什么能加速推理,又带来了什么代价?
- 模型逐个 token 生成,每一步都要用到前面所有 token 的 Key 和 Value。KV Cache 把这些 K、V 缓存起来,新 token 只计算自己的部分,不用每步重算整段前文。
- 推理因此分成两段:prefill 一次性处理整个输入、建好缓存;decode 逐个生成,每步复用缓存。
- 代价:缓存占显存,随序列长度、层数和并发数线性增长。长上下文和高并发时显存常常先被 KV Cache 吃满。
- 缓解:GQA / MQA 让多个头共享 K、V;分页管理显存(如 vLLM 的 PagedAttention);对 KV 做量化。供应商的 prompt cache 就是跨请求复用相同前缀的 KV。
模型量化是什么?INT8、INT4 量化在效果、显存和速度上有什么取舍?
- 量化是用更少的位数存储权重(有时也包括激活值和 KV Cache),比如从 FP16 / BF16 降到 INT8 或 INT4。
- 显存:INT8 大约是 FP16 的一半,INT4 大约四分之一,同样的卡能放下更大的模型或更多并发。
- 速度:生成阶段主要受显存带宽限制,读取的数据少了通常会更快,但也取决于硬件和推理框架是否支持对应算子。
- 效果:INT8 损失一般很小;INT4 更明显,需要 GPTQ、AWQ 这类基于校准数据的方法来控制误差。
- 是否可用要在自己的任务和评测集上验证,不能只看通用榜单。
MoE(混合专家)模型的原理是什么?和参数量相同的稠密模型比,有什么优缺点?
- 原理:把 Transformer 里的前馈层(FFN)换成多个「专家」网络,再加一个路由器,为每个 token 只挑选 top-k 个专家参与计算。
- 优点:总参数可以做得很大(容量大、知识多),但每个 token 实际激活的参数只占一小部分,训练和推理的计算量接近一个小得多的稠密模型。
- 缺点:所有专家都要装进显存,部署门槛按总参数算;路由需要负载均衡,否则少数专家过载;专家分布在多卡上时通信开销大;微调和推理部署更复杂。
- 比较模型时要分清「总参数」和「激活参数」。
推理模型(reasoning model)和普通对话模型有什么区别?什么场景值得用它?
- 推理模型在给出答案前先生成一段较长的推理过程,这种能力主要靠强化学习训练,用「多想一会儿」换更好的结果。
- 擅长:数学、写代码和调试、多步规划、需要反复核对条件的分析。
- 代价:更慢、更贵,推理过程的 token 同样计费;很多接口提供推理强度(effort)之类的参数来控制。
- 不划算的场景:简单问答、信息抽取、改写、分类,用普通模型更快更省。
- 提示词:写清目标、约束和验收标准即可,不需要再要求它「一步一步思考」。
答题思路

基础题最怕两种答法:一是只背一句定义,二是一口气把知道的全倒出来。比较稳的结构是三步:
- 先结论:一两句话直接回答问题。「KV Cache 是把前文的 K、V 缓存起来,避免每生成一个 token 都重算。」
- 再原理:解释为什么成立,说到面试官能判断你真懂就够了,不必推公式。
- 再实践与取舍:这件事在工程里意味着什么、代价是什么、你会怎么做。「所以长上下文、高并发时显存先满,我们会……」
第三步往往是拉开差距的地方。能联系到自己做过的项目(比如「我们把系统提示固定在前面后,缓存命中率上来了,费用降了一截」)会比泛泛而谈有说服力得多。不确定的地方直接说「这块我了解得不深,我的理解是……」,比编一个答案好。
想看更多题目,可以读延伸阅读里的 大模型基础面试题总结 和 LLM 运行机制。
模拟面试
准备好了就开始一场:5 道题从上面的题库随机抽,逐题作答,每题都会得到打分、点评和要点。用自己的话回答,不会的题可以直接写「不会」,看完要点再来一场。
🎤 模拟面试每场 5 题,AI 面试官逐题打分点评,总分 = 平均分 × 10
登录后开始模拟面试小结
- 基础题考的是理解:注意力、token、训练流程都要能用自己的话讲出来。
- 每个原理都要落到工程上:采样参数怎么设、长上下文贵在哪、KV Cache 和量化省的是什么。
- 回答按「结论 → 原理 → 实践与取舍」组织,能举项目里的例子更好。
下一课 D2 讲 Agent 面试题:从 ReAct 和工具调用,到规划、记忆、MCP、多 Agent 和安全。