高维动态旋转位置编码 [P]

Reddit r/MachineLearning 论文

摘要

介绍了 HDD-RoPE,这是旋转位置编码的一种扩展,它使用高维块和数据相关的旋转速率,在 TinyStories 数据集上显示出比 xPos 更快的收敛速度。

在我上一篇文章的结尾,我提出了一个想法:如果我使用我上一个项目的核心——累积矩阵乘积,并将其重新用作位置编码,会怎么样?我刚刚完成了 HDD-RoPE 背后的数学推导,并用这种位置编码算法训练了一个模型,结果非常好。在 TinyStories 数据集上训练时,验证损失开始收敛的速度比使用 xPos 训练的基准 Transformer 快得多。一个类似 GPT-2 的模型在 TinyStories 上训练,超参数来自 https://huggingface.co/roneneldan/TinyStories-33M (n_blocks=4, d_model=d_k=d_v=768)。仓库 https://github.com/mikayahlevi/hdd-rope/ 允许您重现结果,并深入介绍了架构的数学原理和细节。标准的 RoPE 将查询和键分成两组,并以预定义的速率旋转每一对。这允许模型通过观察查询和键之间的基变化来学习相对位置。对于线性序列,两两一组是直观的,因为一个块可以以单一自由度旋转,对应于线性的一维渐进位置。HDD-RoPE 超越了这种直觉,而是认为序列内的位置是多维的。因此,块可以分成任意大小,例如 TinyStories 示例中使用的 4 维块。四维块对应于 4 选 2 = 6 个旋转轴(6 维位置)。本质上,我们认为一个标记不仅仅位于序列中的一个位置,而是位于模型可以学习的任何结构中的位置,比如段落或句子。为了实现这一点,我还使每个轴上的旋转量依赖于数据,这样它可以根据当前层激活中存储的信息来学习如何推进位置。如果您想了解更多,请查看仓库。我形式化了数学并规划了路线图。
查看原文

相似文章

RoVE:面向相对位置依赖值路径的旋转值嵌入注意力机制

arXiv cs.LG

本文提出RoVE,一种无需参数的旋转位置嵌入改进方法,通过同时旋转值与键使值路径具备位置敏感性,将RoPE注意力转化为注意力卷积。在GPT-2模型上的实验表明,该机制在少样本上下文学习、分布外困惑度及长上下文检索方面持续提升性能。

RoPE在长上下文中既不能区分位置也不能区分标记,可证明

arXiv cs.CL

本文提供了理论证明,表明基于Transformer的语言模型中的旋转位置嵌入(RoPE)在长上下文中会失去其局部性偏差和区分标记顺序的能力,注意力分数变得不比随机更好。作者证明,增加RoPE基频会在位置区分和标记区分之间进行权衡,且多头、多层架构无法弥补这一基本限制。