微软亚研院最新研究,有点震撼:

他们开发了一个Transformer变体,居然将其token拓展到了10亿

1000000000!微软改进Transformer一次能记住这么多token了

什么概念?

现在最强的GPT-4也才最大支撑一次处理32ktoken,相当于50页文字。

而能够只用1分钟看完一本数万字小说的Claude,其token数也不过“才”100k(10万)。

一次性扩展到10亿,并且这个数字理论上其实仍是无限的,这不就意味着:

不久的将来,整个语料库甚至互联网都能视为一个序列?

1000000000!微软改进Transformer一次能记住这么多token了

若真如此,简直不敢想象。

如何做到?

大预言模型时代,扩展序列长度已成为一大要害需求。

但是,现有的办法要么难以解决核算复杂性,要么搞不定模型表达力,导致长度很受限。

在此,作者提出一个Transformer变体:LongNet,它应用了一种叫做“胀大留意力(dilated attention)”的机制,能够跟着间隔的增加,让留意力场(模型感知范围)呈指数级扩展。

详细而言,dilated attention替代了一般Transformer中的留意力机制的,其一般的规划原则是:

让留意力的分配跟着token之间间隔的增加,呈指数级下降。

如下图构建块所示,dilated attention由一系列用于建模短期和长时间依靠关系的留意力pattern组成。pattern的数量能够依据序列长度进行扩展。

1000000000!微软改进Transformer一次能记住这么多token了

试验证明,dilated attention能够发生线性核算复杂度和token之间的对数依靠性,然后解决了留意力资源有限,但每一个token都可访问的对立。

除此之外,作者还引入了多头dilated attention。如下图所示,不同头之间的留意力pattern会因方位的接连改变而不同。

1000000000!微软改进Transformer一次能记住这么多token了

在终究完成中,LongNet可转换为密集的Transformer,然后无缝集成Transformer现有的优化办法(比方内核交融、量化和分布式练习)。

而运用线性复杂度,LongNet还能够跨节点并行练习,运用分布式算法打破核算和内存的约束。

如下图所示,LongNet通过划分序列维度在两个GPU上进行并行化练习。跟着设备数量的增加,核算和通信成本简直仍然是不变的。

1000000000!微软改进Transformer一次能记住这么多token了

因此,这使得LongNet能够在简直稳定的运转时间内有用地将序列长度扩展到10亿token(一起无需牺牲较短序列的性能)。

1000000000!微软改进Transformer一次能记住这么多token了

相比之下,一般Transformer还在受困于二次复杂度带来的影响。

试验评估

作者将LongNet与一般Transformer和稀少Transformer进行了比较。

三者之间的体系结构差异只体现在留意力层,模型的序列长度都从2K扩展到32K,一起削减batch size以坚持每个batch的token数量不变。

对于LongNet,作者运用w={2048,4096,8192,16384,32768}的分段长度,一起扩张比率为r={1,2,4,6,12},并完成了稀少留意力的固定模式,再将稀少比进行调整为匹配LongNet的核算flops,然后使试验公正。

(由于核算约束,只能将LongNet扩展到32K序列长度)。

下表为以上三个模型在Stack数据集上的结果,衡量指标是困惑度,测试了每个模型不同的序列长度。

当输入长度超越模型支撑的最大长度时,作者就运用一种最先进的语言模型推理外推办法:分块因果留意(BCA)。

此外,还去除了绝对方位编码。

1000000000!微软改进Transformer一次能记住这么多token了

结果表明:

首要,在练习过程中增加序列长度一般会得到作用更好的语言模型。

其次,在长度远大于模型支撑的情况下,序列长度外推法(推理时)并不适用。

最终,能够看到,LongNet的每一项数据都优于其他两个基线,证明了它在语言建模方面的有用性。

除此之外,作者还证明,在扩展语言模型上下文长度时,LongNet也是一种更有用的办法。

1000000000!微软改进Transformer一次能记住这么多token了

网友:Memery is all you need

不少人看完这项成果总结道,说来说去,仍是“memery is all you need”(手动狗头)

1000000000!微软改进Transformer一次能记住这么多token了

1000000000!微软改进Transformer一次能记住这么多token了

有点厉害!十分期望它是真的且可复现。

1000000000!微软改进Transformer一次能记住这么多token了

不过,也不乏争议。

比方有人吐槽试验只将LongNet扩展到了32k长度,离10亿还差的远呢。

1000000000!微软改进Transformer一次能记住这么多token了

还有不少人称,办法不算很立异,其实就跟稀少留意力模式差不多。

1000000000!微软改进Transformer一次能记住这么多token了

作者介绍

本论文作者7位,悉数来自微软亚研院。

1000000000!微软改进Transformer一次能记住这么多token了

两位一起一作:

Jiayu Ding,微软亚研院实习生,本硕毕业于北京邮电大学核算机科学专业;

马树铭,微软亚研院自然语言核算组研究员,2019年参加,本硕毕业于北京大学。

通讯作者为Furu Wei,微软亚研院自然语言核算组全球研究合伙人,博士毕业于武汉大学,曾任IBM我国研究院研究员、香港理工大学电子核算系研究助理。

论文地址:
arxiv.org/abs/2307.02…

参考链接:
[1]twitter.com/arankomatsu…
[2]twitter.com/AlphaSignal…
[3]www.reddit.com/r/LocalLLaM…