NLP 与大模型 面试题
大模型 / NLP 面试题:从 Transformer 到 RAG 的追问路径
大模型岗的面试有一条很固定的追问链:注意力怎么算 → 为什么要除以根号 d → 位置编码为什么需要 → 训练时显存怎么估 → 微调选 LoRA 还是全参 → RAG 的召回不准怎么办。每一层都在筛人。
这个方向在考什么
- Transformer 细节:注意力的复杂度、多头的作用、LayerNorm 的位置(Pre-LN vs Post-LN)
- 训练与显存:参数量、激活值、优化器状态各占多少,ZeRO 切的是什么
- 微调方案:全参 / LoRA / QLoRA 的取舍,rank 与显存的换算
- RAG 与评测:切分策略、召回与重排、幻觉怎么度量、离线评测怎么做
最常见的几个坑
- 把"参数量 × 2 字节"当成全部显存,漏掉激活值和优化器状态
- LoRA 只会说"省显存",讲不出为什么低秩有效、rank 怎么选
- RAG 只会说"向量检索",回答不了"召回不准时先改哪一步"
七天准备路线
- 第 1-2 天手推一遍注意力与复杂度,能白板写出公式并解释每一项
- 第 3 天把显存估算练成肌肉记忆:7B 模型全参训练/推理各要多少
- 第 4 天准备一个真实的微调项目:数据量、rank、效果、失败尝试
- 第 5 天RAG 全链路过一遍:切分、embedding、召回、重排、生成、评测
- 第 6-7 天按方向刷题,重点准备"如果效果不好,你先改哪里"
NLP 与大模型高频面试题
- 微调一个大模型时,LoRA 相比全参微调省在哪里?rank 怎么选?为什么它可以在推理时合并回原权重? · 1-3 年
- RAG 的完整链路你会怎么搭?文档切分这一步,你会怎么定 chunk 大小和重叠?为什么? · 1-3 年
- 大模型幻觉你会怎么治理?请区分"知识型幻觉"和"指令遵循型幻觉"分别怎么处理。 · 3-5 年
- 向量检索的召回效果不好,你会从哪些环节排查?说一个你实际调过的参数和它的影响。 · 1-3 年
- 请说明 SFT、RLHF、DPO 各自解决什么问题。为什么有了 RLHF 还要提 DPO? · 3-5 年
- 长文本场景下,上下文窗口装不下时你会怎么办?请对比"截断、分块递归总结、检索"三种方案的代价。 · 3-5 年
- 你怎么评测一个 RAG 系统的好坏?请分别说检索侧和生成侧各看什么指标、怎么构造评测集。 · 3-5 年
- 你要用大模型做一个每天数百万次调用的线上功能,成本和延迟怎么压?请给出你的优化优先级。 · 5 年以上
- 一个 32 层 decoder-only 模型,hidden_size=4096,attention head 数 32,KV head 数 8(即 GQA),FP16 推理。现在 batch_size=4、序列长度 8192。请算出 KV cache 占多少显存;如果把 GQA 换成 MHA(32 个 KV head),显存变成多少;并解释为什么现在的模型普遍用 Pre-LN + RMSNorm,而不是原始论文的 Post-LN + LayerNorm。 · 1-3 年
- 一个 7B 稠密模型,预训练上下文 4K,现在要支持 32K 推理。模型结构:32 层、32 个注意力头、head_dim=128。服务端 8×A100 80G,batch size 固定 16,FP16 权重 + FP16 KV cache。两个问题:(1) 注意力从 MHA 换成 GQA(8 个 KV 头)前后,32K 上下文下单批 KV cache 各是多少?(2) 4K→32K 的位置外推你会选哪种方案,代价是什么? · 3-5 年
- 你们要从零训一个 30B 级中文基座,训练预算约 200 张 A800、2 个月,线上目标 1k QPS 长文问答,平均输入 8k token、输出 300 token。架构上你会选 dense 还是 MoE?Attention 用 MHA、MQA、GQA 还是 MLA?请给出选型、关键数量级估算,以及你怎么向老板解释这个取舍。 · 5 年以上
- 一个 32 层、hidden_size=4096、32 个注意力头(head_dim=128)的 decoder-only 模型,用 fp16 做推理,batch=4、序列长度 4096。请算一下:(1) 用标准 MHA 时 KV cache 大约占多少显存;(2) 换成 GQA、KV 头数只有 8 时占多少。并解释 GQA 为什么能在几乎不掉点的情况下把 KV cache 降到 1/4。 · 校招
- 你手上有一个开源 7B base 模型(预训练语料以英文通用为主),现在有 20B token 的垂直领域语料和 200B token 的通用语料。业务要求先做领域继续预训练,再做 SFT。请给出你的训练配比、学习率区间和停止判断依据,并说明你会用什么方法判断通用能力有没有被“冲掉”。 · 1-3 年
- 团队要做垂直领域(例如判例文书)的 13B 模型。手上资源:去重后的领域语料 2B token、通用指令数据 20 万条、8×A100 80G,训练预算只够跑一次约 5 天的大规模训练。你会在「领域继续预训练(CPT)+ SFT」和「直接拿通用底座做 SFT」之间怎么选?如果选 CPT,通用数据 replay 的比例怎么定,凭什么定这个数? · 3-5 年
- 团队要做一个金融领域模型,已有开源 7B/13B 基座,标注预算约 5 万条 SFT,GPU 只够对 7B 做一次全量继续预训练。你会怎么决定是继续预训练还是直接 SFT?请给出判断标准、数据配比和评估方案。 · 5 年以上
- 你有一个 7B 基座模型、2000 万条领域无标注文本(论坛帖、文档、问答帖混在一起)和 5 万条人工标注的领域问答对,要做一个领域问答助手。请给出你的训练流程:在拿标注数据做 SFT 之前,需不需要先做领域继续预训练(CPT)?两个阶段分别用什么数据形态、什么损失、学习率谁大谁小?并具体说出如果跳过 CPT 直接 SFT,哪一类问题会明显变差。 · 校招
- 你用 5 万条多轮对话数据做 SFT,把多轮拼成一条样本、按 4096 长度截断,训练 loss 从 2.1 降到 0.3。上线后模型出现两类问题:(a) 复读用户上一轮的问题;(b) 面对新指令时输出格式不稳定。请分析最可能的两个工程原因,并说明 SFT 阶段你会在 loss 上做哪些处理。 · 1-3 年
- SFT 用了 5 万条指令数据,数据格式高度统一:助手回答都以同一句固定开场白开头,且相当大比例是 JSON 输出。训 3 个 epoch 后 train loss 0.35、同分布 held-out loss 0.42。人工评测发现问题:模型对闲聊类问题也开始加那句开场白,开放式回答多样性明显变差,选择题准确率还掉了 3 个点。你怎么定位原因,按什么顺序改? · 3-5 年
- 你们有 10 万条多任务 SFT 数据:客服 6 万、代码 2 万、摘要 2 万,质量参差不齐。要微调 13B 模型。你会怎么设计数据配比、packing 策略和 loss mask?多轮对话中 user token 是否算 loss?上线后怎么判断是数据问题还是模型问题? · 5 年以上
- 你构造 SFT 数据时,把 system prompt、user 问题、assistant 回答拼成一条完整序列,训练时对整个序列算交叉熵 loss(没有 mask 掉 prompt 部分)。请判断这样训出来的模型会有什么问题、为什么;再说清在什么情况下这个『错误』的负面影响反而不大,以及 multi-turn 数据里 loss mask 应该怎么切。 · 校招
共 57 道,这里列出前 20 道。 去题库检索
针对你的简历,生成一套这个方向的题
题目会挂回你简历里的项目,并按真实面试顺序追问。