语言模型是一类机器学习模型,经过训练以对自然语言建立概率分布。其架构主要由多层神经网络组成,如循环层、前馈层、嵌入层和注意力层。这些层协同处理给定的输入文本并生成输出预测。
2023 年末,卡内基梅隆大学与普林斯顿大学的研究人员发表了一篇研究论文,提出了一种用于大型语言模型(LLMs)的新架构——Mamba。Mamba 是一种面向序列建模的全新状态空间模型架构,旨在解决Transformer模型的一些局限,尤其是在处理长序列方面,并已展现出有前景的性能。
下面我们来探索 Mamba LLM 的架构及其在机器学习中的重要性。
什么是 Mamba?
Mamba 是一种新的 LLM 架构,集成了结构化状态空间序列(S4)模型,用于处理超长数据序列。S4 结合了循环、卷积与连续时间模型的优点,能够高效、有效地模拟长期依赖。这使其可以处理不规则采样数据、具备无界上下文,并在训练与测试中保持计算效率。
在 S4 范式之上,Mamba 尤其在处理时变操作方面带来了多项显著改进。其架构围绕一种特殊的选择机制展开,根据输入动态调整结构化状态空间模型(SSM)的参数。
因此,Mamba 能通过仅关注序列中的关键信息来有效滤除不重要的数据。根据维基百科的说法,"该模型从时不变框架转为时变框架,这会同时影响系统的计算与效率。"
关键特性与创新
Mamba 摒弃了传统的注意力与 MLP 模块,使其与众不同。这种简化带来了更轻量、更快速、并能随序列长度线性扩展的模型,这是其前辈未能实现的壮举。
Mamba 的关键组成包括:
- 选择性状态空间(SSM):基于循环模型,可根据当前输入有选择地处理信息,是 Mamba SSM 的基础。这使其能够滤除无关数据、聚焦相关信息,从而实现更高效的处理。
- 简化架构:Mamba 以一个统一的 SSM 模块替代 Transformer 复杂的注意力与 MLP 模块,旨在加速推理并降低计算复杂度。
- 硬件感知并行性:Mamba 采用专为硬件效率设计的并行算法配合循环模式,因而可能具备更优的性能。
另一个关键组件是线性时不变性(LTI);LTI 是 S4 模型的核心特性之一。这意味着模型参数在所有时间步保持不变,从而维持模型动力学的一致性。LTI 作为循环与卷积的基础,使序列模型的构建更为简洁高效。
Mamba LLM 架构细节
Mamba 的架构进一步凸显了机器学习领域的进步。它通过引入选择性状态空间模型(SSM)层,改变了模型处理序列的方式。这使 Mamba 能完成两件极其重要的事情:
- 聚焦相关信息——Mamba 能为每个输入分配不同权重,从而优先考虑对任务更具预测性的数据信号。
- 动态适配输入——由于模型具备对输入的自适应能力,Mamba 能轻松应对各类序列建模任务。
因此,Mamba 能以前所未有的效率处理序列,非常适合涉及长序列数据的任务。
Mamba 的设计理念基于对当代硬件能力的把握。它旨在充分利用 GPU 的算力,确保:
- 内存使用优化:通过将状态扩展设计为适配 GPU 的高带宽内存(HBM),减少数据传输时间并加快处理速度。
- 并行处理最大化:借助与 GPU 并行计算特性相契合的计算流程,Mamba 达到树立序列模型新标杆的性能水平。
Transformer(如 GPT-4)的出现推动了自然语言处理(NLP)领域的发展,并在多项自然语言任务上树立了新基准。然而,长序列一直是 Transformer 的痛点,会显著拖累其效率。
这正是 Mamba 擅长的领域。凭借其独特架构,Mamba 能以更简洁的方式、更高的速度处理长序列。
Transformer 非常擅长处理数据序列,例如语言模型中的文本。它与以往按顺序处理数据的模型不同,可一次性并行处理完整序列。这一内在特性使其能捕捉数据中的复杂关系。
它采用注意力机制,使模型在生成预测时能关注序列的不同片段。注意力通过三组由输入数据得到的权重计算而成:值(values)、键(keys)与查询(queries)。
序列中的每个元素都会与其他所有元素两两赋权,以指示它在预测序列下一个元素时应获得多少权重——或“注意力”。
Transformer 由两个主要模块构成:用于处理输入数据的编码器,以及用于生成输出的解码器。
编码器由多层堆叠而成——每层包含两个子层:一个逐位置的全连接前馈网络,以及一个多头自注意力机制。为辅助深层网络训练,每个子层都使用残差连接与归一化。
与编码器类似,解码器也由多层与两个子层组成,但另外加入了第三个子层,用于对编码器输出施加多头注意力。由于解码器的顺序性,其自回归特性得以保持,即某一位置的预测仅能参考更早的位置。
因此,Transformer 试图通过引入更复杂的注意力机制来应对长序列问题,而 Mamba 则采取了不同的路径。
Mamba 架构
Mamba 利用选择性状态空间。这种方法解决了 Transformer 在长序列上的计算低效问题。
Mamba 的架构实现了更快的推理与对序列长度的线性扩展,为序列建模开创了新范式,且随着序列变长可能更具优势。
鉴于我们已在上文深入介绍过 Mamba 的架构,此处不再赘述。
下面这张来自维基百科的图表,有助于理解 Mamba 与 Transformer 的对比:
|
特性
|
Transformer
|
Mamba
|
|
架构
|
基于注意力
|
基于 SSM
|
|
复杂度
|
高
|
较低
|
|
推理速度
|
O(n)
|
O(1)
|
|
训练速度
|
O(n2)
|
O(n)
|
值得注意的是,尽管 SSM 在许多方面优于 Transformer,后者能够处理远超 SSM 可在内存中存储的更长序列,在学习类似任务时需要显著更少的数据,并且即便参数更少,在需要从输入上下文检索或复制信息的任务上也能胜过 SSM。
开始使用 Mamba
如果您有兴趣尝试 Mamba 或在项目中使用它,您需要具备以下环境:
- Linux
- NVIDIA GPU
- PyTorch 1.12+
- CUDA 11.6+
要从Mamba 仓库安装所需软件包,可使用几条简单的 pip 指令:
- [可选]
pip install causal-conv1d>=1.2.0:Mamba 模块内部使用的高效简单因果 Conv1d 层实现。
pip install mamba-ssm:Mamba 核心包。
也可在该仓库中通过 pip install . 从源代码构建。
若 PyTorch 版本导致兼容性问题,可在使用 pip 时加上 --no-build-isolation 参数以协助解决。这些模型在诸如 Pile 与 SlimPajama 等大型数据集上训练,旨在满足多样的计算需求与性能基准。
Mamba 模型提供多个接口层级,但其核心模块是封装了选择性 SSM 的 Mamba 架构块。
安装完成后,可按如下方式使用:
import torch
from mamba_ssm import Mamba
batch, length, dim = 2, 64, 16
x = torch.randn(batch, length, dim).to("cuda")
model = Mamba(
d_model=dim,
d_state=16,
d_conv=4,
expand=2,
).to("cuda")
y = model(x)
assert y.shape == x.shape技术支持
Mamba 的应用
Mamba LLM 的推出,可能会给 LLM 架构领域带来重大转变。更快、更高效且具备可扩展性,Mamba 能轻松在高性能标准下处理长序列,这也解释了它为何有望在塑造高级 AI 系统的未来中发挥关键作用。
具体而言,Mamba 的高效与高性能或将引领下一波 AI 创新,推动日益复杂的模型与应用落地。其潜在影响广泛,涵盖音频与语音处理、长文本分析、内容创作、实时语言翻译等诸多领域。
可能被深刻变革的行业包括:
- 医疗健康:Mamba 可通过快速分析基因数据,加速个性化医疗方案的开发。
- 金融:Mamba 可用于分析长期市场趋势,从而带来更准确的股票预测。
- 客户服务:Mamba 有能力驱动可跟踪长对话的聊天机器人,从而提升客户沟通体验。
Mamba 的未来之路
Mamba 作为一束创新的灯塔,指引着解决复杂序列建模问题的新机遇。它的问世标志着向更智能、可扩展且高效的系统迈进,这些系统能够以前所未有的深度理解并处理序列。
尽管 Mamba 已被证明是重要的技术里程碑,但其成功并不只取决于技术本身——协作研究、资源共享与开源贡献同样至关重要:
- 开源贡献:鼓励研究者与开发者为 Mamba 代码库作出贡献,可能促成更稳健、适应性更强的模型。
- 资源共享:通过汇聚社区知识与资源、共享预训练模型,可加速整体进展。
- 协同研究:学界与产业的合作能进一步拓展 Mamba 的能力边界。
结语
Mamba 不只是对现有序列模型的小幅改进;它重塑了可能性的边界。随着它的到来,人工智能的历史将翻开新的一页——计算低效与序列长度限制正逐步走向过时。
过去数年间,我们见证了 AI 从RNN到 Transformer,再到如今的 Mamba 的演进,每一步都更接近具备类人深度思考与信息处理能力的 AI。Mamba 以其选择性状态空间方法与线性时间伸缩性,体现了推动 AI 领域前行的革命精神。
Mamba 标志着人工智能一项充满希望的发展开端。它是面向未来的范式,凭借无尽潜力,势必对 AI 产生深远影响。
继续学习,您可以查看:
语言模型是一类机器学习模型,经过训练以对自然语言建立概率分布。其架构主要由多层神经网络组成,如循环层、前馈层、嵌入层和注意力层。这些层协同处理给定的输入文本并生成输出预测。
2023 年末,卡内基梅隆大学与普林斯顿大学的研究人员发表了一篇研究论文,提出了一种用于大型语言模型(LLMs)的新架构——Mamba。Mamba 是一种面向序列建模的全新状态空间模型架构,旨在解决Transformer模型的一些局限,尤其是在处理长序列方面,并已展现出有前景的性能。
下面我们来探索 Mamba LLM 的架构及其在机器学习中的重要性。
什么是 Mamba?
Mamba 是一种新的 LLM 架构,集成了结构化状态空间序列(S4)模型,用于处理超长数据序列。S4 结合了循环、卷积与连续时间模型的优点,能够高效、有效地模拟长期依赖。这使其可以处理不规则采样数据、具备无界上下文,并在训练与测试中保持计算效率。
在 S4 范式之上,Mamba 尤其在处理时变操作方面带来了多项显著改进。其架构围绕一种特殊的选择机制展开,根据输入动态调整结构化状态空间模型(SSM)的参数。
因此,Mamba 能通过仅关注序列中的关键信息来有效滤除不重要的数据。根据维基百科的说法,"该模型从时不变框架转为时变框架,这会同时影响系统的计算与效率。"
关键特性与创新
Mamba 摒弃了传统的注意力与 MLP 模块,使其与众不同。这种简化带来了更轻量、更快速、并能随序列长度线性扩展的模型,这是其前辈未能实现的壮举。
Mamba 的关键组成包括:
另一个关键组件是线性时不变性(LTI);LTI 是 S4 模型的核心特性之一。这意味着模型参数在所有时间步保持不变,从而维持模型动力学的一致性。LTI 作为循环与卷积的基础,使序列模型的构建更为简洁高效。
Mamba LLM 架构细节
Mamba 的架构进一步凸显了机器学习领域的进步。它通过引入选择性状态空间模型(SSM)层,改变了模型处理序列的方式。这使 Mamba 能完成两件极其重要的事情:
因此,Mamba 能以前所未有的效率处理序列,非常适合涉及长序列数据的任务。
Mamba 的设计理念基于对当代硬件能力的把握。它旨在充分利用 GPU 的算力,确保:
Mamba 与 Transformer 的比较
Transformer(如 GPT-4)的出现推动了自然语言处理(NLP)领域的发展,并在多项自然语言任务上树立了新基准。然而,长序列一直是 Transformer 的痛点,会显著拖累其效率。
这正是 Mamba 擅长的领域。凭借其独特架构,Mamba 能以更简洁的方式、更高的速度处理长序列。
Transformer 架构
Transformer 非常擅长处理数据序列,例如语言模型中的文本。它与以往按顺序处理数据的模型不同,可一次性并行处理完整序列。这一内在特性使其能捕捉数据中的复杂关系。
它采用注意力机制,使模型在生成预测时能关注序列的不同片段。注意力通过三组由输入数据得到的权重计算而成:值(values)、键(keys)与查询(queries)。
序列中的每个元素都会与其他所有元素两两赋权,以指示它在预测序列下一个元素时应获得多少权重——或“注意力”。
Transformer 由两个主要模块构成:用于处理输入数据的编码器,以及用于生成输出的解码器。
编码器由多层堆叠而成——每层包含两个子层:一个逐位置的全连接前馈网络,以及一个多头自注意力机制。为辅助深层网络训练,每个子层都使用残差连接与归一化。
与编码器类似,解码器也由多层与两个子层组成,但另外加入了第三个子层,用于对编码器输出施加多头注意力。由于解码器的顺序性,其自回归特性得以保持,即某一位置的预测仅能参考更早的位置。
因此,Transformer 试图通过引入更复杂的注意力机制来应对长序列问题,而 Mamba 则采取了不同的路径。
Mamba 架构
Mamba 利用选择性状态空间。这种方法解决了 Transformer 在长序列上的计算低效问题。
Mamba 的架构实现了更快的推理与对序列长度的线性扩展,为序列建模开创了新范式,且随着序列变长可能更具优势。
鉴于我们已在上文深入介绍过 Mamba 的架构,此处不再赘述。
下面这张来自维基百科的图表,有助于理解 Mamba 与 Transformer 的对比:
特性
Transformer
Mamba
架构
基于注意力
基于 SSM
复杂度
高
较低
推理速度
O(n)
O(1)
训练速度
O(n2)
O(n)
值得注意的是,尽管 SSM 在许多方面优于 Transformer,后者能够处理远超 SSM 可在内存中存储的更长序列,在学习类似任务时需要显著更少的数据,并且即便参数更少,在需要从输入上下文检索或复制信息的任务上也能胜过 SSM。
开始使用 Mamba
如果您有兴趣尝试 Mamba 或在项目中使用它,您需要具备以下环境:
要从Mamba 仓库安装所需软件包,可使用几条简单的 pip 指令:
pip install causal-conv1d>=1.2.0:Mamba 模块内部使用的高效简单因果 Conv1d 层实现。pip install mamba-ssm:Mamba 核心包。也可在该仓库中通过
pip install .从源代码构建。若 PyTorch 版本导致兼容性问题,可在使用
pip时加上--no-build-isolation参数以协助解决。这些模型在诸如 Pile 与 SlimPajama 等大型数据集上训练,旨在满足多样的计算需求与性能基准。Mamba 模型提供多个接口层级,但其核心模块是封装了选择性 SSM 的 Mamba 架构块。
安装完成后,可按如下方式使用:
Mamba 的应用
Mamba LLM 的推出,可能会给 LLM 架构领域带来重大转变。更快、更高效且具备可扩展性,Mamba 能轻松在高性能标准下处理长序列,这也解释了它为何有望在塑造高级 AI 系统的未来中发挥关键作用。
具体而言,Mamba 的高效与高性能或将引领下一波 AI 创新,推动日益复杂的模型与应用落地。其潜在影响广泛,涵盖音频与语音处理、长文本分析、内容创作、实时语言翻译等诸多领域。
可能被深刻变革的行业包括:
Mamba 的未来之路
Mamba 作为一束创新的灯塔,指引着解决复杂序列建模问题的新机遇。它的问世标志着向更智能、可扩展且高效的系统迈进,这些系统能够以前所未有的深度理解并处理序列。
尽管 Mamba 已被证明是重要的技术里程碑,但其成功并不只取决于技术本身——协作研究、资源共享与开源贡献同样至关重要:
结语
Mamba 不只是对现有序列模型的小幅改进;它重塑了可能性的边界。随着它的到来,人工智能的历史将翻开新的一页——计算低效与序列长度限制正逐步走向过时。
过去数年间,我们见证了 AI 从RNN到 Transformer,再到如今的 Mamba 的演进,每一步都更接近具备类人深度思考与信息处理能力的 AI。Mamba 以其选择性状态空间方法与线性时间伸缩性,体现了推动 AI 领域前行的革命精神。
Mamba 标志着人工智能一项充满希望的发展开端。它是面向未来的范式,凭借无尽潜力,势必对 AI 产生深远影响。
继续学习,您可以查看: