首页 > 其他分享 >WideNet:让网络更宽而不是更深

WideNet:让网络更宽而不是更深

时间:2023-07-05 19:00:32浏览次数:57  
标签:WideNet Transformer 训练 网络 更深 参数 专家 MoE

前言 本文介绍了新加坡国立大学在2022 aaai发布的一篇论文。WideNet是一种参数有效的框架,它的方向是更宽而不是更深。通过混合专家(MoE)代替前馈网络(FFN),使模型沿宽度缩放。使用单独LN用于转换各种语义表示,而不是共享权重。

本文转载自DeepHub IMBA

仅用于学术分享,若侵权请联系删除

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!

混合专家(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://ojs.aaai.org/index.php/AAAI/article/view/20858/20617

 

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

中科院自动化所发布FastSAM | 精度相当,速度提升50倍!!!

大核卷积网络是比 Transformer 更好的教师吗?ConvNets 对 ConvNets 蒸馏奇效

MaskFormer:将语义分割和实例分割作为同一任务进行训练

CVPR 2023 VAND Workshop Challenge零样本异常检测冠军方案

视觉魔法师:开启语义分割的奇幻之旅

沈春华团队最新 | SegViTv2对SegViT进行全面升级,让基于ViT的分割模型更轻更强

刷新20项代码任务SOTA,Salesforce提出新型基础LLM系列编码器-解码器Code T5+

可能95%的人还在犯的PyTorch错误

从DDPM到GLIDE:基于扩散模型的图像生成算法进展

CVPR最佳论文颁给自动驾驶大模型!中国团队第一单位,近10年三大视觉顶会首例

最新轻量化Backbone | FalconNet汇聚所有轻量化模块的优点,成就最强最轻Backbone

ReID专栏(二)多尺度设计与应用

ReID专栏(一) 任务与数据集概述

libtorch教程(三)简单模型搭建

libtorch教程(二)张量的常规操作

libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch

NeRF与三维重建专栏(三)nerf_pl源码部分解读与colmap、cuda算子使用

NeRF与三维重建专栏(二)NeRF原文解读与体渲染物理模型

NeRF与三维重建专栏(一)领域背景、难点与数据集介绍

异常检测专栏(三)传统的异常检测算法——上

异常检测专栏(二):评价指标及常用数据集

异常检测专栏(一)异常检测概述

BEV专栏(二)从BEVFormer看BEV流程(下篇)

BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

可见光遥感图像目标检测(三)文字场景检测之Arbitrary

可见光遥感目标检测(二)主要难点与研究方法概述

可见光遥感目标检测(一)任务概要介绍

TensorRT教程(三)TensorRT的安装教程

TensorRT教程(二)TensorRT进阶介绍

TensorRT教程(一)初次介绍TensorRT

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

标签:WideNet,Transformer,训练,网络,更深,参数,专家,MoE
From: https://www.cnblogs.com/wxkang/p/17529568.html

相关文章

  • 计算机网络考后有感
    一、前言这一科的知识点太多了,于我而言速成有点不太可能,吃不消,刚刚考完,不知道结果如何,在此记录一下二、考试类型题及相关题1、简答题1.举例什么情况下是高带宽、高延迟,什么情况下是低带宽、低延迟?2.对比一下光纤和铜线的优缺点3.叙述一下TCP三次握手的过程,并说明为什么是三......
  • eNSP——华为的网络工具平台下的小实验
    eNSP环境小实验实验一主机与路由器的连接配置先配置发送方主机1、接收方主机2的IP地址、网关。  双击AR1进入编辑命令行页面<Huawei>utmInfo:Currentterminalmonitorisoff.<Huawei>sysEntersystemview,returnuserviewwithCtrl+Z.[Huawei]intg0/0/0......
  • 再探网络流
    昨天CF1368H的基础网络流部分我不会,今天noi2019d1t3的网络流我又不会。想当年大家都说我网络流很好来着,现在只需要两个题就足够把我击垮了。于是再来做一些网络流题,或者是一些原来做过的题的回顾,以此总结一些经验。流量限制的是最大值而非最小值,故当限制为最小值时考虑转化......
  • Searching Chemical Action and Network:化学反应网络计算
    计算化学的发展,为高价值化合物的合成开拓了新的反应途径。计算化学产生大量的数据,组织和可视化这些数据的过程对将其用于未来的研究至关重要。由北海道大学化学学院KeisukeTakahashi教授和化学反应设计与发现研究所(WPI-ICReDD)SatoshiMaeda教授领导的研究团队开发了一个......
  • WideNet:让网络更宽而不是更深
    这是新加坡国立大学在2022aaai发布的一篇论文。WideNet是一种参数有效的框架,它的方向是更宽而不是更深。通过混合专家(MoE)代替前馈网络(FFN),使模型沿宽度缩放。使用单独LN用于转换各种语义表示,而不是共享权重。 https://avoid.overfit.cn/post/fd66d50b81fc4e4e83bb3bba42f4......
  • m基于细菌觅食优化的DSR网络路由协议优化算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要        移动自组网(MobileAdHocNetwork,简称MANET)是一种无需基础设施支持的网络,它由一组移动的节点组成,这些节点可以自组织形成一个网络,实现数据的传输和共享。由于MANET是一种去中心化......
  • python网络编程 socket
    基于TCP协议的套接字编程(socket编程)什么是Socket呢?我们经常把Socket翻译为套接字,Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。套接字的分类:AF_UNIX:用在局域网中AF_INET:用在互联网中"""客户端和......
  • 网络连接存在大量time_wait和close_wait的原因以及解决方法
     四次挥手过程:第一次挥手:主机A(可以是客户端,也可以是服务器端),设置SequenceNumber和AcknowledgmentNumber,向主机B发送一个FIN报文段;此时,主机A进入FIN_WAIT_1状态;这表示主机A没有数据要发送给主机B了。第二次挥手:主机B收到了主机A发送的FIN报文段,向主机A回一个ACK报文段,Acknow......
  • 【模型解读】深度学习网络只能有一个输入吗
    平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一种模型需要输入两张,或者多张图片,这就是多输入网络结构。作者|言有三编辑|言有三01多输入网络的应用背景首先我们说说在什么情况下,需要多个输入,只以纯图像应用为例。1.1图像验证与......
  • 2023容器网络趋势:CNI网络插件逐渐普及,Kube-OVN受欢迎度持续攀升
    今年,Kube-OVN社区联合OSCHINA、云原生社区共同发起了《2022-2023容器网络使用情况调研》,得到了大批K8s/容器网络技术人员的关注。本调研旨在更加直观地了解各行业企业容器网络的使用现状,以及Kube-OVN在社区用户中的使用情况,以便更全面地评估容器网络发展方向,更有针对性地规划Kub......