跳转至

🎯 NLP 面试题精选 50 题

⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。

适用岗位: NLP 算法工程师、大模型算法、对话系统工程师 难度分布:基础(20) + 进阶(20) + 高级(10)


一、基础题( 20 题)

Q1: Word2Vec 的两种训练方式及区别? - CBOW:上下文预测中心词,训练快,适合频繁词 - Skip-gram:中心词预测上下文,适合稀有词,效果通常更好 - 优化:负采样(避免 softmax 计算全词表)、层次 softmax

Q2: Transformer 中 Self-Attention 的计算过程?复杂度? - \(Q=XW_Q, K=XW_K, V=XW_V\) - \(\text{Attn}(Q,K,V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V\) - 复杂度:\(O(n^2 \cdot d)\), n 为序列长度, d 为维度 - 多头注意力:将 d 分为 h 个头,各自计算后拼接

Q3: 为什么 Transformer 用缩放点积而不是直接点积? - 当\(d_k\)较大时,点积值的方差也较大(\(\text{Var}(q \cdot k) = d_k\)) - 大值导致 softmax 梯度极小(进入饱和区) - 除以\(\sqrt{d_k}\)使方差归一化到 1 ,保持梯度稳定

Q4: 位置编码的作用?正弦位置编码 vs 可学习位置编码? - 作用: Self-Attention 是置换不变的,位置编码注入顺序信息 - 正弦编码\(PE_{(pos,2i)} = \sin(pos/10000^{2i/d})\),可泛化到更长序列 - 可学习编码:随训练更新,但无法外推到训练长度之外 - RoPE (旋转位置编码):近年大模型中很常见,支持相对位置建模与一定的长度外推

Q5: BERT 和 GPT 的核心区别? | 维度 | BERT | GPT | |------|------|-----| | 架构 | Encoder-only | Decoder-only | | 注意力 | 双向(看全文) | 单向(因果掩码) | | 预训练 | MLM + NSP | 自回归语言建模 | | 适合任务 | 理解(分类/NER ) | 生成(文本生成/对话) | | 代表 | BERT/RoBERTa/DeBERTa | GPT-¾/ChatGPT |

Q6: 什么是 BPE 分词?为什么大模型都用它? - BPE(Byte Pair Encoding):从字符级开始,不断合并最频繁的字符对 - 优势:平衡词表大小和覆盖率,自然处理未登录词 - 变种: WordPiece(BERT)、 Unigram(SentencePiece)、 Byte-level BPE(GPT-2+) - 大模型标配:可处理任何语言,无需分词预处理

Q7: 什么是 Seq2Seq 模型? Attention 在其中的作用? - Seq2Seq: Encoder 将输入编码为上下文向量, Decoder 逐步生成输出 - 问题:固定长度向量成为信息瓶颈 - Attention 解决: Decoder 的每一步都可以关注 Encoder 所有位置的隐状态 - Bahdanau vs Luong:前者 additive attention ,后者 dot-product attention

Q8: 命名实体识别(NER)的常见方法? - 序列标注: BiLSTM-CRF (经典)、 BERT+CRF - 标注体系: BIO/BIOES - Span 抽取:直接预测实体起止位置(避免标签依赖) - 近年补充路线:大模型也可直接做 NER ( Prompt 方式,零样本/少样本) - 挑战:嵌套实体、不连续实体、跨句实体

Q9: 文本分类的 Pipeline ?

Text Only
文本预处理(清洗→分词→去停用词) → 特征提取(TF-IDF/BERT)
→ 分类器(LR/SVM/Fine-tuned BERT) → 评估(F1/P/R)
  • 近年补充路线:也可直接用 LLM 做 few-shot 分类,或用 BERT+LoRA 微调

Q10: CRF(条件随机场)在 NLP 中的作用? - 作用:建模标签间的转移约束(如 B-PER 后不能跟 I-LOC ) - BiLSTM-CRF: BiLSTM 提取特征, CRF 层做全局标签优化 - 数学\(P(y|x) = \frac{\exp(\sum_i s(x_i,y_i) + \sum_i t(y_i,y_{i+1}))}{\sum_{y'}\exp(\cdot)}\) - 现代替代:大模型直接生成标签序列, CRF 使用减少

Q11: 解释 Teacher Forcing 及其问题 - Teacher Forcing:训练时用真实标签作为 Decoder 输入,而非模型预测 - 优点:训练稳定,收敛快 - 问题:训练和推理不一致( Exposure Bias ),推理时 error 会累积 - 缓解: Scheduled Sampling 、强化学习优化

Q12: BLEU 和 ROUGE 的区别? - BLEU:以 clipped n-gram precision 为主,常用于机器翻译 - ROUGE:以召回导向为主,常用于摘要 - ROUGE-L:最长公共子序列(LCS) - 口径提醒:两者都依赖参考答案,对开放式生成只能做近似比较 - 近年补充做法:生成任务还会结合人工评估、 LLM-as-Judge 、 BERTScore 等方法

Q13: 什么是知识图谱?如何构建? - 定义:以三元组(头实体, 关系, 尾实体)存储结构化知识 - 构建:实体抽取(NER) → 关系抽取(RE) → 实体链接(EL) → 知识融合 - 应用: QA 系统、推荐系统、搜索引擎 - 表示学习: TransE/TransR 、 GNN-based 方法

Q14: RNN/LSTM/GRU 的区别和各自问题? - RNN:简单循环,严重梯度消失/爆炸 - LSTM:遗忘门+输入门+输出门+Cell State ,解决长距离依赖 - GRU:更新门+重置门,参数更少,效果接近 LSTM - 现状:基本被 Transformer 取代,但在序列建模小任务中仍有用

Q15: 解释 Beam Search 和 Top-k/Top-p 采样 - Beam Search:每步保留 B 个最优候选,适合翻译等确定性任务 - Top-k:只从概率最高的 k 个 token 中采样 - Top-p (Nucleus):从累计概率首次达到 p 的最小 token 集合中采样 - Temperature: T<1 更确定, T>1 更多样

Q16: 什么是预训练语言模型?为什么有效? - 原理:在大规模无标注文本上学习语言表示,再在下游任务微调 - 有效原因:学到了语法、语义、 world knowledge ,迁移到下游任务 - 范式演变: Word2Vec → ELMo → BERT → GPT-3 → ChatGPT → Agent

Q17: 对比几种文本相似度计算方法 - 词袋法: TF-IDF + 余弦相似度(简单但忽略语义) - 词向量平均: Word2Vec/GloVe 取平均 - Sentence-BERT:孪生 BERT 网络,生成句向量后余弦相似 - Cross-Encoder:两句拼接输入 BERT ,精度最高但慢 - 近年常见工程方案:也会直接调用托管 Embedding 服务,具体模型名会随时间变化

Q18: 什么是信息抽取?包含哪些子任务? - 命名实体识别(NER) - 关系抽取(RE):判断实体对之间的关系 - 事件抽取(EE):识别事件触发词和论元 - Pipeline vs Joint: Pipeline 分步处理但 error 传播, Joint 联合训练

Q19: 中文 NLP 的特殊挑战? - 分词歧义("研究/生命/的起源" vs "研究生/命/的起源") - 无自然空格分隔 → 分词是必要预处理 - 多义词更严重、简繁体差异 - 现代方案:字级建模(BERT)、 BPE 分词避免分词错误传播

Q20: 解释 Perplexity 及其含义 - 公式\(PPL = \exp(-\frac{1}{N}\sum_{i=1}^N \log P(w_i|w_{<i}))\) - 含义:模型对每个 token 平均有 PPL 个等概率选择,越低越好 - 用途:评估语言模型质量,但不完全反映生成质量


二、进阶题( 20 题)

Q21: Prompt Engineering 的核心技巧? - Zero-shot:直接描述任务 - Few-shot:提供示例(选示例很重要) - Chain-of-Thought:引导逐步推理 - Self-Consistency:多次采样取多数投票 - ReAct:推理+行动交替

Q22: RAG 系统的完整架构和关键挑战? - 流程: Query→Embedding→向量检索→Rerank→LLM 生成(带上下文) - 挑战: - 检索质量:语义匹配 vs 关键词,混合检索更优 - 文档切分: chunk size/overlap 影响大 - 幻觉:即使有上下文, LLM 仍可能编造 - 多跳推理:答案分散在多个文档中 - 高级 RAG: HyDE 、 Self-RAG 、 Corrective RAG 、 GraphRAG

Q23: LoRA 微调的原理?为什么有效? - 原理:冻结原模型,在权重矩阵旁加低秩分解 \(W + \Delta W = W + BA\) - \(B \in R^{d \times r}, A \in R^{r \times d}\)\(r \ll d\)(典型 r=8-64 ) - 有效原因:预训练模型的权重更新通常是低秩的(内在维度假设) - 参数量:仅需训练 0.1%-1%参数即可达到全参微调 90%+效果 - 变种: QLoRA(4bit 量化+LoRA)、 DoRA(方向+幅度分离)

Q24: RLHF 的完整流程? DPO 和 RLHF 的区别? - RLHF:①SFT → ②训练 Reward Model(人类偏好标注) → ③PPO 优化策略 - DPO:跳过 RM 训练,直接用偏好数据对优化策略 - \(L_{DPO} = -\log\sigma(\beta(\log\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \log\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)}))\) - GRPO(DeepSeek): Group Relative Policy Optimization ,无需 RM ,组内相对排序

Q25: 大模型推理优化技术? - KV Cache:缓存已计算的 Key/Value ,避免重复计算 - FlashAttention: IO-aware 的分块注意力算法,减少 HBM 访问 - PagedAttention(vLLM):类 OS 分页管理 KV Cache ,提升并发 - Speculative Decoding:小模型草拟+大模型验证,提速 2-3x - 量化: INT8/INT4/GPTQ/AWQ

Q26: Agent 系统的核心组件和设计模式? - 组件: LLM(大脑) + Tools(工具) + Memory(记忆) + Planning(规划) - 模式: - ReAct: 推理→行动循环 - Plan-and-Execute: 先规划后执行 - Reflection: 自我反思修正 - Multi-Agent: 多角色协作 - 框架示例: LangGraph 、 OpenAI Agents SDK 、 AutoGen 等,具体选型随生态演进而变化

Q27: 对比 MoE 和 Dense 模型 - Dense:所有参数都参与每个 token 的计算 - MoE:每个 token 只激活少数 Expert (如 8 选 2 ) - 优势:同等算力下可扩大模型容量 - 代表性例子:可举 Mixtral、 DeepSeek 系列或近年的 MoE 模型作答,但具体型号与规格以官方发布为准

Q28: 长文本处理的技术方案? - 位置编码外推: RoPE + NTK-aware 外推/YaRN - 稀疏注意力: Longformer(局部+全局)、 BigBird - 分层处理:先分段总结再综合 - 上下文压缩: LLMLingua 、 AutoCompressor - 长上下文模型:闭源与开源长上下文模型持续迭代,学习时应以官方当前文档确认窗口长度与计费口径

Q29: 结构化输出(Structured Output)的实现方式? - Prompt 约束: JSON 模板+示例引导 - Constrained Decoding:限制 token 生成空间,保证格式 - Structured Output / JSON Schema:通过约束输出格式显著提高结构化结果的稳定性,但仍应在接口层做校验与重试 - Outlines/Instructor:开源约束解码库

Q30: 对话系统的架构演变? - 规则式:关键词匹配+决策树(最早期) - Pipeline: NLU→DST→Policy→NLG - 端到端: Seq2Seq+Attention (但可控性差) - LLM 时代: Prompt Engineering + RAG + Function Calling + Memory - Agent 时代: LLM 作为对话引擎,工具调用解决实际问题

Q31: 机器翻译的评估方法及其局限性? - BLEU: n-gram 精确率,简单但与人类评价相关性有限 - COMET/BLEURT:基于模型的评估,相关性更高 - 人工评估: MQM 框架,标注翻译错误类型和严重度 - LLM 时代: GPT-as-Judge ,但需注意偏见

Q32: 文本生成中的幻觉问题如何解决? - 训练阶段:高质量数据过滤、 RLHF 对齐 - 推理阶段: RAG 提供可靠上下文、 Retrieval-Augmented Generation - 后处理:事实核查(Fact Verification)、自一致性检查 - 系统方案:引用支撑(Cited Answers)、可溯源回答

Q33: MCP(Model Context Protocol)是什么? - 定义: Anthropic 提出的开放标准,标准化 LLM 与外部工具/数据源的通信 - 架构: Client-Server 模式, Agent 通过 MCP Client 调用 MCP Server 提供的工具 - 作用:统一工具调用接口,类似 USB-C 标准化设备连接 - 生态:近年被多类开发平台和智能体框架采用,但具体支持情况仍需查看各平台文档

Q34: 对比 LangChain 和 LlamaIndex | 维度 | LangChain | LlamaIndex | |------|-----------|-----------| | 定位 | 通用 LLM 应用框架 | 数据连接专家(RAG) | | 强项 | Agent 链/工作流编排 | 文档索引/检索优化 | | 架构 | LCEL(LangChain Expression Language) | 索引(Index)+检索器(Retriever)+合成器 | | 适合 | 复杂 Agent 应用 | RAG 系统 |

Q35: 向量数据库选型对比? | 数据库 | 特点 | 适用场景 | |--------|------|---------| | FAISS | Meta 开源,极致性能 | 批量检索,研究 | | Milvus | 云原生,分布式强 | 企业级生产 | | Pinecone | 全托管,易用 | 快速启动 | | Chroma | 轻量, Python 友好 | 原型验证 | | Qdrant | Rust 实现,性能好 | 生产部署 |

Q36: Few-shot 学习在 NLP 中的应用? - In-Context Learning:大模型内在能力,提供示例即可 - PEFT 微调: LoRA/Prefix Tuning 用少量数据微调 - 数据增强:用 LLM 生成训练数据(合成数据) - Meta-Learning: MAML/Prototypical Networks

Q37: 多语言 NLP 的挑战和方案? - 挑战:资源不均衡、形态学差异、跨语言迁移 - 方案: mBERT/XLM-R 多语言预训练 → 零样本跨语言迁移 - 当前趋势:不少多语种大模型原生支持较大规模的多语言输入与生成,但覆盖质量仍有语言差异

Q38: 解释 KV Cache 的原理和优化方法 - 原理:自回归生成时,每一步只需计算新 token 的 Q , K 和 V 可复用缓存 - GPU 内存:长序列时 KV Cache 占 GPU 显存大部分(如 Llama-70B , 4K 序列约 80GB ) - 优化: - GQA(分组查询注意力):多个 Q 头共享 K/V 头 - PagedAttention :非连续内存分页管理 - 量化: KV Cache 用 INT8/FP8 存储

Q39: 如何评估一个 RAG 系统的质量? - 检索指标: Recall@K, MRR, NDCG (检索到正确文档的能力) - 生成指标: Faithfulness(忠实度)、 Relevance(相关性)、 Correctness(正确性) - 边界提醒:很多真实问题没有唯一标准答案,自动指标应与人工抽检联合使用 - 框架: RAGAS 、 TruLens 、 LangSmith - 关键:检索质量是上限,生成质量取决于 LLM 和 prompt

Q40: BERT 微调的常见经验? - 学习率: 2e-5 ~ 5e-5 可作为常见起点(太大可能破坏预训练表示) - Warmup: 训练总步数的 6%-10% 可先尝试 - Epoch: 常从 3-5 轮起步,再根据验证集提前停止 - 分层学习率: 底层小、顶层大( Discriminative Fine-tuning ) - 冻结策略: 数据极少时冻结底层只训练顶层


三、高级题( 10 题)

Q41: 从零设计一个企业级 RAG 系统

Text Only
文档处理: PDF/HTML/DB → 解析提取 → 智能分块(语义感知)
索引构建: Embedding(可替换的托管或自部署模型) → 向量DB(Milvus) + BM25倒排索引
查询处理: Query改写(HyDE) → 混合检索(Dense+Sparse) → Rerank(Cohere/BGE)
生成: System Prompt + 检索上下文 + 用户问题 → LLM → 引用标注
监控: 用户反馈 → 检索日志 → 自动评估 → 持续优化

Q42: 手撕 — Transformer Self-Attention

Python
import torch, math
def self_attention(Q, K, V, mask=None):
    d_k = Q.size(-1)
    scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)
    if mask is not None:
        scores = scores.masked_fill(mask == 0, -1e9)
    attn_weights = torch.softmax(scores, dim=-1)
    return torch.matmul(attn_weights, V), attn_weights

Q43: 手撕 — BPE 分词算法

Python
def bpe_train(corpus, num_merges):
    vocab = {c: freq for word, freq in corpus.items() for c in word.split()}
    for _ in range(num_merges):
        pairs = count_pairs(corpus)
        best = max(pairs, key=pairs.get)
        corpus = merge_pair(corpus, best)
    return corpus

Q44: 如何设计一个多 Agent 协作系统? - 架构: Orchestrator(路由) + Specialist Agents(专家) - 通信:共享黑板/消息传递/层次化编排 - 角色: Researcher(搜索) + Coder(编程) + Reviewer(审查) + Executor(执行) - 框架: CrewAI 、 AutoGen 、 LangGraph Multi-Agent - 关键挑战:死循环检测、成本控制、结果一致性

Q45: DeepSeek-R1 的 GRPO 训练方法详解 - Group Relative PO:不需要独立的 Reward Model - 流程:对每个 prompt 采样一组回答 → 组内按奖励排序 → 用相对排名做策略优化 - 优势:训练更稳定、成本更低、无需 RM 的分布偏移问题 - 影响:开源复现 RLHF 级别的推理能力

Q46: 大模型幻觉的根因分析? - 数据层:训练数据中的错误/偏见会被学习 - 模型层:自回归生成的滚雪球效应,一步错步步错 - 解码层:概率采样本质上有随机性 - 根本原因: LM 是"似然最大化"而非"事实最大化"

Q47: 如何对比近年开源大模型的架构差异?

  • 可对比维度:是否采用 MoE 、上下文长度、是否原生多模态、是否区分推理模式、训练数据与对齐方式
  • 答题策略:举 1-2 个当期代表模型作为例子即可,但要明确“具体规格以官方发布页为准”
  • 共同趋势:不少新模型都在探索更低推理成本、更长上下文与更强工具使用能力

Q48: 定义并解释"Agentic AI"的概念 - 定义:具有自主性、能迭代完成复杂任务的 AI 系统 - 特征:自主决策、工具使用、长期记忆、自我反思、多步规划 - vs 传统 LLM:不只是单轮问答,而是持续工作直到完成任务 - 代表:可举近年的 Agent 或 Computer Use 产品/框架作例子,但具体产品名单变化较快,回答时最好以最新官方发布为准

Q49: GraphRAG 的原理和优势? - 传统 RAG:基于向量相似度检索片段,缺乏全局视角 - GraphRAG:构建知识图谱 → 社区检测 → 层次化总结 → 全局+局部检索 - 优势:回答需要全局理解的问题(如"数据集的主要主题是什么?") - 微软开源: microsoft/graphrag

Q50: 2026 年 NLP 的核心趋势和研究方向? 1. 推理增强模型:在复杂推理、规划和工具使用方面持续增强 2. Agent 系统:从单轮对话到自主完成复杂任务 3. 多模态融合:文本只是一种模态,视觉/音频/视频统一 4. 合成数据:用 AI 生成训练数据,形成飞轮效应 5. 小模型崛起:更适合端侧、私有化和低成本部署 6. 世界模型:理解物理世界的语言,不只是文本


最后更新: 2026 年 4 月 3 日


⚠️ 核验说明(2026-04-03):本页已再次人工复核。作为题库页,保留“面试题”定位,同时将易过时的模型名、版本和平台支持口径改为“近年常见 + 以官方发布为准”。


最后更新日期: 2026-04-03