Zajęte procesory graficzne: Metoda próbkowania i potokowania przyspiesza głębokie uczenie się na dużych wykresach PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.

Zajęte procesory graficzne: Metoda próbkowania i potokowania przyspiesza głębokie uczenie się na dużych wykresach

Grafy, potencjalnie rozległa sieć węzłów połączonych krawędziami, mogą być używane do wyrażania i badania relacji między danymi, takich jak powiązania społeczne, transakcje finansowe, ruch uliczny, sieci energetyczne i interakcje molekularne. Ponieważ badacze zbierają coraz więcej danych i budują te obrazy graficzne, będą potrzebować szybszych i wydajniejszych metod, a także większej mocy obliczeniowej, aby przeprowadzić na nich głębokie uczenie się na wzór grafowych sieci neuronowych (GNN).  

Teraz nowa metoda, zwana SALIENT (SAmpling, sLIcing, and data movemeNT), opracowana przez naukowców z MIT i IBM Research, poprawia wydajność uczenia i wnioskowania, usuwając trzy kluczowe wąskie gardła w obliczeniach. To radykalnie skraca czas działania sieci GNN na dużych zbiorach danych, które zawierają na przykład 100 milionów węzłów i 1 miliard krawędzi. Co więcej, zespół odkrył, że technika dobrze się skaluje, gdy moc obliczeniowa zostanie dodana od jednej do 16 jednostek przetwarzania graficznego (GPU). Praca została zaprezentowana na V Konferencji Machine Learning and Systems.

„Zaczęliśmy przyglądać się wyzwaniom, z jakimi borykają się obecne systemy podczas skalowania najnowocześniejszych technik uczenia maszynowego dla wykresów do naprawdę dużych zbiorów danych. Okazało się, że było dużo do zrobienia, ponieważ wiele istniejących systemów osiągało dobrą wydajność przede wszystkim na mniejszych zestawach danych, które mieszczą się w pamięci GPU” — mówi Tim Kaler, główny autor i doktor habilitowany w MIT Computer Science i Laboratorium Sztucznej Inteligencji (CSAIL).

Przez rozległe zbiory danych eksperci rozumieją skale, takie jak cała sieć Bitcoin, w której pewne wzorce i relacje danych mogą określać trendy lub nieczystą grę. „Na łańcuchu blokowym jest prawie miliard transakcji Bitcoin, a jeśli chcemy zidentyfikować nielegalne działania w ramach takiej wspólnej sieci, to mamy do czynienia z wykresem o takiej skali”, mówi współautor Jie Chen, starszy naukowiec i menedżer IBM Research i MIT-IBM Watson AI Lab. „Chcemy zbudować system, który jest w stanie obsłużyć tego rodzaju graf i pozwala na jak najefektywniejsze przetwarzanie, ponieważ każdego dnia chcemy nadążać za tempem generowania nowych danych”.

Współautorami Kalera i Chena są Nickolas Stathas MEng '21 z Jump Trading, który opracował SALIENT jako część swojej pracy dyplomowej; była stażystka MIT-IBM Watson AI Lab i absolwentka MIT Anne Ouyang; MIT CSAIL postdoc Alexandros-Stavros Iliopoulos; naukowiec z MIT CSAIL Tao B. Schardl; oraz Charles E. Leiserson, profesor inżynierii elektrycznej Edwina Sibleya Webstera na MIT i badacz w MIT-IBM Watson AI Lab.     

W przypadku tego problemu zespół przy opracowywaniu metody przyjął podejście zorientowane systemowo: SALIENT, mówi Kaler. Aby to zrobić, naukowcy wdrożyli to, co uznali za ważne, podstawowe optymalizacje komponentów, które pasują do istniejących ram uczenia maszynowego, takich jak PyTorch Geometric i biblioteka głębokich grafów (DGL), które są interfejsami do budowania modelu uczenia maszynowego. Stathas mówi, że proces ten przypomina wymianę silników w celu zbudowania szybszego samochodu. Ich metoda została zaprojektowana tak, aby pasowała do istniejących architektur GNN, tak aby eksperci dziedzinowi mogli z łatwością zastosować tę pracę do swoich określonych dziedzin, aby przyspieszyć szkolenie modeli i szybciej wydobywać spostrzeżenia podczas wnioskowania. Sztuczka, jak ustalił zespół, polegała na tym, aby cały sprzęt (procesory, łącza danych i procesory graficzne) był cały czas zajęty: podczas gdy procesor próbkuje wykres i przygotowuje mini-baterie danych, które następnie zostaną przesłane przez łącze danych , tym ważniejszy procesor GPU pracuje nad uczeniem modelu uczenia maszynowego lub przeprowadzeniem wnioskowania. 

Naukowcy rozpoczęli od analizy wydajności powszechnie używanej biblioteki uczenia maszynowego dla GNN (PyTorch Geometric), która wykazała zaskakująco niskie wykorzystanie dostępnych zasobów GPU. Stosując proste optymalizacje, badacze poprawili wykorzystanie procesora graficznego z 10 do 30 procent, co skutkowało 1.4- do dwukrotnym wzrostem wydajności w porównaniu z publicznymi kodami testów porównawczych. Ten szybki kod linii bazowej mógłby wykonać jedno pełne przejście przez algorytm (epokę) dużego zestawu danych treningowych w 50.4 sekundy.                          

Poszukując dalszych ulepszeń wydajności, naukowcy postanowili zbadać wąskie gardła występujące na początku potoku danych: algorytmy próbkowania wykresów i przygotowania mini-batch. W przeciwieństwie do innych sieci neuronowych sieci GNN wykonują operację agregacji sąsiedztwa, która oblicza informacje o węźle na podstawie informacji obecnych w innych pobliskich węzłach na grafie — na przykład na wykresie sieci społecznościowej informacje od znajomych znajomych użytkownika. Wraz ze wzrostem liczby warstw GNN liczba węzłów, do których sieć musi dotrzeć w celu uzyskania informacji, może eksplodować, przekraczając granice komputera. Algorytmy próbkowania sąsiedztwa pomagają, wybierając mniejszy losowy podzbiór węzłów do zebrania; jednak naukowcy odkryli, że obecne implementacje tego były zbyt wolne, aby nadążyć za szybkością przetwarzania nowoczesnych procesorów graficznych. W odpowiedzi zidentyfikowali mieszankę struktur danych, optymalizacji algorytmicznych i tak dalej, która poprawiła szybkość próbkowania, ostatecznie poprawiając samą operację próbkowania około trzykrotnie, skracając czas działania na epokę z 50.4 do 34.6 sekundy. Odkryli również, że podczas wnioskowania można pobierać próbki z odpowiednią szybkością, poprawiając ogólną efektywność energetyczną i wydajność, co zostało przeoczone w literaturze, zauważa zespół.      

W poprzednich systemach ten etap próbkowania polegał na podejściu wieloprocesowym, generującym dodatkowe dane i niepotrzebne przenoszenie danych między procesami. Naukowcy sprawili, że ich metoda SALIENT była bardziej zwinna, tworząc pojedynczy proces z lekkimi wątkami, które przechowywały dane w procesorze we współdzielonej pamięci. Co więcej, SALIENT wykorzystuje pamięć podręczną nowoczesnych procesorów, mówi Stathas, dokonując równoległego dzielenia funkcji, które wydobywa istotne informacje z interesujących węzłów oraz ich sąsiadów i krawędzi, w ramach pamięci współdzielonej pamięci podręcznej rdzenia procesora. To ponownie skróciło całkowity czas działania na epokę z 34.6 do 27.8 sekund.

Ostatnim wąskim gardłem, którym zajęli się badacze, było potokowe przesyłanie danych w mini-partiach między procesorem a kartą graficzną przy użyciu etapu wstępnego pobierania, który przygotowywałby dane tuż przed ich potrzebą. Zespół obliczył, że zmaksymalizuje to wykorzystanie przepustowości w łączu danych i doprowadzi metodę do idealnego wykorzystania; jednak widzieli tylko około 90 procent. Zidentyfikowali i naprawili błąd wydajności w popularnej bibliotece PyTorch, który powodował niepotrzebną komunikację w obie strony między procesorem a GPU. Po naprawieniu tego błędu zespół osiągnął czas działania 16.5 sekundy na epokę z SALIENT.

„Myślę, że nasza praca pokazała, że ​​diabeł tkwi w szczegółach” — mówi Kaler. „Kiedy zwracasz szczególną uwagę na szczegóły, które wpływają na wydajność podczas uczenia grafowej sieci neuronowej, możesz rozwiązać ogromną liczbę problemów z wydajnością. Dzięki naszym rozwiązaniom całkowicie ograniczyliśmy obliczenia GPU, co jest idealnym celem takiego systemu”.

Szybkość SALIENT została oceniona na trzech standardowych zestawach danych ogbn-arxiv, ogbn-products i ogbn-papers100M, a także w ustawieniach wielu maszyn, z różnymi poziomami fanoutu (ilość danych, które procesor przygotowałby dla GPU) oraz w kilku architekturach, w tym najnowocześniejszej, GraphSAGE-RI. W każdym ustawieniu SALIENT przewyższał PyTorch Geometric, zwłaszcza w dużym zbiorze danych ogbn-papers100M, zawierającym 100 milionów węzłów i ponad miliard krawędzi. ta praca; z 16 procesorami graficznymi SALIENT był dodatkowo osiem razy szybszy. 

Podczas gdy inne systemy miały nieco inny sprzęt i konfiguracje eksperymentalne, więc nie zawsze było to bezpośrednie porównanie, SALIENT wciąż je przewyższał. Wśród systemów, które osiągnęły podobną dokładność, reprezentatywne dane dotyczące wydajności obejmują 99 sekund przy użyciu jednego procesora graficznego i 32 procesorów oraz 13 sekund przy użyciu 1,536 procesorów. Z kolei czas pracy SALIENT przy użyciu jednego procesora graficznego i 20 procesorów wynosił 16.5 sekundy, a przy 16 procesorach graficznych i 320 procesorach wynosił zaledwie dwie sekundy. „Jeżeli spojrzymy na wyniki końcowe, które raportowano z wcześniejszych prac, nasz czas działania 16 procesorów graficznych (dwie sekundy) jest o rząd wielkości szybszy niż inne liczby, które zostały wcześniej zgłoszone w tym zbiorze danych” — mówi Kaler. Badacze częściowo przypisali poprawę wydajności swojemu podejściu polegającemu na optymalizacji kodu dla pojedynczej maszyny przed przejściem do środowiska rozproszonego. Stathas mówi, że lekcja jest taka, że ​​dla twoich pieniędzy „bardziej sensowne jest efektywne i ekstremalne wykorzystanie posiadanego sprzętu, zanim zaczniesz skalować do wielu komputerów”, co może zapewnić znaczne oszczędności kosztów i emisji dwutlenku węgla które mogą pochodzić ze szkolenia modelek.

Ta nowa zdolność pozwoli teraz naukowcom zajmować się i zagłębiać w coraz większe wykresy. Na przykład wspomniana wcześniej sieć Bitcoin zawierała 100,000 1,000 węzłów; system SALIENT może sprawnie obsłużyć wykres XNUMX razy (lub trzy rzędy wielkości) większy.

„W przyszłości przyjrzelibyśmy się nie tylko uruchomieniu tego graficznego systemu uczenia sieci neuronowej na istniejących algorytmach, które wdrożyliśmy do klasyfikowania lub przewidywania właściwości każdego węzła, ale chcemy również wykonać bardziej szczegółowe zadania, takie jak identyfikowanie typowych wzorców na wykresie (wzorce podgrafów), [które] mogą być rzeczywiście interesujące przy wskazywaniu przestępstw finansowych”, mówi Chen. „Chcemy również zidentyfikować węzły na wykresie, które są podobne w tym sensie, że prawdopodobnie odpowiadają temu samemu przestępcy w przestępstwie finansowym. Zadania te wymagałyby opracowania dodatkowych algorytmów, a być może także architektur sieci neuronowych”.

Badania te były wspierane przez MIT-IBM Watson AI Lab oraz częściowo przez US Air Force Research Laboratory i US Air Force Artificial Intelligence Accelerator.

Znak czasu:

Więcej z Konsultanci Blockchain