Transformers 文档
注意力机制
并获取增强的文档体验
开始使用
注意力机制
大多数 Transformer 模型使用完全注意力机制,即注意力矩阵是方形的。当文本很长时,这可能成为一个很大的计算瓶颈。Longformer 和 Reformer 是尝试更高效的模型,它们使用稀疏版本的注意力矩阵来加速训练。
LSH 注意力
Reformer 使用 LSH 注意力。在 softmax(QK^t) 中,只有矩阵 QK^t 的最大元素(在 softmax 维度中)才会产生有用的贡献。因此,对于 Q 中的每个查询 q,我们只需要考虑 K 中与 q 接近的键 k。哈希函数用于确定 q 和 k 是否接近。注意力掩码被修改以屏蔽当前 token(除了在第一个位置),因为它会给出相等的查询和键(因此彼此非常相似)。由于哈希可能有点随机,因此在实践中使用多个哈希函数(由 n_rounds 参数确定),然后将它们平均在一起。
局部注意力
Longformer 使用局部注意力:通常,局部上下文(例如,左边和右边两个 token 是什么?)足以对给定的 token 采取行动。此外,通过堆叠具有小窗口的注意力层,最后一层将具有比窗口中 token 更多的感受野,从而允许它们构建整个句子的表示。
一些预选的输入 token 也被赋予全局注意力:对于这些少数 token,注意力矩阵可以访问所有 token,并且这个过程是对称的:所有其他 token 都可以访问这些特定的 token(除了它们局部窗口中的 token)。这在论文的图 2d 中显示,请参见下面的注意力掩码示例

使用参数较少的这些注意力矩阵,模型可以使用具有更大序列长度的输入。
其他技巧
轴向位置编码
Reformer 使用轴向位置编码:在传统的 Transformer 模型中,位置编码 E 是一个大小为乘以,的矩阵,其中和,使得和(长度的乘积,最终会小得多)。时间步的嵌入在 E 中获得,方法是连接时间步的嵌入在 E1 中和在 E2 中。
< > 在 GitHub 上更新