前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hail Hydra!Meta AI黑科技比传统注意力快 197 倍

Hail Hydra!Meta AI黑科技比传统注意力快 197 倍

作者头像
NewBeeNLP
发布2022-11-11 11:16:43
4900
发布2022-11-11 11:16:43
举报
文章被收录于专栏:NewBeeNLPNewBeeNLP

大家好,这里是NewBeeNLP。得益于自身的泛化性以及从大规模数据中学习的能力,Transformers 成为过去几年自然语言处理领域的主导技术。并且随着 Vision Transformers(ViTs)的出现,视觉领域也出现了类似的趋势。

但我们应该看到,在 NLP 中使用 BERT 或在视觉中使用 ViT 得到的 Transformers 纯实例化并不是计算机视觉任务的主导。相反,更多基于 vision-specialized 注意力的架构(如 Swin 或 MViT)或注意力 - 卷积混合架构(如 LeViT)正在被使用。

究其原因,specialized ViT 可以通过更少算力实现更好的性能,它们要么添加卷积层、要么使用 vision-specific 局部窗口注意力,要么使用其他方式低成本地添加视觉归纳偏置。

虽然纯 ViTs 在大型数据集上表现良好(如 ImageNet 上取得 90.45% top-1),但是当我们在多个下游任务所需的大图像上应用一个模型时,纯 Transformers 的主要机制(即多头自注意力)可能面临很大的瓶颈。

近日, Meta AI 和佐治亚理工学院的研究者填补了这一空白,提出了 Hydra Attention。该方法源于线性注意力中有些自相矛盾的行为,即在使用标准多头自注意力时,向模型中添加更多的 head 会保持计算量不变。但是,在线性注意力中改变操作顺序后,添加更多的 head 实际上降低了层的计算成本。

因此,研究者将这一观察结果发挥到了极致,将模型中 head 的数量设置为与特征数相同,从而创建了一个在计算上对于 token 和特征都呈线性的注意力模块。

论文地址:https://arxiv.org/pdf/2209.07484.pdf

下图为标准注意力、线性注意力和 Hydra Attention 的结构比较。

Hydra Attention 不仅比先前高效注意力工作的泛化性更强,而且在使用正确的内核时能够显著提升准确率。事实上,当与标准多头注意力混合时,Hydra Attention 可以提高基线 DeiT-B 模型的准确率同时速度也更快。由于源自多头注意力,Hydra Attention 保留了注意力的几个优点,比如可解释性以及对不同任务的泛化性。

然而,虽然 Hydra Attention 对于大图像高效且泛化强,但在本文中只关注使用 DeiT-B 的 ImageNet 分类任务,通常只使用较小的 224×224 和 384×384 图像。虽然对于这些图像的效率提升不是太大(根据图像大小不同可以实现 10-27% 的提升),但其他高效注意力方法遭受较大的准确率下降,Hydra Attention 则没有。

未来,研究者希望可以探索在其他更多 token 密集领域中的应用,比如检测、分割或视频。作为一种通用技术,Hydra attention 不对 token 之间的关系做任何假设,因而可以进一步用来提升 token 稀疏应用的速度,比如掩码预训练或 token 剪枝。

研究者还希望 Hydra Attention 可以为更强大、更高效、更通用的纯 transformers 模型打下基础。

Hydra Attention

在标准的多头自注意力中,其计算量随图像中 token 的数量呈二次增长。更具体地说,如果 T 是 token 数量,D 是特征维度数量,那么形成的注意力矩阵是 O(T^2D)的。当 T 很大时,这种操作在计算上变得不可行。

因此开始有研究者引入线性注意力。给定查询 Q、键 K、值 V 等,标准 softmax 自注意力计算为:

根据文献 [16] 的研究,公式(1)还可以用 sim(·)函数写成这样:

如果选择一个特征表示为ϕ(·)的可分解内核,那么 sim(x, y) = ϕ(x)ϕ(y)^T,又可以得到:

然后通过结合律,改变计算顺序,最终得到:

多头注意力

然而公式(1)到(4)为假设为单头注意力。想要多头注意力,则(1)应变为:

公式(4)变为:

到底增加多少头合适呢?大多数的研究使用 6 到 16 个头,但头的数量超过这个范围,会发生什么?

为了找出答案,该研究在 ImageNet-1k 上训练 DeiT-B ,并使用带有 softmax 的标准多头自注意力(公式 5,MSA)或带有余弦相似度的多头线性注意力来改变头数 H (公式 7, MLA) 进行实验,结果绘制在图 2 中。在内存使用方面,MSA 在 H > 96 时内存不足,而 MLA 在 H < 3 时内存不足。

在性能方面,对于 MSA,当 H > 12 时,Softmax 注意力的准确率似乎会崩溃,而具有余弦相似度的 MLA 的准确率基本保持一致,直到 H=768。令人惊讶的是,处于这个头数时,H 等于 D,这意味着每个头只有一个标量特征可以使用!

hydra

如图 2 所示,只要相似度函数 sim(x, y)不是 softmax,H 任意放大都是可行的。为了利用这一点,该研究引入了 hydra ,即设置 H = D:

在这种情况下,每个 Q_h、K_h、V_h 都是 R^T ×1 中的列向量,然后得到:

Hydra Attention 通过一个全局瓶颈混合信息,而不是像标准的自注意力那样进行显式的 token-to-token 混合。这导致计算复杂度为:

实验结果

对于所有实验,除非另有说明,该研究使用 DeiT-B,并在 ImageNet-1k 上进行默认设置训练。

在表 1 中,该研究探索了其他可能的 kernel 选择。

表 2 展示了使用 Hydra attention 与标准注意以及其他方法对比的结果:

较大的图像:在表 3 中,我们看到 Hydra Attention 在 2 层时可以提高 0.59% 的准确率和 4.1% 的吞吐量,或者在 7 层时保持准确率基本不变,提高 15.4% 的吞吐量。

局限性:当 T(token) = 197 时,Hydra attention 比标准注意力快 197 倍,那么为什么最大 FLOP 计数减少只有 4%?事实证明,对于 ViT-B/16 224 × 224 图像(T = 197,D = 768),只有 4.10% 的模型 FLOP 用于创建和应用注意力矩阵。使用 Hydra attention,这一比例降低到 0.02%,基本上消除了模型中的注意力成本。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档