社区计算机视觉课程文档

Hyena

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Hyena

概述

什么是 Hyena

虽然 Transformer 是一种成熟且功能强大的架构,但其二次方的计算成本非常高昂,尤其是在推理方面。

Hyena 是一种新型算子,可以替代注意力机制。它由 Hazy Research 开发,具有次二次方的计算效率,通过交错隐含参数化的长卷积和数据控制门控构建。

长卷积类似于标准卷积,但其核大小与输入相同。这相当于拥有一个全局感受野而非局部感受野。隐含参数化的卷积意味着卷积滤波器的值不是直接学习的。相反,更倾向于学习一个能够恢复这些值的函数。

门控机制控制信息在网络中的流动路径。它们有助于定义信息应被记住多久。通常它们由逐元素乘法组成。关于门控的有趣博客文章可以在这里找到。

transformer2hyena.png Hyena 算子通过一次递归计算卷积和乘法逐元素门控操作,直到所有投影都用尽。这种方法建立在同样由这些研究人员开发的 Hungry Hungry Hippo (H3) 机制之上。H3 机制的特点是其数据控制的参数分解,充当替代注意力机制。

理解 Hyena 的另一种方式是将其视为 H3 层对于任意数量投影的泛化,其中 Hyena 层以不同的长卷积参数化选择递归地扩展 H3。 hyena_recurence.png

从注意力到 Hyena 算子

注意力机制具有两个基本特性:

  1. 它具有全局上下文感知能力,使其能够评估序列中视觉标记对之间的交互。
  2. 它是数据依赖的,这意味着注意力方程的操作会根据输入数据本身而变化,特别是输入投影。qq,kk,vv.

Alt text

注意力机制由三个投影定义:查询qq、键kk、值vv,它们是通过将输入的视觉标记乘以三个矩阵生成的WqW_q,WkW_kWvW_v在训练过程中学习。

对于给定的视觉标记,我们可以使用这些投影计算注意力分数。注意力分数决定了对输入图像其他部分的关注程度。
有关注意力的详细解释,您可以参考这篇插图博客文章

为了复制这些特性,Hyena 算子包含了两个关键元素:

  1. 它采用长卷积来提供全局上下文,类似于注意力机制的第一个特性。
  2. 对于数据依赖性,Hyena 使用逐元素门控。这本质上是输入投影的逐元素乘法,反映了传统注意力的数据依赖特性。

在计算效率方面,Hyena 算子实现了评估时间复杂度为O(L×log2LO(L \times \log_2 L,表明处理速度显著提高。

Hyena 算子

让我们深入了解 Hyena 算子的二阶递归,为了说明目的,我们将其表示简化。hyena_mechanism.png

在这个顺序中,我们计算 3 个投影,类似于qq,kkvv注意力机制中的注意力向量。

然而,与通常使用单个密集层将输入序列投影到表示中的注意力机制不同,Hyena 包含一个密集层和在每个通道上执行的标准卷积(在图表中称为TqT_q,TkT_kTvT_v,但实际上是一种显式卷积)。Softmax 函数也被舍弃。

核心思想是反复将快速评估的线性算子应用于输入序列uRLu \in \mathbb{R}^{L},其中LL是序列的长度。由于全局卷积具有大量参数,因此训练成本很高。一个值得注意的设计选择是使用隐式卷积。与标准卷积层不同,卷积滤波器hh是通过小型神经网络隐含学习的γθ\gamma_{\theta}(也称为 Hyena 滤波器)。该网络将位置索引和可能的位置编码作为输入。从γθ\gamma_{\theta}的输出,可以构建一个 Toeplitz 矩阵ThT_h.

这意味着我们不是直接学习卷积滤波器的值,而是学习从时间位置编码到值的映射,这在计算上更有效,尤其是对于长序列。

值得注意的是,正如H3 论文中讨论的,映射函数可以在各种抽象模型中概念化,例如神经网络场或状态空间模型 (S4)。

隐式卷积

线性卷积可以表示为矩阵乘法,其中一个输入被重塑为Toeplitz 矩阵

这种转换提高了参数效率。它不是直接学习固定的核权重值,而是采用参数化函数。该函数在网络的前向传播过程中智能地推导出核权重的值及其维度,从而优化资源利用。

理解隐式参数化的一种直观方式是将其视为一个仿射函数y=f(x)=a×x+by=f(x)= a \times x + b我们想学习。与其学习每一个单独的点位置,不如更有效地学习 a 和 b,并在需要时计算点。

在实践中,卷积通过 Cooley-Tukey 快速傅里叶变换 (FFT) 算法加速到次二次方时间复杂度。一些工作已经进行,以加快这种计算,例如基于 Monarch 分解的 FastFFTConv。

总结一切

nd_hyena.png 本质上,Hyena 可以分两步执行

  1. 计算一组 N+1 个线性投影,类似于注意力(可以多于 3 个投影)。
  2. 混合投影:矩阵H(u)H(u)由矩阵乘法的组合定义。

Hyena 为何重要

H3 机制的提议接近多头注意力机制的困惑度,但在困惑度方面仍然存在微小的差距,需要弥补。

过去几年中提出了各种注意力替代方案,在探索阶段评估新架构的质量仍然具有挑战性。创建一种多功能层,能够有效地处理深度神经网络中的 N 维数据,同时保持良好的表达能力,是当前正在进行的重要研究领域。

根据经验,Hyena 算子能够在大规模上显著缩小与注意力的质量差距,以更小的计算预算实现相似的困惑度和下游性能,而无需混合注意力。它已在DNA 序列建模领域达到了最先进的水平,并在大型语言模型领域展现出巨大潜力,例如 Stripped-Hyena-7B。

与注意力类似,Hyena 可用于计算机视觉任务。在图像分类中,Hyena 在从头开始训练 ImageNet-1k 时能够与注意力在准确度方面相匹配。

hyena_vision_benchmarks.png Hyena 已通过 Hyena N-D 层应用于 N 维数据,并可在 ViT、Swin、DeiT 主干中直接替代。

vit_vs_hyenavit.png 图像块数量增加时,GPU 内存效率显著提升。

Hyena 层次结构促进了用于长序列的更大、更高效卷积模型的开发。Hyena 类型模型在计算机视觉领域的潜力将是更高效的图像块 GPU 内存消耗,这将允许

  • 处理更大、更高分辨率的图像
  • 使用更小的图像块,实现细粒度的特征表示

这些特性在医学影像和遥感等领域将特别有益。

迈向 Transformer 替代方案

从简单的设计原则构建新层是一个新兴的研究领域,其进展非常迅速。

H3 机制是许多基于状态空间模型 (SSM) 架构的基础,其典型结构是在受线性注意力启发的模块和多层感知器 (MLP) 模块之间交替。作为这种方法的增强,Hyena 为更高效的架构(如 Mamba 及其视觉衍生品(Vision Mamba、VMamba 等))铺平了道路。

延伸阅读

< > 在 GitHub 上更新