微软推出新架构YOCO:You Only Cache Once,主打多快好省

微软刚刚搞出了一个叫YOCO(You Only Cache Once)的新架构,号称能让大模型在大幅减少显存占用的同时,还能保留全局注意力能力。

IMG_256

那这个YOCO到底是何方神圣呢?

为啥能让大模型又瘦身又不掉智商呢?

来一探究竟!

YOCO:一次缓存解千愁

YOCO的全称是”You Only Cache Once”,翻译过来就是”你只需缓存一次“。

这个架构的核心思想是把每一层拆成两半

前半部分:用高效的自注意力机制生成KV缓存的向量

后半部分:专门用KV缓存来生成输出token的嵌入

听起来有点绕?

首先,得了解一下KV缓存是个啥。

KV缓存,全称Key-Value缓存,是Transformer模型中注意力机制的关键。它能存储生成的key和value向量,这样后续的token就可以重复使用这些缓存值,大大减少计算时间

这也是为啥decoder-only模型这么受欢迎的主要原因。

IMG_257

那YOCO是怎么玩的呢?

它用了两种高效的自注意力(ESA)方法:

门控保留ESA

用递归公式来提高内存效率

引入指数衰减和因果掩码

采用数据驱动方法,使用可学习参数

滑动窗口ESA

把注意力窗口限制在固定数量的token上

在推理时把KV缓存的复杂度降到常数级

然后,YOCO还搞了个跨注意力和跨解码器的操作:

用前半部分的输出创建全局KV缓存

为每个新token生成查询矩阵

在查询和全局KV缓存之间做跨注意力

用归一化和SwiGLU激活来预测下一个token

听起来是不是很高大上?

但有什么好处呢?

显存大杀器

YOCO最牛的地方就是能狠狠削减显存占用

传统Transformer的内存复杂度是O(L * N * D),而YOCO把它降到了O((N + L) * D)。

当输入规模比层数大得多时,这玩意儿就能近似O(N)了!

而且,YOCO在前半部分用常数大小的缓存,后半部分用全局缓存,这样一来二去,显存占用就大大降低了。

推理加速器

除了省显存,YOCO在推理阶段也有不少优势:

预填充阶段:

自解码器并行处理

预填充时只运行一半的层

比传统Transformer快约30倍

生成阶段:

GPU内存变化更少

吞吐量更高

有网友看到这儿,忍不住就嗨了:

“这不就是GPT-7吗?要是有人把今年的顶尖论文都实现并连接起来,咱们起码能到GPT-7了吧!”

说的挺吓人,再这么下去,AGI 要来得更快了吧?

IMG_258

总的说来,YOCO这波操作确实很有看头。它不仅能让大模型”瘦身”,还能保持全局注意力能力,简直是又瘦又聪明

你对YOCO这种新架构怎么看呢?

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容