当前位置: 首页> 财经> 创投人物 > 开发游戏用什么编程软件_字节小程序官网_电商网站如何避免客户信息泄露_哈尔滨关键词优化报价

开发游戏用什么编程软件_字节小程序官网_电商网站如何避免客户信息泄露_哈尔滨关键词优化报价

时间:2025/8/28 14:57:33来源:https://blog.csdn.net/sdsasaAAS/article/details/142942727 浏览次数:0次
开发游戏用什么编程软件_字节小程序官网_电商网站如何避免客户信息泄露_哈尔滨关键词优化报价

在本文中,我们将详细介绍 XLNet 模型的整体架构,并从输入到输出逐步分析其各层的维度变化。这有助于更好地理解数据在模型中的流动方式,以及每一层计算如何影响张量的形状变化。本文适合想深入了解 XLNet 模型细节的朋友,尤其适合对自然语言处理(NLP)领域感兴趣的学习者。

一、前置假设

为了更清楚地解释 XLNet 的维度变化,我们假设以下参数:

  • 输入序列长度(Sequence Length)L = 10(10 个单词)
  • 批次大小(Batch Size)B = 2(每个批次有两个句子)
  • 嵌入维度(Hidden Size / Embedding Dimension)H = 768(每个单词用 768 维的向量表示)
  • 注意力头的数量(Number of Attention Heads)A = 12
  • 层的数量(Number of Transformer Layers)N = 12(总共 12 层编码器)

二、XLNet 的模型结构

1. 输入层

1.1 输入嵌入
  • 输入序列首先通过嵌入层,将每个单词通过查找嵌入矩阵得到一个向量。

  • 输入的初始形状是 (B, L),即 (2, 10),表示两个句子,每个句子有 10 个单词。

  • 经过嵌入矩阵后,每个单词被映射为一个 768 维的向量,因此维度变为:

(B, L, H) = (2, 10, 768)
1.2 相对位置编码
  • XLNet 使用 相对位置编码,它并不直接改变输入的维度,而是将位置信息加入到计算过程中的注意力权重中。

2. 置换语言建模(Permutation Language Modeling)

  • 输入通过 置换语言建模 进行多种序列置换。

  • 置换后的序列形状保持不变:

(B, L, H) = (2, 10, 768)
  • 置换建模的目的是增强模型对上下文的理解,使得每个单词都可以在不同的训练阶段处于不同的位置。

3. Transformer 编码器

XLNet 的核心是基于 Transformer-XL 的编码器,它有 N = 12 层,每一层包括 自注意力层前馈神经网络层

3.1 自注意力层(Self-Attention Layer)
  • 自注意力层用于捕获序列中的全局依赖关系。

  • 输入维度为 (B, L, H),通过多头注意力机制进行计算。

  • 假设有 A = 12 个注意力头,则每个注意力头的维度为:

head_size = H / A = 768 / 12 = 64
  •  输入会被分为 12 个注意力头,因此每个头的形状为:
(B, L, head_size) = (2, 10, 64)

经过自注意力计算后,12 个注意力头的输出会被合并为一个形状为 (B, L, H) 的张量:

(B, L, H) = (2, 10, 768)
3.2 前馈神经网络层(Feed-Forward Neural Network, FFN)
  • 自注意力层的输出会传入前馈神经网络层(两个全连接层)。

  • 第一个全连接层的隐藏维度通常是输入的 4 倍,即 3072

    • 输入形状为 (B, L, H)

      (B, L, 4H) = (2, 10, 3072)
      
  • 经过激活函数(例如 GELU),然后通过第二个全连接层将维度缩回原始大小:

    (B, L, H) = (2, 10, 768)
    
3.3 残差连接与层归一化(Residual Connection & Layer Normalization)
  • 在自注意力层和前馈神经网络层中,都会使用 残差连接层归一化 操作。

  • 这些操作不会改变张量的维度,输出仍为:

    (B, L, H) = (2, 10, 768)
    

4. 重复 Transformer 编码器层

  • 上述编码器层(自注意力 + 前馈层)会被重复 N = 12 次,每层输入和输出的维度保持相同:

    (B, L, H) = (2, 10, 768)
    

5. 输出层

  • 最终输出:经过所有编码层之后,输出的形状仍为:

    (B, L, H) = (2, 10, 768)
    
  • 在实际应用中,输出通常会经过一个全连接层,以适应具体的任务:

    • 语言模型任务:预测每个词的概率分布时,输出会被映射到词汇表大小的维度 V

    • (B, L, V) = (2, 10, V)
      
    • 分类任务:如果是句子分类任务,可能会取特定位置(例如 [CLS] 标记)的表示进行分类预测,将输出维度转换为 num_classes

    • (B, num_classes) = (2, num_classes)
      

三、总结

模型层次输入维度输出维度
输入嵌入(B, L)(B, L, H)
自注意力层(B, L, H)(B, L, H)
前馈神经网络层(B, L, H) -> (B, L, 4H) -> (B, L, H)(B, L, H)
Transformer 编码器(B, L, H)(B, L, H)(重复 12 次)
最终输出(B, L, H)(B, num_classes)(B, L, V)

XLNet 的架构在经典 Transformer 基础上做了多项增强,包括 置换语言建模长序列处理相对位置编码,使得每层的注意力可以捕获更多信息,从而在下游任务中实现更好的性能。在每一层中,数据的维度保持一致,但每个词的表示通过多层次的自注意力和前馈网络不断被丰富和提升。

如果大家有任何问题或者疑问,欢迎在评论区留言,我们一起探讨学习!

关键字:开发游戏用什么编程软件_字节小程序官网_电商网站如何避免客户信息泄露_哈尔滨关键词优化报价

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: