随着大模型在应用层面的发展,支撑大模型的底层架构模型Transformer所存在的各种问题也逐渐显现,业内一直都在寻找Transformer框架的替代方法。有在原Transformer架构基础上微调改良的,也有采用传统RNN模型的思想的架构,还有以CNN为基础模型的架构,更有将Transformer和其他RNN、CNN架构结合的混合架构模型。无论模型如何变化,目的都是为了更高效地完成任务。
目前的大模型的基础架构改良和重设计,都是在三大基础架构之上进行的革新,即以FNN为主的稠密空间架构基础、以CNN为主的稀疏空间架构基础、以RNN为主的时间序列架构基础。当然一般在设计模型的时候会还会混合加入一些其他架构,比如Encoding-Decoding、Attention、GatedUnit等,Transformer就是在FNN的基础之上加入了Encoding-Decoding、Attention,以及PositionalEncoding等这些元素共同组成的大模型基础架构。
以下是针对目前比较热门的、可能会在未来替代Transformer的基础模型的盘点分析,从中可以发现对于大模型的基础架构模型的设计,主要还是以FNN、CNN、RNN的思想为锚点,加入一些类注意力机制、门控机制、状态空间机制等设计trick继续扩展的。
一、RetNet(Retentive Network)
RetNet是微软研究院提出的一种新型自回归基础架构。RetNet在某种程度上借鉴了Transformer的思想,但它并非直接基于Transformer,而是提出了一种新的机制和架构,在新的架构中引入了一种名为多尺度保留(Multi-ScaleRetention,MSR)的机制来替代Transformer中的多头注意力机制。
论文通过大量实验对比了RetNet和Transformer及其变体。实验结果表明,RetNet在scaling曲线和上下文学习方面一直表现出色。此外,RetNet的推理成本与序列长度无关。对于7B模型和8k序列长度,RetNet的解码速度是带键值缓存的Transformer的8.4倍,内存利用率提高了70%。
在训练过程中,RetNet还能够比标准Transformer节省25-50%的内存,实现了7倍的加速,并在高度优化的FlashAttention方面具有优势。此外,RetNet的推理延迟对批大小不敏感,因此实现了巨大的吞吐量。
RetNet由L个相同的保留层堆叠而成,每个保留层包含一个多尺度保留模块(MSR)和一个前馈神经网络(FNN)模块。这种结构使得RetNet在训练可并行、推理成本低和良好的性能等方面具有优势。
MSR模块的主要功能就是保留机制。首先,对于输入序列的每个元素,MSR模块会计算它与序列中其他所有元素的关系。然后,再将这些关系以一种衰减的方式保留下来,这就是所谓的“保留”机制。
此外,MSR模块还引入了位置相关的指数衰减项来取代softmax,简化了计算,同时使前步的信息以衰减的形式保留下来。并且,保持机制使用多尺度的衰减率,增加了模型的表达能力。
RetNet被设计为大型语言模型的基础架构,RetNet的主要优势在于它能够同时实现训练并行化、低成本推理和良好的性能。RetNet提出了一种名为"retention"的机制来替代传统的"attention"机制。这种机制支持三种计算范式,即并行、循环和分块循环。具体来说,并行表示允许训练并行化,循环表示使得推理成本低,而分块循环表示有助于有效地进行长序列建模。
RetNet的复杂性随着模型大小的放大而降低。根据经验观察到,当模型尺寸大于2B时,RetNet的性能往往优于Transformer。
Transformer和RetNet的推理成本,模型尺寸为6.7B。RetNet在内存消耗、吞吐量和延迟方面都优于Transformer。托管RetNet需要更少的GPU内存来托管RetNet。RetNet的额外内存消耗几乎可以忽略不计(即约3%),而模型权值占97%。吞吐量如下图b所示,Transformer的吞吐量随着解码长度的增加而下降。相比之下,RetNet在解码过程中具有更高的长度不变吞吐量。延迟延迟是部署中的一个重要