GoogleDeepmind大部分计算都被浪费了

谷歌Deepmind的深度混合论文,以及更广泛的动态计算方法,并给出结论: 大部分计算都被浪费了,因为并非所有标记都同样难以预测。

GoogleDeepmind大部分计算都被浪费了-2

不是所有问题都需要相同的时间或努力来解决。类比地,在语言建模中,不是所有的标记和序列都需要相同的时间或努力来准确做出预测。然而,变换器模型在前向传播中对每个标记都消耗相同量的计算资源。理想情况下,变换器应该通过不必要地消耗计算资源来使用更小的总计算预算。

条件计算是一种尝试通过仅在需要时消耗计算资源来减少总计算的技术(Bengio等人,2016年;Bengio,2013年;Bengio等人,2013年)。各种算法提供了关于何时以及使用多少计算资源的解决方案(Ainslie等人,2023年;Bapna等人,2020年;Fedus等人,2022年)。然而,这个具有挑战性问题的一般公式可能与现有的硬件限制不兼容,因为它们倾向于引入动态计算图(Dehghani等人,2018年;Graves,2016年)。最有希望的条件计算方法可能是那些与我们当前的硬件堆栈相协调的方法,这些方法优先考虑静态计算图和已知的张量大小,这些张量大小被选定以最大化硬件利用率。

GoogleDeepmind大部分计算都被浪费了-3

路由方案。

在使用令牌选择路由(下左图)时,令牌被引导至它们选择的计算路径。如果某个路径超过了其容量(例如,本例中超过两个令牌),那么多余的令牌必须被丢弃(紫色令牌)。最终被丢弃的确切令牌取决于底层代码中的具体实现。例如,通常会优先考虑那些在序列或批量顺序中较早出现的令牌。

在使用专家选择路由(下中图)时,每条路径精确地选择𝑘个(在此例中为两个)令牌,通过在令牌的路由器权重上使用top-𝑘机制来实现。这里,如果令牌不在任何给定路径的top-𝑘之列,它们将被丢弃(橙色令牌),并且一些令牌甚至可能被引导至多个路径(黄色令牌)。

在这项工作中,我们采用了专家选择路由(下右图)。然而,由于我们只使用单一路径,我们利用了一个隐含的知识,即如果𝑘小于序列长度,令牌将被丢弃,这样我们就可以引导令牌远离自注意力和MLP计算,从而在模型的给定前向传递中消耗更少的FLOPs。

GoogleDeepmind大部分计算都被浪费了-4

混合深度变换器(Mixture-of-Depths Transformer,简称MoD Transformer)。 与混合专家(mixture-of-experts,简称MoE)变换器类似,我们使用一个路由器来选择潜在的计算路径。 但与MoE变换器不同的是,可能的选择是标准块的计算(即自注意力和 多层感知机(MLP))或者一个残差连接。

由于一些标记选择了这第二条路径,混合深度变换器的总浮点运算(FLOP)足迹相比传统的或MoE变换器要小。下图的右上角展示的是一个训练模型对短序列的路由决策,为了可视化目的,序列被截断为64个标记。当检查这些选择时,可以发现有些标记是由后续块的层处理的,尽管它们在整个模型深度中通过的总块数相对较少。这是MoD与传统的基于停止的、或称为“早退”的条件计算相比的独特特性,后者是按顺序参与块的,或者传统的变换器,它们会参与每一个块。

版权声明:
作者:clash
链接:https://www.shadowrocket6.top/280.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>