第二章 高频面试问题与回答框架
本章聚焦面试中反复出现的三大经典问题,分别从原理深度、工程落地、模型局限三个角度拆解。掌握“考察点识别 → 框架构建 → 示例示范 → 追问准备”四步法,可应对90%以上的高频追问。
Q1:请解释Transformer中Self-Attention的计算过程,为什么需要Multi-Head?
面试官考察点
• 对注意力机制原理的掌握程度
• 能否清晰描述矩阵运算过程
• 对多头设计的理解深度(是否仅停留在“多个头捕获不同子空间”)
回答框架
1. 用公式Attention(Q,K,V)=softmax(QK^T/√d)V说明计算三要素
2. 解释缩放因子√d的作用(防止softmax梯度消失)
3. 多头:将Q、K、V线性投影到h个低维子空间,分别计算注意力后拼接再线性变换,提升不同表示子空间的学习能力
示例回答
“Self-Attention通过Q与K的点积计算相似度,除以√d进行缩放后加softmax得到权重,再与V加权求和。Multi-Head将输入映射到多个低维子空间并行计算,最后拼接融合;这样能捕获不同位置、不同语义子空间的依赖关系,比单头更稳定。”
(87字)
可能追问
• 为什么要除以√d?不除会怎样?
• Multi-Head中头的数量如何选择?过大或过小的影响?
• 能否用代码实现一次完整的Self-Attention forward?
Q2:在NLP模型部署中,如何处理OOV(未登录词)问题?
面试官考察点
• 对词表构造和分词策略的理解
• 工程上处理低频词的实践经验
• 对子词分词(BPE/WordPiece/SentencePiece)的掌握
回答框架
1. 传统方案:<UNK> 替换,但丢失语义
2. 现代方案:子词分词——BPE或WordPiece,将词拆分为更细粒度子词,保证所有输入都可被覆盖
3. 工程补充:动态扩展词表、fallback到字符级Embedding、预训练时加入OOV采样
示例回答
“主流方案是使用子词分词,如BERT的WordPiece或的BPE,将低频词拆分为已知子词单元。部署时需确保分词器与训练时一致,并对未出现在词表中的罕见词进行子词切分。同时可以设置最小切分单元(如字符)作为兜底。”
(86字)
可能追问
• BPE和WordPiece的区别是什么?
• 如果推理时遇到完全未见过的语言字符(如韩文)怎么办?
• 你的项目中词表大小如何确定?
Q3:BERT的预训练任务Masked LM和Next Sentence Prediction的作用是什么?是否存在缺点?
面试官考察点
• 对BERT预训练细节的掌握
• 能否分析NSP的有效性
• 对后续改进(如RoBERTa)的跟进程度
回答框架
1. MLM:随机遮盖15%的词,让模型根据上下文预测,学习双向上下文表示
2. NSP:判断两个句子是否连续,学习句间关系
3. 缺点:NSP任务过于简单且噪声大,RoBERTa实验表明去除NSP后下游任务(尤其单句任务)效果反而更好;MLM训练-推理不一致(预测时无[MASK])
示例回答
“MLM通过遮盖一部分词让模型双向预测,学习深层次语境表示;NSP通过二分类任务让模型理解句子间的关系。但后续研究显示NSP对大多任务无益,甚至有害,RoBERTa等模型直接去除NSP并采用动态掩码效果更优。MLM的缺点在于预训练与微调的数据分布不一致。”
(100字)
可能追问
• 为什么BERT选择15%的遮盖比例?
• 什么是动态掩码?和原始BERT的静态掩码区别?
• MLM的另一种替代方案(如ELECTRA的判别式预训练)核心思想?
高频问题分类速查表
| 问题类型 | 常见问题示例 | 考察核心能力 | 建议回答框架 |
|---|---|---|---|
| 原理推导类 | Transformer各组件作用 | 基础理论、数学推导 | 公式+设计动机+对比 |
| 工程落地类 | OOV处理、推理加速 | 工程经验、权衡取舍 | 场景+方案+兜底 |
| 模型评估与改进类 | BERT预训练缺点 | 批判性思维、前沿跟踪 | 优点+缺点+后续改进 |