- 代码:代码
- 论文:https://github.com/microsoft/unilm/tree/master/retnet#
让“不可能三角”变得可能。
2 Retentive Networks
保留网络(RetNet)有L个相同的块,其遵循与Transformer中类似的布局(即Resnet和LayerNorm),每个RetNet块包含两个模块:一个多尺度保留(MSR)模块和一个前馈网络(FFN)模块。
Retention
两个特性:(1)并行表示 (2)循环表示
参照图中框架的公式。
并行表示
循环表示
并行和循环的混合 chunk-wise recurrent
Multi-scale retention(MSR):
类似于 Multi-head Attention(后面也就是替换成了MSR)
一个Block的整体框架
(类似于Transformer):
其中:FFN(X) = gelu(XW1)W2,
Transformer整体架构如下:
不同之处
Transformer:思想和Transformer的一个变体Lex Transformer非常类似。保留的推导与xPos一致。与注意力相比,保留消除了softmax,并使循环公式,这显著有利于推理。
Linear Attention:这些变体通常使用各种 Kernel函数 来替换softmax函数。
Attention Free Transformer (AFT): (AFT)简化了点积Attention对元素级操作,并将softmax移动到关键向量。RWKV用指数衰减取代了AFT的位置嵌入,并周期性地运行模型进行训练和推理。相比之下,retention保留了高维状态来编码序列信息,这有助于表达能力和更好的性能。
xPos/RoPE:位置编码相关。与Transformer的相对位置嵌入方法相比,式(3)给出了与xPos [SDP+22]和RoPE [SLP+21]相似的公式。【式3着实没懂】
Sub-LayerNorm:Retention层使用Sub-LayerNorm对输出进行规范化。由于Multi-scale建模会导致Head的不同差异,所以我们用GroupNorm替换了原来的LayerNorm。
4 conclusion
支持:parallel, recurrent, and chunkwise recurrent.【并行,循环,分块循环】
相比于Transformer的优点:
(1)更好的推理效率(在内存、速度和延迟方面)
O(1)的 inference复杂度.;O(N)的长序列内存复杂度
(2)良好的训练并行化
(3)具有竞争力的性能
它可以通过压缩长期记忆来有效地处理structure Prompting
未来方向:
- 在未来,我们希望在模型大小和训练步骤方面扩大RetNet。
- 我们还将使用RetNet作为主干架构来训练多模型态大型语言模型
- 此外,我们对在各种边缘设备上部署RetNet模型也很感兴趣,如移动电话。