ChatGPT语言模型核心技术之Transformer

人工智能

635人已加入

描述

Transformer:ChatGPT语言模型背后的核心技术

Transformer是一种用于序列到序列(Sequence-to-Sequence)任务的神经网络模型,例如机器翻译,语音识别和生成对话等。它使用了注意力机制来计算输入序列和输出序列之间的关系。

Transformer的主要优点是它可以并行地处理输入序列中的所有位置,因此在训练和推理时都有着很好的效率。此外,Transformer没有使用循环结构,因此它不会受长序列的影响,并且在处理长序列时不会出现梯度消失或爆炸的问题。

Transformer

相比之下,基于循环的模型(例如基于LSTM的模型)可能在处理长序列时会出现问题,因为它们必须逐个处理序列中的位置,这会使它们的训练速度变慢。另一方面,Transformer在处理短序列时可能不如基于循环的模型那么准确,因为它没有循环结构可以保留先前位置的信息。

总的来说,Transformer是一种很有效的模型,特别是在处理较长的序列和并行化计算时。它已经成为了NLP(自然语言处理)领域中许多序列到序列任务的首选模型。

Transformer模型最初是由Vaswani等人在2017年提出的,并且在自然语言处理(NLP)领域得到了广泛应用。

其中著名的模型包括:

Transformer

· BERT(Bidirectional Encoder Representations from Transformers):这是一种语言模型,它能够在许多NLP任务中取得最先进的性能。

· GPT(Generative Pre-training Transformer):这是一种自然语言生成模型,能够生成各种文本,包括新闻文章,小说和代码等。

· Transformer-XL:这是一种扩展的Transformer模型,能够处理更长的序列,并且在很多NLP任务中取得了最先进的性能。

除了NLP领域,Transformer也被用于其他领域,包括计算机视觉,音频信号处理和强化学习等。

Transformer是一种非常强大的神经网络模型,但是它也有一些局限性。

其中一个局限性是它依赖于输入序列的长度。由于Transformer使用注意力机制来计算输入序列和输出序列之间的关系,因此它可能难以处理较长的序列。虽然有一些变体,例如Transformer-XL,可以更好地处理长序列,但是它们仍然存在这个问题。

另一个局限性是Transformer模型对于处理序列中的时间依赖性不太友好。由于Transformer没有使用循环结构,因此它无法保留序列中先前位置的信息。这意味着Transformer在处理序列中的时间依赖性时可能不太准确,例如在处理语音信号时。

总的来说,Transformer是一种很有效的模型,但是它并不是万能的。在选择模型时,应该考虑序列的长度和时间依赖性等因素,并确定Transformer是否是合适的选择。

Transformer基本介绍

transformer 最早使用于NLP模型中,使用了 Self-Attention 机制。相较于RNN结构可以进行并行化训练,能够拥有全局信息。

scale dot-product attention

Transformer

Transformer

self-attention 过程图

query q 对 key k做attention:

Transformer

softmax归一化:

Transformer

权重乘value v 输出转化值:

Transformer

合并之前的三个图中操作:

Transformer

image-20210517170611977.png

Transformer架构

Feed-Forward组件:

Transformer

应用方向

自然语言处理使用场景:机器翻译

Transformer:[2017] attention is all you need

Bert[2018]: Elmo, GPT

参数文件大小:
BERT(BASE) (L=12, H=768, A=12, Total Parameters=110M)

BERT(LARGE) (L=24, H=1024,A=16, Total Parameters=340M)

Transformer

机器视觉中技术的演进

IGPT:
借鉴bert思想,OpenAI尝试对测试数据随机mask 5 个token,最终ImageNet结果果然上升了一些(红色)。由于马赛克操作过于严重(整张图片都mask了),尽管事实证明还是有效果的,但从输入上看,降低了模型的拟合能力。

Transformer

Transformer

VIT:

尝试过三种预训练方法,首先mask掉50%的patch,然后:

只预测patch的mean color

只预测一个马赛克版的patch

用L2损失预测所有pixel。

第三种方式已经非常接近了,但是由于研究的重点不在于此便浅尝辄止了

Transformer

Transformer

Transformer

DEIT:
在预训练阶段,最多会mask 40%的patch。
另外,作者们其实也试过复原pixel,但效果会有1.8%的下降。对于这个现象,BEiT给出的猜想是,就像多层CNN一样,编码器最终得到的应该是一个更全局、高维的表示,而复现pixel会让后几层太关注局部细节。

Transformer

Transformer

MAE:
轻量级架构的两大核心:

encoder输入只包含没有mask的像素。并且使用的是VIT的encoder block。
2.vit-huge 模型mask 的比例很高时(75%)效果依旧表现很好(accuracy 87.8%),同时可以加速预训练过程。预训练时仅仅只使用了imagenet-1k data。

Transformer

Transformer

Transformer

一些值得注意的细节,比如:

1.输入侧直接丢掉mask token,效果+0.7,效率x3.3

预测normalize之后的pixel,效果+0.5

3.选取数据增强策略,效果+0.2

Transformer

Transformer

思考:导致视觉和语言的masked autoencoder 不一样的三大原因

结构:CNN天然适用于图像,但是应用transformer缺显得很不自然。不过这个问题被vit解了,后续又有IGPT的马赛克、dVAE的离散化,patch形态相对来说信息损失最少且高效。

信息密度:语言的含义比较多,一个单词可能有很多解释。而图片直观易表示。所以预测的时候图片patch比预测单词更容易。预测patch稍微有点周边信息就够了,可以放心大胆的mask。这点ViT、BEiT其实也都有,但主要就是最后一点没有深究。

需要一个Decoder:因为图片信息密度有限,复原pixel这种细粒度信息会让模型强上加强。那怎么优雅地复原呢?BEiT已经说过了,在预训练图像encoder的时候,太关注细节就损失了高维抽象能力。所以凯明大神加了一个decoder。到这里分工就很明确了,encoder负责抽取高维表示,decoder则负责细粒度还原。

规模大的简单算法是深度学习的核心。在NLP中,简单的自我监督学习方法能够从模型的规模中获益。在计算机视觉中,实用的预训练范例主要是监督式的。在这项研究中,自我监督学习已经取得了进展。我们在ImageNet和迁移学习中观察到自动编码器(一种类似于NLP技术的简单的自我监督方法)与NLP中的技术类似,提供了可扩展的好处。视觉中的自我监督学习现在可能会走上一条与NLP类似的轨迹。另一方面,我们注意到,图像和语言是不同性质的信号,这种差异必须仔细处理。图像仅仅是记录的光,没有语义分解为视觉类似物的语义分解。我们不是试图去除物体,而是去除很可能不构成语义段的随机斑块。同样地,我们的MAE重建了像素,而这些像素并不是语义实体。从测试的结果上看,MAE能推断出了复杂的、整体的重建,这表明它已经学会了许多视觉概念(语义)。我们假设,这种行为的发生通过MAE内部丰富的隐藏表征。我们希望这个观点能给未来的工作带来启发。更广泛的影响。建议的方法预测内容基于训练数据集的学习统计,因此将反映这些数据中的偏差,包括具有负面社会影响的偏差。该模型可能产生不存在的内容。这些问题值得在这项工作的基础上进一步研究和考虑,以生成图像。

未来展望:

有可能取代所有组件。

每个领域都可尝试,遍地开花。

一文读懂Transformer 主流的序列到序列模型是基于编码器-解码器的循环或卷积神经网络,注意力机制的提出,优化了编解码器的性能,从而使得网络性能达到最优。利用注意力机制构建出新的网络架构Transformer, 完胜了循环或卷积神经网络。Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。Transformer可以并行训练,训练时间更短。 1 Transformer的模型架构 序列到序列模型采用的是编码器-解码器结构,编码器将输入序列(,,……,映射成符号表示z=(,,……,,根据给定的Z ,解码器生成输出序列(,,……,,在每一个步长里,模型利用前一个步长中生成的向量和该步长的输入,生成输出符号。 Transformer模型架构如图1-1所示,编码器-解码器结构采用堆叠的多头注意力机制加全连接层,图中左边的是编码器结构,右边的是解码器结构:

Transformer

图 1-1    堆叠的编码器-解码器结构

编码器:编码器由6个相同的块结构堆叠而成 N=6,每个块结构进一步分成两个子层:即一个多头的自注意力机制和一个前馈网络全连接层,在块中的每一个子层之后,增加一个归一化层(Add&Norm),每个子层的输出均为归一化的LayerNorm(x + Sublayer(x)),包括词嵌入层,模块中所有子层的输出的维数均为512,即 = 512。 解码器:同理,解码器也由6个相同的块结构堆叠而成 N=6,每个块结构在编码器两个子层的基础之上,增加了第三个子层,即增加了一个多头自注意力子层。与编码器类似,在块中的每一个子层之后,增加一个归一化层(Add&Norm)。在解码器端,对解码器堆栈中的自注意力子层进行了修改,以防止位置编码和后续位置编码相关,通过这种掩蔽,确保了对位置i的预测只能依赖于小于i的位置的已知输出。 2 Self-attention 自注意力机制 Attention 函数将三元组Q(Query)、K(Key)、V(Value) 映射成输出,其中三元组Q(Query)、K(Key)、V(Value)和输出均为向量,输出是V(Value)的加权和,其中的权重是Q(Query)和K(Key)对应的组合计算出来的数值。 1)带缩放的点积注意力机制Scaled dot-product attention 带缩放的点积注意力机制(Scaled dot-product attention )的公式如下:

Transformer

在上面公式中Q和K中的向量维度都是,V的向量维度是Transformer,计算所有K向量和Q向量的点积,分别除以Transformer,并应用一个Softmax函数来获得这些值的权重。实际上在self-Attention中,Transformer,为了方便将Attention的计算转化为矩阵运算,论文中采用了点积的形式求相似度。常见的计算方法除了点积还有MLP网络,但是点积能转化为矩阵运算,计算速度更快。 两个最常用的注意力函数是:加注意力函数(Additive Attention)和点积注意力函数(Dot-product Attention)。除了Transformer的缩放因子外,带缩放的点积注意力机制采用的是点积注意力函数,加注意力函数使用具有单个隐含层的前馈网络来计算兼容性函数。虽然这两者在理论复杂度上相似,但点积注意力函数更快,更节省空间,因为它可以使用高度优化的矩阵乘法码来实现。而对于Transformer较小的值,这两种机制的性能相似,但在不加大更大Transformer的值的情况下,加注意力函数优于点积注意力函数。对于较大的Transformer值,点积相应变大,将Softmax函数推到梯度极小的区域。为了抵消这种影响,我们通过Transformer来缩放点积。 Transformer模型在三处采用了多头注意力机制:

在编码器-解码器注意力层,Q值来自上一个解码器层,K值和V值来自编码器的输出,从而使得解码器的每一个位置信息均和输入序列的位置信息相关,这种架构模仿了序列到序列模型编解码器注意力机制。

编码器中包括自注意力层,在自注意力层中,Q 值、K值和V值均来自编码器上一层的输出,编码器中的位置信息参与到前一层的位置编码中去。

同理,解码器中的自注意力机制使得解码器中的位置信息均参与到所有位置信息的解码中去。

2)全连接前馈网络 在Transfomer编码器-解码器架构的每一块中,除了包含多头注意力机制外,还包含一个全连接前馈网络,全连接前馈网络层包含两次ReLU激活函数的线性变换。

Transformer

不同层之间的全连接前馈网络的参数各不相同,模型输入输出的维度是512 = 512, 层内部的维度是2048 ,即= 2048。 3)嵌入和Softmax 和其它序列到序列的模型相类似,Transformer模型利用词嵌入技术将输入标记和输出标记转化为维度为的向量,采用可训练的线性变换和Softmax函数,将解码器的输出变换成待预测的下一个标记的概率。在Transformer模型中,两个嵌入层和Softmax层之间共享权重矩阵。 3 位置编码Positional Encoding 由于Transformer模型中既没有递归,也没有卷积,需要获得输入序列精准的位置信息的话,必须插入位置编码。位置编码精准地描述了输入序列中各个单词的绝对和相对位置信息,即在编码器-解码器的底部输入嵌入中注入“位置编码”,位置编码和输入嵌入有相同的维度,所以二者可以实现相加运算,位置编码方式可以有多种,在Transformer模型中采用的是频率不同的三角函数:

Transformer

其中pos 是位置,i是维数,也就是说,位置编码的每个维数都对应于一个正弦曲线。波长从2π到10000·2π的几何变化。之所以选择这个函数是因为假设它使得模型很容易地学习相对位置,对于任何固定偏移量k,Transformer可以表示为Transformer的线性函数。 首先,将自注意力机制和循环卷积网络(RNN )和卷积神经网络(CNN)进行对比,比较它们在变长序列Transformer从三个因素来考量采用自注意力机制:首先是每一层计算的复杂程度;其次,是可以并行计算的计算量,用对序列操作的最小数目表示;第三,是网络中最长相关路径的长度。在序列学习任务中,对长序列相关性的学习是关键性的难点问题,前向和后向信号路径的长度往往是影响学习效率的关键因素,输入和输出序列之间的位置越短,前向和后向信号路径则越短,更容易学习到长序列的依赖关系,通过对比网络中输入输出序列位置的最长通路路径,来回答为什么采用自注意力机制来搭建Transformer模型。

Transformer

 表 3-1  不同层序列操作的的最大路径长度、每层的复杂性和最小操作数 如表3-1所示 :不同层序列操作的的最大路径长度、每层的复杂性和最小操作数。n是序列长度,d是表示维数,k是卷积的核大小,r是受限自注意力中的邻域的大小。在表3-1中,自注意力机制通过Transformer操作将序列的位置信息关联起来,而RNN则需要对序列进行Transformer次操作。从计算的复杂程度来看,当序列长度n小于表示向量的维度d 时,在机器翻译任务中性能能达到最优。为了提高超长输入序列的计算性能,限制自注意力中的邻域r的大小,从而会使得最长相关路径的长度变为Transformer。 卷积核维度为k 的单卷积层无法实现所有输入和输出位置信息的连接,所以要求有Transformer层卷积层堆叠,使得最长相关路径的长度变长。通常,CNN的训练成本比RNN的训练成本要高。 从表3-1中的对比还可以看出,自注意力机制在复杂程度、并行计算的计算量和网络中最长相关路径的长度三方面均占有优势。 4 Transformer 模型的训练

4.1训练数据和批次大小

在标准的WMT2014英语-德语数据集上进行训练,这个数据集包括大约450万个句子数据对。句子采用字节对编码进行编码,源-目标词汇表中共享大约37000个标记。对于英语-法语,使用了更大的WMT2014英语-法语数据集,由3600万个句子组成,并将标记分割为32000词汇。句子对按近似的序列长度排列在一起。每个训练批都包含一组句子对,其中包含大约25000个源标记和25000个目标标记。

4.2 硬件配置

使用8 NVIDIAP100 GPU上训练了Transfomer模型,使用超参数的基本模型,每个训练步长大约需要花费0.4秒的时间,对基本模型总共训练了10万步或12个小时。对于大模型,步长时间为1.0秒,大模型训练了30万步(3.5天)。

4.3 优化器

采用Adam 优化器,参数设置为h β1 = 0.9, β2 = 0.98,并依据下述公式调整学习率:

Transformer

对应于第一个warmup_steps训练步长,学习率线性增加,在后续步长中,学习率随着步长的平方根成正比例下降,其中,warmup_steps =4000。

4.4 正则化

在训练过程中采用了三种正则化方法: 残差Dropout:在添加子层的输入和归一化之前,将Dropout机制应用于每个子层的输出,同时在编码器-解码器堆叠的嵌入过程和位置编码过程中加入Dropout机制,Transformer= 0.1。

4.5 训练结果

机器翻译 在WMT2014英德翻译任务中,Transformer (big)比之前报告的最佳模型(包括集成)高出2.0多个BLEU,获得BLEU分数为28.4。该模型的配置列于表5-2的底部。在8个P100 GPU 上进行训练需要3.5天。甚至基本模型也超过了所有之前发布的模型和集合,训练成本也大幅度缩减。 在WMT2014年英法翻译任务中Transformer (big)获得了BLEU分值为 41.0分,优于之前发布的所有其它模型,训练成本降低 1/4。

Transformer

表4.5-1 在英德和英法翻译任务中Transformer模型的BLUE 分值和其它模型BLUE 分值的对比(来源:网络) 表4.5-1同时将翻译质量和训练成本与其他模型架构的翻译质量和训练成本进行了比较。通过比较训练时间、所使用的GPU的数量以及对每个GPU5的持续单精度浮点容量的估计来估计用于训练模型的浮点操作的数量。 为了评估Transformer模型是否可以推广到其他任务,在英语选区解析上进行了实验。这个任务提出了具体的挑战:输出受到强大的结构约束,且长度远远长于输入。此外,RNN序列对序列模型还无法在小数据体系中获得最为先进的结果。 通过在宾夕法尼亚州《华尔街日报》的数据集上训练了大约40K句子,数据模型为Transformer的4层Transformer。此外,还在半监督设置下训练它,使用更大的高置信度和伯克利解析器语料库,大约1700万语句。对《华尔街日报》的设置使用了16K标记词汇,对半监督的设置使用了32K标记词汇。 结论:Transformer是采用自注意力机制的序列到序列模型,在编码器-解码器架构的神经网络中,用多头自注意力机制取代了RNN 层。对于翻译任务,Transformer的训练速度可以比基于循环层或卷积层的体系架构要快得多。关于2014WMT英德语和WMT2014英法翻译任务,实现了不错的性能。在前一项任务中,Transformer模型的性能甚至优于之前报告的所有其它模型。

作者简介

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。

Transformer也不是万能的

Transformer 最初出现在 2017 年的一篇论文中:《Attention Is All You Need》。在其他人工智能方法中,系统会首先关注输入数据的局部 patch,然后构建整体。例如,在语言模型中,邻近的单词首先会被组合在一起。相比之下,Transformer 运行程序以便输入数据中的每个元素都连接或关注其他元素。研究人员将此称为「自注意力」。这意味着一旦开始训练,Transformer 就可以看到整个数据集的迹。

在 Transformer 出现之前,人工智能在语言任务上的进展一直落后于其他领域的发展。「在过去 10 年发生的这场深度学习革命中,自然语言处理在某种程度上是后来者,」马萨诸塞大学洛厄尔分校的计算机科学家 Anna Rumshisky 说,「从某种意义上说,NLP 曾落后于计算机视觉,而 Transformer 改变了这一点。」

Transformer 很快成为专注于分析和预测文本的单词识别等应用程序的引领者。它引发了一波工具浪潮,比如 OpenAI 的 GPT-3 可以在数千亿个单词上进行训练并生成连贯的新文本。

Transformer 的成功促使人工智能领域的研究者思考:这个模型还能做些什么?

答卷正在徐徐展开——Transformer 被证明具有惊人的丰富功能。在某些视觉任务中,例如图像分类,使用 Transformer 的神经网络比不使用 Transformer 的神经网络更快、更准确。对于其他人工智能领域的新兴研究,例如一次处理多种输入或完成规划任务,Transformer 也可以处理得更多、更好。

「Transformer 似乎在机器学习领域的许多问题上具有相当大的变革性,包括计算机视觉,」在慕尼黑宝马公司从事与自动驾驶汽车计算机视觉工作的 Vladimir Haltakov 说。

就在十年前,AI 的不同子领域之间还几乎是互不相通的,但 Transformer 的到来表明了融合的可能性。「我认为 Transformer 之所以如此受欢迎,是因为它展示出了通用的潜力,」德克萨斯大学奥斯汀分校的计算机科学家 Atlas Wang 说:「我们有充分的理由尝试在整个 AI 任务范围内尝试使用 Transformer。」

从「语言」到「视觉」

在《Attention Is All You Need》发布几个月后,扩展 Transformer 应用范围的最有希望的动作就开始了。Alexey Dosovitskiy 当时在谷歌大脑柏林办公室工作,正在研究计算机视觉,这是一个专注于教授计算机如何处理和分类图像的 AI 子领域。

Alexey Dosovitskiy。

与该领域的几乎所有其他人一样,他一直使用卷积神经网络 (CNN) 。多年来,正是 CNN 推动了深度学习,尤其是计算机视觉领域的所有重大飞跃。CNN 通过对图像中的像素重复应用滤波器来进行特征识别。基于 CNN,照片应用程序可以按人脸给你的照片分门别类,或是将牛油果与云区分开来。因此,CNN 被认为是视觉任务必不可少的。

当时,Dosovitskiy 正在研究该领域最大的挑战之一,即在不增加处理时间的前提下,将 CNN 放大:在更大的数据集上训练,表示更高分辨率的图像。但随后他看到,Transformer 已经取代了以前几乎所有与语言相关的 AI 任务的首选工具。「我们显然从正在发生的事情中受到了启发,」他说,「我们想知道,是否可以在视觉上做类似的事情?」 这个想法某种程度上说得通——毕竟,如果 Transformer 可以处理大数据集的单词,为什么不能处理图片呢?

最终的结果是:在 2021 年 5 月的一次会议上,一个名为 Vision Transformer(ViT)的网络出现了。该模型的架构与 2017 年提出的第一个 Transformer 的架构几乎相同,只有微小的变化,这让它能够做到分析图像,而不只是文字。「语言往往是离散的,」Rumshisky 说:「所以必须使图像离散化。」

ViT 团队知道,语言的方法无法完全模仿,因为每个像素的自注意力在计算时间上会非常昂贵。所以,他们将较大的图像划分为正方形单元或 token。大小是任意的,因为 token 可以根据原始图像的分辨率变大或变小(默认为一条边 16 像素),但通过分组处理像素,并对每个像素应用自注意力,ViT 可以快速处理大型训练数据集,从而产生越来越准确的分类。

Transformer 能够以超过 90% 的准确率对图像进行分类,这比 Dosovitskiy 预期的结果要好得多,并在 ImageNet 图像数据集上实现了新的 SOTA Top-1 准确率。ViT 的成功表明,卷积可能不像研究人员认为的那样对计算机视觉至关重要。

与 Dosovitskiy 合作开发 ViT 的谷歌大脑苏黎世办公室的 Neil Houlsby 说:「我认为 CNN 很可能在中期被视觉 Transformer 或其衍生品所取代。」他认为,未来的模型可能是纯粹的 Transformer,或者是为现有模型增加自注意力的方法。

一些其他结果验证了这些预测。研究人员定期在 ImageNet 数据库上测试他们的图像分类模型,在 2022 年初,ViT 的更新版本仅次于将 CNN 与 Transformer 相结合的新方法。而此前长期的冠军——没有 Transformer 的 CNN,目前只能勉强进入前 10 名。

Transformer 的工作原理

ImageNet 结果表明,Transformer 可以与领先的 CNN 竞争。但谷歌大脑加州山景城办公室的计算机科学家 Maithra Raghu 想知道,它们是否和 CNN 一样「看到」图像。神经网络是一个难以破译的「黑盒子」,但有一些方法可以窥探其内部——例如通过逐层检查网络的输入和输出了解训练数据如何流动。Raghu 的团队基本上就是这样做的——他们将 ViT 拆开了。

Maithra Raghu

她的团队确定了自注意力在算法中导致不同感知的方式。归根结底,Transformer 的力量来自于它处理图像编码数据的方式。「在 CNN 中,你是从非常局部的地方开始,然后慢慢获得全局视野,」Raghu 说。CNN 逐个像素地识别图像,通过从局部到全局的方式来识别角或线等特征。但是在带有自注意力的 Transformer 中,即使是信息处理的第一层也会在相距很远的图像位置之间建立联系(就像语言一样)。如果说 CNN 的方法就像从单个像素开始并用变焦镜头缩小远处物体的像的放大倍数,那么 Transformer 就是慢慢地将整个模糊图像聚焦。

这种差异在 Transformer 最初专注的语言领域更容易理解,思考一下这些句子:「猫头鹰发现了一只松鼠。它试图用爪子抓住它,但只抓住了尾巴的末端。」第二句的结构令人困惑:「它」指的是什么?只关注「它」邻近的单词的 CNN 会遇到困难,但是将每个单词与其他单词连接起来的 Transformer 可以识别出猫头鹰在抓松鼠,而松鼠失去了部分尾巴。

Transformer

显然,Transformer 处理图像的方式与卷积网络有着本质上的不同,研究人员变得更加兴奋。Transformer 在将数据从一维字符串(如句子)转换为二维数组(如图像)方面的多功能性表明,这样的模型可以处理许多其他类型的数据。例如,Wang 认为,Transformer 可能是朝着实现神经网络架构的融合迈出的一大步,从而产生了一种通用的计算机视觉方法——也许也适用于其他 AI 任务。「当然,要让它真正发生是有局限性的,但如果有一种可以通用的模型,让你可以将各种数据放在一台机器上,那肯定是非常棒的。」

关于 ViT 的展望

现在研究人员希望将 Transformer 应用于一项更艰巨的任务:创造新图像。GPT-3 等语言工具可以根据其训练数据生成新文本。在去年发表的一篇论文《TransGAN: Two Pure Transformers Can Make One Strong GAN, and That Can Scale Up》中,Wang 组合了两个 Transformer 模型,试图对图像做同样的事情,但这是一个困难得多的问题。当双 Transformer 网络在超过 200000 个名人的人脸上进行训练时,它以中等分辨率合成了新的人脸图像。根据初始分数(一种评估神经网络生成的图像的标准方法),生成的名人面孔令人印象深刻,并且至少与 CNN 创建的名人一样令人信以为真。

Wang 认为,Transformer 在生成图像方面的成功比 ViT 在图像分类方面的能力更令人惊讶。「生成模型需要综合能力,需要能够添加信息以使其看起来合理,」他说。与分类领域一样,Transformer 方法正在生成领域取代卷积网络。

Raghu 和 Wang 还看到了 Transformer 在多模态处理中的新用途。「以前做起来比较棘手,」Raghu 说,因为每种类型的数据都有自己的专门模型,方法之间是孤立的。但是 Transformer 提出了一种组合多个输入源的方法。

「有很多有趣的应用程序可以结合其中一些不同类型的数据和图像。」例如,多模态网络可能会为一个系统提供支持,让系统除了听一个人的声音外,还可以读取一个人的唇语。「你可以拥有丰富的语言和图像信息表征,」Raghu 说,「而且比以前更深入。」

这些面孔是在对超过 200000 张名人面孔的数据集进行训练后,由基于 Transformer 的网络创建的。

新的一系列研究表明了 Transformer 在其他人工智能领域的一系列新用途,包括教机器人识别人体运动、训练机器识别语音中的情绪以及检测心电图中的压力水平。另一个带有 Transformer 组件的程序是 AlphaFold,它以快速预测蛋白质结构的能力,解决了五十年来蛋白质分子折叠问题,成为了名噪一时的头条新闻。

Transformer isn't all you need

即使 Transformer 有助于整合和改进 AI 工具,但和其他新兴技术一样,Transformer 也存在代价高昂的特点。一个 Transformer 模型需要在预训练阶段消耗大量的计算能力,才能击败之前的竞争对手。

这可能是个问题。「人们对高分辨率的图像越来越感兴趣,」Wang 表示。训练费用可能是阻碍 Transformer 推广开来的一个不利因素。然而,Raghu 认为,训练障碍可以借助复杂的滤波器和其他工具来克服。

Wang 还指出,尽管视觉 transformer 已经在推动 AI 领域的进步,但许多新模型仍然包含了卷积的最佳部分。他说,这意味着未来的模型更有可能同时使用这两种模式,而不是完全放弃 CNN。

同时,这也表明,一些混合架构拥有诱人的前景,它们以一种当前研究者无法预测的方式利用 transformer 的优势。「也许我们不应该急于得出结论,认为 transformer 就是最完美的那个模型,」Wang 说。但越来越明显的是,transformer 至少会是 AI shop 里所有新型超级工具的一部分。

编辑:黄飞

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分