tradingview
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

MoE

MoE (Mixture of Experts), czyli Mixture of Experts, to architektura modeli sztucznej inteligencji, w której model składa się z wielu wyspecjalizowanych części nazywanych ekspertami (Experts).

Najważniejszą cechą MoE jest to, że dla konkretnego zadania nie musi być aktywowany cały model.

Specjalny mechanizm, nazywany routerem (Router), decyduje, którzy eksperci powinni zostać wykorzystani do przetworzenia konkretnego fragmentu danych.

Dzięki temu model może posiadać bardzo dużą liczbę parametrów, ale podczas pojedynczego zapytania aktywować tylko ich część.

To pozwala połączyć dużą pojemność modelu z relatywnie niższym kosztem obliczeniowym podczas inferencji.

Jak działa Mixture of Experts?

Wyobraźmy sobie model posiadający 8 ekspertów.

Każdy z nich może specjalizować się w innych rodzajach zadań, choć w praktyce specjalizacja nie musi być tak jednoznaczna.

Użytkownik wysyła pytanie.

Router analizuje dane i wybiera na przykład:

Ekspert 2 + Ekspert 6

Tylko te części modelu wykonują zasadniczą pracę dla danego tokenu.

Następnie ich wyniki są łączone i przekazywane dalej.

W uproszczeniu:

dane → router → wybór ekspertów → obliczenia → połączenie wyników → odpowiedź

Dlaczego wykorzystuje się MoE?

Tradycyjny model Dense wykorzystuje podczas obliczeń zasadniczo wszystkie swoje parametry.

Jeżeli model ma 100 miliardów parametrów, duża część z nich jest zaangażowana w przetwarzanie każdego wejścia.

W architekturze MoE można mieć np. 100 miliardów parametrów łącznie, ale dla pojedynczego tokenu aktywować tylko część z nich.

Dzięki temu model może mieć dużą pojemność bez konieczności wykonywania wszystkich obliczeń przy każdym zapytaniu.

To jedna z najważniejszych zalet tej architektury.

Parametry aktywne i całkowite

Przy modelach MoE często pojawiają się dwa różne określenia:

Total Parameters – wszystkie parametry znajdujące się w modelu.

Active Parameters – parametry faktycznie wykorzystywane podczas przetwarzania konkretnego tokenu.

Przykładowo model może mieć:

400 miliardów parametrów łącznie

ale aktywować:

40 miliardów parametrów na token.

Nie oznacza to, że model zachowuje się jak zwykły model 40B.

Posiada pojemność wynikającą z całej architektury, ale w pojedynczym kroku wykonuje obliczenia tylko na wybranej części ekspertów.

Router – najważniejszy element MoE

Router jest mechanizmem, który decyduje, których ekspertów wykorzystać.

Można go potraktować jako dyspozytora:

„To zadanie najlepiej przekazać tym ekspertom.”

Router przypisuje tokeny do odpowiednich ekspertów, często wybierając np. jednego lub dwóch ekspertów z większej ich liczby.

Jakość tego mechanizmu jest bardzo ważna.

Jeżeli router będzie źle kierował dane, potencjał całej architektury MoE może nie zostać wykorzystany.

Eksperci w MoE

Eksperci to wyspecjalizowane moduły znajdujące się wewnątrz modelu.

Nie należy jednak wyobrażać sobie ich jako osobnych chatbotów, z których jeden „zna się na matematyce”, drugi na programowaniu, a trzeci na historii.

Ich specjalizacja jest zazwyczaj uczona automatycznie podczas treningu.

Model sam może nauczyć się kierować określone typy danych do określonych ekspertów.

W praktyce specjalizacja może być bardziej subtelna i nie zawsze da się ją łatwo opisać językiem człowieka.

MoE a zwykły model Dense

Najprościej porównać oba podejścia w ten sposób:

Cecha Dense MoE
Wszystkie parametry aktywne Tak Nie
Wielu ekspertów Nie Tak
Router Nie Tak
Duża całkowita liczba parametrów Trudniejsza Łatwiejsza
Częściowa aktywacja modelu Nie Tak
Złożoność infrastruktury Mniejsza Większa

Model Dense wykorzystuje zasadniczo całą swoją architekturę przy każdym przetwarzaniu.

MoE wykorzystuje tylko wybranych ekspertów.

MoE a wydajność

Największą zaletą MoE jest możliwość zwiększenia liczby parametrów modelu bez proporcjonalnego zwiększania liczby obliczeń wykonywanych dla każdego tokenu.

Nie oznacza to jednak, że model MoE zawsze będzie szybszy.

Architektura ma również dodatkowe koszty:

  • router musi kierować tokeny,
  • dane trzeba przesyłać między ekspertami,
  • eksperci mogą znajdować się na różnych GPU,
  • infrastruktura jest bardziej skomplikowana,
  • konieczna jest odpowiednia komunikacja między urządzeniami.

Dlatego MoE jest szczególnie interesujące w dużych systemach AI, gdzie można odpowiednio zaprojektować infrastrukturę.

MoE a pamięć

Warto zwrócić uwagę na ważną rzecz:

nieaktywne parametry nadal muszą być przechowywane.

Jeżeli model ma 400 miliardów parametrów, to fakt, że aktywuje tylko część z nich, nie oznacza automatycznie, że można go przechowywać tak jak model posiadający 40 miliardów parametrów.

Cały zestaw ekspertów musi być dostępny podczas działania modelu.

Dlatego MoE może zmniejszyć koszt obliczeń, ale niekoniecznie proporcjonalnie zmniejsza wymagania dotyczące pamięci.

MoE a trening

MoE może być również wykorzystywane podczas treningu.

Model uczy się nie tylko samych parametrów ekspertów, ale również tego, jak kierować dane do odpowiednich ekspertów.

Jednym z problemów jest tzw. load balancing.

Jeżeli router będzie kierował zdecydowaną większość tokenów do kilku ekspertów, a pozostali będą wykorzystywani rzadko, część potencjału infrastruktury zostanie zmarnowana.

Dlatego podczas treningu stosuje się mechanizmy mające zapewnić odpowiednie rozłożenie obciążenia.

MoE a load balancing

Wyobraźmy sobie 8 kas w supermarkecie.

Jeżeli klienci są kierowani równomiernie:

8 kas → równomierne obciążenie → sprawna obsługa

Jeżeli jednak 90% klientów trafia do jednej kasy:

1 kasa → ogromna kolejka

a pozostałe siedem praktycznie się nie nudzi.

W MoE podobny problem może wystąpić z ekspertami.

Router powinien więc nie tylko wybierać ekspertów, ale również pomagać w odpowiednim rozłożeniu obciążenia.

MoE a LLM

Architektura MoE jest szczególnie interesująca w przypadku dużych modeli językowych (LLM).

Pozwala budować modele posiadające ogromną liczbę parametrów przy jednoczesnym ograniczeniu liczby parametrów aktywowanych dla pojedynczego tokenu.

Dlatego MoE stało się jednym z ważnych kierunków rozwoju dużych modeli językowych.

W praktyce można spotkać modele określane np. jako:

„X miliardów parametrów, Y miliardów aktywnych”

co właśnie odnosi się do architektury MoE.

Zalety MoE

Najważniejsze zalety to:

  • możliwość budowania modeli o bardzo dużej liczbie parametrów,
  • mniejsza liczba aktywnych parametrów na token,
  • potencjalnie niższy koszt obliczeń względem równie dużego modelu Dense,
  • możliwość specjalizacji ekspertów,
  • możliwość zwiększania pojemności modelu bez proporcjonalnego zwiększania aktywnego kosztu obliczeniowego.

Wady MoE

MoE nie jest jednak rozwiązaniem pozbawionym wad.

Najważniejsze problemy to:

  • większa złożoność architektury,
  • większe wymagania dotyczące infrastruktury,
  • konieczność sprawnego działania routera,
  • problemy z równoważeniem obciążenia ekspertów,
  • wymagająca komunikacja między GPU,
  • konieczność przechowywania wszystkich ekspertów.

Dlatego MoE jest szczególnie atrakcyjne dla dużych modeli i centrów danych, ale niekoniecznie dla każdego zastosowania.

MoE – prosty przykład

Załóżmy, że model posiada 16 ekspertów.

Użytkownik wpisuje pytanie dotyczące programowania.

Router może skierować tokeny do ekspertów:

3 i 11

Następnie pojawia się pytanie matematyczne.

Router może wybrać:

5 i 8

W kolejnym fragmencie tekstu potrzebne jest tłumaczenie.

Router może wybrać:

2 i 14

Model nie musi więc uruchamiać wszystkich 16 ekspertów dla każdego tokenu.

To właśnie jest podstawowa idea Mixture of Experts.

Podsumowanie

MoE (Mixture of Experts) to architektura sztucznej inteligencji, w której model składa się z wielu ekspertów, a specjalny router wybiera, którzy z nich powinni zostać aktywowani dla konkretnego fragmentu danych.

Najważniejsza idea brzmi:

duży model → wielu ekspertów → aktywowana tylko część → mniej obliczeń na token.

MoE pozwala więc tworzyć modele o ogromnej liczbie parametrów bez konieczności aktywowania całej ich struktury przy każdym obliczeniu.

W świecie dużych modeli AI MoE jest jednym ze sposobów na zwiększanie możliwości modelu bez proporcjonalnego zwiększania kosztu każdego pojedynczego obliczenia.