Strona główna / Rozdział 7 · Model na produkcji
    Ostatnia zmiana · 5 min czytania

    Użyj z AI

    Mixture of Experts

    W Mixture of Experts (MoE) warstwę MLP zastępuje wielu „ekspertów”, a router dla każdego tokena wybiera kilku z nich. Model ma bardzo dużo parametrów, ale na token liczy tylko część: obliczenia jak w małym modelu, pamięć jak w dużym.

    Po ludzkuPrzychodnia. Rejestracja kieruje cię do dwóch z ośmiu lekarzy. Wszyscy muszą siedzieć w budynku, ale płacisz tylko za dwie wizyty. Gdy przychodzi tłum, każdy lekarz ma pacjentów, a rejestracja musi pilnować, żeby pod jednym gabinetem nie ustawiła się cała kolejka.

    Klikaj tokeny i patrz, których ekspertów wybiera router. Na dole: ilu ekspertów potrzebuje całe zdanie

    2 z 8ekspertów liczy przy jednym tokenie
    ekspertów potrzebuje całe zdanie, czyli batch
    13 z 47 mldparametrów aktywnych w Mixtralu 8×7B

    Uproszczenie: jedna warstwa, 8 ekspertów i 2 na token, jak w Mixtralu 8×7B (2023), a wybór jest poglądowy, nie z prawdziwego modelu. Pasek pod ekspertem pokazuje, jak często wybierały go tokeny z tego zdania. Router patrzy na stan tokena w kontekście, nie tylko na jego tekst, więc ten sam token w innym miejscu może trafić gdzie indziej.

    Jak działa routing

    Serwowanie MoE: pamięć, batch i expert parallelism

    Kiedy MoE, a kiedy model gęsty

    Sprawdź się

    Czym jest MoE i jakie ma konsekwencje dla serwowania?

    W MoE warstwę MLP zastępuje wielu ekspertów, a router dla każdego tokena w każdej warstwie wybiera kilku. Na każdy token liczone są tylko aktywne parametry, na przykład 37 z 671 mld w DeepSeek-V3, więc jakość jest bliższa dużemu modelowi przy obliczeniach małego. Ceną jest pamięć, bo wszyscy eksperci muszą być załadowani, i serwowanie: przy większym batchu tokeny trafiają prawie do wszystkich ekspertów, więc potrzeba dużo większych batchy, expert parallelism z komunikacją all-to-all między kartami i pilnowania równego obciążenia ekspertów.

    In English

    In MoE the MLP layer is replaced by many experts, and a router picks a few for every token in every layer. Each token uses only the active parameters, for example 37 of 671 billion in DeepSeek-V3, so the quality is closer to a large model at the compute of a small one. The price is memory, because every expert must be loaded, and serving: at larger batch sizes tokens hit almost every expert, so it takes much bigger batches, expert parallelism with all-to-all communication between GPUs, and care to keep the expert load balanced.

    Pytania pogłębiające (3)
    Model MoE ma 5 mld aktywnych parametrów. Czy będzie działał jak model 5B?
    Liczy jak 5B, ale w pamięci musi leżeć całość. Przy jednej rozmowie decode jest szybki jak w małym modelu. Przy średnim batchu krok czyta prawie wszystkich ekspertów, więc kosztuje jak czytanie dużego modelu przy małej ilości liczenia. Dopiero bardzo duży batch zbliża koszt na token do modelu 5B.
    Po co wyrównywanie obciążenia w treningu?
    Bez niego router zawęża wybór do kilku ulubionych ekspertów, którzy uczą się coraz lepiej i są wybierani coraz częściej, a reszta parametrów się marnuje. W serwowaniu nierówne obciążenie oznacza, że najbardziej obciążony ekspert wyznacza czas kroku.
    Jak rozłożysz duże MoE na karty?
    Attention zwykle przez tensor albo data parallelism, ekspertów przez expert parallelism: każda karta trzyma część ekspertów, a tokeny w każdej warstwie wymienia się all-to-all. Kluczowe są szybkie połączenia między kartami i duplikowanie najczęściej wybieranych ekspertów. DeepSeek-V3 tak robi na 320 GPU w decode.

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę