Informatycy z Uniwersytetu Rice'a pokonali poważną przeszkodę w rozwijającej się branży sztucznej inteligencji, pokazując, że możliwe jest przyspieszenie technologii głębokiego uczenia się bez specjalistycznych urządzeń akcelerujących, takich jak procesory graficzne (GPU).

Informatycy z Rice, wspierani przez współpracowników z firmy Intel, zaprezentują dziś swoje wyniki w Austin Convention Center w ramach konferencji systemów uczenia się maszyn MLSys.

Wiele firm intensywnie inwestuje w procesory graficzne i inny specjalistyczny sprzęt, aby wdrożyć głębokie uczenie się, potężną formę sztucznej inteligencji, która stoi za cyfrowymi asystentami, takimi jak Alexa i Siri, rozpoznawanie twarzy, systemy rekomendacji produktów i inne technologie. Na przykład, Nvidia, producent złotego standardu procesorów graficznych Tesla V100 Tensor Core, odnotował ostatnio 41% wzrost przychodów w czwartym kwartale w porównaniu z rokiem poprzednim.

Badacze ryżu stworzyli oszczędzającą koszty alternatywę dla GPU, algorytm o nazwie "subliniowy silnik głębokiego uczenia się" (SLIDE), który wykorzystuje jednostki centralne ogólnego przeznaczenia (CPU) bez specjalistycznego sprzętu akcelerującego.

"Nasze testy pokazują, że SLIDE jest pierwszą inteligentną implementacją algorytmów głębokiego uczenia się na CPU, która może przewyższać sprzętową akcelerację GPU na skalę przemysłową w przypadku dużych, w pełni połączonych architektur", powiedział Anshumali Shrivastava, adiunkt w Rice's Brown School of Engineering, który wynalazł SLIDE wraz z absolwentami Beidi Chen i Tharun Medini.

SLIDE nie potrzebuje procesorów graficznych, ponieważ ma zupełnie inne podejście do głębokiej nauki. Standardowa technika szkoleniowa "back-propagation" dla głębokich sieci neuronowych wymaga mnożenia matryc, co jest idealnym obciążeniem dla procesorów graficznych. Dzięki SLIDE, Shrivastava, Chen i Medini zamieniły szkolenie z zakresu sieci neuronowych w problem wyszukiwania, który zamiast tego mógłby być rozwiązany za pomocą tabel hash.

To radykalnie zmniejsza ogólne koszty obliczeniowe SLIDE w porównaniu z treningiem w tle. Na przykład, najwyższej klasy platforma GPU, taka jak te, które Amazon, Google i inne oferują usługi głębokiego uczenia się w chmurze ma osiem Tesla V100s i kosztuje około 100.000 dolarów, Shrivastava powiedział.

"Mamy go w laboratorium, a w naszym przypadku testowym wykonaliśmy pracę idealną dla V100, z ponad 100 milionami parametrów w dużych, w pełni podłączonych sieciach, które mieszczą się w pamięci GPU", powiedział. "Przeszkoliliśmy go z najlepszym pakietem oprogramowania, Google's TensorFlow, i szkolenie trwało 3 i pół godziny.

"Następnie pokazaliśmy, że nasz nowy algorytm może przeprowadzić szkolenie w ciągu jednej godziny, nie na procesorach graficznych, ale na 44-rdzeniowym procesorze klasy Xeon", powiedział Shrivastava.

Głębokie sieci nauczania zostały zainspirowane przez biologię, a ich główną cechą, sztuczne neurony, są małe kawałki kodu komputerowego, które mogą nauczyć się wykonywać konkretne zadania. Sieć głębokiego uczenia się może zawierać miliony, a nawet miliardy sztucznych neuronów, a pracując razem mogą nauczyć się podejmować decyzje na poziomie ludzkim, eksperckie, po prostu studiując duże ilości danych. Na przykład, jeśli głęboka sieć neuronowa jest przeszkolona do rozpoznawania obiektów na zdjęciach, użyje innych neuronów do rozpoznania zdjęcia kota niż do rozpoznania autobusu szkolnego.

"Nie musisz ćwiczyć wszystkich neuronów w każdym przypadku", powiedział Medini. Pomyśleliśmy: "Jeśli chcemy wybrać tylko te neurony, które są istotne, to jest to problem z wyszukiwaniem." Więc, algorytmicznie, pomysł polegał na tym, aby użyć miejscowego hashingu, aby uciec od mnożenia matrycy."

Hash to metoda indeksowania danych wynaleziona do wyszukiwania w Internecie w latach 90. Wykorzystuje ona metody numeryczne do kodowania dużych ilości informacji, takich jak całe strony internetowe lub rozdziały książki, jako ciąg cyfr zwany hashem. Tabele haszyszowe to listy haszyszowe, które można bardzo szybko przeszukiwać.

"Wdrożenie naszego algorytmu na TensorFlow lub PyTorch nie miałoby sensu, ponieważ pierwszą rzeczą, jaką chcą zrobić, jest przekształcenie tego, co robisz, w problem mnożenia matrycowego," powiedział Chen. "To jest dokładnie to, od czego chcieliśmy uciec. Więc napisaliśmy nasz własny kod C++ od zera."

Shrivastava powiedział SLIDE największą zaletą w porównaniu z back-propagation jest to, że jest równoległy danych.

"Przez dane równoległe rozumiem, że jeśli mam dwie instancje danych, na których chcę trenować, powiedzmy, że jedna jest obrazem kota, a druga autobusu, prawdopodobnie aktywują różne neurony, a SLIDE może aktualizować, lub trenować na tych dwóch niezależnie," powiedział. "To jest o wiele lepsze wykorzystanie równoległości dla procesorów.

"W porównaniu z układem GPU, z drugiej strony, potrzebujemy dużej pamięci", powiedział. "W pamięci głównej znajduje się hierarchia pamięci podręcznej, a jeśli nie będziesz z nią ostrożny, możesz natknąć się na problem zwany "cache thrashingiem", w którym dużo brakuje pamięci podręcznej".

Shrivastava powiedział, że pierwsze eksperymenty jego grupy z SLIDE produkowane znaczne cache thrashing, ale ich czas szkolenia były nadal porównywalne lub szybsze niż czas szkolenia GPU. Więc on, Chen i Medini opublikował wstępne wyniki na arXiv w marcu 2019 roku i wgrał ich kod do GitHub. Kilka tygodni później, skontaktował się z nimi Intel.

"Nasi współpracownicy z firmy Intel rozpoznali problem z buforowaniem", powiedział. "Powiedzieli nam, że mogą z nami współpracować, aby trenować jeszcze szybciej, i mieli rację". Dzięki ich pomocy nasze wyniki poprawiły się o około 50%".

Shrivastava powiedział, że SLIDE nie zbliżył się jeszcze do osiągnięcia swojego potencjału.

"Właśnie zarysowaliśmy powierzchnię", powiedział. "Jest jeszcze wiele do zrobienia w zakresie optymalizacji". Nie korzystaliśmy z wektoryzacji, na przykład, ani wbudowanych akceleratorów w procesorze, jak Intel Deep Learning Boost. Jest jeszcze wiele innych sztuczek, których moglibyśmy użyć, aby uczynić to jeszcze szybszym."

Powiedział, że SLIDE jest ważny, ponieważ pokazuje, że istnieją inne sposoby na wdrożenie głębokiego uczenia się.

Cała wiadomość brzmi: "Nie dajmy się zahamować macierzy mnożenia i pamięci GPU", powiedział Shrivastava. "Nasze może być pierwszym algorytmicznym podejściem do pokonania GPU, ale mam nadzieję, że nie jest to ostatnie. Pole potrzebuje nowych pomysłów, i to jest duża część tego, co MLSys jest o."