点击下方卡片,关注
「AI视界引擎」
公众号
( 添加时备注:方向+学校/公司+昵称/姓名 )
在本技术报告中,作者提出了Falcon Mamba 7B,一种基于新颖Mamba架构的新一代大型语言模型。Falcon Mamba 7B在5.8万亿个 Token 上进行训练,这些 Token 是通过精心选择的数据混合物得到的。
作为纯Mamba架构的模型,Falcon Mamba 7B在基于 Transformer 的开源权重模型中超越了 Mistral 7B,Llama3.1 8B,和Falcon2 11B。
它的性能与Gemma 7B相当,并在不同的架构设计模型(如RecurrentGemma 9B和RWKV-v6 Finch 7B/14B)中表现出色。
目前,Falcon Mamba 7B是文献中在这个规模上表现最好的Mamba模型,超越了现有的Mamba和混合Mamba-Transformer模型,根据Open LLM Leaderboard(Fourrier等,2024)。由于其架构,Falcon Mamba 7B在推理方面显著 faster,且需要更少的内存进行长序列生成。
尽管最近的研究表明,混合Mamba-Transformer模型优于纯架构设计,但作者证明即使纯Mamba设计也可以与Transformer和混合设计相比实现类似,甚至更好的结果。
作者在https://huggingface.co/tiiuea/falcon-mamba-7b上公开了作者实现的Falcon Mamba 7B的权重,并采用了一种许可宽松的许可证。
1 Introduction
现代的foundation模型主要基于Transformer及其核心关注层 。由于其与窗口长度的平方复杂度相关,最近的研究试图提出纯注意力的更高效替代方案,例如FlashAttention(Dao等人,2022年;Dao,2024年)、滑动窗口关注 。最近提出了超越Transformer的新架构,例如 Griffin(De等人,2024年)、RWKV(Peng等人,2023年)和Mamba ,并已显示出与Transformer相当的性能。然而,它们中的大多数要么在小型规模上证明了自己的性能,要么与最近的基于Transformer的性能良好的LLM仍存在性能差距。
社区已经做出了努力,将Mamba LLMs扩展到原始测试目的2.8B的Mamba模型之外。值得注意的是,这些模型采用了混合Mamba-Transformer设计,与纯Transformer模型相比,表现出了优越的性能。
然而,在大数据和模型规模方面,纯无注意力模型是否能与高度优化的Transformer相媲美,仍然不清楚。
作者介绍了Falcon Mamba 7B —— 一个基于(预训练)的纯Mamba架构设计的基础模型,同时也是FalconLLM系列中的首个状态空间语言模型(SSLM)。作者认为Falcon Mamba 7B正面回答了上述问题,并且,据作者所知,这是首个做到如此的模型。通过使用Open LLM Leaderboard(Fourrier等人,2024年)的基准测试集进行衡量,Falcon Mamba 7B与强大的基于 Transformer 的预训练LLM,Mistral 7B 和Falcon2 11B 相当或超越。
此外,它还超过了其他架构设计的模型,如基于Griffin和RWKV-v6 Finch 7B和14B(Peng等人,2024年)的RecurrentGemma 9B(Botev等人,2024年)。更重要的是,由于采用了纯Mamba设计,Falcon Mamba 7B在上下文长度不同时,维持了恒定的内存成本,同时在大规模上下文数据生成方面提供了极端高效推理。
在这份技术报告中,作者详细介绍了Falcon Mamba 7B模型架构、训练配方和预训练数据准备。之后,作者将对在流行基准测试上采用不同架构的LLM进行详细比较。
最后,作者将展示Falcon Mamba 7B的更广泛含义、局限性和优势,并得出结论。
2 Model Architecture
《猛禽响尾蛇》7B模型架构基于Mamba(郭 & 道,2023)。该架构的核心参数总结在表1中。
作者在整个训练过程中解耦了输入嵌入层与输出权重,以提高模型的灵活性。根据作者的实验结果,这种方法在7B规模上提高了模型性能。
请注意,与 Transformer 不同,序列长度并不是Mamba架构的一部分。在推理过程中,可以使用任何序列长度,而模型处理长序列的实际能力取决于用于训练的序列长度。
设计决策:最近的研究表明,一种混合架构,具有交错注意力和支持向量机(SSM)层,可以超越纯Transformer或SSM模型。这种改进被认为源于两种模型的互补特性:SSM的一般序列到序列映射能力以及注意力层的快速检索属性。
最近基于Mamba的语言模型遵循这种直觉,将混合设计扩展到超过2.8亿模型,例如Samba 3.8B(Ren等人,2024年),Zamba 7B,Jamba 12B/52B。
然而,引入注意力层破坏了Mamba架构的线性可扩展性,引发了这样一个问题:在规模上,一个纯粹基于Mamba的架构能否实现与最先进的(state-of-the-art,SoTA)开源语言模型竞争,同时保持其线性可扩展性?最近的无注意力模型,如RWKV-v6(Peng等人,2024年),在小型尺度或在某些学术基准上展示了其性能。然而,在各种基准上的更全面的比较中,它们远远落后于流行的语言模型。
在预训练过程中,作者观察到一致的损失峰值随机且不可预测地出现。值得注意的是,当作者应用更高的学习率时,模型表现出更明显的损失峰值,并更容易出现偏差。这一现象也在Falcon2(Malartic等人,2024年)的训练中观察到,最近的一些论文,如Jamba(Lieber等人,2024年)和Mamba2(Dao和Gu,2024年)也报告了类似的问题。
特别的是,作者发现Mamba架构对学习率比Transformer更敏感。
仔细的模型初始化和减少模型的学习率敏感性对于解决这个问题至关重要。与(Dehghani等人,2023年)一致,应用预范数和后范数与RMSNorm已经成为一种常见的做法,以稳定预训练。
同样,作者在B、C和Δ之后添加了RMSNorm层。从作者的实验中,似乎比其他设置(如在每个块的最终输出投影之前添加RMSNorm层)带来更稳定的训练损失。这与Jamba模型的设计(Lieber等人,2024年)一致。
3 Pre-training
Training stategy
falcon-mamba-7B 的大部分训练时间是在256个H100 80GB GPU上进行的,使用仅有的数据并行(DP=256)。这还结合了ZeRO优化,以高效管理内存和训练过程。
该模型使用AdamW优化器进行训练,其中β_1=0.9,β_2=0.95,ϵ=10−8,权重衰减值0.1。尽管在Falcon-Mamba-7B预训练期间未在输出对数概率上应用Z-损失,但在后续实验中作者观察到,它有助于稳定训练,与(Wortsman等人,2024年)一致。
作者应用了恒定-衰减(WSD)学习率计划(Hu等人,2024年),其中固定暖身持续时间为1GT,稳定阶段的学习率为η_max=6.4×10−4。这样,作者的模型在大多数相关阶段使用相对较高的学习率进行训练,导致在不同训练阶段之间和衰减阶段开始时引入的数据分布变化快速适应(见3.2.2节)。
在衰减阶段,作者使用指数计划将学习率降低到最小值η_min=256η_max,其中t_decay是衰减阶段的持续时间。与大多数技术报告不同,作者发现较长的LR衰减阶段在评估方面提供了更好的结果。作者将总训练 Token 的约10%保留给衰减阶段,以实现最佳性能,这与最近miniCPM的结论一致(Hu等人,2024年)。
在训练开始时,作者使用了批量大小逐渐增加的方式。具体来说,作者将批量大小初始值 b_min=128 线性增加到最大值 b_max=2048,在整个前 50 个 GPU 周期内。在作者的实验中,作者发现批量大小逐渐增加会影响损失曲线和最终模型性能。这种影响最方便地用梯度噪声温度 T_噪声 解释,对于 Adam 优化器,它被定义为(Malladi 等人,2022)。
$$在批量大小增加的过程中,噪声温度(1)会降低。这导致在稳定的LR阶段损失更好,但在LR衰减阶段内的损失增强较小。为了弥补这一缺陷,作者应用了\_批量缩放\_:通过调整学习率η,使得当批量大小b发生变化时,Adam噪声的$\frac{\eta}{\sqrt{b}}$温度保持不变。作者发现,批量缩放在LR衰减阶段后,能够在长于增益期的时间段内获得更好的最终损失。
### Pre-training data
Falcon Mamba 7B 主要在 Falcon2-11B 的数据(Malartic 等,2024)上进行训练。由于 7B 模型可能不足以在不损害英语性能的情况下在多语言任务上表现出令人瞩目的性能,所以作者从预训练语料库中排除了多语言数据。然而,可以采用持续的预训练阶段来使模型具有多语言能力。
作者采用了与 *Falcon* 系列模型(Almazrouei 等,2023)相同的分词器,没有进行任何更改。
#### 3.2.1 Data sources
该模型在主要由网页、精选、代码和数学数据组成的数据混合上进行训练。
主要利用了RefinedWeb(Penedo等人,2023年),这是一个由来自网页数据的高质量英语预训练数据集,总共有5万亿个 Token 。从原始Common Crawl数据开始,通过语言识别、过滤(按行和文档)以及模糊和精确去重,筛选出样本。
精选数据 精选数据集包括书籍、科学出版物(如arXiv、PubMed)、专利(USPTO)以及Reddit、StackExchange和Hackernews等平台上的对话。为了正确处理对话树,作者采用了与Malartic等人(2024年)相同的方法来强制因果时间顺序,确保在训练期间每个对话只使用一次。
代码样本来源于The Stack(Kocetkov等人,2022)。这些代码样本经过与用于Web数据相同的处理 Pipeline 进行处理。在预训练过程中,代码数据逐渐注入,同时进行持续的数据收集和处理。
作者使用未经进一步优化的Proof-Pile-2(Azerbayev等人,2023年),并使用通过在Proof-Pile-2上训练的\_FastText\_分类器筛选的网页数学数据。
#### 3.2.2 Data mixtures
在预训练过程中,作者采用了四个恒定的学习率(LR)阶段,随后是一个最终的LR衰减阶段。前四个阶段包括逐步增加序列长度,从2048增加到8192。遵循课程学习概念,作者在训练阶段的各个数据混合中仔细选择数据,如图1所示,既考虑数据多样性,也考虑数据复杂性。
主要思想是增加后期高质量和科学数据。由于某些资源的有限数据,作者对低代表性数据应用了多次迭代,如数学、代码、整理数据。由于预训练中使用了填充 Token ,作者谨慎地选择每个阶段短样本和长样本的比例,以防止任何分布偏移。
![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/5a0fc5a3f916474188ab260d92a57bd2~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1731983491&x-signature=dEno89ZFi5mW5faaqBA0P3QGIeE%3D)在衰减阶段,作者引入了更多样化和更高质量的数据来优化或调整在前几个阶段学习到的知识。这包括使用FineWeb-Edu(Penedo等人,2024年)的部分作为网络数据,以及Cosmopedia(Ben Allal等人,2024年)的合成数据。此外,还使用了少量的多任务指令数据(四个周期,占3.7%),类似于其他研究(Hu等人,2024年;Yang等人,2024年),以增强模型的零样本和少样本学习能力。在预训练期间包含指令数据是一个有争议的话题,因为它可能会降低模型的微调灵活性。
然而,从作者的实验结果来看,作者发现保持少量指令数据可以增强Mamba在上下文检索能力(Wen等人,2024年),同时不会过拟合有限重复次数的多任务数据。此外,作者观察到在第四个阶段结束时,训练损失仍在减小,这表明通过在更多高质量数据上持续训练,模型的性能可以进一步提高。为了支持社区进行进一步的研究或持续对模型进行训练,作者决定发布模型的预衰减预训练权重2。
4 Evaluation and Results
------------------------
### Benchmark results
作者对模型与最先进的模型进行了比较评估,这些模型跨越了三个不同的架构类别:状态空间模型(SSMs)、 Transformer (Transformers)和混合模型(Hybrid models)。混合模型将注意力机制与循环/Mamba块相结合。
选择了基准测试,其中结果由HuggingFace公开独立完成,涵盖广泛的顶级类别,以评估模型在不同任务上的灵活性和性能:
数学推理与问题解决:GSM8K(5-shots)(Cobbe等人,2021年),MATH-Lvl5(4-shots)(Hendrycks等人,2021年),ARC挑战赛(25-shots)(Clark等人,2018年),GPQA(0-shot)(Rein等人,2023年),MuSR(0-shot)(Sprague等人,2023年)
汇总:MMLU (5-shot) (Hendrycks等人,2020年),MMLU-Pro (5-shot) (Wang等人,2024年),BIG-Bench Hard (BBH) (3-shot) (Suzgun等人,2022年)如表2和表3所示,在可能的情况下,作者从HF Leaderboards v1(Beeching等人,2023年)和v2(Fourrier等人,2024年)中提取竞争模型结果,以确保公正的比较。
当leaderboard结果不可用时,作者使用可用的最佳结果,无论是从报告的结果还是从作者内部的评估。内部评估使用lm-evaluation-harness (Gao等人,2024年)和lightweight (Fourrier等人,2023年)包进行。
![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/c10b3064dc4847fba6fab74977450220~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1731983491&x-signature=viQamolQQESSCHYisys%2FoPQSfuk%3D)在全球范围内,Falcon-Mamba-7B 在相同规模下,无论架构如何,都优于类似的模型,包括Transformer 模型(Llama3/3.1-8B (Dubey 等,2024),Mistral-7B (Jiang 等,2023),RWKV-v6-Finch-7B (Peng 等,2024),以及混合模型如Zamba-7B,以及Mamba-7B-RW (Mercat 等,2024)。此外,它要么优于,要么与更大模型(如Falcon2-11B (Malartic 等,2024),RWKV-v6-Finch-14B (Peng 等,2024),Gemma-7B (8.54B) (Teamet 等,2024),RecurrentGemma-9B (Botev 等,2024),以及Mistral-Nemo-12B 3)相媲美。这使得Falcon-Mamba-7B成为社区中首个具有竞争力的无注意力7B模型,并在各种任务上表现出出色的性能。
作者还报告了模型在预衰减预训练权重的性能,在衰减阶段观察到显著的性能提升。衰减阶段可以为大规模模型确定数据混合和模拟压缩预训练阶段提供有价值的见解。
尽管最近的研究(Waleffe等人,2024;文等人,2024)表明纯Mamba/Mamba2设计在复制和上下文学习等任务上落后于Transformers,但Falcon-Mamba-7B在少样本学习任务(如MMLU、ARC-25和GSM8K)上表现出色。
这表明在预训练期间的数据质量和训练策略的质量比架构本身更加重要,可以减轻这些潜在的劣势。此外,Falcon-Mamba-7B在长文本推理任务上表现出色,突显了在长文本学习场景中的巨大潜力。
### Throughput and memory consumption
注意机制在处理长序列时固有限制,随着序列长度增长,计算和内存成本也在增加。利用SSM模型处理大序列的理論效率(Gu & Dao,2023),Falcon-Mamba-7B 证明这些扩展限制确实可以在不牺牲性能的情况下被克服。
设置 为复制实际用例,作者将Falcon-Mamba-7B与相同规模的可变Transformer模型进行比较,包括Llama3.1-8B,Mistral-7B 和Qwen2-7B(Yang等人,2024年)。所有评估均使用Hugging Face transformers库(Wolf等人,2020年)进行。为了公平比较,作者将所有Transformer模型的词汇量大小重新缩放,使其与Falcon-Mamba-7B匹配,因为这对模型的内存开销有很大影响。
在深入结果之前,澄清序列的 Prompt (prefill)和生成(decode)部分的差异非常重要。对于状态空间模型(SSMs),填充过程比 Transformer 模型更为关键。当 Transformer 生成下一个 Token 时,它必须关注所有先前的 Token 在上下文中的 Key和Value ,导致内存和生成时间线性扩展。相比之下,SSM只存储和关注其递归状态,在生成大型序列时避免了额外的内存或时间需求。尽管这表明了SSM在解码阶段的效率,但填充阶段需要额外的框架优化才能充分利用SSM架构。
标准的预填充方法是并行处理整个 Prompt ,最大限度地利用GPU,称为并行预填充。这是大多数框架(如Optimum-Benchmark4)所采用的方法。在这种方法中,由于需要为每个 Token 存储隐藏状态,所以内存使用随着 Prompt 长度增加而增长。对于 Transformer ,内存主要由存储的键值(KV)缓存控制,而自注意力机制(SSM)不需要KV缓存。
然而,对于SSM,用于存储隐藏状态的内存仍然与 Prompt 长度成比例增长,这使得处理任意长度的序列具有挑战性,类似于 Transformer 。
另一种方法,作者称之为顺序预填充,逐个(或以较大的块)处理 Prompt Token ,类似于序列并行性。尽管这种方法对于 Transformer 没有太大优势,但它允许SSM处理任意长度的 Prompt ,从而减轻了并行预填充所看到的内存扩展问题。这需要社区对优化现有推理框架以支持SSM的更多支持。
在这些考虑的基础上,作者首先评估了可以在单个24 GB A10 GPU上容纳的最大序列长度,如图2所示。批量大小固定为1,并对所有操作采用float32精度。作者的结果表明,对于并行预填充,Falcon-Mamba-7B相对于标准 Transformer 架构可以容纳更大的序列,而在顺序预填充中,Falcon-Mamba-7B可以发挥其全部潜力,并处理任意长度的 Prompt 。
![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/0cff3104e3764b55a12596d06b7d9c7f~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1731983491&x-signature=9SSaF6ks2Y9WuLsyfkPZz590VnE%3D)接下来,作者在极端设置下评估生成吞吐量:长度为1的 Prompt 词,最多生成130k个生成的 Token ,批处理大小为1,在80GB的H100 GPU上运行。如图3所示,Falcon-Mamba-7B在所有生成的 Token 上都保持了恒定的吞吐量,没有出现峰值CUDA内存使用率的增加。相比之下,Mistral-7B模型在峰值内存消耗上出现了线性增长,随着生成的 Token 数量增加,生成速度逐渐降低。
![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/ea86ee17fc8943ce8eb6ee2c044cfd7a~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1731983491&x-signature=8rX7wKVdbLYOvfx4cMSfeyraapY%3D)5 Model Integration and Availability
------------------------------------
### Batched generation support
在实际场景中,由于效率考虑,长度不同的输入序列经常被批量处理,这引入了填充 Token 以对齐序列。这对于基于SSM(Self-Attention Mechanism)的模型(如Mamba)来说可能存在挑战,因为右侧填充在训练过程中(填充 Token 在损失计算中被屏蔽)是有效的,但在推理阶段会带来问题。在推理阶段,Mamba模型根据所有先前的隐藏状态预测下一个 Token ,因此包括较短序列的填充 Token 可能导致不准确的预测。
在Transformer模型中,通常使用左侧填充来防止填充 Token 干扰注意力机制。对于同时使用自注意力机制(SSMs)和卷积层(Convolutional Layers)的Mamba模型,需要采用不同的方法。除了左侧填充之外,Falcon-Mamba-7B通过在因果卷积步骤前后将左侧填充 Token 的隐状态设置为0来处理这个问题。这确保了填充 Token 在生成过程中不会影响模型的预测。
### Model Availability
猎鹰-蟒蛇-7B模型(包括预衰减预训练权重),已根据Falcon Mamba 7B TII许可证5提供,该许可证是一个基于Apache 2.0的开源软件许可证,其中包括一个可接受的使用政策6,以促进AI的负责任使用。
这些模型已经完全集成到Hugging Face生态系统中,可以通过Transformers库(Wolf等人,2020年)进行访问。这包括支持推理、量化(使用大多数支持的量化方案)以及通过TRL库(von Werra等人,2020年)进行微调。所有相关的艺术作品,包括GGUF文件,都可以在Hugging Face的Falcon Mamba 7B收藏中浏览。
此外,已将Falcon-Mamba-7B的支持添加到llama.cpp包7中,可通过使用CPU硬件轻松在本地机器上部署Falcon-Mamba-7B。作者计划在将来支持更多平台。
6 Discussions and conclusion
----------------------------
作者已经推出了Falcon Mamba 7B,这是首个纯粹基于Mamba架构的具有竞争力的7B语言模型。作者的结果表明,它在各种基准测试中与最新的Transformer模型(如Llama 3.1和Mistral 7B)相匹配或超越。这样,Falcon Mamba 7B为无注意力模型设立了新的基准,证明了纯SSM(单向短时记忆)基础设计可以实现最先进的性能。作者希望作者的模型能够增强对高效语言模型架构进一步创新的信心,挑战臭名昭著的“注意力即一切”的说法。
mamba 架构的主要优势在于长序列生成,在这种模式下,它能够保持常数内存和吞吐量使用,而不受序列长度的影响。作者已经通过Falcon Mamba 7B的吞吐量分析和内存分析验证了这一说法。
然而,由于作者专注于获得强大的通用语言模型,Falcon Mamba 7B训练策略并没有强调模型在长序列理解和生成方面的实际熟练程度,而是采用了中等的8k上下文长度。针对超大上下文和验证mamba在其中的表现仍然是一个重要且未充分探索的未来研究和开发领域。如果成功,那么基于mamba的模型将非常适合需要低延迟、大规模生成的实际应用场景,例如音频、视频等。
尽管Falcon Mamba 7B在推理任务和长序列学习方面表现良好,但在与Transformers的对比中,它可能存在一些潜在的局限性。尽管高质量的数据,尤其是Chain-of-Thought(CoT)指令数据或定制的 Prompt 技术(Arora等人,2024年)有助于缓解这些潜在的劣势,但在相同的预算下,仍可能不足以与Transformers缩小差距(文Wen等人,2024年)。
然而,Mamba架构中的数据扩展和模型扩展在文献中探讨较少,留下了Mamba的潜在局限性和优化空间,作为进一步研究的开放领域。
此外,SSM和注意力所提供的序列混合的互补特性表明,混合模型可能具有两者之长。尽管许多最近的研究开始探索这个方向,但作者认为,在单一架构中如何最优化地使用SSM和注意力的问题仍然开放。
参考文献
====
[0]. Falcon Mamba: The First Competitive Attention-free 7B Language Model.
点击上方卡片,关注
「AI视界引擎」
公众号