Słownik

Hasło słownika · · 2 min czytania

All-reduce

Trzy urządzenia obliczyły lokalne wskazówki do uczenia. Każde ma tylko swój wkład, a wszystkie potrzebują wspólnego wyniku. Samo przesłanie ich do jednego urządzenia nie zapewni jeszcze identycznej informacji pozostałym.

All-reduce łączy odpowiadające sobie elementy danych uczestników i udostępnia cały wynik każdemu. Łączeniem może być suma, minimum lub maksimum; rodzaj operacji trzeba wskazać.

Dla list [1, 4], [2, −1] i [3, 2] suma daje [6, 5] na każdym urządzeniu. Dodajemy liczby na tych samych pozycjach, nie sklejamy list ani nie sprowadzamy wszystkiego do jednej liczby.

Suma nie jest automatycznie średnią: trzeba dodatkowo podzielić przez właściwy mianownik. Operacja wymaga komunikacji i zgodnego uczestnictwa. Reduce-scatter daje każdemu tylko fragment połączonego wyniku.

Źródło mechanizmu: Dokumentacja NCCL, Collective Operations.

Mechanizm i szczegóły

Trzy osobne barwy łączą się w ten sam trójbarwny motyw powtórzony przy każdym uczestniku.

Każdy dokłada, każdy dostaje wynik

Trzy urządzenia mają wektory [1,4][1,4], [2,−1][2,-1] oraz [3,2][3,2]. All-reduce z sumowaniem daje [6,5][6,5] na każdym urządzeniu. Wynik nadal ma dwie współrzędne. Sumujemy elementy na tych samych pozycjach, nie wszystkie liczby do jednego skalara.

To własny przykład arytmetyczny. Zmień pierwszą liczbę trzeciego urządzenia, a potem porównaj operacje:

  • Reduce: wynik trafia tylko do wskazanego odbiorcy, tutaj rank 0.
  • All-reduce: każdy otrzymuje ten sam wynik redukcji.
  • All-gather: każdy otrzymuje wszystkie wejścia połączone w jeden większy bufor, bez ich sumowania.

Dlaczego LLM tego potrzebuje

W Tensor Parallelism urządzenia mogą sumować częściowe wkłady do wyniku warstwy. W synchronicznym Data Parallelism redukcja służy uzgadnianiu gradientów obliczonych na różnych danych. Suma nie jest jeszcze średnią: przy równych porcjach trzeba ją również podzielić przez liczbę uczestników.

NCCL wymaga zgodności liczby elementów i typu danych między uczestnikami danego kolektywu. Sam termin All-reduce nie wskazuje topologii sieci ani czasu wykonania. Reduce, po którym następuje Broadcast, ma tę samą semantykę; biblioteka może zrealizować ją innym algorytmem. Demonstracja pokazuje wynik operacji, bez modelowania transferów i ich kosztu.

Zobacz także: Reduce-scatter rozdziela zredukowany bufor między ranki. Po zebraniu tych fragmentów przez All-gather każdy otrzymuje pełny wynik All-reduce.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.