2026年大模型算法工程师(校招)高频面试题及解答_第1页
2026年大模型算法工程师(校招)高频面试题及解答_第2页
2026年大模型算法工程师(校招)高频面试题及解答_第3页
2026年大模型算法工程师(校招)高频面试题及解答_第4页
2026年大模型算法工程师(校招)高频面试题及解答_第5页
已阅读5页,还剩82页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大模型算法工程师(校招)高频面试题

精选100道·含详细解答

面试前刷一遍,心中更有底

★表示出题频率:★★★较高★★★★很高★★★★★最高

一、深度学习与机器学习基础(15道)

1.简述反向传播算法的推导过程及链式法则的应用。★★★★★(考察深度学习底层原理)

2.深度神经网络中梯度消失和梯度爆炸产生的原因是什么?有哪些常用的解决方法?

★★★★★(考察网络训练基础)

3.请对比常见的优化器(SGD、Momentum、AdaGrad、RMSProp、Adam)的区别与优缺

点。★★★★★(考察优化算法原理)

4.L1正则化和L2正则化有什么区别?为什么L1能产生稀疏解?★★★★★(考察正则化与泛

化基础)

5.BatchNormalization和LayerNormalization的原理区别是什么?为什么NLP/大模型中通常

使用LayerNorm?★★★★★(考察归一化机制理解)

6.详细解释交叉熵损失函数(CrossEntropyLoss)的数学原理及其与极大似然估计的关

系。★★★★★(考察损失函数推导)

7.常见的激活函数(Sigmoid、ReLU、GELU、Swish)各有何特点?大模型为何偏爱

GELU或SwiGLU?★★★★★(考察激活函数特性)

8.什么是过拟合与欠拟合?在训练大模型时如何判断并应对这些问题?★★★★★(考察模

型诊断能力)

9.请阐述深度学习中DropOut的工作原理及其在训练和测试阶段的区别。★★★★(考察基

础训练技巧)

10.逻辑回归(LR)和支持向量机(SVM)在本质上有什么异同?★★★★(考察传统机器

学习基础)

11.什么是决策树?简述XGBoost与LightGBM的核心区别及各自优势。★★★★(考察树模型

理解)

12.K-Means聚类算法的K值如何选择?有哪些改进算法?★★★★(考察无监督学习基础)

13.深度学习模型训练中,学习率(LearningRate)衰减策略有哪些?各自适用什么场景?

★★★★★(考察超参调优经验)

14.简述对比学习(ContrastiveLearning)的核心思想及其经典损失函数(如InfoNCE)。

★★★★(考察表征学习前沿概念)

15.在数据极度不平衡的情况下,除了重采样,还有哪些改进损失函数的方法(如Focal

Loss)?★★★(考察复杂场景应对策略)

二、Transformer与NLP核心底层机制(20道)

16.详细推导Transformer中Self-Attention机制的计算公式。★★★★★(考察核心组件推导)

17.为什么Self-Attention的计算公式中需要除以根号dk(缩放因子)?★★★★★(考察底层

数学直觉)

18.Transformer中的Multi-HeadAttention(多头注意力)机制有何作用?它比单头优势在哪

里?★★★★★(考察架构设计意图)

19.请详细解释Transformer的Encoder和Decoder结构在Attention计算上的核心差异。

★★★★★(考察架构底层逻辑)

20.Transformer如何处理序列中单词的位置信息?请对比绝对位置编码与相对位置编码机

制。★★★★★(考察位置编码原理)

21.详细推导RoPE(旋转位置编码)的数学原理,它为什么能体现相对位置信息?

★★★★★(考察大模型主流位置编码)

22.简述ALiBi位置编码的原理及其在长文本外推性上的优势。★★★★(考察位置编码进阶

了解)

23.什么是KVCache?推导其在Transformer自回归生成过程中的计算逻辑和显存占用。

★★★★★(考察底层推理加速原理)

24.BPE(BytePairEncoding)分词算法的具体流程是什么?它解决了传统分词的什么问

题?★★★★★(考察Tokenizer底层算法)

25.WordPiece与BPE在合并规则上有什么核心差异?★★★★★(考察分词算法细节对比)

26.Byte-LevelBPE相比于普通BPE有什么优势?大模型为何广泛采用?★★★★(考察大模

型分词策略)

27.NLP中常用的评测指标BLEU和ROUGE有什么区别?分别适用于什么任务?★★★★★

(考察文本生成评价准则)

28.如何处理大语言模型训练过程中的OOV(OutofVocabulary)问题?★★★★(考察NLP

基础问题解决)

29.BERT和GPT在预训练任务(MaskedLMvsCausalLM)上有何本质区别?★★★★★

(考察经典预训练范式)

30.详细阐述Transformer中残差连接(ResidualConnection)和前馈神经网络(FFN)的作

用。★★★★★(考察网络结构功能)

31.Post-LN和Pre-LN(在Transformer中)有什么区别?大模型为什么通常倾向于Pre-LN或

RMSNorm?★★★★★(考察归一化位置优化)

32.RMSNorm相比于LayerNorm做了哪些简化?为什么能提升大模型训练速度?★★★★★

(考察大模型主流正则化)

33.解释Grouped-QueryAttention(GQA)和Multi-QueryAttention(MQA)的原理及其实际收

益。★★★★★(考察大模型架构演进)

34.稀疏注意力机制(SparseAttention)的核心思想是什么?列举几种主流的实现方案。

★★★★(考察长上下文优化技术)

35.简述MoE(MixtureofExperts)架构的底层逻辑及其在扩展大模型参数量中的作用。

★★★★★(考察大模型稀疏架构)

三、大语言模型架构与训练机制(20道)

36.什么是大语言模型的涌现能力(EmergentAbilities)?谈谈你的理解。★★★★★(考察

对大模型特性的认知)

37.详细描述大模型预训练(Pre-training)阶段的数据清洗与构建流程。★★★★★(考察预

训练数据工程)

38.预训练过程中如何平衡不同语料(如代码、中英文本、数学公式)的比例?★★★★(考

察数据配比策略直觉)

39.GPT-3论文中提出的In-contextLearning(上下文学习)底层逻辑是什么?它与微调的区

别在哪?★★★★★(考察大模型核心能力理解)

40.思维链(ChainofThought,CoT)为什么能显著提升大模型的复杂推理能力?★★★★★

(考察高级提示与推理机制)

41.LLaMA模型的网络架构相比原版Transformer做了哪些具体的改进?★★★★★(考察主流

开源模型架构)

42.GLM(GeneralLanguageModel)架构的核心设计思想是什么?与GPT架构有何异同?

★★★★(考察不同架构的对比理解)

43.大模型预训练中常用的优化器AdamW与Adam的区别是什么?为什么引入Weight

Decay?★★★★★(考察预训练优化算法)

44.简述大模型训练中的学习率预热(Warmup)与余弦衰减(CosineDecay)的作用。

★★★★★(考察训练稳定性策略)

45.混合精度训练(MixedPrecisionTraining)的具体流程是什么?如何防止梯度下溢出?

★★★★★(考察基础显存与加速优化)

46.什么是BF16?它与FP16相比在大模型训练中有什么优势?★★★★★(考察数据类型与

硬件适配)

47.详细解释3D并行技术(数据并行、张量并行、流水线并行)的工作原理。★★★★★(考

察分布式训练基础)

48.深度学习中ZeRO(ZeroRedundancyOptimizer)优化器的三个阶段分别切分了什么?

★★★★★(考察大模型显存优化技术)

49.在张量并行(TensorParallelism,如Megatron-LM)中,前向和反向传播的通信开销是怎

样的?★★★★(考察分布式并行细节)

50.什么是FlashAttention?它是如何通过硬件感知的IO优化算法来加速注意力计算的?

★★★★★(考察底层算子级加速原理)

51.大模型在预训练时突然出现LossSpike(损失突增)甚至发散,可能的原因及排查思路

有哪些?★★★★(考察训练工程排障思维)

52.如何全面评估一个大模型的基础能力?请列举至少三个主流的Benchmark并说明其侧重

点。★★★★★(考察模型评测体系构建)

53.面对模型生成内容的“幻觉(Hallucination)”问题,从预训练和后训练角度可以采取哪些

缓解措施?★★★★★(考察行业痛点解决思路)

54.什么是灾难性遗忘(CatastrophicForgetting)?在大模型持续预训练中如何缓解?

★★★★(考察增量学习问题)

55.简述长上下文大模型(Long-contextLLM)的发展现状,目前扩展上下文窗口的主要技术

路线有哪些?★★★(考察前沿技术视野)

四、参数高效微调与Prompt工程(15道)

56.监督微调(SFT,SupervisedFine-Tuning)的数据构建需要注意哪些质量指标?

★★★★★(考察SFT数据工程思维)

57.详细推导LoRA(Low-RankAdaptation)的数学原理及其在微调过程中的参数更新逻辑。

★★★★★(考察主流高效微调算法)

58.LoRA的秩(Rank)和Alpha参数在实际调参中该如何设置?它们分别影响什么?

★★★★★(考察微调实操经验)

59.QLoRA相比于LoRA做了哪些改进?详细解释4-bitNormalFloat量化技术。★★★★★(考

察极限显存微调机制)

60.简述P-Tuningv2的原理,它与PromptTuning和PrefixTuning的区别是什么?★★★★(考

察PEFT算法演进图谱)

61.什么是Adapter微调?它在Transformer网络结构中的具体插入位置及逻辑是怎样的?

★★★★(考察经典参数高效微调)

62.全参数微调(FullFine-Tuning)与参数高效微调(PEFT)在实际效果和应用场景上有何

差异?★★★★★(考察技术方案选型能力)

63.SFT过程中,如果模型出现严重的过拟合(如只会复述特定句式),应该如何调整策略?

★★★★(考察微调问题诊断能力)

64.什么是指令微调(InstructionTuning)?它与普通的下游任务微调有何本质不同?

★★★★★(考察大模型泛化能力构建)

65.如何通过Few-ShotPrompting提升大模型在特定任务上的表现?其底层机制可能是什

么?★★★★★(考察Prompt工程基础)

66.请解释ToT(TreeofThoughts)和GoT(GraphofThoughts)在复杂推理任务中的应用逻

辑。★★★★(考察高级推理Prompting技术)

67.什么是Self-Consistency(自洽性)在思维链生成中的作用机制?★★★★(考察大模型输

出集成策略)

68.RAG(Retrieval-AugmentedGeneration)系统的核心链路是怎样的?它主要解决大模型

的什么问题?★★★★★(考察检索增强基础)

69.在RAG架构中,如何评估和提升检索模块(Retriever)的召回率和排序效果?★★★★

(考察RAG系统优化点)

70.向量数据库在RAG中扮演什么角色?简述HNSW(分层导航小世界)算法的基本思想。

★★★(考察基础设施与底层算法)

五、RLHF与人类意图对齐(10道)

71.为什么大语言模型在SFT之后还需要进行RLHF(基于人类反馈的强化学习)?★★★★★

(考察对齐技术的必要性)

72.详细阐述RLHF的完整三个阶段(SFT、RM训练、PPO强化学习)及数据流向。

★★★★★(考察对齐框架全流程)

73.奖励模型(RewardModel)的训练数据通常是怎样的(PairwiseComparison)?损失函

数是如何设计的?★★★★★(考察奖励建模数学原理)

74.为什么训练RewardModel时往往使用SFT模型的权重进行初始化?★★★★(考察训练策

略细节)

75.简述PPO(ProximalPolicyOptimization)算法的核心思想及其中的KL散度惩罚项的作

用。★★★★★(考察强化学习核心算法)

76.PPO在训练过程中涉及哪四个核心模型(Actor,Critic,Reward,Reference)?它们各自

的作用是什么?★★★★★(考察PPO训练系统架构)

77.相比于RLHF中的PPO,DPO(DirectPreferenceOptimization)是如何简化对齐流程

的?其数学核心思想是什么?★★★★★(考察前沿对齐算法演进)

78.DPO训练中可能出现哪些不稳定性问题?如何通过调整Beta参数进行控制?★★★★(考

察DPO调参直觉)

79.什么是ConstitutionalAI?如何让模型通过自我评估和修正来实现对齐(RLAIF)?

★★★★(考察少监督对齐前沿)

80.评估对齐模型安全性和“越狱(Jailbreak)”防御能力的标准方法有哪些?★★★(考察模

型安全防范意识)

六、模型推理加速与系统工程(10道)

81.大模型生成时常用的解码策略:GreedySearch、BeamSearch、Top-K和Top-p采样分别

是什么原理?★★★★★(考察生成解码基础算法)

82.为什么在对话类大模型中,Top-p(NucleusSampling)通常比BeamSearch更常用?

★★★★★(考察解码策略适用场景)

83.温度参数(Temperature)在Softmax层是如何起作用的?调高或调低它对生成结果有何影

响?★★★★★(考察核心生成超参理解)

84.vLLM推理框架的核心创新点PagedAttention是如何管理KVCache内存碎片的?

★★★★★(考察主流推理加速框架)

85.什么是ContinuousBatching(连续批处理)?它如何提高模型推理的吞吐量?★★★★★

(考察推理系统吞吐优化)

86.推理过程中的Prefill(预填充)阶段和Decode(解码)阶段在计算密集型和访存密集型属

性上有何区别?★★★★(考察硬件底层性能分析)

87.简述大模型量化技术(PTQ与QAT)的区别,以及主流的INT8/INT4量化对精度的影响。

★★★★(考察模型压缩降本技术)

88.什么是KVCache量化?它主要解决大模型推理过程中的什么系统瓶颈?★★★★(考察

前沿推理显存优化)

89.SpeculativeDecoding(推测解码)的核心思想是如何利用小模型来加速大模型推理的?

★★★★(考察前沿推理加速算法)

90.部署大模型到边缘设备或移动端(如MLC-LLM),主要的挑战和可行的解决方案有哪

些?★★★(考察端侧部署前沿视野)

七、项目经历与复杂场景解决思路(5道)

91.请详细描述你在实习/科研中最深度参与的一个大模型项目,你的核心贡献与技术难点突

破是什么?★★★★★(考察项目深度与技术壁垒)

92.如果要在公司内部从零搭建一个基于开源模型的垂直领域代码助手,请描述你的技术选型

与实施路径。★★★★★(考察系统性工程落地能力)

93.面对一份包含海量脏数据、特殊字符和无意义重复的生语料,你会设计怎样的自动化

Pipeline来进行数据清洗?★★★★★(考察数据处理实操思维)

94.假设微调后的大模型在特定垂类任务上表现很好,但在通用能力上出现了灾难性遗忘,你

会如何排查和解决?★★★★(考察实际问题应对方案)

95.在有限的算力资源(如仅有2张A100显卡)下,如何通过技术手段尽可能训练一个7B规

模的模型?★★★★(考察极端场景工程协调能力)

八、软技能、学习潜力与职业规划(5道)

96.大语言模型技术迭代极快,平时你是如何高效获取、阅读最新Paper并筛选出有价值研究

的?★★★★★(考察技术自驱与学习能力)

97.描述一次你在团队协作中遇到分歧(如算法路线选择不同)的经历,你是如何通过沟通和

实验数据验证解决的?★★★★★(考察团队协作与沟通技巧)

98.回顾你的校招学习过程,你认为自己在大模型算法领域的哪一块基础最扎实?哪一块还有

待提升?★★★★(考察自我认知与复盘能力)

99.作为一个应届生,你认为自己相比于具有多年经验的社招算法工程师,核心竞争力或潜力

体现在哪里?★★★★(考察求职动机与自信心)

100.你对通用人工智能(AGI)未来的发展演进路线有什么个人的见解或脑洞设想?★★★

(考察行业热爱与前瞻思考)

大模型算法工程师(校招)高频面试题解答

一、深度学习与机器学习基础(15道)

本章节主要考察应届生对算法底层数学原理的掌握程度以及排查基础训练问题的直

觉判断力。

Q1:简述反向传播算法的推导过程及链式法则的应用。

答题分析:

考察频率:★★★★★

考察点:考察深度学习底层原理

答题思路:点明反向传播的核心是梯度下降,而链式法则是求导的数学工具。结合前向传

播、计算图及局部梯度连乘进行通俗解释。

避坑点:死记公式却无法用自己的话转述;忽略计算图在工程实现上的意义。

参考回答:

对于反向传播,我的理解它本质上是一个通过误差来寻找最优网络权重的过程。为

了让预测值逼近真实标签,我们先通过前向传播,经过各层的线性变换和激活函

数,计算出最终的损失值。接下来的核心问题就是如何把这个损失分配给网络里的

每一个参数,这就需要借助链式法则。

因为神经网络是复杂的多层复合函数,我们没法直接对浅层参数求全局导数。根据

链式法则,反向传播从输出层开始,逐层把局部的偏导数连乘。具体来说,计算某

一层的权重梯度,就是用上一层传回来的误差梯度,乘上当前激活函数的局部导

数,最后再乘上当前层的输入特征。

平时我们把它对应到计算图中会更好理解。每个节点就是一个数学操作,链式法则

就像沿着数据流向的相反方向,把误差一步步往回传递。我在校园项目里手写简单

的多层感知机时体会特别深,反向传播其实就是把庞大的复合求导任务,拆解成了

单个节点局部求导的乘积。这也是主流深度学习框架能够实现自动求导和高效参数

更新的底层逻辑支撑。

Q2:深度神经网络中梯度消失和梯度爆炸产生的原因是什么?有哪些常用的解

决方法?

答题分析:

考察频率:★★★★★

考察点:考察网络训练基础

答题思路:从链式法则连乘的角度剖析原因,按网络结构、激活函数、初始化和正则化等

维度分类阐述应对策略。

避坑点:仅答概念未能从数学连乘视角解释;罗列解决方法时缺乏层次逻辑。

参考回答:

关于梯度消失和爆炸,本质上要回到反向传播的链式法则来理解。深层网络的求导

是局部梯度的连续相乘。如果每层的局部导数较小,比如用了Sigmoid激活函数,

其导数最大只有0.25,连乘多层后传到浅层的梯度就会趋近于零,导致浅层权重几

乎无法更新,这就叫梯度消失。反过来,如果局部导数持续大于1,连乘下来数值

就会指数级放大甚至溢出,引发梯度爆炸。

在平时的训练实践中,我们有几套相对成熟的应对方案。从网络架构来看,最经典

的手段是引入残差连接。它相当于给梯度回传修了一条直达通道,允许梯度直接跨

层传递,从根本上缓解了深层网络的衰减问题。

细节层面上,我们会选用ReLU或大模型里常看到的GELU这类激活函数,它们在正

半轴的导数为常数,有助于维持梯度规模。配合合理的权重初始化方法也很关键,

并通常会加入归一化层来规范数据分布。如果在跑实验时遇到梯度爆炸,我一般会

在代码里增加梯度裁剪操作,给梯度设定一个阈值上限,这算是防止训练崩溃的有

效兜底手段。

Q3:请对比常见的优化器(SGD、Momentum、AdaGrad、RMSProp、

Adam)的区别与优缺点。

答题分析:

考察频率:★★★★★

考察点:考察优化算法原理

答题思路:按照算法的演进路线(从固定步长到加入一阶动量,再到引入二阶自适应机

制,最后集大成)来串联讲解,展现知识体系的连贯性。

避坑点:背诵零散的特点,没有把它们之间的继承和改良关系讲清楚。

参考回答:

关于常见的优化器,我习惯把它们看作一个不断演进的过程。最基础的SGD虽然直

接,但每次只依赖当前批次梯度,遇到复杂的地形容易来回震荡。为了让更新路线

更平滑,Momentum引入了类似物理惯性的动量机制,把历史梯度结合进来,这样

能在正确方向上持续加速,同时抵消掉一些无意义的横向震荡。

但这俩都没有解决参数学习率一刀切的问题。于是AdaGrad提出自适应机制,通过

记录历史梯度的平方和,让更新频繁的参数学习率变小,低频参数学习率变大。可

这又带来一个新麻烦,训练后期的学习率容易急剧衰减到接近零,导致模型过早停

止学习。

紧接着RMSProp对这个痛点做了改良,不再死板地累积所有历史信息,而是改用指

数滑动平均来计算二阶矩,成功把学习率维持在合理范围。现在主流的Adam其实

就是Momentum和RMSProp的结合体。它既利用一阶动量指引优化方向,又利用

二阶矩自适应调整参数步长。我们在平时搭基线模型时,通常默认选Adam就能拿

到下限很不错的结果。

Q4:L1正则化和L2正则化有什么区别?为什么L1能产生稀疏解?

答题分析:

考察频率:★★★★★

考察点:考察正则化与泛化基础

答题思路:从惩罚项的形式、对模型权重的影响(稀疏vs平滑)对比,重点用几何图像

直观解释L1为何交点常在坐标轴上从而产生稀疏解。

避坑点:只背结论而不懂背后的等高线几何交点原理,或者答不出贝叶斯先验的视角。

参考回答:

我们在训练模型时经常会加入正则项来防止过拟合,L1和L2是最常见的两种手段。

直观上来说,L1正则化是把所有权重的绝对值之和加进损失函数里,而L2是加上权

重的平方和。这种数学计算差异导致了它们对模型的影响完全不同:L2倾向于让权

重变小且分布更均匀平滑,而L1则会迫使那些不重要的特征权重直接变成零,从而

得到一个稀疏的解。

关于L1为什么能产生稀疏解,我比较喜欢从几何等高线的角度来理解。如果我们在

二维空间里画图,L2的约束空间是一个平滑的圆,而L1的约束空间是一个带尖角的

菱形。当我们把原目标函数的等高线不断向外扩展,去寻找与约束空间的第一个接

触点时,它有非常大的概率直接碰在菱形的顶点上。这就意味着其中一个维度的取

值刚好为零。

另外在平时的理论推导中,我们也能从贝叶斯概率的视角来看待它们。L1正则化其

实等价于给模型权重假设了一个拉普拉斯先验,而L2对应的是高斯先验。拉普拉斯

分布在零点附近更加尖锐,这也从侧面解释了L1更容易让模型权重集中在零值附近

的本质原因。

Q5:BatchNormalization和LayerNormalization的原理区别是什么?为什么

NLP/大模型中通常使用LayerNorm?

答题分析:

考察频率:★★★★★

考察点:考察归一化机制理解

答题思路:对比两者的归一化维度(批次vs隐藏层特征),结合NLP任务中变长序列的

痛点,解释BN的局限性和LN的适配性。

避坑点:混淆归一化所在的维度;没有解释清BN在处理变长文本时产生的无效填充数据

问题。

参考回答:

BatchNormalization和LayerNormalization的核心差异,其实在于它们进行归一

化操作的维度切分角度不同。我们可以把输入数据想象成一个三维张量:批次大

小、序列长度和隐藏层维度。BN是顺着特征维度切下去,跨越整个Batch的数据计

算均值和方差;而LN则是顺着Batch维度切块,针对每一个样本内部的所有特征进

行独立计算。

这种维度的区别决定了它们在不同场景下的适用性。在NLP和大模型任务里,我们

平时处理的文本长度往往是不固定的。如果强行用BN,就需要用大量的零去填充短

句子。这不仅会严重污染Batch内的统计参数,而且一旦在推理时遇到比训练样本

都长的句子,BN积累的全局均值和方差就会直接失效,导致模型表现崩塌。

LN完美避开了这个雷区。因为它是针对单个样本自身的特征维度做归一化,完全不

需要考虑其他样本的长度或者整体Batch的大小。这种天然的独立性让它在处理

RNN或者如今主流的Transformer等变长序列任务时,表现得非常稳健。这也是为

什么现在大语言模型的基本网络架构中,几乎清一色采用LN或者它的变体来维持训

练稳定的原因。

Q6:详细解释交叉熵损失函数(CrossEntropyLoss)的数学原理及其与极大

似然估计的关系。

答题分析:

考察频率:★★★★★

考察点:考察损失函数推导

答题思路:解释信息量、熵到交叉熵的演化逻辑,点明交叉熵衡量两个分布的差异,并推

导为何最小化交叉熵等价于最大化似然估计。

避坑点:陷入繁琐的纯数学公式背诵,缺乏对其实际意义的直观描述。

参考回答:

交叉熵损失函数的本质,其实是用来衡量模型预测分布和真实标签分布之间的差

异。在信息论里,我们用“熵”来表示一个系统的混乱程度或者包含的平均信息量。

当我们用模型预测出来的概率分布去近似真实的分布时,这个过程中所需要的额外

信息量就是交叉熵。模型预测得越准,这两个分布就越重合,交叉熵的值也就越

低。

在深度学习分类任务中,这和我们在统计学里常用的极大似然估计是完全相通的。

极大似然估计的逻辑是,既然现在真实数据已经发生了,我们就应该去调整模型参

数,让这组真实数据出现的概率最大化。为了方便计算连乘积,我们通常会加上对

数,把它变成对数似然。

如果我们仔细观察推导过程就会发现,最大化对数似然的过程,刚好就等价于在最

小化交叉熵。平时我们在写代码做多分类任务时,真实标签往往会被处理成One-

Hot编码,只有正确类别的位置是1。代入公式后,交叉熵其实就简化成了求正确类

别对应预测概率对数的负值。它通过数学上的桥梁,把概率优化的目标转化成了非

常容易用梯度下降来求解的损失函数。

Q7:常见的激活函数(Sigmoid、ReLU、GELU、Swish)各有何特点?大模

型为何偏爱GELU或SwiGLU?

答题分析:

考察频率:★★★★★

考察点:考察激活函数特性

答题思路:简述各激活函数演进历程及优缺点。重点说明GELU平滑的非线性和随机正则

特性为何更适合Transformer架构。

避坑点:停留于表面特点,未能结合大模型的深层网络结构解释GELU的统计学优势。

参考回答:

激活函数在神经网络里的作用是引入非线性,这几个经典的函数刚好代表了技术演

进的几个阶段。最早的Sigmoid能把输出压缩到0和1之间,很适合输出层概率预

测,但它在两端容易饱和,导致深层网络出现梯度消失。后来的ReLU简单粗暴,

负半轴直接截断为零,正半轴导数为常数,有效缓解了梯度衰减且计算极快,但在

负区间的神经元很容易永久性死亡。

为了解决这个问题,大模型时代大家开始广泛使用GELU或者Swish。拿GELU来

说,它并不是在零点生硬地转折,而是结合了正态分布的累积概率函数。它在零点

附近是一个非常平滑的过渡曲线,允许少量的负值信息通过。这种设计不仅保留了

非线性表达能力,还能给训练过程带来一点随机正则化的效果。

平时看开源大模型的源码时,我发现LLaMA等模型更偏爱SwiGLU。它在保留

GELU平滑特性的基础上,引入了门控机制,让网络能够动态决定激活的强度。虽

然这会稍微增加一点算力开销,但在庞大的参数规模下,它赋予了前馈网络极强的

表达能力,对模型整体效果的提升是非常显著的。

Q8:什么是过拟合与欠拟合?在训练大模型时如何判断并应对这些问题?

答题分析:

考察频率:★★★★★

考察点:考察模型诊断能力

答题思路:用口语化比喻解释概念,通过训练集和验证集的Loss曲线差异判断,列出加

数据、正则化、早停等常见应对手段。

避坑点:只背书本上的应对手段,脱离大模型训练的真实场景。

参考回答:

过拟合和欠拟合是我们平时训模型最常打交道的两个问题。如果把模型当成一个准

备考试的学生,欠拟合就是他连基础概念都没看懂,不管是做平时的练习题还是期

末考,成绩都很差。过拟合则是他把练习题的答案死记硬背下来了,平时测验能拿

满分,但一上考场遇到没见过的题型就直接崩溃。

在实际训练大模型时,我一般会紧盯训练集和验证集的Loss曲线。如果两个Loss都

居高不下,说明模型容量不够或者学习率没设好,处于欠拟合状态。这时候我会尝

试加大模型参数规模、调整学习率预热策略或者降低正则化限制。如果训练Loss一

路走低,但验证集Loss在某个拐点后开始反弹上升,这就明显是过拟合了。

遇到大模型过拟合,我觉得最核心的解决办法还是从数据端入手,想办法引入更高

质量和多样性的预训练语料。如果数据难以扩充,我会在代码里加入Dropout层、

提高权重衰减系数,或者最直接地运用EarlyStopping机制,在模型开始死记硬背

之前及时把训练停下来,保住它泛化能力最好时的那个权重快照。

Q9:请阐述深度学习中DropOut的工作原理及其在训练和测试阶段的区别。

答题分析:

考察频率:★★★★

考察点:考察基础训练技巧

答题思路:解释训练时随机失活的作用(打破神经元依赖,类似集成学习),强调测试时

全员上阵以及必须进行尺度缩放(期望一致)的原因。

避坑点:遗漏测试阶段权重缩放(或训练时反向缩放)这个核心考点。

参考回答:

Dropout在神经网络里是一个非常经典的抗过拟合机制。它的工作原理很直观,就

是在我们进行模型训练的前向传播阶段,按照设定的概率,随机让一部分神经元的

输出直接变成零。这样做的好处是,每次数据流经网络时,面对的都是一个稍微不

同的瘦身版架构,这就迫使模型不能过度依赖某几个特定的神经元,从而学到更加

鲁棒的特征表达。

从集成学习的视角来看,每次随机失活其实都相当于在训练一个不同的子模型。等

到训练完成真正上线测试时,我们是不开启Dropout的,所有神经元都要全部上阵

协同工作。这就引出了一个很关键的细节问题:如果不加处理,测试时激活值的整

体规模会比训练时大很多。

为了保证训练和测试阶段的数据分布期望一致,我们在工程实现上必须做尺度缩

放。现在主流的做法是“InvertedDropout”,也就是在训练阶段,把保留下来的神

经元输出直接除以保留概率。这样操作以后,我们在测试阶段就不用再对权重做任

何额外缩放了,不仅保持了期望不变,还极大简化了推理代码的复杂度,这也符合

我们在实际业务中追求高效部署的原则。

Q10:逻辑回归(LR)和支持向量机(SVM)在本质上有什么异同?

答题分析:

考察频率:★★★★

考察点:考察传统机器学习基础

答题思路:对比两者的同(都是线性分类器)与异(损失函数不同、对数据的敏感度不

同、核技巧的支持等)。

避坑点:长篇大论背诵公式,忽略了SVM仅依赖支持向量而LR考虑全局数据的核心本质

差异。

参考回答:

逻辑回归和支持向量机可以说是传统机器学习里最经典的一对老冤家了。它们的共

同点很明显,在不引入核技巧的前提下,两者都是用来解决二分类问题的线性分类

器。它们的目标都是在多维空间里找一条直线或者一个超平面,把不同类别的数据

划分开。

不过它们在底层逻辑和损失函数上有本质的区别。逻辑回归使用的是交叉熵损失,

它其实是个全局观念很强的模型,每一条样本数据都会对最终的决策面产生影响,

哪怕是离得很远的数据点也不例外。而SVM用的是HingeLoss,它是一个非常挑

剔的模型,眼里只盯着那些处在边界附近的“支持向量”。远离边界的数据就算再

多,对SVM寻找最优分割线也基本起不到作用。

另外从日常解决复杂任务的角度来看,如果遇到非线性的数据分布,SVM可以通过

核技巧非常优雅地把数据映射到高维空间来寻找线性切面,数学理论非常严密。而

逻辑回归如果要处理非线性,往往只能依靠人工去进行复杂的特征交叉拼接。所以

以前做项目时,如果特征维度不是特别夸张,我往往会先试试SVM看看数据的上

限。

Q11:什么是决策树?简述XGBoost与LightGBM的核心区别及各自优势。

答题分析:

考察频率:★★★★

考察点:考察树模型理解

答题思路:一句话概括决策树本质。随后从树的生长策略、分裂点寻找算法(直方图)等

维度对比XGB与LGB,突出LGB的效率优势。

避坑点:混淆Level-wise和Leaf-wise的区别,未提及直方图算法对内存和计算的优化。

参考回答:

决策树本质上就是一个通过一系列“是或否”的规则,把数据像分岔路口一样一步步

切分到底的树状模型。它直观好懂,但单棵树容易过拟合。后来在此基础上发展出

了集成学习,XGBoost和LightGBM就是其中的两大王者,它们都是把很多棵较弱

的回归树相加,通过梯度提升的方式不断去拟合真实值和预测值之间的残差。

这两者的核心区别主要体现在分裂点的寻找和树的生长策略上。XGBoost早期采用

的是预排序算法,并且是按层生长的策略,这就导致它在面对海量数据时,不仅寻

找最优切分点的计算量庞大,而且对内存的消耗也十分可观。

LightGBM则是为了解决效率痛点诞生的。它引入了基于直方图的算法,把连续浮

点特征变成离散的分箱,极大缩减了内存占用和计算复杂度。同时,它改用了按叶

子节点生长的策略,专门去挑那些分裂收益最大的叶子进行延伸。平时我们在打比

赛或者做表格数据预测时,如果追求极致精度,可能会稍微倾向XGBoost调参,但

如果数据量巨大且追求训练速度,LightGBM通常是性价比最高的首选。

Q12:K-Means聚类算法的K值如何选择?有哪些改进算法?

答题分析:

考察频率:★★★★

考察点:考察无监督学习基础

答题思路:说明K值的经验选择法(手肘法、轮廓系数)。提出K-Means对初始点敏感的

缺陷,进而引出K-Means++等改进算法。

避坑点:只答出如何选K,却忽略了算法本身的初始化缺陷。

参考回答:

在无监督学习里,K-Means算法的核心任务是把数据自动分成K个簇。但在实际跑

数据前,这个K值到底设多少往往是个头疼的问题。我们在工程上比较常用的评估

手段是手肘法,也就是观察不同K值下各个簇内误差平方和的变化。一开始误差会

急剧下降,当K值到达某个点后,下降趋势会突然变得平缓,形成一个类似手臂手

肘的拐点,这个点通常就是比较合理的K值。如果需要更量化的指标,我也会结合

轮廓系数来综合判断簇内紧密度和簇间分离度。

不过传统K-Means有个比较尴尬的缺陷,它一开始是完全随机挑几个点作为初始聚

类中心的。如果运气不好,选的点全扎堆在一起,不仅收敛特别慢,还容易陷入局

部最优解。

为了解决这个问题,我们在项目中更倾向于使用它的改良版K-Means++。这个改进

算法在挑选初始中心时,会刻意让新选出来的中心点尽可能远离已经选好的那些

点。这种基于距离概率分布的初始化策略,很大程度上避开了扎堆现象,不仅让模

型收敛速度显著提升,最终聚类的效果也比普通版本稳定得多。

Q13:深度学习模型训练中,学习率(LearningRate)衰减策略有哪些?各自

适用什么场景?

答题分析:

考察频率:★★★★★

考察点:考察超参调优经验

答题思路:列举阶梯衰减、指数/余弦衰减及Warmup。结合模型训练前期需要快速收敛、

后期需要精细打磨的场景说明适用性。

避坑点:脱离大模型语境,忘记提及Warmup(预热)加余弦衰减这一主流搭配。

参考回答:

学习率在模型训练里就像是开车时的油门,控制得好不好直接决定了模型能不能稳

稳地跑到极值点。最传统的策略是阶梯式衰减,比如每跑几十个Epoch,就把学习

率砍掉一半。这种方法在早期的图像分类任务里很常见,逻辑清晰,但需要人为设

定节点,稍微显得有些僵硬。

为了让过渡更平滑,后来衍生出了指数衰减和余弦衰减。特别是余弦退火衰减,它

的曲线像过山车一样平滑下降,这在很多精细微调的场景下效果很好,能让参数在

训练后期更加细致地在局部最优点附近进行探索,避免步子迈太大跳出了最优解区

域。

如果放到现在的Transformer或者大语言模型训练场景中,最核心的标配策略其实

是Warmup加上余弦衰减。因为大模型刚开始训练时,参数是随机初始化的,系统

非常脆弱。我们会先用极低的学习率慢慢预热,等网络把基础分布稳定下来后,再

把学习率拉高去快速学习特征,最后通过余弦曲线慢慢收敛。这种组合策略目前几

乎已经成为了大模型预训练和微调的行业共识。

Q14:简述对比学习(ContrastiveLearning)的核心思想及其经典损失函数

(如InfoNCE)。

答题分析:

考察频率:★★★★

考察点:考察表征学习前沿概念

答题思路:用“找同类、排异类”通俗解释核心思想。讲解InfoNCE如何通过最大化正样本

相似度、最小化负样本相似度来优化表征。

避坑点:陷入繁琐的公式,没有讲清拉近正样本、推远负样本的几何直觉。

参考回答:

对比学习的核心思想其实非常符合人类的认知直觉。它不刻意去关注一张图片或者

一段文本的具体细节是什么,而是重点学习“哪些东西是相似的,哪些东西是不同

的”。在模型眼里,它的任务就是把从同一个样本增强出来的一对正样本,在特征空

间里拼命拉近,同时把它们和其他不相关的负样本使劲推远。

为了实现这个推拉的过程,我们经常会用到InfoNCE这个经典的损失函数。在理解

上,我们可以把它看作是一个针对大量候选样本的多分类交叉熵。分子部分是在计

算那对正样本之间的相似度得分,而分母则是把正样本和所有陪跑负样本的相似度

全部累加起来。

我们在实际应用对比学习构建高质量特征表示时,InfoNCE的作用就是迫使模型不

仅要认出那个唯一的正样本,还要在海量负样本的干扰下,给正样本打出绝对的高

分。这通常需要构建很大的BatchSize来提供充足的负样本,当模型能在特征空间

里把这种同类聚集、异类排斥的结构学好,它在下游任务里的零样本或少样本泛化

能力就会非常惊人。

Q15:在数据极度不平衡的情况下,除了重采样,还有哪些改进损失函数的方法

(如FocalLoss)?

答题分析:

考察频率:★★★

考察点:考察复杂场景应对策略

答题思路:引出FocalLoss通过降低易分类样本权重、聚焦难分类样本来解决数据不平衡

与难易样本不均的问题,也可提及类别权重交叉熵。

避坑点:只提重采样,未能准确说出FocalLoss中的调节因子如何发挥作用。

参考回答:

在实际业务中遇到数据极度不平衡的情况是常态,比如正负样本比达到一比一百。

除了常规的过采样或降采样,从损失函数的层面入手往往更加优雅有效。最基础的

做法是加权交叉熵,直接给少数类样本赋予更高的权重,错判它需要付出更大的代

价。但这种做法仅仅解决了数量层面的失衡,没有区分样本的难度。

这个时候FocalLoss就是一个非常有力的武器。它发现导致模型学不好的罪魁祸

首,其实是那些数量庞大且极容易区分的简单背景样本,它们累加起来的Loss淹没

了真正需要学习的少数类和困难样本。所以FocalLoss在基础交叉熵前面加了一个

动态调节因子。

这个因子的巧妙之处在于,如果模型对某个样本已经预测得非常自信了,比如概率

高达0.99,调节因子就会自动把这个样本的Loss贡献降到极低。这样一来,模型就

不再把精力浪费在这些容易的样本上,而是强行把优化的注意力集中在那些预测概

率徘徊在0.5附近的困难样本上。我在处理一些极端不平衡的长尾分类任务时,换上

FocalLoss往往能立竿见影地提升少数类的召回率。

二、Transformer与NLP核心底层机制(10道)

本章节重点考察对当前大模型基石——Transformer架构的深度剖析,以及主流位

置编码、注意力机制的数学原理与演进逻辑。

Q16:详细推导Transformer中Self-Attention机制的计算公式。

答题分析:

考察频率:★★★★★

考察点:考察核心组件推导

答题思路:描述Q、K、V的生成来源,解释Q和K点乘求相似度,除以缩放因子后过

Softmax生成注意力权重,最后与V加权求和的过程。

避坑点:逻辑跳跃,未说明QKV是通过输入特征乘以各自的权重矩阵得来的。

参考回答:

自注意力机制可以说是整个Transformer架构的灵魂所在,它的本质是让序列里的

每一个单词都去跟其他单词打招呼,看看它们之间的相关性有多大。在具体计算

时,我们需要基于输入的词向量特征,通过乘以三个不同的可学习权重矩阵,分别

投影出三个角色:查询向量Q、键向量K和值向量V。

计算的第一步是匹配寻找相关性。我们拿当前单词的Q去和序列中所有单词的K做点

积运算。点积的值越大,说明这两个词在当前语境下的关联越紧密。为了防止维度

过大导致点积结果爆炸,我们在数学上会除以一个缩放因子,也就是特征维度的平

方根,把数值拉回合理的范围。

接着,我们把这些点积得分送进Softmax函数,将它们转化为概率分布的形式,保

证所有的权重加起来等于1。最后一步也是最关键的,就是用这组归一化后的注意

力概率权重,去和对应的所有值向量V进行加权求和。这样最终输出的新向量,就

不再是孤立的单词信息了,而是融合了整个句子上下文语境的丰富特征表达。

Q17:为什么Self-Attention的计算公式中需要除以根号dk(缩放因子)?

答题分析:

考察频率:★★★★★

考察点:考察底层数学直觉

答题思路:从点乘结果的方差随维度变大而变大讲起,指出这会导致Softmax落入梯度消

失的饱和区,除以根号dk是为了方差归一化。

避坑点:只笼统说“防止数值过大”,没有深入到方差分析和Softmax梯度的数学本质。

参考回答:

在自注意力机制里,除以根号dk这个缩放操作看起来不起眼,但实际上是保证模型

能够正常收敛的定海神针。这主要是因为我们在计算相关性得分时,使用的是Q和K

的点积操作。我们可以从统计学的角度来思考,假设Q和K向量里每一个维度的元素

都是相互独立且服从标准正态分布的,那它们点积结果的均值虽然是零,但方差会

随着向量维度dk的增大而同比例线性增大。

现在的模型维度动辄成百上千,这会直接导致点积得分变得极其夸张。当把这些数

值很大或极小的原始得分送进后面的Softmax层时,问题就来了。Softmax的曲线

特性决定了,输入数值一旦过大,输出就会极度向某一个最大值倾斜,变成类似于

One-Hot的形式。

更致命的是,处于这个状态的Softmax函数刚好落在梯度极度平缓的饱和区,反向

传播时传回来的梯度几乎为零。这样一来,模型的参数就彻底学不动了。所以,我

们巧妙地除以维度dk的平方根,强制把点积得分的方差拉回到1附近,确保数据落

在Softmax梯度最大的敏感区域,从而维持了整个训练过程的稳定。

Q18:Transformer中的Multi-HeadAttention(多头注意力)机制有何作用?

它比单头优势在哪里?

答题分析:

考察频率:★★★★★

考察点:考察架构设计意图

答题思路:借用“从多个视角看问题”的比喻,解释多头机制将特征切分到多个子空间并行

计算,能捕捉到句法、语义等不同维度的依赖关系。

避坑点:只说能提高效果,没解释清楚多头其实是对特征空间的低维切分而不是无脑增加

参数。

参考回答:

对于多头注意力机制,平时我喜欢把它比作我们人类开会时的头脑风暴。如果我们

只用单头注意力,就像是整个团队只选了一个人去审视这句话,无论他多厉害,看

问题的视角始终是单一且局限的。一旦陷入某个局部的关联中,就很容易忽略其他

层面的信息。

多头机制的巧妙之处在于,它并没有暴力增加模型的参数量,而是把原本很宽的输

入特征维度,均匀切分成了多个较小的子空间,分别生成多组独立的Q、K、V。这

就好比我们雇了不同领域的专家来解析这句话。有的“头”负责盯着名词和动词的语

法关系,有的“头”专门负责捕捉长距离的代词指代,还有的“头”可能关注情感色彩。

它们在各自的子空间里独立计算注意力得分,互不干扰,最后再把这些专家意见拼

接合并起来,经过一次线性映射输出。我们在实际业务中分析模型的注意力权重分

布时经常能发现这种现象,多头机制让模型能够同时从不同位置和不同维度去提炼

语义特征,极大拓宽了模型的表达能力上限,这也是Transformer能够横扫自然语

言处理领域的关键设计之一。

Q19:请详细解释Transformer的Encoder和Decoder结构在Attention计算上

的核心差异。

答题分析:

考察频率:★★★★★

考察点:考察架构底层逻辑

答题思路:Encoder是双向全局可见;Decoder有MaskedSelf-Attention(掩码防作弊)

以及多了一个与Encoder交互的Cross-Attention(提供KV)。

避坑点:漏答Cross-Attention环节,只提及Mask机制。

参考回答:

Transformer的编码器和解码器虽然长的很像,但因为它们承担的任务不同,在注

意力计算的底层逻辑上有着非常本质的区别。Encoder的任务是尽全力去理解输入

的内容,所以它的自注意力是完全开放的。句子里的每一个单词都能同时看到自己

左边和右边的所有上下文信息,这是一种双向且全局的特征提取。

但Decoder的任务是一步步生成未知的文本,这就必须遵循时间序列的因果关系

了。所以Decoder的第一个核心差异,就是采用了带掩码的自注意力机制

(MaskedSelf-Attention)。它在计算得分矩阵时,强制把当前单词之后的位置

全部打上掩码变成极小值。这就像考试时不能提前看答案一样,确保模型只能依靠

已经生成的历史词来预测下一个词。

第二个核心差异是交互方式。Decoder在经过自己的掩码注意力层之后,还会额外

穿插一个交叉注意力层(Cross-Attention)。在这里,Decoder自己生成的特征

变成了查询向量Q,而Encoder提炼好的深层语境特征被当成了键K和值V。这种设

计就像是解码器在每输出一个词之前,都要回过头去查阅一下编码器送来的原始材

料,保证生成内容和输入的意图紧密对齐。

Q20:Transformer如何处理序列中单词的位置信息?请对比绝对位置编码与相

对位置编码机制。

答题分析:

考察频率:★★★★★

考察点:考察位置编码原理

答题思路:Transformer没有RNN的序列直觉,需要人为注入位置信号。绝对编码直接将

位置转为向量与词嵌入相加;相对编码则在注意力得分计算中引入距离偏差,外推性更

好。

避坑点:未能点明自注意力机制本身是具有排列不变性的。

参考回答:

因为Transformer的核心计算是自注意力矩阵的点乘,这个操作本身是具有排列不

变性的。也就是说,如果你把一句话的单词顺序全打乱,模型算出来的各个词自身

的特征其实是一模一样的。为了打破这种盲人摸象的状态,我们必须用额外的手段

把单词在句子里的顺序信息告诉模型。

早期最直观的做法是绝对位置编码。它就好比给每个座位贴上固定的门牌号。无论

是通过正余弦函数预先算好的固定值,还是通过参数学习出来的,它们都是直接生

成一个代表绝对位置的向量,然后硬加到单词的词嵌入特征里。这种做法简单直

接,但在遇到训练时没见过的超长句子时,由于没学过后面的门牌号,外推表现往

往比较差。

为了解决长文本的痛点,后来大家开始转向相对位置编码。它改变了思路,不再关

心单词具体在第一还是第十个位置,而是只关心单词之间的相对距离。它通过在计

算注意力得分或者值向量时,动态加上一个距离偏差项。在平时的使用中我们能明

显感觉到,因为相对位置编码更符合人类理解语言时关注上下文关联的直觉,所以

它在处理长文本和模型的泛化外推能力上,有着绝对的优势。

Q21:详细推导RoPE(旋转位置编码)的数学原理,它为什么能体现相对位置

信息?

答题分析:

考察频率:★★★★★

考察点:考察大模型主流位置编码

答题思路:说明RoPE将位置信息转换为复数平面的旋转角度,Q和K点乘时,绝对位置

的复数相乘会自然转化为角度的相减,从而在不修改公式结构的前提下内含相对距离。

避坑点:深陷推导细节导致表达不清,必须点出“复数相乘即角度相减”这一核心直觉。

参考回答:

RoPE也就是旋转位置编码,可以说是目前主流大模型如LLaMA最核心的基础设施

之一。它最绝妙的地方在于,用一种非常优雅的纯数学方式,把绝对位置的编码悄

无声息地转换成了相对位置的表达。

在推导逻辑上,RoPE借用了复数平面的特性。它把输入的查询向量Q和键向量K两

两分组,当作是二维复数平面上的点。当我们要给第m个位置的单词注入位置信息

时,RoPE并不是像传统方法那样用加法,而是用乘法去旋转这个向量,旋转的角

度直接跟它的绝对位置m成正比。

最神奇的化学反应发生在计算注意力得分的时候。当带有位置m旋转信息的向量

Q,和带有位置n旋转信息的向量K进行内积操作时,根据复数乘法的性质,这不仅

计算了它们原本特征的相似度,而且它们旋转角度的差值刚好就是(m-n)。也就是

说,绝对位置的旋转操作在内积的一瞬间被抵消了,留下来的刚好是两个单词之间

的相对距离。我们在工程实践中发现,这种机制既保留了绝对位置的高效计算,又

完美继承了相对位置的极强外推性,设计得非常精妙。

Q22:简述ALiBi位置编码的原理及其在长文本外推性上的优势。

答题分析:

考察频率:★★★★

考察点:考察位置编码进阶了解

答题思路:ALiBi放弃在输入端加位置向量,而是在注意力计算后的Softmax前,基于两个

Token的距离直接施加一个线性衰减惩罚。

避坑点:混淆它与相对位置编码的实现位置,未强调它不需要任何可学习参数。

参考回答:

ALiBi其实提供了一种非常极简但又极其粗暴有效的解决思路。在它之前,不管是

绝对位置还是相对位置,大家都在绞尽脑汁琢磨怎么把位置信息揉进词向量或者权

重矩阵里。但ALiBi选择直接跳出这个框架,它甚至完全抛弃了在输入端添加任何

位置编码。

它的做法非常直截了当:既然位置越远的单词关联性理应越弱,那为什么不直接惩

罚距离远的注意力得分呢?所以ALiBi会在计算完Q和K的注意力得分矩阵后,在送

入Softmax之前,直接硬生生地扣减掉一个数值。这个扣减的值和单词之间的相对

距离成正比,距离越远扣得越狠,而且不同注意力头的扣减斜率还是预先设定好的

常数,不需要网络去学习。

这种不需要任何学习参数的设计带来了惊人的长文本外推能力。我们在平时做推理

工程时发现,以前的模型如果只用1K长度训练,推理时给个2K文本就胡言乱语

了。但用了ALiBi的模型,哪怕训练时没见过那么长的文本,推理时只要顺着这个

固定的斜率继续扣减分数,依然能保持非常稳定的生成质量,这在资源受限的长文

本应用场景里非常实用。

Q23:什么是KVCache?推导其在Transformer自回归生成过程中的计算逻辑

和显存占用。

答题分析:

考察频率:★★★★★

考察点:考察底层推理加速原理

答题思路:解释自回归生成时每次只预测一个词,历史词的KV重复计算造成浪费,因此

用空间换时间将历史KV缓存。显存占用与Batch、层数、序列长度及特征维度成正比。

避坑点:没讲清楚为什么只缓存KV而不缓存Q;对显存占用的维度拆解不清晰。

参考回答:

KVCache是我们平时在做大模型推理部署时,必须死磕优化的核心瓶颈。因为大

语言模型在生成文本时是标准的自回归过程,也就是每次只能蹦出一个词,然后把

这个新词拼接到原句后面,再丢给模型去预测下一个词。在这个反复循环的过程

中,历史单词的注意力计算其实是被大量重复执行的。

为了打破这种无效的算力浪费,我们引入了KVCache这种典型的空间换时间的策

略。在计算注意力时,当前最新单词的查询向量Q,只需要去和历史所有单词的键K

和值V计算得分就行了。所以我们干脆把前面那些已经算好并固定下来的K和V全部

存在显存里。新来一个词,只需算它自己的Q、K、V,然后把新的K、V追加进缓

存里,这样推理阶段的计算复杂度就从序列长度的平方级瞬间降到了线性级。

不过天下没有免费的午餐,这些缓存下来的张量成了吃显存的黑洞。我们在计算的

时候能明显感觉到,它的显存占用跟BatchSize大小、模型层数、序列的总长度以

及多头注意力分出的维度大小全都是线性正相关的。当我们需要并发处理超长文本

或者大批量用户请求时,如何管理这些KVCache往往就成了决定推理吞吐量的生

死线。

Q24:BPE(BytePairEncoding)分词算法的具体流程是什么?它解决了传

统分词的什么问题?

答题分析:

考察频率:★★★★★

考察点:考察Tokenizer底层算法

答题思路:BPE通过统计高频字符组合进行合并迭代。解决了基于词表分词的OOV(未

登录词)问题和字符级分词的长度冗余问题。

避坑点:表述流程时不清晰,没有提到它是一种介于单词级别和字符级别之间的Subword

机制。

参考回答:

BPE分词算法可以说是现在大模型时代Tokenizer的绝对基石。它的具体流程其实

很像我们压缩文件时寻找重复模式的过程。一开始,它把训练语料里所有的单词全

部打碎成最基础的单个字符作为初始词表。接着,它会在全局疯狂扫描,统计哪两

个相邻字符同时出现的频率最高,比如“e”和“s”经常连在一起,它就把这两个合体

变成一个新的子词“es”加入词表。这样不断循环往复,直到词表大小达到我们预先

设定的阈值。

这种基于统计合并的算法,非常完美地解决了一个历史遗留的痛点。以前我们如果

按完整的英文单词切分,遇到生僻词或者新造的网络词,词表里查不到,就只能输

出一个让人崩溃的OOV(未知词)标记,模型直接抓瞎。如果极端一点按单个字母

切分,虽然没死角,但这会让句子长度变得极其夸张,极大浪费了Transformer那

宝贵的上下文窗口资源。

BPE作为一种子词算法,恰到好处地找到了平衡。对于像“apple”这种常见词,它在

合并后期会复原成一个完整的单词;而对于没见过的罕见词或者复杂的医学名词,

它能自动降级,拆解成认识的前后缀片段。这种弹性和鲁棒性,让模型在面对各种

乱七八糟的真实世界语料时,都能从容应对。

Q25:WordPiece与BPE在合并规则上有什么核心差异?

答题分析:

考察频率:★★★★★

考察点:考察分词算法细节对比

答题思路:BPE仅看两个符号共现的绝对频次进行合并;WordPiece则看互信息(似然概

率),即合并后对整个语言模型似然度的提升程度。

避坑点:只泛泛说它们都是Subword算法,未点明WordPiece基于概率、BPE基于频率的

本质差异。

参考回答:

WordPiece和BPE在平时的使用中经常被放在一起比较,因为它们都是解决未知词

问题的优秀子词分词方案。表面上看,它俩的流程几乎一模一样:都是从最基础的

字符打底开始,然后不断寻找相邻的片段进行合并扩充词表。

但如果剖开底层的合并规则,它俩其实代表了两种截然不同的数学哲学。BPE非常

直接,甚至有些简单粗暴,它纯粹依靠统计学上的绝对频次。只要哪两个相邻的片

段在语料库里出现的次数最多,它就雷打不动地优先合并这两个。这种做法很容易

把那些因为高频词组带来的无意义后缀提前合并掉。

而WordPiece,也就是谷歌在BERT里发扬光大的那一套,它走的是概率驱动的路

线。它不看绝对频次,而是评估如果把这两个片段合并成一个新词,能不能让整个

训练语料的语言模型概率似然值得到最大程度的提升。通俗点说,它考虑的是互信

息,也就是这俩片段合并后带来的“信息增益”。所以在实际跑模型切词时我们会发

现,WordPiece切出来的片段,往往比BPE更符合人类对词根、前缀等语言学直觉

的拆分习惯。

Q26:Byte-LevelBPE相比于普通BPE有什么优势?大模型为何广泛采用?

答题分析:

考察频率:★★★★

考察点:考察大模型分词策略

答题思路:点出普通BPE在遇到多语言和生僻符号时词表庞大且依然会产生OOV的问

题。解释Byte-LevelBPE下沉到字节层面的降维操作,以及它带来的全语言覆盖优势。

避坑点:没有把视线从“字符”下移到计算机底层的“UTF-8字节”,导致解释不到位。

参考回答:

普通BPE在面对多语言或者各种生僻表情包时,有个很让人头疼的问题,就是基础

字符表容易膨胀得非常庞大。而且如果在构建词表时没见过某些罕见字,推理时依

然会爆出未登录词的错误。Byte-LevelBPE就是为了解决这个痛点而设计的。

它的核心思路是降维,抛弃了以字符为基础单位的做法,而是下沉到了计算机最底

层的字节层面。因为任何语言、文本或者符号,在计算机里最终都会被编码成UTF-

8字节流。这就意味着,它的初始词表大小被固定在了256个基础字节,无论后续怎

么组合合并,这个基础底座是完整覆盖所有可能性的。

在大模型的工程实践中,这种做法带来的收益立竿见影。我们不再需要为不同语种

去维护臃肿的独立词表,哪怕是遇到少见字符或者全新的特殊符号,模型也能把它

拆解成底层的字节来进行组合认知。这赋予了模型很强的通用性和鲁棒性,也是现

在主流开源大模型普遍采用它的根本原因。

Q27:NLP中常用的评测指标BLEU和ROUGE有什么区别?分别适用于什么任

务?

答题分析:

考察频率:★★★★★

考察点:考察文本生成评价准则

答题思路:对比两者的核心统计对象(精确率vs召回率)。BLEU看重生成的词在参考

句中有没有,适合机器翻译;ROUGE看重参考句的词在生成句里覆盖了多少,适合文本

摘要。

避坑点:将两者的精确率和召回率属性搞反,或者脱离具体业务场景干巴巴背概念。

参考回答:

平时在做文本生成任务的评测时,BLEU和ROUGE是最常打交道的两个指标,它们

俩就像是评价同一份作业的两种不同视角的老师。BLEU的核心侧重点是精确率,

也就是模型自己生成的这些词里面,到底有多少是命中了人工参考答案的。它非常

看重你有没有说错话或者生造词,所以在要求高度准确的机器翻译任务里,我们通

常会把它作为核心指标。

ROUGE的视角刚好反过来,它更偏向于召回率的逻辑。它重点关注的是,人工给

出的那些关键参考词汇,模型生成的句子里到底覆盖到了多少。在文本摘要或者长

文本提取任务里,只要模型把核心要点都捕捉到了,稍微加点啰嗦的修饰语也是可

以接受的。

在实际的项目打磨中,我们很少只看单一指标。比如做问答系统时,我习惯把这两

个指标结合起来观测,顺便再引入一些基于模型语义的评测工具,这样能避免单纯

依靠词汇重合度带来的机械性偏差,把评价体系构建得更符合人类的真实观感。

Q28:如何处理大语言模型训练过程中的OOV(OutofVocabulary)问题?

答题分析:

考察频率:★★★★

考察点:考察NLP基础问题解决

答题思路:回顾早期增加词表、映射为[UNK]的旧方法,随后重点引入Subword机制

(BPE、WordPiece)的自动降级拆解能力,并提及字节级处理的终极方案。

避坑点:还停留在传统的增加字典或全当成UNK处理的旧时代思维,没体现大模型时代

的分词进化。

参考回答:

以前在做传统的自然语言处理项目时,遇到OOV问题往往很让人抓狂。最原始的办

法是把所有不认识的词强行替换成一个统一的未知符号标记,但这直接抹杀了词语

本身附带的特征信息。另外一种思路是扩大词表,但词表太大不仅浪费内存,还会

拖慢整个计算矩阵的速度。

如今在训练大模型时,我们已经通过引入子词机制很好地化解了这个矛盾。像BPE

或者WordPiece这类算法,它们不再死板地把一个完整的单词当作最小单位,而是

把它拆解成词根、前缀或者后缀。当模型遇到一个全新的词汇时,它可以从容地把

它打碎成几个早就认识的子片段来处理,依靠上下文去拼凑语义。

如果要追求更彻底的解决方案,我现在会倾向于直接使用Byte-LevelBPE。因为

它直接切入到UTF-8的字节流层面去构建基础单元,在它的字典里已经不存在所谓

的未知字符了,所有的乱码或新字都可以被拆成字节组,从底层逻辑上把OOV这个

概念变成了历史。

Q29:BERT和GPT在预训练任务(MaskedLMvsCausalLM)上有何本质区

别?

答题分析:

考察频率:★★★★★

考察点:考察经典预训练范式

答题思路:对比双向填空与单向生成的差异。BERT是完形填空,适合理解类任务;GPT

是文字接龙,适合生成类任务,这也是大模型最终走向GPT路线的原因。

避坑点:只描述网络结构的差异(EncodervsDecoder),而忽视了题目要求的“预训练

任务”本质。

参考回答:

BERT和GPT在预训练任务上的区别,其实代表了两种完全不同的训练哲学。BERT

走的是完形填空的路线,它采用的是掩码语言模型机制。在训练时,它会随机把句

子里的一部分词遮挡住,然后让模型结合左右两边的上下文去猜这些词是什么。这

种双向获取信息的方式,让BERT对语义的理解非常透彻,在文本分类、情感分析

这些判别类任务上表现得特别亮眼。

GPT走的则是标准文字接龙的路线,也就是因果语言模型。它在训练时被剥夺了

看“未来信息”的权利,只能依靠已经给出的上半句去老老实实预测下一个词。它是

一个纯粹的单向从左到右的过程。

虽然早期看起来这种单向预测在阅读理解上会吃亏,但我们在实际使用中发现,这

种生成式的预训练任务天然契合人类说话和写作的习惯。当模型的参数量和预训练

数据量不断扩大后,文字接龙的任务赋予了GPT强大的上下文生成能力和零样本泛

化能力,这也是为什么现在的大模型几乎清一色选择在这个路线上不断深耕的原

因。

Q30:详细阐述Transformer中残差连接(ResidualConnection)和前馈神经

网络(FFN)的作用。

答题分析:

考察频率:★★★★★

考察点:考察网络结构功能

答题思路:解释残差连接如何打通梯度高速公路避免衰减;解释FFN如何通过升降维和非

线性激活来实现深层特征加工。

避坑点:把注意力机制和FFN混为一谈,没讲清FFN在非线性映射和特征记忆存储中的独

特地位。

参考回答:

在Transformer的内部结构里,残差连接和前馈神经网络是两个经常被忽视但却起

着关键作用的基础构件。残差连接的作用其实就是给反向传播的梯度修了一条直达

的高速公路。随着网络层数越来越深,如果没有这条捷径,误差在层层传递中很容

易就消散了。它把前一层的输入原封不动地加到当前层的输出上,不仅稳住了梯

度,还让深层网络不至于丢掉浅层的原始信息。

而前馈神经网络FFN,则承担了特征深度加工的角色。自注意力机制虽然理清了单

词之间的相互关系,但它的本质还是做线性的特征融合。如果没有非线性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论