Press "Enter" to skip to content

Mamba:重新定义序列建模并超越Transformer架构

在这篇关于Mamba的文章中,我们将探索这种创新的状态空间模型(SSM)如何革命性地改变序列建模。由Albert Gu和Tri Dao开发,Mamba在语言处理、基因组学和音频分析等领域的复杂序列处理中表现出色。其具有选择性状态空间的线性时间序列建模确保了在这些多样性模态之间的出色性能。

我们将深入研究Mamba在克服传统Transformer面临的计算挑战方面的能力,特别是在处理长序列时。其选择性的状态空间模型方法可以实现更快的推断和与序列长度线性扩展的能力,显著提高吞吐量。

Mamba的独特之处在于其快速处理能力、选择性SSM层以及受FlashAttention启发的硬件友好设计。这些特点使Mamba胜过许多现有模型,包括基于Transformer方法的模型,使其成为机器学习领域的一项重大进展。

Transformer与Mamba 的对比

Transformer,比如GPT-4,在自然语言处理方面取得了里程碑式的成就。然而,它们处理长序列的效率会下降。这就是Mamba的优势所在,它能够更高效地处理长序列,并且其独特的架构简化了整个过程。

Transformer擅长处理数据序列,比如用于语言模型的文本。与以前按顺序处理数据的模型不同,Transformer可以同时处理整个序列,从而捕捉数据内部的复杂关系。

它们使用注意力机制,在进行预测时允许模型关注序列的不同部分。

这种注意力是使用三组权重来计算的:查询、键和值,这些权重是从输入数据中派生出来的。将序列中的每个元素与其他元素进行比较,提供一个权重,表示在预测序列中的下一个元素时,每个元素应该接收到的重要性或“关注”。

Transformer由两个主要模块组成:编码器用于处理输入数据,解码器用于生成输出。编码器包含多个层,每个层包含两个子层:一个多头自注意机制和一个简单的位置逐层完全连接的前馈网络。在每个子层都使用归一化和残差连接以帮助训练深层网络。

解码器也具有类似编码器的两个子层的层,但添加了一个第三个子层,用于对编码器输出进行多头注意力。解码器的顺序特性确保了位置的预测只能考虑到之前的位置,保持了自回归属性。

与Transformer相比,Mamba模型采取了一种不同的方法。当处理长序列时,Transformer通过使用更复杂的注意力机制来解决问题,而Mamba使用选择性状态空间来处理序列。这种方法解决了Transformer在处理冗长序列时的计算效率低的问题。Mamba的设计能够实现更快的推断并与序列长度线性扩展,为序列建模设定了一种新的范式,可能更加高效,特别是随着序列变得越来越长。

以下是Transformer的高级概述:

  1. 输入处理:Transformer首先将输入数据编码成模型可以理解的格式,通常使用嵌入将每个元素在序列中的位置也纳入考虑。
  2. 注意力机制:注意力机制的核心是计算一个分数,代表在理解当前元素时,对输入序列的其他部分要关注多少。
  3. 编码器-解码器架构:Transformer模型由一个编码器用于处理输入和一个解码器用于生成输出组成。每个都由多个层组成,以改进模型对输入的理解。
  4. 多头注意力:在编码器和解码器中,多头注意力机制允许模型同时从不同的表征空间中关注序列的不同部分,提高其学习各种上下文的能力。
  5. 位置逐层前馈网络:在注意力之后,一个简单的神经网络对每个位置的输出进行独立且相同的处理。这与输入通过残差连接相结合,并进行层归一化。
  6. 输出生成:解码器然后预测一个输出序列,受到编码器的上下文和迄今为止生成的内容的影响。

Transformer处理序列的能力以及其强大的注意力机制使其在翻译和文本生成等任务中非常有效。

相反,Mamba模型通过使用选择性状态空间来处理序列而采用了不同的方法。这种方法解决了Transformer处理长序列时的计算效率低的问题。Mamba的设计能够实现更快的推断并与序列长度线性扩展,为序列建模设定了一种新的范式,尤其是当序列变得越来越长时更加高效。

玛巴

玛巴真正独特之处在于其摒弃了传统的注意力和多层感知机 (MLP) 模块,这种简化使得模型更轻、更快,并且与序列长度成线性比例地扩展,这是以往模型无法比拟的壮举。

玛巴的关键特点包括:

  1. 选择性 SSMs:这些使得玛巴能够过滤掉无关的信息,专注于相关的数据,提升其对序列的处理能力。这种选择性对于高效的基于内容的推理至关重要。
  2. 硬件感知算法:玛巴使用了一种并行算法,针对现代硬件(尤其是 GPU)进行了优化。这种设计实现了更快的计算速度,同时降低了内存需求,相较于传统模型而言。
  3. 简化的架构:通过整合选择性 SSMs 并消除注意力和 MLP 模块,玛巴提供了一种更简单、更均匀的结构。这导致了更好的可扩展性和性能。

玛巴在语言、音频和基因组等多个领域都展示了卓越的性能,在预训练和领域特定任务中表现出色。例如,在语言模型中,玛巴能够与更大的 Transformer 模型的性能相媲美甚至超过。

玛巴的代码和预训练模型对社区使用是开放的,可以在GitHub上获得。

对于线性模型,标准复制任务很简单。对于使用动态、内容感知存储器的选择性复制和诱导头来说,需要使用 LLMs。

对于线性模型而言,标准复制任务很简单。对于使用动态、内容感知存储器的选择性复制和诱导头(LLMs)来说,则需要更多特性。

结构化状态空间(S4)模型最近成为一种有前景的序列模型,它包含了循环神经网络(RNN)、卷积神经网络(CNN)和经典状态空间模型的特性。S4 模型从连续系统中得到启发,特指一种将一维函数或序列通过隐含潜在状态映射的系统。在深度学习的背景下,它们代表了一种重大创新,为设计高效且高度适应性的序列模型提供了一种新的方法论。

S4 模型的动力学

SSM(S4):这是基本的结构化状态空间模型。它接收一个序列 x,并使用学习得到的参数 ABC 和延迟参数 Δ 来产生输出 y。该转换涉及对参数进行离散化处理(将连续函数转化为离散函数),并应用 SSM 操作,该操作是时不变的,也就是说在不同的时间步长上它不会改变。

离散化的重要性

离散化是一个关键过程,通过固定公式将连续参数转化为离散参数,使得 S4 模型能够与连续时间系统保持连接。这使模型具有额外的属性,如具有分辨率不变性,并确保适当的归一化,增强了模型的稳定性和性能。离散化还与循环神经网络中的门控机制相类比,这些机制对于管理信息在网络中的流动至关重要。

线性时间不变性(LTI)

S4 模型的核心特征是其线性时间不变性。这一特性意味着模型的动力学在时间上保持一致,参数在所有时间步长上都是固定的。LTI 是循环和卷积的基石,为构建序列模型提供了一种简化而强大的框架。

克服基本限制

S4 框架在传统上受到其 LTI 特性的限制,这在建模需要自适应动力学的数据时会带来挑战。最近的研究论文提出了一种方法,通过引入时间变化的参数来克服这些限制,从而消除了 LTI 的约束。这使得 S4 模型能够处理更多种类的序列和任务,显著扩展了其适用性。

术语“状态空间模型”广泛涵盖了涉及潜在状态的任何递归过程,并已被用来描述多个领域的各种概念。在深度学习的背景下,S4 模型或结构化 SSMs 是指一类针对高效计算进行了优化、同时保持对复杂序列建模能力的模型。

S4模型可以集成到端到端的神经网络架构中,作为独立的序列转换功能。可以将其视为卷积层在CNN中的类比,为各种神经网络架构中的序列建模提供支撑。

SSM与SSM + Selection的比较

SSM与SSM + Selection的比较

序列建模中多样性的动机

结构化SSM

结构化SSM

该论文认为序列建模的一个基本方面是将上下文压缩为可管理的状态。可以有选择性地关注或过滤输入的模型提供了一种更有效的方式来保持这种压缩状态,从而实现更高效和更强大的序列模型。这种选择性对于模型能够自适应地控制信息在序列维度上的流动至关重要,这是处理语言建模等复杂任务所必需的能力。

选择性的SSM通过允许其参数依赖于输入来增强传统的SSM,这引入了一种以往无法实现的自适应程度。这导致了时间变化的SSM,不再能够使用卷积进行高效的计算,而是依赖于线性递归机制,这是与传统模型的重大偏离。

SSM + Selection (S6)这个变体包括了一个选择机制,将参数BC的输入依赖性添加进来,并添加了一个延迟参数Δ。这允许模型有选择地关注输入序列x的某些部分。参数根据选择进行离散化,并且SSM操作以时间变化的方式应用,使用扫描操作对元素进行顺序处理,随时间动态调整焦点。

Mamba的性能亮点

Mamba在每个评估结果上都表现最佳

Mamba在每个评估结果上都表现最佳

就性能而言,Mamba在推断速度和准确性方面表现出色。其设计能够更好地利用更长的上下文,在DNA和音频建模中得到展示,优于之前在需要长程依赖的复杂任务上的模型。它的灵活性也在跨多个任务的零样本评估中得到展示,以在效率和可伸缩性方面为此类模型设立了新标准。

开始使用Mamba

对于那些有兴趣利用Mamba的人来说,技术要求包括Linux操作系统、NVIDIA GPU、PyTorch 1.12+和CUDA 11.6+。安装涉及使用pip命令从Mamba存储库安装必要的软件包。如果出现与PyTorch版本的兼容性问题,可以在pip中使用–no-build-isolation标志来帮助解决。这些模型是在Pile和SlimPajama数据集等广泛数据集上进行训练的,旨在满足各种计算需求和性能基准。

Mamba提供不同级别的接口,从选择性SSM层到Mamba块和完整的语言模型结构。Mamba块是架构的主要模块,利用了因果Conv1d层,可以轻松地集成到神经网络设计中。Python中提供的使用示例演示了实例化Mamba模型并通过它处理数据的过程,突显了系统的简单性和灵活性。

预训练的Mamba模型可在Hugging Face上获得,大小从130M到2.8B的参数不等,训练于广泛的Pile数据集和SlimPajama数据集。这些模型旨在满足各种计算和性能要求,符合GPT-3的尺度标准。用户可以期待从这些模型获得高吞吐量和准确性,使得Mamba成为各种应用的竞争选择,包括但不限于语言建模。

Mamba的影响

Mamba代表了序列建模的一次飞跃,为处理信息密集的数据提供了与Transformer架构相比的强大选择。其设计符合现代硬件的要求,优化了内存使用和并行处理能力。Mamba的代码库和预训练模型的开源可用性使其成为人工智能和深度学习领域的研究人员和开发人员可获取且稳定的工具。

Leave a Reply

Your email address will not be published. Required fields are marked *