MOE技術簡要記錄

MOE

  • GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding

    • 模型設計:

      在這里插入圖片描述

    特點:

    (1) 專家容量 expert capacity

    • 強制規定了每一個expert所負責處理的token數量有一個最大值,這個最大值就叫專家容量;(2N/E)

    (2)分組分配 Local group dispatching

    • 給所有輸入token分成了G組,不同的組并行處理,每個組相應地也把組內專家容量變成2N/EG。這樣做相當于在前向推理時,把大的batch拆分成的 batch,每個小的batch就是一個group。這樣做的好處是通訊的時候只需要在每個group內進行就可以了,減少了通訊量。而進行反向計算的時候這些group可以合起來一起用,相當于進行了gradient accumulation。

    (3)輔助損失函數 Auxiliary loss

    • 損失函數如下:
      l a u x = 1 E ∑ e = 1 E c e S m e l_{aux} = \frac{1}{E}\sum_{e=1}^{E} \frac{c_e}{S}\ m_e laux?=E1?e=1E?Sce???me?
      $ S$是token數, E E E是專家數, c e c_e ce?是分配給第 e e e 個專家的token數, m e m_e me?是第 e e e 個expert在 S S S 個token中獲得的平均權重;

    (4)隨機路由 Random routing

    • 如果top-1專家的權重很高,而第二個專家的權重如果較小,那很有可能只用第一個專家就足夠解決問題了。
  • Switch Transformer: Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity

    • 模型設計

    在這里插入圖片描述

    • 特點:

      (1) 專家容量 expert capacity
      e x p e r t c a p a c i t y = ( t o k e n s p e r b a t c h n u m b e r s o f e x p e r t s ) ? c a p a c i t y f a c t o r . expert\ capacity = (\frac{tokens \ per \ batch}{numbers\ of \ experts}) · capacity \ factor. expert?capacity=(numbers?of?expertstokens?per?batch?)?capacity?factor.
      (2) 負載均衡損失
      l o s s = a ? N ? ∑ i ? 1 N f i ? P i loss = a·N·\sum_{i-1}^{N}f_i·P_i loss=a?N?i?1N?fi??Pi?
      f i f_i fi?表示被分配到第 i i i個expert的token數
      f i = 1 T ∑ x ∈ B 1 { a r g m a x ( p ( x ) ) = i } f_i = \frac{1}{T}\sum_{x \in B}1\{argmax(p(x)) = i \} fi?=T1?xB?1{argmax(p(x))=i}
      P i P_i Pi?表示整個batch每個token分配給第 i i i 個expert的概率的總和
      P i = 1 T ∑ x ∈ B p i ( x ) P_i = \frac{1}{T}\sum_{x\in B}p_i(x) Pi?=T1?xB?pi?(x)
      負載損失函數設計的思路與上述GShard 完全一致,只不過系數不太相似。

    • 主要工作:

      (1)MoE to dense:把訓出來的效果較好的MoE模型蒸餾到dense模型,在壓縮MoE模型99%的參數的情況下,效果還是比直接訓練dense模型好。

      (2)訓練和微調技術:

      • 首次使用bf16成功訓練MoE模型:

        routing function內部使用單精度,其他部分使用半精度。

      • 更適合MoE結構的模型初始化

      • 增加的專家正則化,改善了稀疏模型的微調和多任務訓練

    ? (3)訓練框架:結合數據、模型和專家并行性,訓練了超過1T參數的MoE模型。

  • ST-MoE: DESIGNING STABLE AND TRANSFERABLE SPARSE EXPERT MODELS

    • 思想: 穩定訓練

      1. 乘性操作對模型穩定性和效果的影響

        • GELU Gated Linear Units
        • RMSNorm
        • 增加dense層
        • 增加一個bias
        1. noise對模型穩定性和效果的影響

          給router的輸入logits乘以一個在[1e-2, 1e2]之間的均勻隨機變量來添加噪音。

      2. 限制激活值和梯度值對模型穩定性和效果的影響

        提出新的損失router z-loss損失
        L z ( x ) = 1 B ∑ i = 1 B ( l o g ∑ j = 1 N e j ( i ) ) 2 L_z(x) = \frac{1}{B} \sum_{i=1}^B(log \sum_{j=1}^{N}e_j^{(i)})^{2} Lz?(x)=B1?i=1B?(logj=1N?ej(i)?)2
        B B B 是token的數量, E E E是專家數, x ∈ R B ? N x \in R^{B·N} xRB?N是router的輸入。

      ? z-loss會對進入router的較大的logits值進行懲罰,以達到盡量減少進入指數函數的較大誤差的目的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41902.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41902.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41902.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RK3588 linux RGA初探

概述 RGA (Raster Graphic Acceleration Unit)是一個獨立的2D硬件加速器,可用于加速點/線繪制,執行圖像縮放、旋轉、bitBlt、alpha混合等常見的2D圖形操作。 本文基于以下版本編寫: commit fb5f019ea0191ec1c34f49ac8be447ac8921aadd (HEAD -> main,…

服務器數據恢復—raid5陣列硬盤出現大量壞道的數據恢復案例

服務器存儲數據恢復環境&故障: 一臺DELL EqualLogic PS 4000存儲中有一組由12塊磁盤組建的raid5陣列,存儲空間劃分3個同等大小的卷,采用的VMFS文件系統。 兩塊硬盤指示燈亮黃色,raid5陣列崩潰,存儲變得不可用。 服…

C語言學習記錄Day2

for循環 for(表達式1;表達式2;表達式3) 循環語句; 注:表達式1:初始化部分.表達式2:條件判斷部分 表達式3:調整部分 不可再for循環體內修改循環變量,防止f…

廠拉拉獲清科文創天使輪投資

最新信息:源頭工廠測品平臺廠拉拉APP已正式獲得北京清科文創千萬級的天使輪投資。 本輪資金將主要用于測品師、品鑒官隊伍的引流,及APP3.0數字供應鏈和用戶購物行為算法技術、算力模型的建設。 廠拉拉APP的營運主體為廣州智邦遠見科技有限公司&#xf…

Java基礎概念

1.注釋和關鍵字 (1)注釋 什么是注釋?注釋就是對代碼進行解釋說明的文字 注釋的分類?單行注釋,多行注釋,文檔注釋 注釋的使用細節? 注釋的內容不會參與編譯和運行,僅僅是對代碼的…

【Linux】touch

我們在介紹ls這個命令時,提到每個文件在Linux下面都會記錄許多的時間參數,其實是有三個主要的變動時間,那么三個時間的意義是什么? 修改時間(modification time,mtime):當該文件的【內容數據】…

qt udp 協議鏈接舉例

在Qt框架中,使用UDP協議進行通信主要依賴于QUdpSocket類。以下是一個基于Qt的UDP通信示例,包括UDP套接字的創建、綁定端口、發送和接收數據報的步驟。 1. 創建UDP套接字 首先,需要創建一個QUdpSocket對象。這通常在你的類的構造函數中完成&…

【c++刷題筆記-貪心】day28: 134. 加油站 、 135. 分發糖果 、860.檸檬水找零 、 406.根據身高重建隊列

134. 加油站 - 力扣(LeetCode) 思路:算出當前的消耗的油量總數,如果花費大于油量表示無法到達。統計總花費最大的油耗總數,如果油耗總數大于或者等于0,表示全程沒有負花銷,直接從0起步。小于零…

十二、數組

1. 一維數組的創建和初始化 數組是一組相同類型元素的集合。 變長數組是不能初始化的。 數組的初始化是指,在創建數組的同時給數組的內容一些合理初始值(初始化)。 例如上圖 char ch3[ ]"abc";里面方的就是 a b c \0 char ch3[ …

EDA 2023 年世界國家suicide rate排名

文章目錄 前言:關于數據集列 導入模塊導入數據數據預處理探索性數據分析按性別劃分的自殺率 [箱線圖]相關矩陣熱圖自殺率最高的 15 個國家變化百分比最高的 15 個國家/地區2023 年世界地圖上自殺率的國家 結尾: 前言: 隨著社會的不斷發展和變遷,人們對于各種社會問…

揭秘:源代碼防泄密的終極秘籍

在當今信息科技高度發達的時代,源代碼作為企業最核心的資產之一,其安全性不言而喻。源代碼的泄露可能導致企業技術機密被競爭對手獲取,進而威脅到企業的市場競爭力和長遠發展。因此,源代碼防泄密成為了企業信息安全工作的重中之重…

前端JS特效第24波:jQuery輕量級響應式幻燈片插件EasyFader

jQuery輕量級響應式幻燈片插件EasyFader&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"utf-8"> <title>jQuery輕量級響應式幻燈片插件E…

C-10 凸包

凸包 數學定義 平面的一個子集S被稱為是凸的&#xff0c;當且僅當對于任意兩點A&#xff0c;B屬于S&#xff0c;線段PS都完全屬于S過于基礎就不詳細介紹了 凸包的計算 github上找到了別人的代碼&#xff0c;用4種方式實現了凸包的計算&#xff0c;把他放在這里鏈接地址htt…

可靈ai出web端了

網址 https://klingai.kuaishou.com/ 可靈ai出web端了 最近最火的莫過于老照片動態視頻了&#xff0c;現在可靈出web端了&#xff0c;更利好開發者了。

redis運維:sentinel模式如何查看所有從節點

1. 連接到sentinel redis-cli -h sentinel_host -p sentinel_port如&#xff1a; redis-cli -h {域名} -p 200182. 發現Redis主服務器 連接到哨兵后&#xff0c;我們可以使用SENTINEL get-master-addr-by-name命令來獲取當前的Redis主服務器的地址。 SENTINEL get-master-a…

原生JS常用方法總結

文章目錄 根據 cookie 的 key 獲取 value根據 xpath 獲取頁面元素ajax請求 根據 cookie 的 key 獲取 value // 獲取cookie function getCookie(key){var arrstr document.cookie.split("; ");for (var i 0; i < arrstr.length; i){var temp arrstr[i].split(&…

手動安裝Ruby 1.9.3并升級RubyGems

手動安裝Ruby 1.9.3并升級RubyGems ###Ruby 1.9.3 p125安裝 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configure --with-openssl-dir/usr/lib/op…

Python骨架肌體運動學數學模型

&#x1f3af;要點 &#x1f3af;運動學矢量計算 | &#x1f3af;跳遠的運動學計算 | &#x1f3af;關節肢體運動最小加加速度模型 | &#x1f3af;膝關節和踝關節角度二維運動學計算 | &#x1f3af;上下肢體關節連接運動鏈數學模型 | &#x1f3af;剛體連接點速度加速度計算…

[python]Markdown圖片引用格式批處理桌面應用程序

需求 使用python編寫一個exe&#xff0c;實現批量修改圖片引用&#xff0c;將修改后的文件生成為 文件名_blog.md。有一個編輯框&#xff0c;允許接收拖動過來md文件&#xff0c;拖入文件時獲取文件路徑&#xff0c;有一個編輯框編輯修改后的文件的輸出路徑&#xff0c;用戶拖入…

Springboot實戰:AI大模型+亮數據代理助力短視頻時代

目錄 前言1.如何入門亮數據1.1、注冊登錄1.2、注冊賬號1.3、登錄1.4、購買靜態住宅代理1.5、展示購買的代理 2. 使用Springboot、AI大模型構建系統2.1 使用Springboot、AI大模型構建爬蟲2.2、在Springboot項目添加工具 3、編寫代碼&#xff0c;爬取視頻素材3.1、代碼里使用代理…