Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

下载 PDF

Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context - 中文验证版

英文原文卡片:transformer_xl_2019.md

状态:已翻译。

元数据

  • Slug: transformer_xl_2019
  • 年份: 2019
  • 会议: ACL
  • 作者: Zihang Dai et al.
  • 阅读状态: read complete
  • 计算范式: TPU、加速器与 Transformer 时代
  • 主要来源: PDF抽取文本

计算设置

本地抽取文本未给出完整的训练硬件或集群规模。根据项目规则,训练推断为 2018 年末/2019 年加速器时代的基于 GPU 的语言模型训练,因为论文讨论了 GPU 内存并报告了在一块 GPU 上的评估速度。最清晰的硬件陈述是评估速度表:减速以在一块 GPU 上的 per-token 时间衡量。循环节还说明模型可以缓存尽可能多的先前片段,以 GPU 内存允许为限。

实验仍然定义了一个计算规模。WikiText-103 有 103M 训练 tokens,来自 28K 篇文章,平均文章长度 3.6K tokens;训练期间注意力长度为 384,评估期间为 1600。对于 enwik8/text8,训练期间注意力长度为 784,评估期间为 3800。一个 20 层 Transformer-XL,约 0.3B 参数,在 One Billion Word 上训练 400K steps。

瓶颈

瓶颈是固定长度 Transformer 片段。普通 Transformer 在分离的片段上训练,因此信息无法跨越片段边界流动。这造成了上下文碎片化:早期 tokens 缺少先前的上下文,并且长于片段长度的依赖关系不可用。增加片段长度直接增加注意力内存和计算,因此受到 GPU 内存的约束。

评估增加了重新计算。一个普通 Transformer 可以通过每次滑移片段一个位置并预测最后一个 token 来使用更多上下文,但每个新位置几乎重新计算整个片段。论文将其描述为对于序列长度 N 和片段长度 L 为 O(N × L)。

方法适配

Transformer-XL 缓存来自先前片段的隐藏状态,并将其作为下一个片段的记忆复用。在训练期间,先前的隐藏状态是固定的,因此梯度保留在当前片段内,但前向计算关注更长的上下文。在评估期间,缓存避免了为每个 token 重新运行完整的重叠窗口。

这一设计是显式内存形态的。记忆长度 M 和当前片段长度 L 决定了注意力上下文的大小,论文指出可以根据 GPU 内存允许缓存多个先前片段。反向传播长度可以保持短于评估注意力长度:在一次消融中,训练反向传播长度仅为 128,但当使用循环和新的位置编码时,评估注意力可以增加到 640。这种分离是关键的适配。它并没有使注意力免费,但使推理能够使用比训练反向传播原本允许的更长的上下文。

第二个适配是相对位置编码。跨片段复用隐藏状态破坏了简单的绝对位置,因为缓存的状态在新的时间偏移下被解释。Transformer-XL 使注意力依赖于相对距离,并使用一种高效的相对注意力形式,而非会随记忆长度增长而变得过于昂贵的简单构造。

证据

基准证据将准确率与长上下文计算绑定。在 WikiText-103 上,论文报告将先前 state-of-the-art perplexity 从 20.5 降至 18.3。它报告 enwik8 上 0.99 bpc,text8 上 1.08 bpc,One Billion Word perplexity 从 23.7 改善至 21.8。摘要将依赖长度总结为比 RNNs 长 80%,比普通 Transformers 长 450%。

WikiText-103 消融显示了结构为何重要。对于一个 128M 参数模型,循环加上论文的位置编码在注意力长度为 500 时得到最佳 PPL 26.77。移除循环使最佳 PPL 恶化至 29.02,注意力长度降至 260。在 151M 设置下,PPL 从 23.43 改善至 23.16,注意力长度为 450,另有列出结果在注意力长度 640 时达到 23.09。在相同 GPU 内存约束下,附录说明 Transformer-XL 尽管反向传播长度更短仍保持优势。

评估速度表是最清晰的设备支持的计算结果。它通过描述 Al-Rfou 等人的普通 Transformer 基线慢了多少倍来报告在一块 GPU 上的 per-token 评估时间:在主要设置中比本文方法慢 1,874 倍,使用 Shaw 等人相对编码慢 1,409 倍,在注意力长度 1800 时无循环慢 773 倍,在注意力长度 800 时慢 363 倍。这些大倍率因子来自缓存复用,而非更快的单个矩阵乘法。

历史影响

Transformer-XL 使片段级循环成为标准的长上下文 Transformer 计算思想。它表明上下文长度可以通过跨片段复用激活来扩展,而不仅仅是增加单个片段内的二次注意力长度。它将训练反向传播长度、评估注意力长度和依赖长度分离开来,将隐藏状态重新构建为一个有限的 GPU 驻留缓存,以内存换取更少的重新计算。

局限

该方法消耗 GPU 内存以节省重新计算。更长的缓存改善上下文但增加了注意力内存和带宽,因为当前 tokens 要在记忆和当前片段上做注意力。缓存在训练期间是固定的,因此梯度不流经完整的扩展历史。

收益依赖于相对位置编码。论文的消融表明,没有正确编码的循环会损失大部分长注意力优势,并且当评估注意力长度与训练不同时,绝对编码泛化能力较差。由于本地抽取文本未给出完整的训练硬件,本卡片不应推断特定的训练加速器数量或类型。来源支持的设备陈述是一块 GPU 的 per-token 评估加上所述的 GPU 内存缓存约束。

链接