要知道,之前大家一直夸Transformer的理解能力和短序列生成能力,对长序列一直“有心无力”。
微软这一次操作相当于让一个短跑冠军拥有了极速跑马拉松的能力。毕竟,处理长序列的同时,处理短序列任务时依然保持优秀的性能。
LONGNET is a Transformer variant that can scale sequence length to more than 1 billion tokens, with no loss in shorter sequences.
因为,这项工作为建模长序列提供了新的思路和可能,未来,甚至有望将整个互联网语料视为一个Token。同时,意味着更复杂的 AI 互动成为可能。
Transformer 模型是许多AI系统的核心架构,工作原理是处理由Tokens组成的信息序列,从而理解或生成文本。
全局注意力机制
全局注意力(global attention)是Transformer理解能力的关键所在,它允许一个Token与其他所有Token进行“互动”。序列一旦变得越长,互动次数呈指数级增长,大大增加了计算复杂性。
上段内容有点抽象,解释一下:想象一下,你试图与房间里的每一个人分别进行对话。如果只有几个人,这是可以应对的。但随着人数的增加,很快就变得难以承受。
ChatGPT就是 OpenAI 基于Transformer开发的,大家在使用它进行上下文对话的时候,会发现它会经常“忘”了你之前给他说过的话。
以后,有了LONGNET 就解锁了ChatGPT无限对话能力,它会记起你最开始的提问。
在LONGNET这项工作中,微软的研究员将一种称为“扩张注意力”(dilated attention)的新颖概念引入到Transformer 模型中,从根本上改变了模型处理序列的方式。
扩张注意力的妙用在于,距离增大时能够关注更多的Token,而无需让每个序列与其他所有序列互动。
就像,在人群中既能关注到附近的人,也能关注到远离的人,但不需要与每个人单独交谈。
图注:扩张注意力在 LONGNET 中使用的构建模块。包括一系列用于建模短程和长程依赖关系的注意力模式。注意力模式的数量可以根据序列长度进行扩展。
这和稀疏注意力模式很像,但借鉴了线段树的思想。能让与序列长度成指数关系增长的互动次数变为线性增长。话句话说,随着序列变得越来越长,计算工作量的增加变得更容易应对。
扩张注意力不仅让 LONGNET 更高效,还让其更具灵活性。因为不需要与每个序列互动,还可以根据任务调整关注焦点,这使得它能够有效处理短序列和长序列。
LONGNET在通用语言任务方面也表现出色。这意味着它不仅是一种专门用于长序列的工具,而且是一种能够处理许多任务的稳健且灵活的模型。
图注:不同方法之间计算复杂性的比较。N 是序列长度,d 是隐藏层的维度。
此外,研究人员将 LONGNET 与传统的 Transformer 和稀疏 Transformer 进行了对比。为了进行比较,他们将这些模型的序列长度从 2,000 个标记(2K)扩展到 32,000 个标记(32K)。为了确保比较的公平性,他们调整了各模型的参数。尽管在计算上有一定限制,但实验结果仍然非常出色。
同时,增加模型参数从1.2亿到27亿,随着LongNet的计算量增加,在测试集上的PPL也随之降低。这体现出,LongNet同样满足scaling law。训练更大的语言模型可能能取得更好的表现。
LONGNET并非没有局限,例如虽然扩张注意力机制将计算复杂性降低到低于标准 Transformer 模型的水平,但处理超过 10 亿个标记的序列仍然需要大量资源。此外,虽然有强大的性能,但可能仍需要进行更多的测试和验证。
微软也提出了关于LONGNET的未来研究方向:如何进一步优化扩张注意力机制?是否有其他序列处理技术可以与扩张注意力相辅相成?如何将LONGNET 有效地整合到现有的 AI 系统(如 ChatGPT)中?
论文地址:
https://arxiv.org/abs/2307.02486
参考来源:
https://thetechpencil.com/revolutionizing-ai-with-longnet-microsofts-breakthrough-in-handling-billion-token-sequences-59b05ef7d6e8
https://mp.weixin.qq.com/s/Qns4Oi8-YHWb7WP3_gGZUA