iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
AI & Data

實戰派 AI 工程師帶你 0->1系列 第 27

Day 27: MoE (分享自身經驗)

  • 分享至 

  • xImage
  •  

前情提要

前幾天我們已經把 MoE 介紹完也實作完了,主要是應用在 LLM 方面,那如果是其他任務呢?

0. 分享

前陣子開始研究 ASR 及 AST 相關研究,也就是 nemo 的 canary,是一個 multi-task 的模型,其中有推出兩種,一開始是 canary-1b,後來是 canary-1b-flash,當中有推出比較小 size 的模型,如 canary-180m-flash,我在公司機器是 4090 也就是 24G 記憶體,照我們學過的資源估計,要訓練 1b 的模型幾乎是難上加難,所以我轉而研究 180m,但我們之前提過了模型參數量會到一定大小才會有湧現現象,所以我開始研究能不能使用 MoE 來取代掉 FFN,並且參考以下論文,嘗試讓效果更好。

  1. 多語言
  2. 多任務
  3. 參數量不夠,但又不能太多(無法訓練)

另外一個觀念稍微提一下,之所以會用這些模型,主要是因為他們用大量 GPU 以及大量語料去訓練,拿這樣子的 pre-trained model weights 接續著 fine-tune,通常效果都不錯(因為已經學會聲音特徵等等),所以我自己改架構的前提是能保留原先 weights 的部分,因此我將原先的 FFN 當作 shared expert,額外加上 routed expert,這樣子就不會浪費原先 FFN 的 weights 了。

1. Samsung: Beyond Hard Sharing: Efficient Multi-Task Speech-to-Text Modeling with Supervised Mixture of Experts

架構圖如下,可以很清楚看到,分別在每一層的 Encoder 和 Decoder 各有兩個 FFN,

  • Encoder: 處理聲音特徵,這邊處理 Wide Band(16kHz) 和 Narrow Band (8kHz, 電話音質),而論文當中特別用 Supervised MoE ,這個指的是 WB 就走第一個 FFN, NB 就走第二個 FFN,直接指定 FFN 而不是用 Router 選取 top-k。
  • Decoder: 第一個 FFN 處理 ASR 的部分,第二個 FFN 處理 AST 的部分。
    https://ithelp.ithome.com.tw/upload/images/20250921/20168446VStJ37zIiI.png
    https://ithelp.ithome.com.tw/upload/images/20250921/20168446ZYhL921mCz.png

此篇是最新的一篇,有以下創新點:

  1. 針對 ASR 及 AST 的 multi-task
  2. Router 選定 expert → 簡化成 Supervised 直接指定 → 就不用處理 load balancing
  3. 同時針對 8k 及 16k

在這篇文出之前其實我已經嘗試在 Decoder 使用 MoE,但沒有像論文當中直接用 Supervised 的方式,感覺這樣更高效,但有個需要考慮的是,論文只有韓語的 ASR 及韓語翻英文的 AST,並沒有更多語言,如果更多語言那還適合這種架構嗎? 還是多增加 FFN 來處理各個語言? 這感覺是可以思考及嘗試的點。

2. Apple: Omni-Router: Sharing Routing Decisions in Sparse Mixture-of-Experts for Speech Recognition

架構圖如下,本篇論文的重點是共用同一個 router,這樣的好處有以下幾點(參考第二個圖):

  1. 結構化與連貫性(Structured and Coherent):Omni-router 的專家指派在時間和深度(層次)兩個維度上都呈現出清晰的結構。
  2. 一致的時間段(Consistent Temporal Segments):模型會為音訊中連續的時間段指派相同的專家
  3. 穩定的專業分工(Stable Specialization):不同的專家會被重複利用來處理特定的任務
  4. 與聲學模式的關聯性(Correlation with Acoustic Patterns)
    綠色專家: 對應音訊中的靜音片段。
    其他專家: 對應不同類型的語音片段。
    https://ithelp.ithome.com.tw/upload/images/20250921/20168446rBj1kOwbLW.png
    https://ithelp.ithome.com.tw/upload/images/20250921/20168446a7eqZRU5Ge.png

此篇論文主要是訓練 1M 小時的英文,測試專家數量有 2, 4, 8 然後只選擇 top-1,創新點: Shared Router。
不過論文並沒有針對多語言做訓練,不過應該可以想像每個語言應該會對應到1~2 個顏色專家。

3. Google: Mixture-of-Expert Conformer for Streaming Multilingual ASR

架構圖如下,這篇算是比較早期的論文,主要是採用 conformer 的 encoder 跟 nemo 的模型一樣,當中有前後兩個 FFN,論文有測試前後都改成 MoE (如第二個圖),主要是用 MoE 來增加多語言的效果。
  https://ithelp.ithome.com.tw/upload/images/20250921/20168446I9W2ja5QFZ.png
  https://ithelp.ithome.com.tw/upload/images/20250921/20168446cOArMtJa22.png

雖然只是簡單帶大家看以上三篇論文,但可以很清楚看到,透過 MoE 來增加模型的效能,未來應該會有更多將 MoE 應用在 ASR 的部分或其他任務。
以上是分享我自己實作的經驗,有時候有想法就可以去試試看,可能過沒多久就會有相關論文,而實作的嘗試可以讓你學得越多對架構越有想法,說不定有機會更進一步改善你的模型。
今天就先到這裡囉~


上一篇
Day 26: MoE 實作 (下) Auxiliary-Loss-Free
下一篇
Day 28: RoPE 觀念
系列文
實戰派 AI 工程師帶你 0->128
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言