Загруженные графические процессоры: метод выборки и конвейерной обработки ускоряет глубокое обучение на больших графах. PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Занятые графические процессоры: метод выборки и конвейерной обработки ускоряет глубокое обучение на больших графиках.

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

Теперь новый метод под названием SALIENT (SAmpling, sLIcing и data movemeNT), разработанный исследователями из Массачусетского технологического института и IBM Research, повышает эффективность обучения и логических выводов, устраняя три ключевых узких места в вычислениях. Это резко сокращает время выполнения GNN на больших наборах данных, которые, например, содержат в масштабе 100 миллионов узлов и 1 миллиард ребер. Кроме того, команда обнаружила, что метод хорошо масштабируется при увеличении вычислительной мощности от одного до 16 графических процессоров (GPU). Работа была представлена ​​на Пятой конференции по машинному обучению и системам.

«Мы начали изучать проблемы, с которыми сталкиваются современные системы при масштабировании современных методов машинного обучения для графиков на действительно большие наборы данных. Оказалось, что предстоит проделать большую работу, потому что многие существующие системы достигают хорошей производительности в первую очередь на небольших наборах данных, которые помещаются в память графического процессора», — говорит Тим ​​Калер, ведущий автор и постдоктор в Массачусетском технологическом институте компьютерных наук. и Лаборатория искусственного интеллекта (CSAIL).

Под обширными наборами данных эксперты подразумевают такие масштабы, как вся сеть Биткойн, где определенные шаблоны и отношения данных могут указывать на тенденции или нечестную игру. «В блокчейне почти миллиард биткойн-транзакций, и если мы хотим выявить незаконную деятельность внутри такой совместной сети, то нам предстоит столкнуться с графиком такого масштаба», — говорит соавтор Цзе Чен, старший научный сотрудник и менеджер. IBM Research и MIT-IBM Watson AI Lab. «Мы хотим построить систему, способную обрабатывать такие графики и позволяющую обрабатывать их максимально эффективно, потому что каждый день мы хотим не отставать от скорости генерируемых новых данных».

Среди соавторов Калера и Чена Николас Статас Мэнг '21 из Jump Trading, который разработал SALIENT в рамках своей дипломной работы; бывший стажер MIT-IBM Watson AI Lab и аспирант MIT Энн Оуян; постдок MIT CSAIL Александрос-Ставрос Илиопулос; Научный сотрудник MIT CSAIL Тао Б. Шардл; и Чарльз Э. Лейзерсон, профессор электротехники Эдвина Сибли Вебстера в Массачусетском технологическом институте и исследователь лаборатории искусственного интеллекта Watson MIT-IBM.     

Для решения этой проблемы команда при разработке своего метода использовала системно-ориентированный подход: SALIENT, — говорит Калер. Для этого исследователи реализовали важные, по их мнению, базовые оптимизации компонентов, которые вписываются в существующие фреймворки машинного обучения, такие как PyTorch Geometric и библиотека глубоких графов (DGL), которые представляют собой интерфейсы для построения модели машинного обучения. Статас говорит, что этот процесс похож на замену двигателей для создания более быстрой машины. Их метод был разработан, чтобы вписаться в существующие архитектуры GNN, чтобы эксперты в предметной области могли легко применить эту работу к своим указанным полям, чтобы ускорить обучение модели и быстрее получить информацию во время вывода. Хитрость, как определила команда, заключалась в том, чтобы все аппаратное обеспечение (ЦП, каналы передачи данных и графические процессоры) было постоянно занято: в то время как ЦП сэмплирует график и готовит мини-пакеты данных, которые затем будут передаваться по каналу данных. , тем более критичен GPU для обучения модели машинного обучения или проведения логических выводов. 

Исследователи начали с анализа производительности широко используемой библиотеки машинного обучения для GNN (PyTorch Geometric), которая показала поразительно низкое использование доступных ресурсов графического процессора. Применяя простые оптимизации, исследователи улучшили использование графического процессора с 10 до 30 процентов, что привело к повышению производительности в 1.4–50.4 раза по сравнению с общедоступными кодами тестов. Этот быстрый базовый код может выполнить один полный проход по большому набору обучающих данных через алгоритм (эпоху) за XNUMX секунды.                          

В поисках дальнейшего повышения производительности исследователи решили изучить узкие места, возникающие в начале конвейера данных: алгоритмы выборки графа и подготовки мини-пакетов. В отличие от других нейронных сетей, GNN выполняют операцию агрегации соседства, которая вычисляет информацию об узле, используя информацию, присутствующую в других соседних узлах в графе — например, в графе социальной сети — информацию от друзей друзей пользователя. По мере увеличения количества слоев в GNN количество узлов, к которым сеть должна обращаться за информацией, может резко возрасти, превысив пределы возможностей компьютера. Алгоритмы выборки соседей помогают, выбирая меньшее случайное подмножество узлов для сбора; однако исследователи обнаружили, что текущие реализации этого были слишком медленными, чтобы соответствовать скорости обработки современных графических процессоров. В ответ они определили сочетание структур данных, алгоритмических оптимизаций и т. д., которые повысили скорость выборки, в конечном итоге улучшив только операцию выборки примерно в три раза, сократив время выполнения на эпоху с 50.4 до 34.6 секунд. Они также обнаружили, что выборка с соответствующей скоростью может выполняться во время логического вывода, повышая общую энергоэффективность и производительность, что, как отмечает команда, не учитывалось в литературе.      

В предыдущих системах этот шаг выборки был многопроцессным подходом, создавая дополнительные данные и ненужное перемещение данных между процессами. Исследователи сделали свой метод SALIENT более гибким, создав единый процесс с облегченными потоками, которые хранили данные на ЦП в общей памяти. Кроме того, SALIENT использует преимущества кэш-памяти современных процессоров, говорит Статас, распараллеливая нарезку функций, которая извлекает соответствующую информацию из интересующих узлов и окружающих их соседей и ребер в общей памяти кэш-памяти ядра ЦП. Это снова сократило общее время выполнения за эпоху с 34.6 до 27.8 секунд.

Последним узким местом, с которым столкнулись исследователи, была конвейерная передача мини-пакетов данных между ЦП и ГП с использованием этапа предварительной выборки, который подготавливал бы данные непосредственно перед тем, как они потребуются. Команда подсчитала, что это позволит максимально использовать полосу пропускания в канале передачи данных и довести метод до идеального использования; однако они видели только около 90 процентов. Они обнаружили и исправили ошибку производительности в популярной библиотеке PyTorch, которая вызывала ненужную двустороннюю связь между ЦП и ГП. С исправлением этой ошибки команда достигла 16.5 секунд времени выполнения за эпоху с SALIENT.

«Наша работа показала, я думаю, что дьявол кроется в деталях», — говорит Калер. «Когда вы обращаете пристальное внимание на детали, влияющие на производительность при обучении графовой нейронной сети, вы можете решить огромное количество проблем с производительностью. С нашими решениями мы оказались полностью ограничены вычислениями на GPU, что является идеальной целью такой системы».

Скорость SALIENT оценивалась на трех стандартных наборах данных ogbn-arxiv, ogbn-products и ogbn-papers100M, а также в многомашинных настройках с разным уровнем разветвления (количество данных, которое ЦП готовил бы для ГП) и на нескольких архитектурах, включая новейшую современную GraphSAGE-RI. В каждом параметре SALIENT превосходил PyTorch Geometric, особенно на большом наборе данных ogbn-papers100M, содержащем 100 миллионов узлов и более миллиарда ребер. эта работа; с 16 графическими процессорами SALIENT был еще в восемь раз быстрее. 

В то время как другие системы имели немного другое аппаратное обеспечение и экспериментальные настройки, поэтому это не всегда было прямым сравнением, SALIENT все же превосходил их. Среди систем, достигших аналогичной точности, репрезентативные показатели производительности включают 99 секунд при использовании одного графического процессора и 32 процессоров и 13 секунд при использовании 1,536 процессоров. Напротив, время выполнения SALIENT с использованием одного графического процессора и 20 ЦП составило 16.5 секунды, а с 16 графическими процессорами и 320 ЦП — всего две секунды. «Если вы посмотрите на итоговые цифры, указанные в отчетах о предыдущих работах, вы увидите, что наше время работы с 16 графическими процессорами (две секунды) на порядок быстрее, чем другие цифры, о которых сообщалось ранее в этом наборе данных», — говорит Калер. Исследователи частично объяснили улучшение производительности своим подходом к оптимизации своего кода для одной машины перед переходом на распределенную настройку. Статас говорит, что урок здесь заключается в том, что за ваши деньги «более целесообразно использовать имеющееся у вас оборудование эффективно и до предела, прежде чем вы начнете масштабироваться до нескольких компьютеров», что может обеспечить значительную экономию затрат и выбросов углерода. это может прийти с модельным обучением.

Эта новая возможность теперь позволит исследователям исследовать все более и более крупные графики и углубляться в них. Например, упомянутая ранее сеть Биткойн содержала 100,000 1,000 узлов; система SALIENT может эффективно обрабатывать граф в XNUMX раз (или на три порядка) больше.

«В будущем мы будем рассматривать не только запуск этой системы обучения нейронной сети на основе существующих алгоритмов, которые мы реализовали для классификации или прогнозирования свойств каждого узла, но мы также хотим выполнять более глубокие задачи, такие как выявление общих закономерностей на графике (подграфовых моделей), [которые] могут быть действительно интересны для выявления финансовых преступлений», — говорит Чен. «Мы также хотим идентифицировать узлы на графике, которые похожи в том смысле, что они, возможно, соответствуют одному и тому же злоумышленнику в финансовом преступлении. Эти задачи потребуют разработки дополнительных алгоритмов и, возможно, архитектуры нейронных сетей».

Это исследование было поддержано MIT-IBM Watson AI Lab и частично Исследовательской лабораторией ВВС США и Ускорителем искусственного интеллекта ВВС США.

Отметка времени:

Больше от Блокчейн-консультанты