找回密码
 立即注册
搜索
热搜: 淘宝 补单 抖音
查看: 83796|回复: 0

拼多多算法实习一面面试题8道|含解析

[复制链接]

16

主题

40

回帖

98

积分

注册会员

积分
98
发表于 2024-5-20 17:46:25 | 显示全部楼层 |阅读模式
13本七月在线内部电子书在文末,自取~

公众号福利

👉回复【100题】领取《名企AI面试100题》PDF

👉回复【干货资料】领取NLP、CV、ML、大模型等方向干货资料






问题1、介绍transformer的详细流程。
Transformer可以从以下几个角度来描述,输入处理、编码器,解码器和输出处理。

输入处理:
    输入序列通过词嵌入(Embedding)层转化为高维向量表示。加入位置编码(Positional Encoding),使得模型能感知序列中各个词的位置。

编码器(Encoder):
    由 N 层相同的编码器层组成,每层包括两个子层:多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed-Forward Neural Network)。每个子层后都有残差连接(Residual Connection)和层归一化(LayerNormalization)。多头自注意力机制:将输入映射到查询(Q)、键(K)、值(V)矩阵,通过自注意力计算输出表示。前馈神经网络:对每个位置的表示独立地进行两次线性变换和激活函数操作。
解码器(Decoder):

    也由 N 层相同的解码器层组成,每层有三个子层:多头自注意力机制(对解码器自身输入)、多头注意力机制(对编码器输出)和前馈神经网络。
    每个子层后也有残差连接和层归一化。解码器的多头自注意力机制在训练时使用掩码(Masking),以确保当前位置只能关注之前的位置。

输出处理:
    解码器的最终输出经过线性变换和 Softmax 层,得到每个位置上可能的词汇分布。
问题2、谈谈位置编码RoPE。
旋转位置编码(Rotary Position Embedding, RoPE)是一种位置编码方法,用于在 Transformer 中引入位置信息。与传统的位置编码(如正弦-余弦位置编码)不同,RoPE 通过对输入进行旋转变换来嵌入位置信息。其主要步骤如下:

    旋转变换:对每个位置的嵌入向量进行旋转操作,旋转角度与位置相关。位置编码矩阵:通过计算角度来构造位置编码矩阵,该矩阵应用于输入向量,进行旋转变换。嵌入位置信息:通过旋转变换后的向量既包含了词汇信息也包含了位置信息,使模型能够感知序列中的相对位置。
RoPE 的优势在于能更好地捕捉相对位置信息,提升模型在长序列上的表现。问题3、谈一谈对transformer的QKV的理解。QKV 是指查询(Query)、键(Key)和值(Value),是 Transformer 中自注意力机制的核心概念。

    查询(Q):表示当前词语的查询向量,用于在序列中查找相关信息。

    键(K):表示序列中所有词语的键向量,用于与查询向量计算相似度。

    值(V):表示序列中所有词语的值向量,是计算注意力加权平均后的输出。
计算流程如下:

    线性变换:输入序列通过三个独立的线性变换,分别得到 Q、K、V 矩阵。
    相似度计算:计算查询与键之间的点积相似度,得到注意力得分矩阵。归一化:对注意力得分进行 Softmax 归一化,得到注意力权重。加权求和:用注意力权重对值向量进行加权求和,得到输出向量。
QKV 机制使得模型能够动态关注序列中相关的信息,提高了表示的灵活性和表达能力。问题4、transformer中多头注意力的QKV是一个吗?
在多头注意力机制中,Q、K、V 并不是一个,而是分为多个头(head),每个头都有独立的 Q、K、V 矩阵。具体步骤如下:

    分头处理:将输入向量通过线性变换生成多个头,每个头有独立的 Q、K、V 矩阵。
    独立计算:每个头独立计算注意力得分和加权求和,生成多个注意力输出。合并输出:将所有头的注意力输出拼接在一起,通过线性变换生成最终的输出向量。
多头注意力机制使模型能够关注不同的子空间,提高了模型的表达能力和稳定性。问题5、残差连接为什么要加上恒等映射。
残差连接(Residual Connection)通过恒等映射(Identity Mapping)将输入直接加到输出上。这种设计有以下几个好处:

    缓解梯度消失问题:在反向传播过程中,梯度可以直接通过恒等映射传递到前层,从而缓解梯度消失问题,使得深层网络更易于训练。
    信息流动更顺畅:通过残差连接,模型可以更容易地保留和传递输入信息,有助于更深层次的网络捕捉重要特征。提升性能:实践证明,残差连接能显著提高模型的收敛速度和最终性能。
问题6、BN和LN的功能和区别。
批归一化(Batch Normalization, BN) 和 层归一化(Layer Normalization, LN) 都是用于加速神经网络训练并提高模型稳定性的方法,但它们在具体实现和应用场景上有所不同。

    功能:

      BN:对小批量数据(batch)进行归一化,通过减去均值和除以标准差,使得每个特征在一个批次内均值为 0,方差为 1。

      LN:对每个样本的每一层的所有神经元进行归一化,独立于批量数据,使得每层输出的均值为 0,方差为 1。

    区别:

      计算方式:BN 计算的是一个批次内的均值和方差,适合小批量大数据训练;LN 则是对每个样本的每层输出进行归一化,不依赖于批量大小。
      应用场景:BN 通常用于 CNN 和大批量训练场景;LN 更适用于 RNN、Transformer 等需要处理变长序列的小批量数据场景。

问题7、对L1和L2正则化项的理解。
正则化项用于防止模型过拟合,通过在损失函数中加入惩罚项来约束模型的复杂度。

L1 正则化:

    惩罚项是权重的绝对值之和,即 \lambda \sum|w|。

    能促使权重稀疏,产生许多权重为零的特征,有助于特征选择。

L2 正则化:
    惩罚项是权重的平方和,即 \lambda \sum w^2。通过减小权重值,使模型更加平滑,有助于防止过拟合但不会导致权重稀疏。
问题8、了解的优化器有哪些?常用的优化器包括:
    SGD(随机梯度下降):
      基本的优化方法,逐步更新权重。优点:简单易实现;缺点:收敛慢,容易陷入局部最优。
    Momentum:
      在 SGD 基础上加入动量项,缓解震荡,提高收敛速度。
    Adagrad:
      对每个参数自适应学习率,适合处理稀疏数据。缺点:学习率不断减小,收敛可能变慢。
    RMSprop:
      对 Adagrad 的改进,控制学习率的衰减,适合处理非平稳目标。
    Adam(自适应矩估计):
      结合了 Momentum 和 RMSprop 的优点,使用一阶和二阶矩的估计自适应学习率。优点:收敛快,适应性强,广泛应用于各种深度学习任务。
    AdaDelta:
      对 Adagrad 的进一步改进,通过限制累积梯度和参数更新量。
    AdamW:
      是 Adam 的变种,加入权重衰减项,防止 L2 正则化对学习率的影响。

    免费送

    ↓以下13本书电子版免费领,直接送↓






    扫码回复【999】免费领13本电子书

    (或找七月在线其他老师领取)

       



    点击“阅读原文”抢新人福利~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 电商在线-淘江湖淘宝卖家论坛 ( 湘ICP备2021012076号|湘ICP备2021012076号 )

GMT+8, 2024-12-27 10:56 Powered by Discuz! X3.5

快速回复 返回顶部 返回列表