𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗛𝗼𝘄 𝗜𝘁 𝗪𝗼𝗿𝗸𝘀 𝗮𝗻𝗱 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗨𝘀𝗲 𝗜𝘁

Chcesz przeskalować model z 7B do 70B bez kupowania czterech dodatkowych procesorów GPU.

Ktoś sugeruje Mixture of Experts (MoE). Twierdzą, że uzyskasz wydajność modelu 70B przy nakładach obliczeniowych rzędu 7B.

Brzmi to jak darmowy obiad. Ale jest pewien haczyk.

Jak to działa?

Gęsty (dense) transformer, taki jak Llama 3.2, wykorzystuje 100 procent swoich parametrów dla każdego tokenu. Jeśli skalujesz model z 7B do 70B, mnożysz zarówno zapotrzebowanie na pamięć, jak i moc obliczeniową 10-krotnie.

MoE rozdziela te dwa aspekty. Model przechowuje więcej parametrów (wyższy koszt pamięci), ale wykorzystuje tylko ich ułamek dla każdego tokenu (niższy koszt obliczeniowy).

Kompromis:

• Dense 7B: 7B parametrów całkowitych | 7B aktywnych | 7B obliczeń | 14 GB pamięci • Dense 70B: 70B parametrów całkowitych | 70B aktywnych | 70B obliczeń | 140 GB pamięci • MoE 45B: 45B parametrów całkowitych | ~13B aktywnych | ~14B obliczeń | ~90 GB pamięci

Haczyk: Nadal ponosisz koszt pamięciowy dużego modelu. Nie uruchomisz Mixtral na pojedynczym GPU z 24 GB VRAM. Potrzebujesz wystarczającej ilości pamięci VRAM, aby pomieścić wszystkich ekspertów, nawet tych, którzy nie są w danej chwili używani.

Architektura:

W rzadkim (sparse) MoE standardowa sieć Feed-Forward (FFN) jest zastępowana przez wiele sieci FFN typu „ekspert” oraz wyuczony router.

  1. Router przyjmuje token.
  2. Przypisuje on wynik (score) każdemu ekspertowi.
  3. Wybiera k najlepszych ekspertów (dla Mixtral k=2).
  4. Przesyła token wyłącznie przez tych ekspertów.
  5. Łączy wyniki.

Router nie jest ręcznym schedulerem. To wyuczona warstwa. Uczy się wysyłać tokeny matematyczne do jednego eksperta, a tokeny kodu do innego.

Wyzwanie treningowe:

Największym ryzykiem jest załamanie routera (router collapse). Bez odpowiedniej pomocy router może wysyłać każdy token do tych samych dwóch ekspertów. Ci eksperci stają się coraz lepsi, więc router kieruje do nich jeszcze więcej ruchu. Pozostali eksperci stają się bezużyteczni.

Inżynierowie używają pomocniczej funkcji straty do równoważenia obciążenia (auxiliary load-balancing loss), aby temu zapobiec. Nakłada ona karę na model, jeśli nie wykorzystuje on wszystkich ekspertów w równym stopniu.

Kiedy unikać MoE:

• Potrzebujesz stałego opóźnienia (latency): MoE charakteryzuje się większą zmiennością czasu odpowiedzi. • Masz ograniczoną pamięć VRAM: Jeśli masz tylko jedno GPU o pojemności poniżej 48 GB, trzymaj się modeli gęstych (dense). • Budujesz bardzo małe modele: Jeśli Twój model ma mniej niż 3B parametrów, narzut (overhead) będzie zbyt wysoki. • Potrzebujesz prostej infrastruktury: MoE wymaga złożonego równoległego przetwarzania ekspertów (expert parallelism) i niestandardowych jąder (custom kernels).

MoE sprawdza się najlepiej, gdy celujesz w bazę gęstą (dense baseline) powyżej 30B parametrów i dysponujesz odpowiednią ilością pamięci, aby ją obsłużyć.

Źródło: https://dev.to/tech_nuggets/mixture-of-experts-moe-what-it-actually-does-under-the-hood-and-when-it-pays-off-alb

Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi