<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          詳細解讀 Transformer的即插即用模塊 | MoE插件讓ViT模型更寬、更快、精度更高

          共 13837字,需瀏覽 28分鐘

           ·

          2021-08-03 09:27

          本文提出Transformer更寬而不是更深,以實現(xiàn)更高效的參數(shù)部署,并將此框架實現(xiàn)為WideNet。首先通過在Transformer塊之間共享參數(shù)來壓縮可訓(xùn)練參數(shù)和深度,并用MoE層替換了FFN層。實驗表明,WideNet通過較少的可訓(xùn)練參數(shù)實現(xiàn)了最佳性能,優(yōu)于ViT等網(wǎng)絡(luò)。
          作者單位:新加坡國立大學(xué)

          1簡介

          Transformer最近在各種任務(wù)上取得了令人矚目的成果。為了進一步提高Transformer的有效性和效率,現(xiàn)有工作中有2種思路:

          1. 通過擴展到更多可訓(xùn)練的參數(shù)來擴大范圍;
          2. 通過參數(shù)共享或模型壓縮隨深度變淺。

          然而,當(dāng)可供訓(xùn)練的Token較少時,較大的模型通常無法很好地擴展,而當(dāng)模型非常大時,則需要更高的并行性。由于表征能力的損失,與原始Transformer模型相比,較小的模型通常會獲得較差的性能。

          在本文中,為了用更少的可訓(xùn)練參數(shù)獲得更好的性能,作者提出了一個通過更寬的模型框架來有效地部署可訓(xùn)練參數(shù)。特別地,作者通過用MoE替換前饋網(wǎng)絡(luò)(FFN)來沿模型寬度進行縮放。然后,使用單個層歸一化跨Transformer Block共享MoE層。這種部署起到了轉(zhuǎn)換各種語義表征的作用,這使得模型參數(shù)更加高效和有效。

          為了評估所提的框架,作者設(shè)計了WideNet并在ImageNet-1K上對其進行評估。最好的模型在0.72倍可訓(xùn)練參數(shù)下的性能比ViT高1.46%。使用0.46×和0.13×參數(shù)的WideNet仍然可以分別超過ViT和ViT-MoE0.83%和2.08%。

          本文主要貢獻

          1. 為了提高參數(shù)效率,提出了跨Transformer Block的共享MoE層。MoE層可以在不同的Transformer Block中接收到不同的Token表示,這使得每個MoE都能得到充分的訓(xùn)練;

          2. 在Transformer Block之間保持單獨的標(biāo)準化層。單獨的層具有少量額外的可訓(xùn)練參數(shù)可以將輸入隱藏向量轉(zhuǎn)換為其他語義。然后,將不同的輸入輸入到同一Attention層或更強的MoE層,以建模不同的語義信息。

          3. 結(jié)合以上2種思路,作者提出了更廣、更少參數(shù)、更有效的框架。然后將用這個框架構(gòu)建了WideNet,并在ImageNet上對其進行評估。WideNet在可訓(xùn)練參數(shù)少得多的情況下,性能大大優(yōu)于Baseline。

          2Methodology

          本文研究了一種新的可訓(xùn)練參數(shù)部署框架,并在Transformer上實現(xiàn)了該框架。總體結(jié)構(gòu)如圖所示。在這個例子中使用Vision Transformer作為Backbone,這意味著在Attention或FFN層之前進行規(guī)范化。

          WideNet可以很容易地擴展到其他Transformer模型。在WideNet中用MoE層代替FFN層。采用跨Transformer Block的參數(shù)共享,以實現(xiàn)更有效的參數(shù)部署。在每個MoE層中有一個路由器來選擇K個專家來學(xué)習(xí)更復(fù)雜的表示。請注意,為了更多樣化的語義表示,層標(biāo)準化中的可訓(xùn)練參數(shù)不是共享的。

          2.1 MoE條件計算

          核心理念是沿著寬度部署更多的可訓(xùn)練參數(shù),沿著深度部署更少的可訓(xùn)練參數(shù)。為此,作者使用MoE將Transformer縮放到大量的可訓(xùn)練參數(shù)。MoE作為一種典型的條件計算模型,只激活少數(shù)專家,即網(wǎng)絡(luò)的子集。對于每個輸入只將需要處理的隱藏表示的一部分提供給選定的專家。

          根據(jù)Shazeer,給定E個可訓(xùn)練專家,輸入表示 , MoE模型的輸出可以表示為:

          其中 為非線性變換, 為可訓(xùn)練路由器 輸出的第 個元素,通常 都是由神經(jīng)網(wǎng)絡(luò)參數(shù)化的。

          由上式可知,當(dāng) 為稀疏向量時,在訓(xùn)練過程中,只有部分專家會被反向傳播激活和更新。在本文中,對于普通的MoE和WideNet,每個專家都是一個FFN層。

          2.2 Routing

          為了保證稀疏Routing ,使用TopK()來選擇排名最高的專家。根據(jù)Riquelme論文 可表示為:

          式中 為路由線性變換, 為專家路由的高斯噪聲。在 之后使用softmax,以獲得更好的性能和更稀疏的專家。當(dāng)K<<E時, 的大部分元素為零,從而實現(xiàn)稀疏條件計算。

          2.3 Balanced Loading

          在基于MoE的Transformer中將每個Token分派給K個專家。在訓(xùn)練期間,如果MoE模型沒有規(guī)則,大多數(shù)Token可能會被分派給一小部分專家。這種不平衡的分配會降低MoE模型的吞吐量。

          此外,更重要的是,大多數(shù)附加的可訓(xùn)練參數(shù)沒有得到充分的訓(xùn)練,使得稀疏條件模型在縮放時無法超越相應(yīng)的稠密模型。因此,為了平衡加載需要避免2件事:

          1. 分配給單個專家的Token太多,
          2. 單個專家收到的Token太少。

          為了解決第1個問題,需要緩沖容量B。也就是說,對于每個專家,最多只保留B個Token,不管分派給該專家多少Token。如果分配了超過B個Token,那么左邊的Token將被丟棄:

          其中C是容量比,這是一個預(yù)定義的超參數(shù),用于控制為每個專家保留的Token的比例。通常, ,在沒有特別說明的情況下,設(shè)C為1.2。K是每個token選擇的專家數(shù)量。N為每個設(shè)備上的batch-size。L是序列的長度。對于計算機視覺任務(wù),L表示每幅圖像中patch Token的數(shù)量。

          緩沖區(qū)容量B幫助每個專家去除冗余token以最大化吞吐量,但它不能確保所有專家都能收到足夠的token進行訓(xùn)練。換句話說,直到現(xiàn)在,路由仍然是不平衡的。因此,使用可微分的負載均衡損失,而不是在路由器中均衡負載時單獨的負載均衡和重要性權(quán)重損失。對于每個路由操作,給定E專家和N批帶有NL token,在訓(xùn)練時模型總損失中加入以下輔助損失:

          其中 是向量。第 i$的token的比例:

          式中 為Eq.2中TopK選取的指標(biāo)向量。 的第 個元素。值得注意的是,與Eq.2中的 不同, 是不可微的。然而,需要一個可微分的損失函數(shù)來優(yōu)化端到端的MoE。因此,將式4中的 定義為:

          可以看出 是softmax激活函數(shù)后路由線性變換的第 個元素,并且 是可微的。

          負載均衡損失的目的是實現(xiàn)均衡分配。當(dāng)最小化 時,可以看到m和P都接近均勻分布。

          2.4 Cross Transformer blocks共享MoE

          如圖1所示,WideNet采用跨Transformer blocks參數(shù)共享的方式。使用參數(shù)共享有2個原因。首先,在本文中目標(biāo)是一個更參數(shù)有效的框架。其次,由于使用MoE層來獲得更強的建模能力,為了克服稀疏條件計算帶來的過擬合問題,需要給每個專家提供足夠的token。為此,WideNet使用相同的路由器和專家在不同的Transformer blocks。

          形式上,給定隱藏表示 作為第1個Transformer blocks的輸入,可以將參數(shù)共享定義為 ,這與現(xiàn)有的基于MoE的模型 不同。

          請注意,雖然在包括路由器在內(nèi)的MoE層共享可訓(xùn)練參數(shù),但對應(yīng)于同一Token的Token表示在每個Transformer blocks中是不同的。也就是說, 可以派給不同的專家。因此,每個專家將接受更多不同的Token的訓(xùn)練,以獲得更好的性能。

          2.5 Individual Layer Normalization

          雖然現(xiàn)有的工作表明不同Transformer blocks的激活是相似的,但余弦距離仍然遠遠大于零。因此,不同于現(xiàn)有的作品在Transformer blocks之間共享所有權(quán)重,為了鼓勵不同塊更多樣化的輸入表示,這里只共享multi-head attention layer和FFN(或MoE)層,這意味著層標(biāo)準化的可訓(xùn)練參數(shù)在塊之間是不同的。

          綜上所述,框架中的第 個Transformer blocks可以寫成:

          標(biāo)準化層LayerNormal(·)為:

          其中 是2個可訓(xùn)練的參數(shù)。

          層歸一化只需要這2個小向量,所以單獨的歸一化只會在框架中添加一些可訓(xùn)練的參數(shù)。可以發(fā)現(xiàn)共享層標(biāo)準化和單個標(biāo)準化之間的差異是輸出的平均值和大小。對于共享層歸一化,MHA和MoE層的輸入在不同的Transformer blocks中更相似。由于共享了可訓(xùn)練矩陣,鼓勵更多樣化的輸入以在不同的Transformer blocks中表示不同的語義。

          3Optimization

          雖然在每個Transformer block中重用了路由器的可訓(xùn)練參數(shù),但由于輸入表示的不同,分配也會不同。因此,給定T次具有相同可訓(xùn)練參數(shù)的路由操作,需要優(yōu)化的損失如下:

          其中λ是一個超參數(shù),以確保平衡分配,將其設(shè)置為一個相對較大的數(shù),即在本工作中為0.01。與現(xiàn)有的基于MoE的模型相似,作者發(fā)現(xiàn)該模型的性能對λ不敏感。 是Transformer的主要目標(biāo)。例如,在有監(jiān)督圖像分類中, 是交叉熵損失。

          4實驗

          5參考

          [1].Go Wider Instead of Deeper

          6推薦閱讀

          超越MobileNet V3 | 詳解SkipNet+Bias Loss=輕量化模型新的里程碑


          CSL-YOLO | 超越Tiny-YOLO V4,全新設(shè)計輕量化YOLO模型實現(xiàn)邊緣實時檢測!!!


          DA-YOLO |多域自適應(yīng)DA-YOLO解讀,惡劣天氣也看得見(附論文)



          長按掃描下方二維碼添加小助手并加入交流群,群里博士大佬云集,每日討論話題有目標(biāo)檢測、語義分割、超分辨率、模型部署、數(shù)學(xué)基礎(chǔ)知識、算法面試題分享的等等內(nèi)容,當(dāng)然也少不了搬磚人的扯犢子

          長按掃描下方二維碼添加小助手。

          可以一起討論遇到的問題

          聲明:轉(zhuǎn)載請說明出處

          掃描下方二維碼關(guān)注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

          瀏覽 74
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美理论网站 | 成人三级网站在线 | 欧美干逼 | 黄色片网站免费在线观看 | 欧美三级片视频网站 |