读懂Transformer(Attention Is All You Need)

Transformer 模型是一种自然语言处理模型,它通过在序列上进行转换来完成任务,例如翻译、问答、摘要、分类等。这类模型通常使用注意力机制来聚焦输入序列中的特定单词或短语,从而更好地理解和处理文本。

Transformer模型在《Attention is all you need》论文中提出这篇论文主要亮点在于:

  • 1、不同于以往主流机器翻译使用基于RNN的seq2seq模型框架,该论文用attention机制代替了RNN搭建了整个模型框架。
  • 2、提出了多头注意力(Multi-headed attention)机制方法,在编码器和解码器中大量的使用了多头自注意力机制(Multi-headed self-attention)。
  • 3、在WMT2014语料中的英德和英法任务上取得了先进结果,并且训练速度比主流模型更快。

我们先把Transformer想象成一个黑匣子,在机器翻译的领域中,这个黑匣子的功能就是输入一种语言然后将它翻译成其他语言。如下图:

实际上Transformer是由两部分构成分别是编码器和解码器,在整个模型中,编码器由6个block组成,解码器由6个block组成。编码器的输出则作为解码器的输入。

Transformer结构

Transformer的整体结构

Attention

Attention模型并不只是盲目地将输出的第一个单词与输入的第一个词对齐。Attention机制的本质来自于人类视觉注意力机制。人们在看东西的时候一般不会从到头看到尾全部都看,往往只会根据需求观察注意特定的一部分,就是一种权重参数的分配机制,目标是协助模型捕捉重要信息。即给定一组<key,value>,以及一个目标(查询)向量query,attention机制就是通过计算query与每一组key的相似性,得到每个key的权重系数,再通过对value加权求和,得到最终attention数值。

Self-Attention

Self-Attention,这是Transformer的核心内容,主要目的是计算query与Key之间的相似度,为每个输入的向量学习一个权重。具体流程如下图所示:

  1. 如上文,将输入单词转化成嵌入向量;

  2. 根据嵌入向量得到 q ,k,v 三个向量;

  3. 为每个向量计算一个score: score=q*k ;

  4. 为了梯度的稳定,Transformer使用了score归一化,即除以 sqrt(dk)=8 (论文中使用key向量的维度是64维,其平方根=8,这样可以使得训练过程中具有更稳定的梯度。);

  5. 对score施以softmax激活函数,使得最后的列表和为1;这个softmax的分数决定了当前单词在每个句子中每个单词位置的表示程度。很明显,当前单词对应句子中此单词所在位置的softmax的分数最高,但是,有时候attention机制也能关注到此单词外的其他单词,这很有用。

  6. softmax点乘Value值 v ,得到加权的每个输入向量的评分 v ;相当于保存对当前词的关注度不变的情况下,降低对不相关词的关注。

  7. 相加之后得到最终的输出结果;这会在此位置产生self-attention层的输出(对于第一个单词)。

A t t e n t i o n = s o f t m a x ( Q ∗ K / D k ½) ∗ V Attention = softmax(Q * K /Dk ½) * V Attention=softmax(Q∗K/Dk½)∗V

Muti-Attention

Multi-Head Attention相当于 h 个不同的self-attention的集成(ensemble)。结构如下图所示:

唯一需要注意的是,由于残差链接的特殊需要,这里的输出要保持与输入一样的维度,所以将每个Self-Attention得到的结果按列进行拼接,得到W0。最后进行一层全连接层,将其映射为最终的输出结果Z。

Positional Enconding

在Attention中,对于一个句子中各个词语的顺序不改变计算结果,具体来说,就是词语的顺序并不能影响Attention的计算结果,这与我们所理解的翻译不符,所以需要一个绝对的位置信息,来表示单词在句子中的位置,其具体计算公式如下:

...未完待续

相关推荐
江畔柳前堤13 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore14 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考16 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX16 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面17 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号17 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽17 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI17 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者19 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者19 小时前
【征程6】校准量化中HistogramObserver解析
算法