Натоварени графични процесори: Методът за вземане на проби и последователност увеличава скоростта на задълбочено обучение на големи графики | Новини от MIT

Графиките, потенциално обширна мрежа от възли, свързани с ръбовете, могат да се използват за изразяване и изследване на връзки между данни, като социални връзки, финансови транзакции, трафик, енергийни мрежи и молекулярни взаимодействия. Тъй като изследователите събират повече данни и изграждат тези графични изображения, изследователите ще се нуждаят от по-бързи и по-ефективни начини, както и от повече изчислителна мощност, за да извършват дълбоко обучение върху тях, по пътя на графичните невронни мрежи (GNN).

Сега нов метод, наречен SALIENT (Sampling, SLIcing, and Moving Data), разработен от изследователи в MIT и IBM Research, подобрява обучението и производителността на изводите, като адресира три основни изчислителни затруднения. Това значително намалява времето за работа на GNN върху големи масиви от данни, които съдържат например мащаб от 100 милиона възли и 1 милиард ръбове. Освен това екипът установи, че технологията се мащабира добре, когато се добави изчислителната мощност на един до 16 графични процесора (GPU). Работата беше представена на Петата конференция за машинно обучение и системи.

“Започнахме да разглеждаме предизвикателствата, пред които са изправени съществуващите системи при мащабирането на модерни техники за машинно обучение за графично изобразяване до наистина големи масиви от данни. Оказа се, че има много работа за вършене, защото много от съществуващите системи се справят основно добре върху набори от по-малки данни, които се побират в паметта на GPU,” казва Тим Калър, водещ автор и постдокторант в Лабораторията за компютърни науки и изкуствен интелект (CSAIL) на MIT.

Под големи набори от данни експертите имат предвид показатели като цялата биткойн мрежа, където определени модели на данни и връзки могат да илюстрират погрешни тенденции или манипулация. казва съавторът Джи Чен, старши учен и директор на изследванията за IBM Research и MIT-IBM Watson AI Lab. „Искаме да изградим система, която може да обработва този вид графики и да позволи обработката да бъде възможно най-ефективна, защото всеки ден искаме да сме в крак с темпото на генериране на нови данни.“

Съавторите на Kahler и Chen включват Nicholas Stathas Ming 21 от Jump Trading, който разработи SALIENT като част от дипломната си работа. бивш стажант от MIT-IBM Watson AI Lab и завършила студентка от MIT Anne Ouyang; MIT CSAIL Постдокторант Александрос Ставрос Илиопулос; Тао б. Шардел, изследовател на MIT CSAIL; и Чарлз Е. Лейзерсън, Едуин Сибли Уебстър, професор по електроинженерство в MIT и изследовател в MIT-IBM Watson AI Lab.

За този проблем екипът възприе системно ориентиран подход при разработването на своя метод: SALIENT, казва Калер. За да направят това, изследователите приложиха това, което видяха като важни, фундаментални подобрения на компоненти, които се вписват в съществуващи рамки за машинно обучение, като PyTorch Geometric and Deep Graph Library (DGL), които са интерфейси за изграждане на модел за машинно обучение. Статас казва, че процесът е като смяна на двигатели за построяване на по-бърза кола. Техният метод е проектиран да съответства на съществуващите архитектури на GNN, така че експертите по домейни да могат лесно да прилагат тази работа към своите специфични домейни, за да ускорят обучението на модела и по-бързите прозрения по време на изводите. Екипът реши, че номерът е да поддържа целия хардуер (CPU, връзки за данни и GPU) зает през цялото време: докато процесорът експериментира с графиката и подготвя малки блокове от данни, които след това ще бъдат предадени през връзката за данни толкова по-голямо е значението на работата с GPU за обучение на модел за машинно обучение или извършване на изводи.

Изследователите започнаха с анализиране на ефективността на често използвана библиотека за машинно обучение за GNN (PyTorch Geometric), която показа удивително ниско използване на наличните GPU ресурси. Чрез прилагане на прости оптимизации, изследователите подобриха използването на GPU от 10 на 30 процента, което доведе до 1,4 до 2 пъти подобрения на производителността в сравнение с обичайния код за сравнение. Този бърз базов код може да извърши едно пълно преминаване през голям набор от данни за обучение през алгоритъма (епоха) за 50,4 секунди.

Търсейки по-нататъшни подобрения на производителността, изследователите се заеха да проучат тесните места, които възникват в началото на тръбопровода за данни: вземане на проби от графики и алгоритми за подготовка на микропартиди. За разлика от други невронни мрежи, GNN извършват агрегиране на съседство, което изчислява информация за възел, използвайки информация, открита в други съседни възли в графиката – например в графика на социална мрежа информация от приятели на приятели на потребителя. Тъй като броят на слоевете в GNN се увеличава, броят на възлите, до които мрежата трябва да има достъп, за да получи информация, може да експлодира, надхвърляйки ограниченията на компютъра. Алгоритмите за вземане на проби от квартала помагат, като избират по-малко произволно подмножество от възли за обединяване; Изследователите обаче установиха, че текущите имплементации на това са твърде бавни, за да се справят със скоростта на обработка на съвременните графични процесори. В отговор те идентифицираха комбинация от структури от данни, изчислителни оптимизации и т.н., които подобриха скоростта на вземане на проби, като в крайна сметка подобриха само вземането на проби с около три пъти, като времето за изпълнение за период от 50,4 до 34,6 секунди. Те също така установиха, че вземането на проби с подходяща скорост може да се извърши по време на извод, подобрявайки цялостната енергийна ефективност и производителност, точка, която е пренебрегната в литературата, отбелязва екипът.

В предишни системи тази стъпка на вземане на проби беше многопроцесен подход, създаващ допълнителни данни и ненужно движение на данни между процесите. Изследователите направиха своя метод на подписване по-интелигентен, като създадоха един процес, използвайки леки нишки, които съхраняват данни за процесора в споделена памет. Освен това, SALIENT се възползва от кеша на съвременните процесори, казва Stathas, който паралелно нарязва функцията, която извлича подходяща информация от възлите, представляващи интерес, и техните околни съседи и ръбове, в рамките на споделената памет на основния кеш на процесора. Това отново намали общото време на изпълнение за период от 34,6 на 27,8 секунди.

Друго препятствие, с което изследователите се сблъскаха, беше маршрутизирането на малки партиди трансфери на данни между CPU и GPU с помощта на стъпка за предварително извличане, която ще подготви данните точно преди да са необходими. Екипът изчисли, че това ще увеличи използването на честотната лента във връзката за данни и ще доведе метода до оптимално използване; Те обаче видяха само около 90 процента. Те идентифицираха и поправиха грешка в производителността в популярната библиотека PyTorch, която причиняваше ненужни връзки напред и назад между CPU и GPU. С отстраняването на тази грешка екипът постигна време за работа от 16,5 секунди на период със SALIENT.

„Мисля, че нашата работа показа, че дяволът е в детайлите“, казва Калер. “Когато обръщате голямо внимание на детайлите, които влияят на производителността, когато обучавате графична невронна мрежа, можете да разрешите голям брой проблеми с производителността. С нашите решения в крайна сметка останахме блокирани поради GPU изчисление, което е идеалната цел за такива система.”

Скоростта на SALIENT беше оценена на три стандартни набора от данни ogbn-arxiv, ogbn-products и ogbn-paper100M, както и в настройки на множество устройства, с различни нива на разпространение (количеството данни, които CPU ще обработва към GPU) и в няколко архитектури, включително най-новата, GraphSAGE-RI. При всяка настройка SALIENT превъзхождаше PyTorch Geometric, най-вече при големия набор от данни ogbn-paper100M, който има 100 милиона възли и над един милиард ръбове.Тук беше три пъти по-бърз, работещ на един GPU, от оптимизираната базова линия, която беше Първоначално създаден за тази работа; С 16 GPU SALIENT беше допълнително осем пъти по-бърз.

Докато други системи имат малко по-различен хардуер и демонстрационни настройки, така че не винаги е било директно сравнение, SALIENT все още го побеждава. Сред системите, които са постигнали подобна точност, представителните числа за производителност включват 99 секунди при използване на един графичен процесор и 32 процесора и 13 секунди при използване на 1536 процесора. За разлика от това, времето за изпълнение на SALIENT с 1 GPU и 20 CPU беше 16,5 секунди и беше само 2 секунди с 16 GPU и 320 CPU. „Ако погледнете окончателните числа на емисиите, които са докладвани в предишни работни отчети, времето на работа на GPU от 16 (две секунди) е с порядък по-бързо от другите числа, докладвани преди това в този набор от данни“, казва Калер. Изследователите приписват своите подобрения в производителността отчасти на техния подход за оптимизиране на техния код за една машина, преди да преминат към разпределена настройка. Урокът тук, казва Статас, е, че за вашите пари “има по-смислено да използвате хардуера, който имате, ефективно и в най-пълната му степен, преди да започнете да се разширявате до множество компютри”, което може да осигури значителни икономии на разходи и въглерод отпечатък, който може да дойде с обучението за модели.

Този нов капацитет сега ще позволи на изследователите да манипулират и да копаят по-дълбоко във все по-големи и по-големи графики. Например, споменатата по-рано биткойн мрежа има 100 000 възли; Системата SALIENT може ефективно да обработва графика, 1000 пъти по-голяма (или три пъти по-голяма).

„В бъдеще ще разгледаме не само пускането на тази система за обучение на графична невронна мрежа върху съществуващи алгоритми, които сме внедрили, за да класифицираме или прогнозираме свойствата на всеки възел, но също така искаме да изпълняваме по-задълбочени задачи, като идентифициране на общи модели в графика (модели на подграфи). ), [which] Може да е интересно да посочим финансови престъпления”, казва Чен. „Ние също така искаме да идентифицираме възли в графика, които са подобни в смисъл, че те могат да бъдат идентични на същия лош участник във финансово престъпление. Тези задачи ще изискват разработването на допълнителни алгоритми и вероятно също архитектури на невронни мрежи.

Това изследване беше подкрепено от MIT-IBM Watson AI Lab и отчасти от Изследователската лаборатория на ВВС на САЩ и Ускорителя на изкуствения интелект на ВВС на САЩ.