当前位置: 首页 > news >正文

transformer入门详解

文章目录

  • 前言
  • 一、Encoder
  • 二、Decoder
  • 流程
      • 流程1 embedding
      • 流程2 注意力机制
          • 1.注意力机制:
          • multi-self attention
          • 2.ADD NORM
          • 3.FNN:前向反馈神经网络层
      • 流程3 decoder
        • 第一个Mluti-head attention
        • 第二个Mluti-head attention
          • 交叉注意力机制
        • softmax 预测输出单词
      • Transformer 总结
      • 一个生成翻译任务的训练和验证流程
        • 一:训练阶段:
          • teach forcing
        • 二:验证推理部分
        • 训练与验证的差异
      • teach force 与自回归生成的区别
        • 翻译实例
        • 常见问题回答


前言

transformer是大模型的基础,由encoder和decoder组成,
以翻译任务为例,输入一句话经过transformer生成其翻译内容。
实际应用中,都是由多个encoder和多个decoder构成编码器和解码器

一、Encoder

每个encoder实际上是由两个层构成,第一层是自注意力层,第二层是FFN前馈网络层。编码器的输入会先流经自注意力层,它可以让编码器在对特定词编码时使用输入句子中其他的信息。可以理解成翻译一个词的时候,不仅关注当前词而且还会关注其他词的信息。

二、Decoder

每个解码器有三层,除了self-attention层(mask的)和FNN外,还有Encoder-Decoder Attention层,该层用于帮助解码器关注输入句子的相关部分的。

流程

1.一般我们在处理NLP问题时,都要先把它变成在空间上可以计算的向量,即通过embedding词嵌入的形式。而词嵌入只发生在最底层的编码器中,即最下面的编码器接受的是词嵌入向量embedding,其他编码器接收的是下层编码器的输出。
2.每层encoder会将接收到的向量先经过self-attention再经过FNN后输出给下一个编码器。
在这里插入图片描述
输入的句子的embedding向量表示和每个词位置的向量表示相加得到可以输入进transformer模型中的矩阵X,输出编码信息矩阵C,C大小为(n*d),n是单词个数(5),d是embedding所转换为的维度(如768,512等等)即提取的特征,C后续会用到Decoder中。
3.注:decoder翻译时,依次会根据当前翻译过的单词1~i翻译下一个单词i+1,如下图所示。在使用过程中,翻译到单词i+1的时候需要通过Mask掩盖i+1后面的单词,第i+1个单词时不能用它后面的单词信息,只能用它本身及i+1之前的单词信息,因为后面的信息被mask了,由于decoder的mask-selfattention层会防止解码器在生成时“看到”未来信息,只能利用前面出现过的进行计算。
下图 Decoder 接收了 Encoder 的编码矩阵 C,然后首先输入一个翻译开始符 “”,预测第一个单词 “I”;然后输入翻译开始符 “” 和单词 “I”,预测单词 “have”,以此类推。这是 Transformer 使用时候的大致流程,接下来是里面各个部分的细节。
在这里插入图片描述

流程1 embedding

单词的embedding有经典的方法:word2vec,可以将词转换成空间维度中相同维度的向量。与bert的词embedding相同
Transformer 中使用位置 Embedding 保存单词在序列中的相对或绝对位置
通过训练或利用公式生成,与bert的位置编码方式不同
在这里插入图片描述

二者相加得到transformer的输入矩阵x

流程2 注意力机制

红色圈中的部分为 Multi-Head Attention,是由多个 Self-Attention组成的,可以看到 Encoder block 包含一个 Multi-Head Attention,而 Decoder block 包含两个 Multi-Head Attention (其中有一个用到 Masked)。Multi-Head Attention 上方还包括一个 Add & Norm 层,Add 表示残差连接 (Residual Connection) 用于防止网络退化,Norm 表示 Layer Normalization,用于对每一层的激活值进行归一化。
在这里插入图片描述

1.注意力机制:

在计算的时候需要用到矩阵Q(查询),K(键值),V(值)。在实际中,Self-Attention 接收的是输入(单词的表示向量x组成的矩阵X) 或者上一个 Encoder block 的输出。而Q,K,V正是通过 Self-Attention 的输入进行线性变换得到的。
Q、K、V 是通过输入与可学习的权重矩阵Wq,Wk,Wv计算得到的,模型会根据任务目标(如分类、生成等)调整这些权重,从而提取有用的特征。而权重矩阵(如 Q、K、V 的权重矩阵)的初始化是随机的,但它们的值并不是固定的,而是会在训练过程中通过梯度下降等优化算法不断更新,最终学习到适合任务的值。
Self-Attention 的输入用矩

相关文章:

  • 设计模式之原型模式:原理、实现与应用
  • python习题卷1
  • 【从零开始学习计算机科学】算法分析(一)算法、渐进分析、递归分析
  • JAVA实战开源项目:教学辅助平台(Vue+SpringBoot) 附源码
  • Word:双栏排版操作步骤及注意事项
  • 3个 Vue $set 的应用场景
  • 查询MySQL表占用磁盘大小的方法
  • 重生之我在学Vue--第14天 Vue 3 国际化(i18n)实战指南
  • vue-常用指令 | 常用指令的修饰符
  • DNS查询
  • Mysql与ElasticSearch间的数据同步场景模拟
  • Blender-MCP服务源码4-初始化项目解读
  • 算法——先序中序还原二叉树
  • ubuntu测试指定文件夹的读写速度
  • 深度学习-145-Text2SQL之基于官方提示词模板进行交互
  • VMware安装Centos
  • leetcode日记(100)填充每个节点的下一个右侧节点指针
  • go程序调用k8s pod副本的名称IP手动赋值给configmap的参数
  • 麒麟服务器操作系统Go环境部署手册
  • 麒麟服务器操作系统Redis部署手册
  • 上海肺科医院院长陈昶:临床中的痛点,正是新技术诞生的起点
  • 完善劳动关系协商协调机制,《共同保障劳动者合法权益工作指引》发布
  • “上海-日喀则”援藏入境旅游包机在沪首航
  • 外媒:哈马斯一名高级指挥官尸体被发现,系辛瓦尔弟弟
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信
  • 气急败坏!20多名台湾艺人被台当局列为“重点核查对象”