大模型算法八股

发布时间:2026/11/4 19:50:11
大模型算法八股

一、深度学习与Pytorch

(一)神经网络与训练过程

输出:

线性组合-加入偏置-激活函数

对于第一次正向传播,权重的值将随机初始化。

sigmoid:输出(0,1)之间,输入值过大或过小梯度消失,输出总是正值,可以用作输出层;计算exp比较耗时。

tanh:(-1,1),以0为中心,比sigmoid更快,梯度消失

relu:收敛速度更快,计算量小,缓解梯度消失,稀疏激活性(输入为负时输出为0),隐藏层首选的激活函数,缓解过拟合问题;输入总为负不可用,没有完全解决梯度消失。

相比于sigmoid,有助于随机梯度下降方法收敛。

leakly relu:解决了神经元死亡问题。

selu:防止了梯度消失

离散(分类)计算损失:分类交叉熵

前向传播:输入-线性组合(添加偏置项)-激活函数-重复前两步-与真实值比较计算损失值

反向传播:weight新=weight旧-lr*(损失对权重的偏导)

梯度下降:更新权重减少误差值。

随机梯度下降(SGD):每次更新参数时,不计算全部数据的梯度,而是随机用一个样本或一小批样本的梯度来近似更新。

训练模型时,一次使用一批数据点应用梯度下降更新参数(32到1024),更新完所有数据点后,即为一个epoch。

使用链式法则来计算损失值对于某个权重的梯度。

梯度消失与梯度爆炸:

梯度消失:靠近输出层的hidden layer梯度变化大,所以很快会收敛;靠近输入层的梯度变化慢,接近于随机初始化。

梯度爆炸:前面layer的梯度训练后变大,后面layer梯度指数级增大。会导致无法从训练数据中学习,甚至出现无法训练的nan;

产生原因:梯度消失为激活函数不合适,梯度爆炸为权重初始化过大。

解决方法:欢迎relue,leakly relu,selu等激活函数;标注化,残差连接,lstm用于改善(由于latm中复杂的门);

梯度爆炸还有梯度正则化,梯度剪切。

如何确定出现梯度爆炸:模型更新中的损失快速变化,梯度值快速变化,权重变为NAN,每一层梯度值都大于1

批量归一化(BA):

在激活函数前,对每一个mini-epoch计算其方差和期望,进行缩放和平移。

作用:可以提高学习率,降低dropout,将每层输出变为(0,1)分布,解决了梯度问题。

权值共享:

对一张图进行卷积的过程中,使用的是同一个卷积核的参数,就是一个卷积核不改变核内系数的情况下处理图片。

微调模型(fine-tunning):

使用训练好的sota模型去做特征提取。

为什么只训练后面几层:越往前的层越记录通用知识,如果全部训练由于数据集不足容易过拟合。

dropout:

背景:数据集太少,参数太多,容易过拟合,于是删除一些参数

方法:前向传播过程中某个神经元p的概率失活,使得模型泛化性更强。

*模型预测时不需要dropout

流程:临时随机删除一些神经元——前向传播,反向时在未失活的神经元进行更新——重复(恢复,再随机删除)

如何选择随机失活的概率:input默认0.8,hiiden_layer默认0.5

为什么可以解决过拟合:每次随机失活都可以视为一个新的模型,减少神经元之间复杂的共生关系。

Adam(即参数更新方法):

SGD:随机梯度下降,只看当前位置坡度

SGD+动量改进:相当于坡度加惯性,可以加速训练,由于如果判断本次梯度与历史梯度相同,就加速训练。

Adam:如果梯度变化很统一,就会加大步伐,如果变化忽左忽右,就会减小步伐

组合策略:先用Adam快速下降,再用SGD微调。

模型设计实验过程中,可以使用Adam进行快速实验优化;上线或发布前,用SGD进行极致调优。

核心原理:维护梯度的一阶矩(平均值)与二阶矩(方差/平方值的平均值)

vt代表参数的波动幅度,步长与这个有关

场景:适合大模型,大参数以及稀疏数据;但泛化能力不如SGD。

一阶优化与二阶优化(牛顿法,BFGS法):取一阶泰勒展开与二阶泰勒展开;

为什么用一阶:二阶计算复杂。

batch_size与epoch的平衡:

batch_size大,收敛速度比较慢,参数更新所需样本量比较大,但沿着更准确的方向进行,所需内存变大。

batch_size小:容易欠拟合。

一个iteration是一个batch_size训练一次。

一个epoch是样本集中所有样本训练一次。

SGD每来一个新样本就训练一次,而不是全部样本训练,所以是online training

学习率太大太小,如何选择:

太小:收敛过程非常缓慢。

太大:反复震荡,loss爆炸,甚至无法收敛。

基于策略的调整:固定,指数衰减,多项式衰减

神经网络为什么不使用拟牛顿法:

计算量太大(计算瓶颈):神经网络参数动辄上千万甚至上亿。拟牛顿法需要构建一个 N×NN×N 的近似海森矩阵(时间复杂度 O(N2)O(N2) ),在如此高维的参数空间下,计算和存储这个矩阵的成本高到无法承受。

非凸问题容易失效:神经网络的损失函数是极其复杂的“非凸”地形(充满鞍点和局部极小值)。拟牛顿法更适合解决平滑的凸问题,在复杂的非凸地形中容易陷入鞍点或因局部近似不准而失效。

BN和dropout训练和测试的差别:

BN:训练时,对每个batch进行初始化,利用每个batch的均值和方差,测试时,利用移动平均法求得总体均值和方差。

dropout:只有训练的时候采用。

sigmoid和softmax联系与区别:

联系:两者都是交叉熵损失。

区别:sigmoid将一个realvalue映射到(0,1)的值,用于二分类。softmax将维向量映射到和为1的向量,用于结合topk进行多分类。

改进的softmax:

large——softmax:加一个margin,保证大于某一个阈值,使得类间距更大,类内间距更小。

center-loss:让类内每一个值都向中心点靠近。

深度学习调参技巧:

准备数据:大量高质量干净的带标签的数据,随机初始化,归一化。

预处理:0均值与1方差化

minibatch:128,过大容易过拟合

梯度归一化:梯度算出来后要除以minibatch数量

学习率:从一般lr开始逐渐减小,0.01

使用验证集:可以知道什么时候开始降低学习率(验证集开始震荡),什么时候停止训练(训练集损失下降,验证集损失上升)

权重初始化:高斯分布乘以很小的数。深度网络中如果随机初始化加SGD一般不好(由于初始化权重太小,类似于梯度消失)

RNN和LSTM中,梯度范数必须位于约束在15或者5(模型波动非常剧烈的任务)

Adam收敛更快,但没有向量化SGD好,除非模型非常复杂。

如果使用图像训练集,可以把图像扭转一点来实现扩充训练集。

使用dropout

early_stop:参数长时间未更新,训练停止

评价最终结果时,可以多做几次,平均他们的结果。

神经网络调参:

损失函数,学习率,batch_size,是否归一化,激活函数,优化算法,是否过拟合。

初始化神经网络权重

全0初始化,随机初始化,Xavier初始化(尽可能让输入和输出符合相同的分布),何氏初始化(针对relu的,通过放大权重方差来补偿 ReLU 把负值置零造成的信号衰减,从而让深层网络的激活值和梯度更稳定。)

FNN,RNN与CNN的区别

FNN:信息单向流动,无记忆,无空间局部性。

RNN:在隐藏状态上增加循环,有时间记忆,序列数据处理。

CNN:卷积核在局部区域滑动扫描,有空间局部性。用于图像,计算机视觉。

GAN:用于生成式对抗网络。

其他:

若w初始化为全0,可能直接导致模型失效,无法收敛。

神经网络数据预处理方法:归一化,中心化(零均值)

由于神经网络训练一般为矩阵相乘得到,所以一般用图形处理单元(GPU)实现,简单地同时执行所有操作,而非一个一个执行。

提高小型网络的精度:模型蒸馏,利用AutoML进行网络结构的优化。

神经网络中使用的损失函数:交叉熵,欧氏距离,对比损失,合页损失

鞍点问题:梯度为0,但不是极值点。

为什么卷积核设计尺寸都是奇数:保证中心点位置,填充边缘时保证两边都能填充。

(二)CNN

卷积神经网络:

拿着探照灯(卷积核3*3)在整个画面上移动,用探照灯上的数据与照到的部分进行内积,接下来进行移动,就能得到一个比较小的矩阵,这就是卷积。

卷积神经网络组成:输入层(数据预处理,归一化,去均值),卷积层(线性相加),激励层(激活函数),池化层(探照到的部分取平均或最大),全连接层。

池化层:减少数据维度,缓解过拟合,保持一定程度的旋转和平移不变性。

RNN在处理非常长序列时效果很差,一维CNN代价很小。所以RNN之前可以用一维CNN来预处理(也就是卷积一次)。

经典网络

LeNet:用于数字识别(卷积-池化-卷积-池化-全连接(softmax))

AlexNet:用多层小卷积来替代大卷积。

出色原因:使用了relu激活函数,层数更多,用dropout,大数据训练,GPU实现,LRU层归一化。

VGG:全部使用3*3小卷积核,2*2最大池化层,通过加深网络结构来提升性能。

优化了卷积神经网络的结构,训练的特征数量非常大。更多的非线性变换,学习能力更强。GoogleNet:增加卷积核个数从而增加神经网络宽度,使用1*1卷积降维减少参数量。

ResNet:残差网络解决了网络退化(层数增加准确度下降)的问题。

为什么不用dropout:训练过程中对单个样本学习会引入多个样本的信息,相当于加入噪声了。

随着网络层数升高,反向传播过程中梯度逐渐消失,从而无法进行参数更新,于是训练精度和测试精度迅速下降。

DenseNet:前面所有层与后面层密切连接,前面所有层的特征图用拼接方式而不是相加方式传给后面的图。

缓解梯度消失(每一层直接连接loss和input)参数量少(每一层包含所有层的输出,只需要很少的特征图即可),加强特征传播,但内存占用高。有正则化的作用,减少过拟合。

卷积层基本参数:

卷积核大小(卷积层的感受视野),卷积核步长(一般为1,不是意味着降采样),填充方式,输入输出通道数,感受野(输出的一个像素点代表原始图像多大)

计算卷积层输出大小

卷积层参数大小:(卷积核长度*卷积核宽度*通道数+1)*卷积核个数

卷积在图像中的作用:

浅层卷积:边缘特征

中层卷积:局部特征

深层卷积:全局特征

如何减少卷积层参数数量:

堆叠小卷积核替代大卷积核(VGG;3*3+3*3替代5*5);分离卷积;使用1*1卷积;在卷积前使用池化操作。

进行卷积操作时必须同时考虑通道和区域吗:

标准卷积是的,通道分离:先对每个通道进行单独卷积,在对卷积后的结果顺着通道维度进行卷积。

宽卷积,窄卷积的好处是什么:

对不够卷积的地方进行填充,就是宽卷积;对不够的直接舍弃,就是窄卷积。

反卷积(转置卷积):

正向传播时乘以卷积核的转置矩阵,反向传播时乘以卷积核的矩阵,由卷积结果近似重构输入数据。

本质是双向训练。

提高卷积神经网络的泛化能力:

增加数据

采用更大的批次:每批次采用更大数据有利于模型学习到正确的模式

调整数据分布:更多学习某类型数据导致其更偏向于输出这类数据

调整网络结构:浅层网络容易使模型泛化能力不足欠拟合,叠加卷积层;深层网络容易没有充足训练数据导致过拟合,减少卷积层数提高泛化能力。

数据增强:平移旋转等变相增加训练数据

权值正则化:权重函数中增加一项权重正则项作为处罚,处罚损失较小时网络权重过大的问题

dropout:网络结构的正则化

全连接,局部连接,全卷积,局部卷积:

全连接:每个输出神经元获得所有输入神经元的信息,用于末尾。

局部连接:层间神经元只有局部连接,减少参数规模。

全卷积:层间神经元只有局部范围的连接,这个范围内采用全连接,连接采用的参数在不同感受域共享。

局部卷积:感受域内采用全连接,感受域之间采用局部连接。

卷积神经网络的优点,为什么用小卷积核:

多个小卷积核堆叠比大卷积核好得多;

局部连接;权值共享(一组连接共享同一个权重);下采样(使用图像局部性原理,抽样图像,只保留关键信息,去掉特征图中不重要的样本降低参数量)

BN,LN,IN,GN,SN区别:

本质是在不同维度上进行归一化

特征图为[N,C,H,W],batchsize,通道数,特征图的高度和宽度

其他:

池化方法:最大池化与平均池化

1*1卷积的作用:加入非线性函数,对卷积核通道进行升维和降维,减少参数数量。

卷积核是否一定越大越好:会导致计算量大幅度增加,但可以提升感受域从而找到文本等相关特征,如果卷积核太小,不能对输入特征进行有效组合。

空洞卷积:在完全不增加参数(计算成本)的情况下,让卷积核的视野(感受野)变得非常大。实际上是探照灯扎了几个孔(扩张率来决定),然后移动,从而扫描出来参数比较少的很大的矩阵。

卷积神经网络在cv和NLP区别:cv是连续数据(如灰度等);NLP为离散取值(如独热编码)。

卷积层与全连接层:卷积层是局部连接,局部信息,全连接层是全局信息;卷积层的局部连接是全连接时,全连接层是卷积层的特例。

max pooling(最大池化):选取滑动窗口最大值。

全局平均池化:平均每页特征图所有值。

(三)RNN

RNN特点:

RNN与传统神经网络区别:会把前一次输出结果,带到下一次隐藏层中。

缺点:短期记忆问题,无法处理很长的序列,训练需要投入极大的成本。

与传统ANN异同点:都属于BP误差反向算法;但RNN网络参数输入-隐藏-隐藏-输出是共享的,使用梯度下降算法时,每一步输入不止取决于当前状态,还取决于之前若干步的状态。

为什么RNN训练时loss波动很大:memory使得梯度时大时小,无法个性化lr。可以设置临界值,当梯度大于某个临界值时直接截断。

RNN为什么梯度消失:tanh或sigmoid是一堆小数在做累乘,自然会变小,随着序列越来越长,后面的梯度会趋于0,这就是梯度消失。选择时优先选择tanh,由于tanh相对而言梯度较大。

如何缓解梯度消失问题:选用合适的激活函数;加入BA层(加速收敛,控制过拟合);改变传播结构(LSTM)。

(四)LSTM

核心:遗忘门,输入门,输出门。

二、Transformer

Transformer能够背后的数学假设,什么数学模型:

1.自注意力机制,自注意力机制允许模型在处理序列数据时,能同时考虑序列中不同位置的关系,更好捕捉上下文信息。

2.举个例子:在模型计算下一个词是正确的概率时,会用

来计算,即该词的评分除以所有词评分和,评分函数则用到了自注意力机制。

3.自注意力机制:

ai为注意力权重,即这个词对前面词的关注度,g(x,xi)是 x与前文第i个词的关联性得分。

4为了计算注意力权重,也就是ai,使用了缩放点积自注意力,算出原始相似度(q*k),进行缩放(除以维度),归一化为权重(softmax)。

Transformer中可训练的qkv矩阵从何而来,为什么要使用qkv。

1、 通过线性变换从输入的词嵌入向量变换而来的,张量内容则是通过训练得到的,他们的作用是将输入的词嵌入向量映射到更高的空间,在训练过程中调整参数,从而使得模型可以理解序列中的语义。

2、由于在注意力机制中,模型通过q和k的相互关联度来计算注意力权重,根据这些权重来对value求和。使得模型能够在理解语义的同时关注不同位置的依赖关系,更好捕捉序列上下文信息。

3为什么不是只设置value,是因为q和k可以提供更丰富的信息,使得模型能够更精确地利用注意力权重,只用value可能会限制模型的表达能力。

Transformer的feed forward层(FFN)在训练时在训练什么

在训练过程中FFN层通过线性提取和非线性映射来学习输入序列的表示,从而为模型下游任务提供更好的输入特征。

1、用于每个词的特征深度提取与融合,Attention层负责词之间互通有无,FFN则负责对单个词内部特征进行深度加工。(如国王与王后)。

2用于从连续词汇空间到离散词汇映射。

3.训练按独立位置处理的能力。也就是这个向量不论处于哪个位置,只要特征向量不变就这样处理。

具体分析Transformer的embedding层,Attention层与FFN层的复杂度

Transformer的位置编码如何表达对应关系,位置信息在不同的encoder之间传递会丢失吗

position encoding是用于向输入的词中嵌入添加位置信息,来让模型理解输入序列词中的位置顺序。

常用的方式是正弦余弦位置编码,不使用训练,而是用固定的公式,把每个位置映射成固定的向量,再加到词嵌入上。巧妙的地方在于,对于固定偏移k,(sin,cos)相当于把向量旋转了一个角度,角度只取决于相对距离k。

位置信息不回再encoder传递中丢失,因为位置编码会在每个encoder和decoder中加入的,因此位置信息随着词嵌入流经整个模型。

Transformer中的层归一化蕴含的神经网络假设是什么,为什么使用layer Norm而不是Batch Norm;有没有其他更好的normalization实现。

假设:在每层输入过程中,所有神经元的输入都是独立同分布的,也就是分布应该相似且稳定。

原因:Transformer中,每个位置的输入都是独立处理的,同时由于设计不同位置注意力的计算,所以没有btach norm的概念。

还有一些例如:instance,grop normalization。

Transformer神经网络为什么能很好的表示信息

1self-attention机制。能够同时考虑不同位置的依赖关系,同时根据输入位置的重要性来动态调整注意力,更好地捕捉长距离序列中的语义和依赖关系。

2、多头注意力机制。扩展为多头注意力机制,使得模型在不同注意力头学到不同的信息,提高多样建模能力,更好理解不同层次的语义信息。

3、位置编码。使得模型能够理解输入词的位置信息,允许模型在使用时区分词的不同位置。

4、残差连接和归一化。缓解梯度消失和梯度爆炸问题。使模型更好训练和利用深层网络。

5、由多个encoder和decoder层组成。

分析encoder和decoder的依存关系:

描述Transformer中tokenizer的数学原理,运行流程,问题与改进方法

数学原理:核心是把文本序列转化成离散的标记或词语,然后转化为对应向量。涉及词汇表的构建,可以用基于频率或基于子词的方法来实现,切词与标记算法按照文本特定规格来实现。

运行流程:

构建词汇表:根据训练数据构建词汇表,表中包含了所有模型需要处理的字符。

分词:将原始文本分割成多个不同的词,可以采用例如根据空间,词频,字符等不同算法。

映射:将分词映射成词汇表中对应的向量。可能会有例如OOV这样的问题。

词汇表大小:词汇表过大会导致模型推理开销很大(由于向量大小增加):

动态词汇表:根据如词频阈值等构建动态词汇表。

拆分子词:将词汇拆分成子词。

预训练词语:将预训练的词汇嵌入分词模型初始化词汇表。

把自注意力机制复杂度从n^{2}变为n的方法:

局部注意力:让模型只关注该词周围一部分词语之间的注意力。

窗口注意力:设置一个窗口,只关注窗口内的词语之间的注意力。

可学习的位置偏移:训练模型来指导窗口多大。

多尺度注意力:同时计算不同大小窗口的注意力权重,加权平均。

Bert的CLS能够有效表达Sentence Embedding吗

取决于序列长度与复杂性。

在序列长度和复杂度比较低时,由于cls能够汇总这句话的语义内容,因此可以在比较简单的语义比较中通过比较cls来取得不错的效果。

但如果长度和复杂度很高,标记不足以提供足够的信息,这时候就要使用更上层,或结合多个位置表示获得全面的词嵌入。

使用字节对(BPE)算法来分词对于跨语言(cross-lingual)模型有什么意义,是否有问题以及改进

优点:

跨语言通用性:BPE是基于统计的分词算法,可以自学习来构建词汇表,并生成通用的标记化方式。

语言无关:使用不同语言单词或子词分解成相同的字符,使得语言模型处理不同语言文本时有一定通用性。

处理稀缺语言问题:处理稀缺语言可以减小词汇表大小,缓解模型训练和推理压力。

问题:

词汇表不一致(不同语言上的词汇表有差异),子词过于细粒度。

处理方法:

共享子词单位:在不同语言的语料库中共享子词单位。

后处理:对子词单位进行合并。

多尺度表示:同时使用多个不同粒度的子词单位(苹果和苹同时出现)。

如果在对Transformer进行训练时,有些训练集很大,有些很小,如何训练可以使得Transformer可以比较好的处理不同类型的任务

类别加权损失函数:训练集较少的权重较大,较多的权重较小。

数据增强:平移旋转等。

迁移学习:先在数据集较多的进行预训练,然后再较少的上面进行微调。

数据重采样:对样本较多采用数据重采样来减少样本量。

类别分层采样:采样类别分层采样确保每个批次有各个类别的样本。

如何使用多种类小样本对Transformer训练取得很好的分类效果,解释架构设计与数学原理

类别加权损失函数:通过设计不同权重的函数,使得模型对于样本量较小的类别更重视;常见的例如加权交叉熵损失,每个类别的权重与样本数量成反比。

过采样与欠采样:过采样来增加小样本,欠采样减少大样本;可以帮助模型更好的学习类别之间的特征和区分性信息。

类别嵌入:引入类别嵌入向量作为模型的输入,使得模型在预训练后提前了解类别之间的特征和区分性信息。

类别自适应注意力:模型可以自主动态调整注意力权重。

模型迁移:同上一个问题。

在给Transformer输入embedding的时候是否可以用多方来源的词嵌入训练模型,阐述数学原理以及工程上的具体实现限制。

是的,这种方法称为多嵌入策略,可以使用不同数据集,不同来源的数据来进行训练,提高模型在不同领域的能力。

数学原理是,在Transformer模型中,embedding本质是将不同的词映射到词汇表中的不同向量中,通过使用多方来源的词嵌入来训练,实际上是为模型提供了更丰富的语义信息,提高模型的泛化能力,可以充分利用模型在不同领域的知识。

嵌入方式:简单平均,加权融合(权重可以设定或者训练),门控机制(动态调整不同词嵌入的贡献),领域特定嵌入(类似于预训练和后训练)

更深更宽的神经网络是不是意味着更强的模型

架构的工程化落地:更深更宽的神经网络通常意味着更多的注意力头与更多的层,意味着模型可以更完整和详细地理解语义信息。工程化落地时,更大的神经网络可以适应不同的任务和数据,因为他们有更强大的表示能力,能更好的理解和处理复杂的情况。

参数的信息表达能力:更多的参数意味着更强大的信息表达能力,使得模型可以学习到语义中更细与更复杂的信息,提高神经网络对语义的建模能力。从而产生更具有泛化能力的预训练模型。

训练任务:更大规模数据集训练——学习到语言的统计规律——提高新任务的适应能力;更长时间训练——更好地利用数据集的信息。

如何大规模降低Transformer中embedding中的参数数量?

方法:使用低纬度嵌入矩阵和共享参数。一种方法是使用词嵌入的哈希技巧来减小词嵌入的维度和参数数量。

基本原理:利用哈希函数把每个词语映射到不同数量的桶中,每个桶挑选一个代表向量,从而降低了词嵌入的维度,减少词的参数数量。

工程实践:选择哈希函数(使用简单取模或者复杂的一致性哈希);确定桶数量(根据期望的参数以及词嵌入维度);构建哈希表;模型训练(对于每个词,先读取对应的桶,再取出桶中的共享词嵌入向量)

描述Transformer中不同layer的FFN直接的关系,例如在bert不同层的cls有什么关系,对角阵随着layer加深有何变化。

不同层的FFN之间存在一定的关系,虽然他们在每一层的位置之间有相似性,但是他们在模型整体之间有一定差别。

cls:在不同层的cls标记输出被用作整个句子的表示,他们都是整个句子的含义,但不同层之间有一些微小差别,可能因为他们学到了不同的语义信息。

对角阵的变化:在自注意力机制中,q与v相乘得到注意力矩阵,而对角阵则意味着每个位置对自己的关注度,不同层之间大致相同,层数加深,可能对角阵内容有些变化,因为可能学习到不同的语义。通常情况下,应该保持稳定。

如何降低Transformer层的FFN层参数数量

可以使用减少隐藏层维度以及减少隐藏层参数数量实现,可以用来防止过拟合。利用卷积代替全连接(由于卷积有局部连接和参数共享的特征),矩阵分解技术(将权重矩阵分解为两个或多个小矩阵的乘积)。

Transformer层的layer过多导致的后果

梯度消失和梯度爆炸,过拟合(由于参数过多,如果训练数据集不足),计算资源消耗,训练时间增加。

Bert中的NSP可能存在的问题,这些问题背后的数学原理是什么,该如何解决,可以去掉训练任务吗?

问题:缺乏泛化性(预测两个句子是否相邻的方法不具有泛用性),提高训练开销,不平衡的训练样本(负样本数量远超正样本)

数学原理:本质是一个二分类问题,输入两个句子,通过线性变化和softmax,来给出这两个句子是否相邻。

解决方法:多任务学习(不止训练是不是相邻句子),平衡训练样本,简化模型结构(删去NSP)

在某些情况下可以去掉NSP训练。

分析Transformer的Batch大小与信息困惑度ppl之间的关系以及数学原理。

Batch对梯度计算的影响(较大的梯度使得梯度更新更稳定,由于使用均值降低噪声的影响),对参数更新的影响(较大的梯度使得参数更新方向更准确),对ppl的影响(利用对梯度和参数更新的影响来降低困惑度)。

从数据的角度分析为什么Transformer在对参数的quantization时使用INT8。包括压缩具体过程,KL散度,长尾分布等,如何处理量化后模型质量降低的情况。

微调:模型量化后,对量化后的模型进行微调,使用原始数据集重新训练模型,降低量化对模型性能的影响,提高模型稳定性。

使用复杂的量化方案,如混合精度量化。

动态量化:通过输入数据分布动态调整量化参数,从而保持模型精度。

从数学角度阐述为什么Neuron Network能够代表任意人复杂度的信息,使用神经网络具体表达有什么优势

非线性映射关系;通用逼近定理(即足够多神经元的但隐藏前馈神经网络理论上可以逼近任意函数),并行计算。

神经网络具体优势:

灵活性,自动特征学习(神经网络可以自动识别语义信息等特征,无需手动输入特征),端到端学习(直接从原始输入到最终输出结果的端到端,无需手动处理)

描述三种判断Transformer中神经元相对重要程度的具体方法以及背后的数学原理

梯度重要性(分析神经元对损失函数梯度相对重要程度),激活值重要性(分析激活值分布),信息熵重要性(输出信息熵)