关于矩阵循环单元(一种注意力机制的替代方案)的更新 [R]
摘要
关于矩阵循环单元(MRU)的更新,这是一种线性时间复杂度的注意力机制替代方案。作者探索了稳定训练的方法,发现正交矩阵表现不佳,而LDU分解效果最佳,并表明MRU在TinyStories等较大数据集上表现不如Transformer。
我最近重新审视了我的矩阵循环单元算法(MRU),这是一种新型线性时间序列架构,作为注意力机制的替代方案而创建。我在仓库中对其进行了深入解释,但要点是MRU通过将嵌入转换为输入状态矩阵,沿序列维度累积相乘矩阵以得到输出状态矩阵,然后将矩阵转换回向量。为了使MRU在深度学习硬件上高效运行,我利用运算的结合性创建了并行扫描。大约一年前,我在Reddit上分享了我的项目(此后我重命名了我的账户),在玩具数据集shakespeare-char上取得了良好结果。一位评论者询问了限制矩阵状态的步骤,另一位评论者发现,在更全面的数据集上训练时,训练本质上不稳定。我通过实验不同的方法来创建输入状态矩阵解决了这些问题。最初,我只是将输入向量重塑为矩阵并加上单位矩阵。此后,我实现了以下方法:使用向量的元素填充反对称矩阵,并使用矩阵指数或凯莱映射生成正交矩阵;用向量的元素填充LDU因子,并在D上使用激活函数以强制行列式为1;通过使用矩阵指数或凯莱映射创建正交矩阵Q并填充上三角矩阵R来创建QR;除以通过取行列式找到的行列式校正标量因子。我发现这些修复方法防止了损失尖峰,但存在不同的权衡。有趣的是,标量因子方法导致结果变差。将输入状态除以标量只应通过缩放影响输出状态,这表明未缩放的模型在玩具数据集上通过学习简单的标量衰减模式而非更复杂的关系"作弊"。此外,使用凯莱映射或矩阵指数强制输入状态为正交,出乎意料地几乎阻止了模型学习序列信息,其表现更接近前馈网络而非凯莱QR方法。正交矩阵的糟糕表现表明,学习剪切变换的能力可能对模型至关重要。可能,旋转强制依赖于前一状态,而剪切允许模型更独立于前一状态调整状态。
https://preview.redd.it/9ebh98q6uo8h1.png?width=2528&format=png&auto=webp&s=03ccef7f9b90762281aba31ab88af0368e273f69
https://preview.redd.it/fkkud7q6uo8h1.png?width=2528&format=png&auto=webp&s=5e9a2ef2b0e4319990950f16aa0648adebc2c360
以上是在shakespeare-char数据集上,一个小型MRU语言模型、Transformer和前馈网络的训练损失和验证损失,其中嵌入、状态、键和值的大小设置为256。MRU语言模型有一个MRU层和4个MLP,Transformer有一个注意力层和4个MLP,而前馈网络只有4个MLP。我只使用了一个序列混合层,以便隔离MRU的效果。最后,我转向更大的数据集,尝试通过训练基线GPT-2模型和将注意力替换为MRU的模型来复制https://huggingface.co/roneneldan/TinyStories-33M。我最终提前终止了训练,但损失曲线似乎已经明确显示MRU在此任务上表现更差。对于MRU输入状态矩阵的创建,我使用了创建LDU因子的方法,因为它具有最佳性能。
https://preview.redd.it/p2uh1pyfuo8h1.png?width=2528&format=png&auto=webp&s=d6406574e0275f1aad52e89cca6462fd55116fcd
以上是Transformer和使用MRU的语言模型在相同超参数和维度作为huggingface模型卡下的验证损失。官方TinyStories模型训练了20个周期,对应大约200k步。为了与其他线性时间模型进行比较,我还简要训练了一个线性Transformer,使用了Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention中描述的算法。我认为我的研究表明MRU可能不能直接替代注意力用于生成式语言建模,但我已经为这个算法奠定了基础。与注意力、状态空间模型、传统RNN和快速权重编程器等算法相比,MRU具有截然不同的优势和劣势。它在序列上执行更多的累积计算(而不是每个token的计算独立),显著更轻量因此更快,但存储容量也低得多。我相信MRU的替代用途仍应被探索。MRU的一个用途可以应用于注意力的查询和键向量。类似于RoPE,它会旋转向量的块,但它能够在大于两个维度上以动态且不可交换的角度旋转块。这是该算法的众多应用之一,我将继续研究,希望其他人也对它的应用感兴趣。如果你感兴趣,可以通过[[email protected]](mailto:[email protected])、Reddit、GitHub或你能找到我的任何其他平台联系我。
相似文章
学习跳跃块:自我发现的超度量路由用于硬件加速稀疏注意力
本文介绍了动态超度量注意力(Dynamic Ultrametric Attention),这是一个框架,其中Transformer在训练期间学习每头块稀疏路由拓扑,然后在推理时将这些拓扑卸载到自定义的Triton块稀疏内核上,与密集注意力相比,实现了高达28倍的加速和98.4%的内存减少。
变分线性注意力:用于长上下文 Transformer 的稳定联想记忆
本文介绍了变分线性注意力(VLA),这是一种用于稳定长上下文 Transformer 中线性注意力机制记忆状态的方法。VLA 将记忆更新重构为在线正则化最小二乘问题,证明了状态范数的有界性,并展示了相较于标准线性注意力和 DeltaNet 显著的速度提升以及更高的检索准确性。
Wall Attention(GitHub 仓库)
Wall Attention 是一种新的注意力变体,具有每个通道、每个时间步的乘法衰减,提供内容相关的遗忘率,以及在Triton中实现的高效训练/解码内核。
@rohanpaul_ai: 相当惊人,MiniMax Sparse Attention 在100万token时将注意力计算量减少28.4倍,预填充速度提升14.2倍,以及…
MiniMax Sparse Attention (MSA) 通过增加一个路由分支,选择性选择键值块进行注意力计算,在100万token时实现了注意力计算量最高减少28.4倍,在H800 GPU上实现了14.2倍更快的预填充和7.6倍更快的解码,同时匹配全注意力基准性能。
Delta Attention Residuals
Delta Attention Residuals 通过关注特征变化(增量)而非累积隐藏状态,改进了Transformer模型中的逐层路由,在220M到7.6B参数的规模上实现了1.7-8.2%的验证困惑度提升。