NLP相关面试题

一、残差连接的作用是什么?

残差连接的主要作用是解决深层神经网络的优化难题。具体来说:

①它通过y = x + F(x)的结构,提供了梯度的直接传播路径 ,有效缓解了梯度消失问题。

②它让网络能够轻松学习恒等映射,当某些层不需要时,可以直接跳过,避免了深层网络的性能退化。

③在Transformer中,残差连接与层归一化结合,确保了多头注意力和前馈网络在几十层深度下仍能稳定训练 ,这是BERT、GPT等大模型成功的关键技术支撑。

可以说,没有残差连接,我们就无法构建如今这种规模的深度学习模型。

二、attention为什么使用多头?

 ①表达能力增强:通过引入多个注意力头,每个头都可以关注不同的语义信息,从而能够捕捉更丰富的特征表示。不同的注意力头可以学习到不同的关注权重分布,帮助模型更好地理解输入序列的不同部分。

 ②模型泛化性能提升:通过多头机制,模型可以同时考虑多个关注粒度的信息。每个头可以关注序列中的不同位置或不同的关系,使得模型能够处理不同尺度和不同层次的语义关系。这有助于提高模型在不同任务和不同数据集上的泛化性能。

 ③抗噪能力增强 :多头机制能够减少注意力机制中的随机性,因为每个头都可以专注于不同的注意力权重。这样可以降低模型对于噪声的敏感性提高模型的鲁棒性和稳定性

 ④并行计算加速:注意力机制的计算通常是高度并行的,而多头注意力进一步增加了并行计算的程度。多个注意力头可以同时计算,加快了模型的训练和推理速度。

三、transformer中multi-head attention每个头为什么要进行降维?

①在Transformer的Multi-Head Attention中,对每个head进行降维是为了增加模型的表达能力和效率。每个head是独立的注意力机制,它们可以学习不同类型的特征和关系。通过使用多个注意力头,Transformer可以并行地学习多种不同的特征表示,从而增强了模型的表示能力。

②然而,在使用多个注意力头的同时,注意力机制的计算复杂度也会增加。原始的缩放点积注意力Scaled Dot-Product Attention的计算复杂度为O(d²) ,其中d是输入向量的维度。如果使用h个注意力头,计算复杂度将增加到O(hd²) 。这可能会导致Transformer在处理大规模输入时变得非常耗时。

③通过降低每个head的维度,Transformer可以在保持较高的表达能力的同时,大大减少计算复杂度。降维后的计算复杂度为O(h°d²),其中°d是降维后的维度。通常情况下,会远小于原始维度d,这样就可以显著提高模型的计算效率。

四、lambda表达式格式以及应用场景?

lambda函数就是可以接受任意多个参数(包括可选参数)并且返回单个表达式值的函数。语法:lambda [arg1 [,arg2, argn]]:expression

应用:

①lambda函数比较轻便,即用即仍,适合完成只在一处使用的简单功能。

②匿名函数,一般用来给filter,map这样的函数式编程服务

③作为回调函数,传递给某些应用,比如消息处理。

五、在transformer架构中有几种掩码,作用分别是什么?

掩码的核心是屏蔽无效或不允许的信息,防止注意力机制在计算时访问这些位置,transformer架构中有两种掩码,分别是填充掩码与未来信息掩码。

填充掩码:由于输入模型的数据要保持等长,那么较短的文本就需要做Padding处理,因此这部分信息是无效的,所以需要填充掩码。

未来信息掩码:由于transformer是并行的、一次性输入数据,所以解码时需要防止未来信息被模型看到,保证自回归生成的性质,因此需要未来信息掩码。

六、fasttext和word2vec差异?

① Word2Vec: Word2Vec模型主要有两种训练算法,分别是CBOW(Continuous Bag of Words)和Skip-gram,CBOW以上下文预测中间,Skip-gram以中间预测上下文

② FastText: FastText是基于Word2Vec的扩展,它将单词视为字符级别的n-gram序列的集合。FastText通过学习字符级别的n-gram向量表示来捕捉词汇内部的信息,并将它们组合成单词向量。

七、bert和transformer的区别?

BERT是基于Transformer架构的模型, 采用了Transformer Encoder的部分, 舍弃了Decoder的部分.

BERT的编码器包含12层 Encoder Block, 而2017版本的Transformer包含6层Encoder Block.

BERT中的位置编码是可训练的 , 而Transformer中是写死不变的.

Transformer中的激活函数采用Relu , BERT中的激活函数采用Gelu

八、BERT非线性的来源在哪里?

主要来自两个地方:前馈层的gelu激活函数和self-attention。

前馈神经网络层:在BERT的Encoder中,每个自注意力层之后都跟着一个前馈神经网络层。前馈神经网络层是全连接的神经网络,通常包括一个线性变换和一个非线性的激活函数,如gelu。这样的非线性激活函数引入了非线性变换,使得模型能够学习更加复杂的特征表示;

self-attention layer:在自注意力层中,查询(Query)、键(Key)、值(Value)之间的点积得分会经过softmax操作,形成注意力权重,然后将这些权重与值向量相乘得到每个位置的自注意输出。这个过程中涉及了softmax操作,使得模型的计算是非线性的

九、模型训练的流程是怎样的?

(14251)

编写存储模型训练使用的各种路径和超参数的配置文件;

准备数据→准备模型→准备损失函数→准备优化器;

内层遍历轮次,外层遍历批次;

模型预测→计算损失→梯度损失→自动微分→参数更新;

保存模型或训练好的参数字典

十、什么是梯度爆炸和梯度消失,lstm是如何缓解的?

梯度爆炸指的是在反向传播过程中,梯度值变得非常大,导致权重更新过大,模型难以收敛。梯度消失指的是在反向传播过程中,梯度值变得非常小,导致权重更新过小,模型难以学习长期依赖关系。

LSTM是一种特殊的RNN变体,通过引入门控机制来解决梯度消失问题。LSTM中的门控单元(GateUnits)可以控制信息的流动,允许模型选择性地保留和更新信息。LSTM中的遗忘门(ForgetGate)可以决定前一时刻的记忆是否被遗忘,输入门(InputGate)可以决定当前输入的哪部分信息被添加到记忆中,输出门(OutputGate)可以决定输出的哪部分记忆被传递到下一层或输出层。通过门控机制LSTM可以有效地捕捉和传递长期依赖关系,从而解决了传统RNN中的梯度消失问题。

相关推荐
嵌入式-老费3 小时前
Easyx图形库应用(和opencv协同)
人工智能·opencv·计算机视觉
放羊郎3 小时前
基于三维点云图的路径规划
人工智能·动态规划·slam·点云·路径规划·激光slam
算家计算3 小时前
英伟达亮出最强AI芯片!性能暴增3倍,算力竞赛迎来新节点
人工智能·nvidia·芯片
lxmyzzs3 小时前
【图像算法 - 30】基于深度学习的PCB板缺陷检测系统: YOLOv11 + UI界面 + 数据集实现
人工智能·深度学习·算法·yolo·缺陷检测
Patrick_Wilson3 小时前
AI 时代下的工程师核心竞争力思考
人工智能·ai编程·求职
AI优秘企业大脑3 小时前
更新维护:定期更新、功能修复、性能优化的全面指南
大数据·人工智能
阿里云大数据AI技术3 小时前
云栖实录 | AI原生搜索引擎:Elasticsearch 换“芯”——AI原生搜索内核增强技术
人工智能·搜索引擎
Dev7z3 小时前
基于Swin Transformer的皮肤病变分类与诊断系统
人工智能·深度学习·transformer
阿里-于怀3 小时前
行业首发!Spring AI Alibaba + Nacos 支持分布式 Multi-Agent 构建
人工智能·分布式·ai·nacos·saa·multi agent