Transformer模型虽然强大,但它在解码时的效率问题一直是让人头疼的事儿。不过,韩国科学技术研究院、LG和DeepMind的研究人员们,这次可是给我们带来了一个惊喜——他们提出了一种新的Transformer架构,叫做Block Transformer,直接让解码速度提升了10到20倍!

这到底是怎么做到的呢?原来,他们把Transformer的注意力机制给“切块”了。这样一来,原始Transformer那种每生成一个Token就要访问一次全局KV缓存的低效方式,就被彻底颠覆了。

image.png

研究人员们分析了原始Transformer的短板:GPU的有效利用率竟然不到1%,剩下的99%都用在了内存访问上。这显然是不合理的,于是他们提出了Block Transformer,这个新架构通过块级注意力和块内注意力的分解,让模型的推理吞吐量直接爆表。

具体来说,Block Transformer的工作流程是这样的:先把序列进行切块,然后用Embedder把每个块转换成嵌入向量。Block Decoder负责处理块嵌入向量,捕捉块与块之间的全局依赖;Token Decoder则负责处理Token之间的局部依赖,生成Token序列。

image.png

这种方法不仅提升了推理速度,还大幅度降低了内存开销。有网友表示,自己之前也有过类似的思路,但结果模型的性能不足,现在这个方法看上去确实有效削减了KV缓存。

而且,Block Transformer在多个零样本任务上的准确率与同等大小的原始Transformer相当甚至略高,这证明了它在提高效率的同时,并没有牺牲质量。

这项研究的意义可不止于此。它还降低了模型的训练成本,全局注意力的二次内存访问开销减少了16倍,GPU利用率也从1%提升到了44%。

论文地址:https://arxiv.org/abs/2406.02657