现已扩展到了10亿token,未来能否将整个互联网作为一个序列处理?

当大家不断升级迭代自家大模型的时候,LLM(大言语模型)对上下文窗口的处理才能,也成为一个重要评估目标。
比方明星大模型 GPT-4 支撑 32k token,相当于 50 页的文字;OpenAI 前成员创建的 Anthropic 更是将 Claude 处理 token 才能提升到 100k,约 75000 个单词,大概相当于一键总结《哈利波特》第一部。
在微软最新的一项研讨中,他们这次直接将 Transformer 扩展到 10 亿 token。这为建模十分长的序列拓荒了新的或许性,例如将整个语料库乃至整个互联网视为一个序列。
作为比较,普通人能够在 5 小时左右的时间里阅览 100,000 个 token,并或许需求更长的时间来消化、记忆和剖析这些信息。Claude 能够在不到 1 分钟的时间里完成这些。要是换算成微软的这项研讨,将会是一个惊人的数字。

微软新出热乎论文:Transformer扩展到10亿token

  • 论文地址:arxiv.org/pdf/2307.02…

  • 项目地址:github.com/microsoft/u…

详细而言,该研讨提出了 LONGNET,这是一种 Transformer 变体,能够将序列长度扩展到超越 10 亿个 token,而不会献身对较短序列的功能。文中还提出了 dilated attention,它能指数级扩展模型感知范围。
LONGNET 具有以下优势:
1)它具有线性核算杂乱性;2)它能够作为较长序列的分布式练习器;3)dilated attention 能够无缝替代标准注意力,并能够与现有根据 Transformer 的优化办法无缝集成。
实验结果标明,LONGNET 在长序列建模和一般言语任务上都表现出很强的功能。
在研讨动机方面,论文表示,最近几年,扩展神经网络现已成为一种趋势,许多功能杰出的网络被研讨出来。在这傍边,序列长度作为神经网络的一部分,理想情况下,其长度应该是无限的。但现实却往往相反,因此打破序列长度的约束将会带来显著的优势:

  • 首要,它为模型供给了大容量的记忆和感受野,使其能够与人类和国际进行有用的交互。

  • 其次,更长的上下文包含了更杂乱的因果联系和推理途径,模型能够在练习数据中加以运用。相反,较短的依靠联系则会引入更多虚假的相关性,不利于模型的泛化性。

  • 第三,更长的序列长度能够协助模型探究更长的上下文,而且极长的上下文也可协助模型缓解灾难性忘记问题。

但是,扩展序列长度面对的首要应战是在核算杂乱性和模型表达才能之间找到适宜的平衡。
例如 RNN 风格的模型首要用于添加序列长度。但是,其序列特性约束了练习过程中的并行化,而并行化在长序列建模中是至关重要的。
最近,状态空间模型对序列建模十分有吸引力,它能够在练习过程中作为 CNN 运转,并在测验时转换为高效的 RNN。但是这类模型在常规长度上的表现不如 Transformer。
另一种扩展序列长度的办法是下降 Transformer 的杂乱性,即自注意力的二次杂乱性。现阶段,一些高效的根据 Transformer 的变体被提出,包括低秩注意力、根据核的办法、下采样办法、根据检索的办法。但是,这些办法尚未将 Transformer 扩展到 10 亿 token 的规模(参见图 1)。

微软新出热乎论文:Transformer扩展到10亿token

下表为不同核算办法的核算杂乱度比较。N 为序列长度,d 为隐藏维数。
微软新出热乎论文:Transformer扩展到10亿token
办法
该研讨的解决方案 LONGNET 成功地将序列长度扩展到 10 亿个 token。详细来说,该研讨提出一种名为 dilated attention 的新组件,并用 dilated attention 替代了 Vanilla Transformer 的注意力机制。通用的规划原则是注意力的分配跟着 token 和 token 之间间隔的添加而呈指数级下降。该研讨标明这种规划办法获得了线性核算杂乱度和 token 之间的对数依靠性。这就解决了注意力资源有限和可拜访每个 token 之间的矛盾。
微软新出热乎论文:Transformer扩展到10亿token

在完成过程中,LONGNET 能够转化成一个密布 Transformer,以无缝地支撑针对 Transformer 的现有优化办法(例如内核交融(kernel fusion)、量化和分布式练习)。运用线性杂乱度的优势,LONGNET 能够跨节点并行练习,用分布式算法打破核算和内存的约束。
终究,该研讨有用地将序列长度扩大到 1B 个 token,而且运转时(runtime)几乎是恒定的,如下图所示。相比之下,Vanilla Transformer 的运转时则会受到二次杂乱度的影响。
微软新出热乎论文:Transformer扩展到10亿token

该研讨进一步引入了多头 dilated attention 机制。如下图 3 所示,该研讨经过对查询 – 键 – 值对的不同部分进行稀少化,在不同的头之间进行不同的核算。
微软新出热乎论文:Transformer扩展到10亿token

分布式练习
尽管 dilated attention 的核算杂乱度现已大幅下降到
微软新出热乎论文:Transformer扩展到10亿token
,但由于核算和内存的约束,在单个 GPU 设备大将序列长度扩展到百万级别是不可行的。有一些用于大规模模型练习的分布式练习算法,如模型并行 [SPP+19]、序列并行 [LXLY21, KCL+22] 和 pipeline 并行 [HCB+19],但是这些办法对于 LONGNET 来说是不行的,特别是当序列维度十分大时。
该研讨运用 LONGNET 的线性核算杂乱度来进行序列维度的分布式练习。下图 4 展示了在两个 GPU 上的分布式算法,还能够进一步扩展到任意数量的设备。
微软新出热乎论文:Transformer扩展到10亿token

实验
该研讨将 LONGNET 与 vanilla Transformer 和稀少 Transformer 进行了比较。架构之间的差异是注意力层,而其他层坚持不变。研讨人员将这些模型的序列长度从 2K 扩展到 32K,与此同时减小 batch 大小,以保证每个 batch 的 token 数量不变。
表 2 总结了这些模型在 Stack 数据集上的结果。研讨运用杂乱度作为评估目标。这些模型运用不同的序列长度进行测验,范围从 2k 到 32k 不等。当输入长度超越模型支撑的最大长度时,研讨完成了分块因果注意力(blockwise causal attention,BCA)[SDP+22],这是一种最先进的用于言语模型推理的外推办法。
此外,研讨删除了绝对方位编码。首要,结果标明,在练习过程中添加序列长度一般会得到更好的言语模型。其次,在长度远大于模型支撑的情况下,推理中的序列长度外推法并不适用。最后,LONGNET 一向优于基线模型,证明了其在言语建模中的有用性。
微软新出热乎论文:Transformer扩展到10亿token

序列长度的扩展曲线
图 6 绘制了 vanilla transformer 和 LONGNET 的序列长度扩展曲线。该研讨经过核算矩阵乘法的总 flops 来估量核算量。结果标明,vanilla transformer 和 LONGNET 都能从练习中获得更大的上下文长度。但是,LONGNET 能够更有用地扩展上下文长度,以较小的核算量完成较低的测验丢失。这证明了较长的练习输入比外推法更具有优势。实验标明,LONGNET 是一种更有用的扩展言语模型中上下文长度的办法。这是因为 LONGNET 能够更有用地学习较长的依靠联系。
微软新出热乎论文:Transformer扩展到10亿token

扩展模型规模
大型言语模型的一个重要特点是:丢失跟着核算量的添加呈幂律扩展。为了验证 LONGNET 是否仍然遵从相似的扩展规则,该研讨用不同的模型规模(从 1.25 亿到 27 亿个参数) 练习了一系列模型。27 亿的模型是用 300B 的 token 练习的,而其余的模型则用到了大约 400B 的 token。图 7 (a) 绘制了 LONGNET 关于核算的扩展曲线。该研讨在相同的测验集上核算了杂乱度。这证明了 LONGNET 仍然能够遵从幂律。这也就意味着 dense Transformer 不是扩展言语模型的先决条件。此外,可扩展性和功率都是由 LONGNET 获得的。
微软新出热乎论文:Transformer扩展到10亿token

长上下文 prompt
Prompt 是引导言语模型并为其供给额定信息的重要办法。该研讨经过实验来验证 LONGNET 是否能从较长的上下文提示窗口中获益。
该研讨保留了一段前缀(prefixes)作为 prompt,并测验其后缀(suffixes)的困惑度。而且,研讨过程中,逐步将 prompt 从 2K 扩展到 32K。为了进行公平的比较,坚持后缀的长度不变,而将前缀的长度添加到模型的最大长度。图 7 (b) 报告了测验集上的结果。它标明,跟着上下文窗口的添加,LONGNET 的测验丢失逐步减少。这证明了 LONGNET 在充分运用长语境来改善言语模型方面的优越性。