ML Atlas

07 · Architektury · 5 min czytania · aktualizacja

Czym jest mieszanka ekspertów (Mixture of Experts, MoE) w dużych modelach językowych?

W skrócie

Mieszanka ekspertów to warstwa z wieloma podsieciami, z których router dla każdego tokenu wybiera tylko kilka. Model ma ogrom parametrów, a liczy niewiele.

Co to jest

Mieszanka ekspertów (MoE, mixture of experts) to architektura, w której zamiast jednej dużej podsieci jest wiele mniejszych — ekspertów — oraz mała sieć routera (bramki), która dla każdego wejścia decyduje, których ekspertów użyć i z jakimi wagami. W nowoczesnych modelach językowych router wybiera dla każdego tokenu tylko kilku ekspertów spośród kilkunastu, dziesiątek czy setek. Ta rzadka (sparse) aktywacja sprawia, że model może mieć ogromną liczbę parametrów, a koszt obliczeń na token pozostaje niewielki.

Intuicja: szpital z wieloma specjalistami. Pacjent nie odwiedza wszystkich lekarzy — rejestracja (router) kieruje go do dwóch najbardziej pasujących. Szpital jako całość ma ogromną wiedzę, ale jedna wizyta kosztuje tylko czas dwóch specjalistów. Wiedza jest rozłożona między ekspertów, a obciążenie każdego pozostaje rozsądne.

Idea pochodzi z pracy Jacobsa, Jordana, Nowlana i Hintona (1991). Do głębokiego uczenia w dużej skali wprowadzili ją Shazeer i współpracownicy (2017), a dziś warstwy MoE są w wielu dużych modelach językowych, m.in. otwartym Mixtral 8×7B.

Mechanizm — dlaczego tak działa

W transformerze MoE zastępuje zwykle warstwę MLP w bloku. Router to pojedyncza warstwa liniowa: dla tokenu x liczy logity g = W_r · x (po jednym na eksperta), zamienia je softmaksem na prawdopodobieństwa i zostawia k największych (top-k, zwykle k = 1 lub 2). Wyjście warstwy to suma wyjść wybranych ekspertów ważona ich (znormalizowanymi) wagami: y = Σ p_i · E_i(x). Pozostali eksperci nie są w ogóle liczeni dla tego tokenu.

Dlaczego to się opłaca? Prawa skalowania mówią, że większe modele (więcej parametrów) uczą się lepiej, ale w gęstym modelu każdy parametr jest używany dla każdego tokenu, więc koszt rośnie razem z rozmiarem. MoE rozdziela te dwie wielkości: liczba parametrów (pojemność, „ile model może wiedzieć”) rośnie z liczbą ekspertów, a liczba obliczeń na token zależy tylko od k. Przy tym samym budżecie obliczeń model MoE osiąga zwykle niższą stratę niż model gęsty — Switch Transformer (Fedus, Zoph, Shazeer) raportował do 7 razy szybsze osiągnięcie tej samej jakości co gęsty T5-Base.

Router uczy się razem z ekspertami, propagacją wsteczną przez wagi p_i. Pojawia się jednak sprzężenie zwrotne: ekspert, który dostaje więcej tokenów, szybciej się uczy, więc staje się lepszy i router kieruje do niego jeszcze więcej — aż kilku ekspertów robi wszystko, a reszta próżnuje. Dlatego dodaje się stratę równoważącą obciążenie: w Switch Transformer to N · Σ f_i · P_i, gdzie f_i to odsetek tokenów wysłanych do eksperta i, a P_i to średnie prawdopodobieństwo routera dla niego. Jest minimalna, gdy obciążenie jest równe. Dodatkowo każdy ekspert ma limit pojemności — tokeny ponad limit są pomijane w tej warstwie i przechodzą dalej tylko połączeniem rezydualnym.

Wbrew nazwie eksperci rzadko specjalizują się w czytelnych dziedzinach („ekspert od biologii”). Analizy pokazują raczej specjalizację składniową lub na poziomie typów tokenów. Wady MoE: wszystkie parametry muszą zmieścić się w pamięci (koszt pamięci jak dla dużego modelu, choć obliczeń jak dla małego), trening bywa niestabilny, a dzielenie ekspertów między wiele kart GPU wymaga kosztownej komunikacji.

Na przykładzie

Router dla jednego tokenu i czterech ekspertów zwraca logity [2,0; 1,0; 0,5; −1,0]. Softmax daje prawdopodobieństwa [0,61; 0,22; 0,14; 0,03]. Przy top-2 zostają eksperci 1 i 2; po renormalizacji ich wagi to 0,73 i 0,27, więc wyjście warstwy to 0,73 · E_1(x) + 0,27 · E_2(x). Eksperci 3 i 4 nie wykonują żadnych obliczeń. Strata równoważąca przy równym obciążeniu (f_i = P_i = 0,25) wynosi 4 · 4 · 0,25 · 0,25 = 1; gdy 70% tokenów trafia do jednego eksperta (f = [0,7; 0,2; 0,1; 0], P = [0,6; 0,25; 0,1; 0,05]), rośnie do 1,92 i gradient popycha router ku równowadze.

Mixtral 8×7B ma 32 bloki, wymiar 4096 i w każdym bloku 8 ekspertów (MLP z warstwą ukrytą 14 336 i trzema macierzami wag), z których router wybiera 2. Jeden ekspert w jednym bloku to 3 · 4096 · 14 336 = 176 160 768 wag. Wszyscy eksperci razem: 176 160 768 · 8 · 32 ≈ 45,1 mld parametrów; aktywni dla jednego tokenu: 176 160 768 · 2 · 32 ≈ 11,3 mld. Po doliczeniu uwagi i embeddingów wychodzą podawane przez autorów liczby: około 47 mld parametrów, z których około 13 mld jest aktywnych dla tokenu. Nazwa „8×7B” myli — model nie ma 56 mld parametrów, bo eksperci dzielą warstwy uwagi.

W praktyce

  • Gotowe modele MoE są w Hugging Face transformers (np. MixtralForCausalLM); do trenowania w skali służą biblioteki z równoległością ekspertów (np. DeepSpeed-MoE, Megablocks).
  • Typowe ustawienia: 8–64 ekspertów na warstwę, top-1 lub top-2, współczynnik straty równoważącej rzędu 0,01.
  • Planując sprzęt, licz pamięć dla wszystkich parametrów, a szybkość — dla aktywnych.
  • Monitoruj obciążenie ekspertów w trakcie treningu — kilku przeładowanych ekspertów to sygnał, że strata równoważąca jest za słaba.
  • Przy dostrajaniu MoE łatwiej się przeucza niż model gęsty o tej samej liczbie aktywnych parametrów; pomaga silniejsza regularyzacja (dropout w ekspertach).

Najczęstsze pytania

Czy MoE to to samo co zespół modeli (ensemble)?
Nie. Zespół uruchamia wszystkie modele i uśrednia ich wyniki, więc koszt rośnie z liczbą modeli. MoE dla każdego tokenu uruchamia tylko kilku ekspertów wybranych przez router, a eksperci trenują się razem jako jedna sieć.
Dlaczego MoE jest tańsze w obliczeniach, ale nie w pamięci?
Dla każdego tokenu liczy się tylko k ekspertów, więc liczba operacji jest jak w małym modelu. Ale różne tokeny trafiają do różnych ekspertów, więc wszystkie wagi muszą być stale dostępne w pamięci.
Czy eksperci są ekspertami od konkretnych tematów?
Zwykle nie w sensie zrozumiałym dla człowieka. Specjalizują się raczej w typach tokenów, wzorcach składniowych czy fragmentach słów; tematyczne podziały, jeśli występują, są słabe.

Źródła

  • Jacobs, Jordan, Nowlan, Hinton „Adaptive Mixtures of Local Experts”, Neural Computation 3(1), 1991.
  • Shazeer i in. „Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer”, ICLR 2017, arXiv:1701.06538.
  • Fedus, Zoph, Shazeer „Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity”, Journal of Machine Learning Research 23, 2022.
  • Jiang i in. „Mixtral of Experts”, arXiv:2401.04088, 2024.
  • Bishop „Pattern Recognition and Machine Learning”, Springer, 2006, rozdz. 14.5 („Conditional Mixture Models”).

Zobacz też