这是新加坡国立大学在 2022 aaai 公布的一篇论文。WideNet 是一种参数无效的框架,它的方向是更宽而不是更深。通过混合专家 (MoE) 代替前馈网络(FFN),使模型沿宽度缩放。应用独自 LN 用于转换各种语义示意,而不是共享权重。
混合专家(MoEs)
条件计算
对于每个输出,只有一部分暗藏的示意被发送到选定的专家中进行解决。与 MoE 一样,给定 E 个可训练的专家,输出用 x 示意,MoE 模型的输入可示意为:
其中 e(.)i 是第 i 位专家的非线性变换。g(.)i 是可训练路由器 g(.)输入的第 i 个元素。当 g(.)为稠密向量时,只会激活局部专家。论文中通过 MoE 和提出的 WideNet,每个专家都是一个 FFN 层。
路由
为了保障稠密路由 g(.),应用 TopK()抉择排名靠前的专家:
这里的 f(.)为路由线性变换。ε 为高斯噪声。当 K <<E 时,g(x)的大多数元素为零。
均衡加载
MoE 的问题就是要确保每个专家模块都要解决基本相同数量的令牌,所以优化 MoE 须要解决上面 2 个次要问题:
1、把太多令牌调配给一个专家
2、单个专家收到的令牌太少
也就是说要保障将令牌平均分配到各个专家模块。
要解决第一个问题,能够减少缓冲区容量 B。对于每个专家最多只保留 B 个令牌。如果超过 B =CKNL,则抛弃所有残余的令牌。
然而这个办法也只是解决了太多的问题,依然不能保障所有的专家都能取得足够的令牌进行训练。所以论文采纳了 Switch Transformer 的办法,采纳了一个负载平衡的并且可微的损失函数。
上面这个辅助损失会加到训练时的模型总损失中:
m 是向量。第 i 个元素是调配给专家 i 的令牌的分数.mi 的计算如下:
其中 h(.)是 TopK 抉择的索引向量。H (xj)i 是 H (xj)的第 i 个元素。
Pi 是 softmax 后路由线性变换的第 i 个元素。
通过以上的损失函数实现平衡调配。当 lbalance 最小时,m 和 P 都靠近均匀分布。
WideNet
在不同的 Transformer 块中应用雷同的路由和专家
WideNet 采纳跨 Transformer 块的参数共享来进步参数效率,采纳 MoE 层来进步模型容量。WideNet 在不同的 Transformer 块中应用雷同的路由器和专家。
LN
目前来说,例如 ALBERT 应用的是参数共享的办法,在 Transformer 块之间共享所有权重。
而 WideNet 中只有多头留神层和 FFN(或 MoE)层是共享的,这意味着 LN 的可训练参数在块之间是不同的,也就是说每一层的 LN 的权重都不一样。
把论文中的的第 i 个 Transformer 块能够写成:
这里的 LayerNormal(.)为:
γ 和 β 是可训练向量。LN 只须要这两个小向量。
损失函数
只管路由的可训练参数在每个 Transformer 块中被重用,但因为输出示意的不同,调配也会有所不同。所以给定 T 次具备雷同可训练参数的路由操作,应用以下损失进行优化:
其中 λ =0.01 用作超参数,以确保平衡调配。lmain 是 Transformer 的次要指标。例如,在监督图像分类中,次要是穿插熵损失。
后果(CV & NLP)
ImageNet-1K (CV)
在 ImageNet-1K 上,WideNet- H 实现了最佳性能,显著优于 ViT 和 ViT- moe 模型。
与最强基线相比,WideNet- H 在可训练参数较少的状况下优于 vitb 1.5%。即便对于最小的模型 WideNet-B,它依然能够与可训练参数缩小 4 倍以上的 viti – l 和 viti – moe – b 获得相当的性能。当扩充到 WideNet- L 时,它曾经超过了所有基线,其中 vitb 的可训练参数为一半,vitl 的参数为 0.13 倍。
GLUE (NLP)
有了更多的专家,WideNet 的体现远远超过 ALBERT。
领有 4 位专家的 WideNet 均匀比 ALBERT 高出 1.2%。当将专家数量 E 减少到 16 时,通过合成嵌入参数化,取得的可训练参数略低于 BERT, WideNet 在所有四个上游工作上的体现也优于 BERT,这显示了更宽而不是更深的参数效率和有效性。
融化钻研
专家越多 (可训练参数) 导致过拟合,只管专家越多意味着建模能力越强。更少的路由操作时,会有显著的性能降落。
对于可训练向量的第 i 个元素或第 j 个块,计算该元素与其余块中所有向量的所有其余元素之间的间隔:
式中 N 为 Transformer 块的个数,M 为向量 γ 或 β 的维数。所以 WideNet 中的 γ 和 β 都比 ViT 中的 y 大,这意味着 MoE 比 ViT 承受更多样化的输出。
这样的后果证实,独自的 LN 层能够帮忙建设具备共享的大型可训练矩阵 (如 MoE) 的各种语义模型。
如果没有跨 Transformer 块的参数共享,也会有轻微的性能降落和显著的参数增量。对于没有参数共享的 WideNet-H,在 256 个 TPUv3 核上训练时遇到内存不足的问题。
当 WideNet- L 比 viti – l 应用更少的 Transformer 块 (即 12 个块) 时,WideNet- L 的性能比 viti – l 高 0.7%,训练工夫略少,而参数仅为 13.1%,与参数共享的 viti – l 相比,性能则晋升幅度更大。
通过应用参数共享将 vitl 缩放到更宽的 FFN 层。会有更多可训练的参数和 FLOPs,但不能进步性能(4098 FFN dim 到 8192 FFN dim)。
论文地址:
Go Wider Instead of Deeper
https://avoid.overfit.cn/post/fd66d50b81fc4e4e83bb3bba42f41dee