Hasło słownika · · 2 min czytania
Pipeline Parallelism
Model ma wiele kolejnych warstw i nie mieści się na jednym urządzeniu. Możesz rozłożyć je na kilka kart, ale jedno wejście nadal musi przejść przez wszystkie etapy. Jak mimo tej zależności wykorzystać karty równocześnie?
Pipeline Parallelism przypisuje kolejne grupy warstw różnym urządzeniom i przesyła wyniki między nimi. Równoległość powstaje, gdy pierwszy etap obsługuje już drugą porcję danych, a drugi pracuje nad pierwszą.
To przypomina linię produkcyjną. Trzy etapy po jednej jednostce czasu nadal potrzebują trzech jednostek na pierwszą porcję. Przy większej liczbie porcji kolejne etapy mogą jednak działać jednocześnie.
Pozostają okresy bezczynności podczas wypełniania i opróżniania linii oraz nierówne czasy etapów. Podział nie gwarantuje trzykrotnie krótszego oczekiwania na pojedynczy wynik. Małe porcje pracy i ich harmonogram decydują o wykorzystaniu urządzeń.
Mechanizm i szczegóły

GPipe, §2.1–2.2 dzieli sekwencję warstw na grupy, a batch przykładów na mniejsze micro-batches. GPU przekazują aktywacje na granicach grup. W opisanym treningu gradienty są sumowane z micro-batches, a aktualizacja wag następuje po całym batchu. To konkretny harmonogram GPipe; PP obejmuje również inne harmonogramy.
Pierwszy wynik nadal musi przejść całą drogę
Własny model czasu: trzy etapy po jednej umownej jednostce, cztery niezależne porcje danych. Przy przepuszczaniu każdej osobno koniec przypada po 12 jednostkach. Gdy etapy pracują równocześnie nad różnymi porcjami, ostatnia wychodzi po 6 jednostkach. Pierwsza nadal potrzebuje trzech.
Zmień liczbę porcji i przechodź przez harmonogram. Przy jednej porcji nie ma skrócenia czasu: pozostałe GPU czekają na dane albo kończą już pracę. Te puste miejsca to pipeline bubbles. Włącz wolniejszy środkowy etap i zobacz, gdzie powstaje następna kolejka.
Dla równych etapów i porcji ten uproszczony forward trwa jednostek, zamiast bez nakładania pracy. Tu . Pomijamy transfery i backward; porcja zachowuje stały rozmiar, więc zwiększenie zwiększa też całkowitą pracę. To nie jest pomiar przy stałym batchu. GPipe, §2.3 omawia koszt pustych przebiegów i nierównego podziału pracy w pełnym treningu.
Co jest dzielone?
PP korzysta z następstwa warstw w Transformerze. Tensor Parallelism może dodatkowo podzielić operacje wewnątrz każdego etapu. Samo PP nie usuwa zależności między kolejnymi tokenami jednej odpowiedzi w Autoregressive Language Modeling: w demonstracji porcje są niezależnymi wejściami, nie przyszłymi tokenami tego samego strumienia.