0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Transformers的功能概述

jt_rfid5 来源:新机器视觉 2024-01-23 10:15 次阅读

近年来,我们听说了很多关于Transformers的事情,并且在过去的几年里,它们已经在NLP领域取得了巨大成功。Transformers是一种使用注意力机制(Attention)显著改进深度学习NLP翻译模型性能的架构。它首次在论文Attention is all you need中被引入,并迅速确立为大多数文本数据应用的主导架构。

自那时以来,包括Google的BERT和OpenAI的GPT系列在内的众多项目已经在这个基础上进行了扩展,并发布了比现有最先进基准更好的性能结果。

在一系列的文章中,我将介绍Transformers的基础知识、其架构以及内部工作原理。我们将以自上而下的方式了解Transformers的功能。

在后续的文章中,我们将深入了解系统的运作细节。我们还将深入研究多头注意力(multi-head attention)的运作,这是Transformers的核心。

以下是本系列和接下来文章的快速摘要(共计四篇)。我的目标是理解事物的运作方式,而不仅仅是了解它是如何运作的。

功能概述 — 本文(Transformers的用途以及为什么它们比RNN更好。架构的组件,以及在训练和推断期间的行为)。

工作原理(内部操作端到端。数据如何流动以及执行了哪些计算,包括矩阵表示)。

多头注意力(贯穿整个Transformers的注意力模块的内部运作)。

为什么注意力提高性能(不仅仅是注意力在做什么,而是为什么它如此有效)。

后面三篇推文进行介绍。

为适合中文阅读习惯,阅读更有代入感,原文翻译后有删改。

1. 什么是Transformers

Transformers架构擅长处理本质上是顺序(sequential)的文本数据。它们将文本序列作为输入并生成另一个文本序列作为输出,例如将英语句子翻译成西班牙语。

1c7fbdb2-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

在其核心,它包含堆叠的编码器层(Encoder layers)和解码器层(Decoder layers)。

为避免混淆,我们将个体层称为编码器(Encoder)或解码器(Decoder)。

编码器堆栈和解码器堆栈分别有相应的嵌入层用于它们的输入。最后,有一个输出层用于生成最终输出。

1c8d1552-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

所有编码器彼此相同。同样,所有解码器也是相同的。

1c987d5c-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

编码器包含非常重要的自注意力层,用于计算序列中不同单词之间的关系,以及一个前馈层。

解码器包含自注意力层和前馈层,以及第二个编码器-解码器注意力层。

每个编码器和解码器都有自己的权重集。

编码器是所有Transformers架构的定义性组件,是可重复使用的模块。除了上述两个层外,它还在这两个层周围具有残差跳过连接(Residual skip connections),并带有两个LayerNorm层。

1cadbad2-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

Transformers架构有许多变体。有些Transformers架构根本没有解码器,完全依赖于编码器。

2. 注意力的作用是什么?

Transformers取得突破性性能的关键在于它对注意力的使用。

在处理一个单词时,注意力使模型能够关注输入中与该单词密切相关的其他单词。

例如,ball与blue和holding密切相关。另一方面,blue与boy无关。

Transformers架构通过将输入序列中的每个单词与其他每个单词相关联来使用自注意力。

例如,考虑两个句子:

The cat drank the milk because it was hungry.

The cat drank the milk because it was sweet.

在第一个句子中,it指的是cat,而在第二个句子中,它指的是milk。当模型处理it这个词时,自注意力为模型提供更多关于其含义的信息,以便它能将it与正确的词关联起来。

1cc45b02-b90e-11ee-8b88-92fbcf53809c.png

深色表示更高的注意力(作者提供的图像)

为了使其能够处理关于句子意图和语义的更多细微差别,Transformers为每个单词包含多个注意力分数。

例如,在处理it这个词时,第一个分数突出显示cat,而第二个分数突出显示hungry。因此,当它将it这个词解码成另一种语言时,它将在翻译的词中结合cat和hungry的一些方面。

1ccf3ea0-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

3. 训练Transformers

在训练和推断期间,Transformers的工作稍有不同。

首先,让我们看看训练期间数据的流动。训练数据包括两个部分:

源序列或输入序列(例如,对于一个翻译问题,You are welcome是英语的源序列)

目标序列(例如,西班牙语中的De nada是目标序列)

Transformers的目标是通过使用输入和目标序列来学习如何输出目标序列。

1cd9e120-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

Transformers处理数据的步骤如下:

将输入序列转换为嵌入(带有位置编码)并馈送到编码器。

编码器堆栈处理此数据并生成输入序列的编码表示。

目标序列以句子开始标记为前缀,转换为嵌入(带有位置编码)并馈送到解码器。

解码器堆栈处理此数据以及编码器堆栈的编码表示,生成目标序列的编码表示。

输出层将其转换为单词概率和最终输出序列。

Transformers的损失函数将此输出序列与训练数据中的目标序列进行比较。这个损失用于在反向传播期间训练Transformers生成梯度。

4. 推断

在推断期间,我们只有输入序列,并没有目标序列传递给解码器。Transformers的目标是仅从输入序列中产生目标序列。

因此,就像在Seq2Seq模型中一样,我们在一个循环中生成输出,并将上一个时间步的输出序列馈送到下一个时间步的解码器,直到遇到句子结束标记。

与Seq2Seq模型的不同之处在于,在每个时间步,我们重新馈送迄今生成的整个输出序列,而不仅仅是最后一个单词。

1ce53cfa-b90e-11ee-8b88-92fbcf53809c.png

第一时间步后的推断流程(图像由作者提供)

推断期间数据的流动如下:

输入序列被转换为嵌入(带有位置编码)并馈送到编码器。

编码器堆栈处理此数据并生成输入序列的编码表示。

与目标序列不同,我们使用一个只有句子开始标记的空序列。这被转换为嵌入(带有位置编码)并馈送到解码器。

解码器堆栈处理此数据以及编码器堆栈的编码表示,生成目标序列的编码表示。

输出层将其转换为单词概率并生成输出序列。

我们将输出序列的最后一个词视为预测的词。该词现在填入解码器输入序列的第二个位置,其中现在包含一个句子开始标记和第一个单词。

返回到步骤#3。与以前一样,将新的解码器序列馈送到模型。然后取输出的第二个词并将其附加到解码器序列。重复此过程,直到预测到句子结束标记。请注意,由于编码器序列在每次迭代中不变,因此我们不必每次重复步骤#1和#2(感谢Michal Kučírka指出这一点)。

5. Teacher Forcing(强制教师)

在训练期间将目标序列馈送到解码器的方法被称为强制教师。我们为什么要这样做,这个术语是什么意思?

在训练期间,我们本可以使用与推断期间相同的方法。换句话说,循环运行Transformers,取输出序列的最后一个词,将其附加到解码器输入并在下一次迭代中馈送给解码器。最终,当预测到句子结束标记时,损失函数将比较生成的输出序列与目标序列,以便训练网络

这种循环会导致训练时间更长,而且使训练模型变得更加困难。模型必须基于可能错误的第一个预测单词来预测第二个单词,依此类推。

相反,通过将目标序列馈送到解码器,我们可以说是在给予它一些提示,就像老师会做的一样。即使它预测了错误的第一个单词,它仍然可以使用正确的第一个单词来预测第二个单词,以防这些错误不断累积。

此外,Transformers能够在没有循环的情况下并行输出所有单词,从而大大加快训练速度。

6. Transformers用于什么?

Transformers非常灵活,用于大多数NLP任务,如语言模型和文本分类。它们经常用于序列到序列模型,适用于机器翻译、文本摘要、问答、命名实体识别和语音识别等应用。

有不同类型的Transformers架构用于解决不同的问题。基本的编码器层被用作这些架构的通用构建块,具体取决于正在解决的问题,使用不同的应用特定的头(heads)。

7. Transformers分类架构

例如,情感分析应用将接受文本文档作为输入。分类头采用Transformers的输出,并生成类标签的预测,如积极或消极情感。

1cf14018-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

8. Transformers语言模型架构

语言模型架构将输入序列的初始部分,如文本句子,作为输入,并通过预测将跟随的句子生成新文本。语言模型头采用Transformers的输出,并为词汇表中的每个单词生成概率。概率最高的单词成为下一个句子中的预测输出。

1cffa91e-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

9. 它们为什么比循环神经网络(RNNs)更好?

在Transformers出现并取代它们之前,基于RNN的序列到序列模型是所有NLP应用的事实标准,而且表现良好。

基于RNN的序列到序列模型表现不错,当注意机制首次引入时,它被用于增强其性能。

然而,它们有两个限制:

难以处理在长句中分散分开的单词之间的长程依赖关系。

它们按照顺序逐个单词地处理输入序列,这意味着在完成时间步t-1的计算之前,它不能进行时间步t的计算。这减缓了训练和推断的速度。

顺便提一下,使用CNN,所有输出可以并行计算,这使得卷积速度更快。然而,它们在处理长程依赖性方面也有局限性:

在卷积层中,只有能够适应内核大小的图像的部分(如果应用于文本数据,则是单词)可以相互交互。对于相距较远的项,您需要具有许多层的更深的网络。Transformers架构解决了这两个限制。它完全摒弃了RNN,并仅依赖于注意力的好处。

它并行处理序列中的所有单词,从而大大加快了计算速度。

1d11ae02-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的图像)

输入序列中单词之间的距离不重要。它在计算相邻单词和相距较远单词之间的依赖性方面同样出色。

现在我们对Transformers有了一个高层次的了解,我们可以在下一篇文章中深入了解其内部功能,了解它的工作细节。

来源:新机器视觉

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3643

    浏览量

    134510
  • 模型
    +关注

    关注

    1

    文章

    3243

    浏览量

    48836
  • nlp
    nlp
    +关注

    关注

    1

    文章

    488

    浏览量

    22035
  • OpenAI
    +关注

    关注

    9

    文章

    1087

    浏览量

    6508

原文标题:【光电智造】Transformers图解(第1部分):功能概述

文章出处:【微信号:今日光电,微信公众号:今日光电】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用基于Transformers的API在CPU上实现LLM高效推理

    英特尔 Extension for Transformers是英特尔推出的一个创新工具包,可基于英特尔 架构平台,尤其是第四代英特尔 至强 可扩展处理器(代号 SapphireRapids,SPR)显著加速基于Transformers的大语言模型( LargeLangua
    的头像 发表于 01-22 11:11 2637次阅读
    使用基于<b class='flag-5'>Transformers</b>的API在CPU上实现LLM高效推理

    长按键处理功能概述

    基于蓝桥杯的单片机模块练习——长按键处理功能概述可以对按下一个键的时间长短,来分别执行不同的处理。当按住一个键的时长超过规定的长按键标准时,可以执行长按键的相应处理,当按住一个键的时长没达到规定
    发表于 01-07 07:10

    W601的RTC时钟功能概述

    13、W601的RTC时钟文章目录13、W601的RTC时钟一、W601的RTC功能概述二、主要特性三、代码实现四、实验现象一、W601的RTC功能概述RTC 是由 PMU 模块提供的
    发表于 01-10 08:05

    GPIO多功能复用引脚概述

    一、GPIO概述GPIO是多功能复用引脚,可以配置成通用的数字I/O工作模式,也可以配置成外设I/O工作模式。每个引脚除了通用数字I/O功能外,还有三个外设功能。,GPIO分为三组进行
    发表于 01-12 07:33

    GPIO的功能概述用途简析

    GPIO通用输入输出一、GPIO的功能概述用途:GPIO是通用输入输出(General Purpose I/O)的简称,主要用于工业现场需要用到数字量输入/输出的场合。例如:输出功能:继电器、LED
    发表于 02-16 07:42

    CS5202AN功能概述

    一、 CS5202AN功能概述CS5202是一款DP端口到VGA转换器,它结合了DP输入接口和模拟RGB DAC输出接口。嵌入式单片机基于工业标准8051核心。CS5202适用于多个细分市场和显示器
    发表于 03-02 07:27

    BJDEEN PULSE TRANSFORMERS

    aboutthe need  for  versatile pulse transformers that meet all the electricalrequirements of Manchester II serial biphas
    发表于 06-11 08:40 9次下载

    纽曼数码录音笔功能概述

    纽曼数码录音笔功能概述  &
    发表于 12-22 11:24 816次阅读

    QorIQ的三大功能概述(一)

    本课程将概述QorIQ的硬件安全认证、密钥保护和强大的分区保护功能
    的头像 发表于 06-28 16:58 6761次阅读

    QorIQ三大功能概述(三)

    本课程将概述QorIQ的硬件安全认证、密钥保护和强大的分区保护功能
    的头像 发表于 06-28 16:55 2814次阅读

    英特尔VTune放大器XE的功能概述

    英特尔®VTune™放大器XE概述和新功能
    的头像 发表于 11-06 06:54 3771次阅读

    MicroBlaze的特点与功能概述

    MicroBlaze概述
    的头像 发表于 11-28 06:09 3798次阅读

    深度学习:transformers的近期工作成果综述

    transformers的近期工作成果综述 基于 transformer 的双向编码器表示(BERT)和微软的图灵自然语言生成(T-NLG)等模型已经在机器学习世界中广泛的用于自然语言处理(NLP
    的头像 发表于 10-19 10:04 662次阅读
    深度学习:<b class='flag-5'>transformers</b>的近期工作成果综述

    Transformers是什么意思?人工智能transformer怎么翻译?

    Transformers是什么意思?transformer怎么翻译?人工智能transformer怎么翻译? Transformers是一个包含自然语言处理中的基础技术的深度神经网络。它可以将源语言
    的头像 发表于 08-22 15:59 3031次阅读

    UWB数据传输和雷达成像功能概述

    在之前的文章《一文讲透超宽带(UWB)前世今生》中,我们从起源、定义、标准、发展、应用等角度概述了UWB技术。根据UWB的特性,其基础功能分为:数据传输、雷达成像、测距定位。接下来我们将概述其数据传输和雷达成像
    的头像 发表于 09-08 09:51 3075次阅读
    UWB数据传输和雷达成像<b class='flag-5'>功能</b><b class='flag-5'>概述</b>