跳转至

🎯 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(旋转位置编码):2024+主流,支持相对位置+长度外推

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抽取:直接预测实体起止位置(避免标签依赖) - 2025+:大模型直接做NER(Prompt方式,零样本/少样本) - 挑战:嵌套实体、不连续实体、跨句实体

Q9: 文本分类的Pipeline?

Text Only
文本预处理(清洗→分词→去停用词) → 特征提取(TF-IDF/BERT)
→ 分类器(LR/SVM/Fine-tuned BERT) → 评估(F1/P/R)
- 2025+:直接用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:衡量生成文本与参考的n-gram精确率,用于机器翻译 - ROUGE:衡量n-gram召回率,用于摘要 - ROUGE-L:最长公共子序列(LCS) - 2025+:LLM时代更多用人工评估、GPT-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,精度最高但慢 - 2025+:用Embedding API(text-embedding-3-large等)

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-V3(MLA+MoE)、Llama 4(Scout/Maverick)

Q28: 长文本处理的技术方案? - 位置编码外推:RoPE + NTK-aware外推/YaRN - 稀疏注意力:Longformer(局部+全局)、BigBird - 分层处理:先分段总结再综合 - 上下文压缩:LLMLingua、AutoCompressor - 128K+窗口模型:GPT-4 Turbo、Claude 3、Gemini 1.5(1M tokens)

Q29: 结构化输出(Structured Output)的实现方式? - Prompt约束:JSON模板+示例引导 - Constrained Decoding:限制token生成空间,保证格式 - OpenAI Structured Output:JSON Schema约束,100%格式保证 - 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标准化设备连接 - 生态:2025年已被Cursor/Claude/OpenAI等主流平台支持

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多语言预训练 → 零样本跨语言迁移 - 2025+:GPT-4o/Gemini 2.5天然支持100+语言

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(text-embedding-3) → 向量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: 对比Llama 4和Qwen3的架构差异

⚠️ 时效性说明:本题包含预测性内容。Llama 4系列(Scout/Maverick)截至2025年初尚未正式发布,以下架构信息基于官方预告和行业预测,请在Llama 4正式发布后以实际参数为准。

  • Llama 4:MoE架构(Scout 17B active/109B total, Maverick 17B/400B)
  • Qwen3:混合思考模式(Thinking+Non-thinking),MoE版本(Qwen3-235B-A22B)
  • 共同趋势:MoE降低推理成本、长上下文支持、多模态原生

Q48: 定义并解释"Agentic AI"的概念 - 定义:具有自主性、能迭代完成复杂任务的AI系统 - 特征:自主决策、工具使用、长期记忆、自我反思、多步规划 - vs传统LLM:不只是单轮问答,而是持续工作直到完成任务 - 代表:Devin、Claude Computer Use、Manus、OpenAI Operator

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

Q50: 2026年NLP的核心趋势和研究方向? 1. 推理模型(o3/R1系列):内置思维链、更强的逻辑推理 2. Agent系统:从单轮对话到自主完成复杂任务 3. 多模态融合:文本只是一种模态,视觉/音频/视频统一 4. 合成数据:用AI生成训练数据,形成飞轮效应 5. 小模型崛起:Phi-4/Gemma3/Qwen3-4B,边缘部署 6. 世界模型:理解物理世界的语言,不只是文本


最后更新:2026年2月