攻防ai基础篇-transformer模型详解

admin 2025年4月28日23:46:45评论12 views字数 2893阅读9分38秒阅读模式

作者:yueji0j1anke

首发于公号:剑客古月的安全屋

字数:1898

阅读时间:    20min

声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。本文章内容纯属虚构,如遇巧合,纯属意外

目录

  • 前言

  • Transformer整体架构

  • Transformer输入

  • Self-Attention

  • Encoder

  • Decorder

  • 总结

0x00 前言

随着各大厂商的ai全面接入,笔者刚好把以前学习的深度学习知识拿出来晒晒,顺便温故而知新

对于transformer,大家的第一印象是什么呢?

对我而言,第一次接触到transformer还是gpt,毕竟这玩意儿就是基于transformer的大语言模型。

所以,重要吗,当然重要。

这也是笔者为什么选择拿transformer当作该专题的开山之作。

0x01 Transformer整体架构

transformer结构主要由 encoder和decoder 两部分组成

攻防ai基础篇-transformer模型详解

每部分都包含6个block

其是如何把 法语的一句·我是学生· 转换成 英语的 ·我是学生·的呢

step 1:获取每一个单词的表示向量x,x由 单词的embbdding与单词位置的Embedding相加而成(机器学习模型都只能处理数值输入,为了把这些离散对象正确传入,会通过向量方式投影到低维空间表达这些对象的内在联系,原理就是矩阵乘法)

比如->

  • "cat" → [0.23, 0.58, -0.17, 0.90]

  • "dog" → [0.31, 0.46, -0.23, 0.86]

  • "apple" → [-0.59, 0.05, 0.75, -0.11]

攻防ai基础篇-transformer模型详解

最后把每个词的x组合一起,形成一个矩阵

step 2: 将得到的向量矩阵传入encoder,经过6个block之后得到一个编码信息矩阵 C,我们用矩阵X(n*d)表示,n表示单词个数,d表示维度

step 3: 将矩阵c传到decoder,进行翻译

攻防ai基础篇-transformer模型详解

这是大致流程,下面详细讲解各部分细节(会很多。)

0x02 Transformer输入

刚刚讲到单词输入会转换成x向量,由单词Embedding和单词位置Embedding相加得到

1.单词Embedding

直接使用一些公开的、在大规模数据上训练好的词向量文件,如Google的Word2Vec、Stanford的GloVe、FastText等,即可获取单词Embedding

2.单词位置Embedding

除了单词Embedding,还需要表示单词出现的位置。Transformer不使用RNN结构,从而不能利用单词顺序信息。如何解决呢?

单词位置Embedding应运而生,用PE向量表示,其维度和单词Embedding一样,在transformer中,其采用公式计算得到

攻防ai基础篇-transformer模型详解

pos表示位置,d表示维度

0x03 Self-Attention(自注意力机制)

攻防ai基础篇-transformer模型详解

该图为transformer内部结构图,红色的部分就是Multi-Head Attention,由多个Self-Attention组成

encoder block包含1个Multi-Head Attention,decoder block包含两个Multi-Head Attention,除此之外还包括一个add & norm, add表示残差连接防止网络退化,norm表示层归一化,对每一层激活值归一化

1.Self-Attention 结构

攻防ai基础篇-transformer模型详解

该图为Self-Attention结构,计算的时候需要用到矩阵Q(查询) K(健值) V(值),三个矩阵是通过接受输入或者上一个Encoder Block的输出 通过线性变换得到的

2.Q、K、V的计算

使用线性变阵矩阵WQ,WK,WV计算得到

攻防ai基础篇-transformer模型详解

3.Self-Attention输出

得到Q、K、V之后就可以计算输出了,计算公式如下

攻防ai基础篇-transformer模型详解

1.计算 Attention 分数(打分)

攻防ai基础篇-transformer模型详解

2.缩放

攻防ai基础篇-transformer模型详解

3.归一化(softmax)

攻防ai基础篇-transformer模型详解

4.加权求和输出

攻防ai基础篇-transformer模型详解

4.multi-head Attention

我们已经知道 Self-Attention是如何输入输出的了,而multi-head Attention 则是由多个 Self-Attention 组合形成

攻防ai基础篇-transformer模型详解

multi-head Attention 包含多个 Self-Attention,我们假设是8个 得到8个输出矩阵之后,把他们concat一起,传入一个Linear层,得到最终的输出

攻防ai基础篇-transformer模型详解

0x04 Encoder结构

攻防ai基础篇-transformer模型详解

红色打圈部分便是encoder部分,包含了Muti-Head Attention + Add&Norm + Feed Forward + Add&Norm,那我们来好好了解Add&Norm 与 Feed Forward

1.Add&Norm

该层前面介绍过,由Add与Norm组成,前者为残差运算,后者为层归一化

公式如下

攻防ai基础篇-transformer模型详解

x表示Muti-Head Attention或Feed Forward的输入

add表示X+MultiHeadAttention(X),为残差连接,解决网络退化问题

norm 为层归一化,将每一层神经元的输入转成均值方差都一样的,加快收敛速度

2.Feed Forward

为两层的全连接层,第一层激活函数为Relu,第二层不使用激活函数

攻防ai基础篇-transformer模型详解

0x05 Decoder结构

攻防ai基础篇-transformer模型详解

上图红色部分为Decoder block结构,包含两个Mutl-Head Attention层和一个softmax层

1.第一个 Muti-Head Attention

第一个 Multi-Head Attention 采用了 Masked 操作,因为在翻译的过程中是顺序翻译的,即翻译完第 i 个单词,才可以翻译第 i+1 个单词。通过 Masked 操作可以防止第 i 个单词知道 i+1 个单词之后的信息

实际操作中通输入mask矩阵来确定哪些词是遮挡和不遮挡

攻防ai基础篇-transformer模型详解

在计算QKt之后需要进行softmax,计算attention score,这个时候会用mask矩阵遮挡信息

攻防ai基础篇-transformer模型详解

从而导致但是单词 0 在单词 1, 2, 3, 4 上的 attention score 都为 0。依次类推

2.第二个 Muti-Head Attention

和之前差别不大,但需要注意的是,其中self-attention的K、V矩阵不是使用上一个Decorder Block输出计算出,而是由encoder计算出的信息编码矩阵C计算出

3.softmax预测输出单词

Decoder block 最后的部分是利用 Softmax 预测下一个单词,在之前的网络层我们可以得到一个最终的输出 Z,因为 Mask 的存在,使得单词 0 的输出 Z0 只包含单词 0 的信息

攻防ai基础篇-transformer模型详解

Softmax 根据输出矩阵的每一行预测下一个单词:

攻防ai基础篇-transformer模型详解

0x06 Transformer总结

首先给transformer来句盖棺定论的话:其以自注意力机制为核心,实现高效、高质量的序列建模

核心

1.self注意力机制:其中用到Q、K、V向量通过输入进行线性变换得到

2.多头注意力机制:让模型以多种方式多角度对序列信息进行融合,深入挖掘多样化、复杂的特征和联系

参考文章 https://zhuanlan.zhihu.com/p/338817680

原文始发于微信公众号(剑客古月的安全屋):攻防ai基础篇-transformer模型详解

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月28日23:46:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防ai基础篇-transformer模型详解https://cn-sec.com/archives/4011655.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息