Переосмысление глубокого обучения преодолевает серьезное препятствие в индустрии искусственного интеллекта


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

Ученые-компьютерщики из Райса при поддержке сотрудников Intel представят свои результаты сегодня в Конгресс-центре Остина в рамках конференции по системам машинного обучения MLSys.

Многие компании вкладывают значительные средства в графические процессоры и другое специализированное оборудование для реализации глубокого обучения — мощной формы искусственного интеллекта, стоящей за такими цифровыми помощниками, как Alexa и Siri, распознаванием лиц, системами рекомендаций по продуктам и другими технологиями. Например, Nvidia, производитель стандартных графических процессоров Tesla V100 с тензорными ядрами, недавно сообщила о росте выручки в четвертом квартале на 41% по сравнению с предыдущим годом.

Исследователи Райса создали экономичную альтернативу графическому процессору, алгоритм, названный «механизм сублинейного глубокого обучения» (SLIDE), который использует центральные процессоры (ЦП) общего назначения без специального оборудования для ускорения.

«Наши тесты показывают, что SLIDE — это первая интеллектуальная алгоритмическая реализация глубокого обучения на ЦП, которая может превзойти аппаратное ускорение графического процессора в наборах данных отраслевых рекомендаций с большими полностью подключенными архитектурами», — сказал Аншумали Шривастава, доцент Школы Брауна Райса. инженеров, которые изобрели SLIDE с аспирантами Бейди Чен и Тарун Медини.

SLIDE не требует графических процессоров, потому что в нем используется принципиально иной подход к глубокому обучению. Стандартный метод обучения «обратного распространения» для глубоких нейронных сетей требует умножения матриц, что является идеальной рабочей нагрузкой для графических процессоров. С помощью SLIDE Шривастава, Чен и Медини превратили обучение нейронной сети в задачу поиска, которую вместо этого можно было решить с помощью хеш-таблиц.

Это радикально снижает накладные расходы на вычисления для SLIDE по сравнению с обучением с обратным распространением. Например, топовая платформа GPU, подобная той, которую Amazon, Google и другие предлагают для облачных сервисов глубокого обучения, включает восемь Tesla V100 и стоит около 100 000 долларов, сказал Шривастава.

«У нас есть один в лаборатории, и в нашем тестовом примере мы взяли рабочую нагрузку, которая идеально подходит для V100, с более чем 100 миллионами параметров в больших, полностью подключенных сетях, которые умещаются в памяти графического процессора», — сказал он. «Мы обучили его с помощью лучшего (программного) пакета, Google TensorFlow, и обучение заняло три с половиной часа.

«Затем мы показали, что наш новый алгоритм может выполнять обучение за один час не на графических процессорах, а на 44-ядерном процессоре класса Xeon», — сказал Шривастава.

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

«Вам не нужно тренировать все нейроны для каждого случая», — сказал Медини. «Мы подумали:« Если мы хотим выбрать только релевантные нейроны, тогда это проблема поиска ». Таким образом, алгоритмически идея заключалась в том, чтобы использовать хеширование с учетом локальности, чтобы уйти от умножения матриц ».

Хеширование — это метод индексации данных, изобретенный для поиска в Интернете в 1990-х годах. Он использует числовые методы для кодирования больших объемов информации, например целых веб-страниц или глав книги, в виде строки цифр, называемой хешем. Таблицы хешей — это списки хэшей, которые можно найти очень быстро.

«Было бы бессмысленно реализовывать наш алгоритм на TensorFlow или PyTorch, потому что первое, что они хотят сделать, это преобразовать все, что вы делаете, в задачу умножения матриц», — сказал Чен. «Это именно то, от чего мы хотели уйти. Поэтому мы написали наш собственный код на C ++ с нуля».

Шривастава сказал, что самым большим преимуществом SLIDE перед обратным распространением является то, что он является параллельным по данным.

«Под параллельными данными я подразумеваю, что если у меня есть два экземпляра данных, на которых я хочу тренироваться, скажем, один — это изображение кошки, а другой — автобуса, они, вероятно, активируют разные нейроны, и SLIDE может обновлять или тренируйтесь на этих двоих независимо друг от друга », — сказал он. «Это гораздо лучшее использование параллелизма для процессоров.

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

Шривастава сказал, что первые эксперименты его группы со SLIDE привели к значительному переполнению кеша, но время их обучения все еще было сопоставимо или быстрее времени обучения GPU. Поэтому он, Чен и Медини опубликовали первые результаты на arXiv в марте 2019 года и загрузили свой код на GitHub. Через несколько недель с ними связались Intel.

«Наши сотрудники из Intel осознали проблему кэширования», — сказал он. «Они сказали нам, что могут работать с нами, чтобы он тренировался еще быстрее, и они были правы. С их помощью наши результаты улучшились примерно на 50%».

Шривастава сказал, что SLIDE еще не приблизился к реализации своего потенциала.

«Мы только коснулись поверхности», — сказал он. «Мы еще многое можем сделать для оптимизации. Мы не использовали векторизацию, например, или встроенные ускорители в ЦП, такие как Intel Deep Learning Boost. Есть много других уловок, которые мы все еще можем использовать, чтобы сделать это даже быстрее. «

Он сказал, что SLIDE важен, потому что показывает, что есть и другие способы реализации глубокого обучения.

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


Добавить комментарий