Найти тему
Programming

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

https://cdn.pixabay.com/photo/2016/11/14/03/16/book-1822474_960_720.jpg
https://cdn.pixabay.com/photo/2016/11/14/03/16/book-1822474_960_720.jpg

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

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

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

Исследователи риса создали экономичную альтернативу GPU - алгоритм под названием "сублинейный движок глубокого обучения" (SLIDE), который использует центральные процессоры общего назначения (CPU) без специализированного аппаратного ускорения.

"Наши тесты показывают, что SLIDE - это первая умная алгоритмическая реализация глубокого обучения на CPU, которая может превосходить аппаратное ускорение GPU в наборах данных промышленного масштаба с большими полностью подключенными архитектурами", - сказал Аншумали Шривастава (Anshumali Shrivastava), доцент Инженерной школы Брауна в Райс, который изобрел SLIDE вместе с аспирантами Бейди Ченом (Beidi Chen) и Тарун Медини (Tharun Medini).

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

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

"У нас есть один в лаборатории, и в нашем тестовом примере мы взяли рабочую нагрузку, идеально подходящую для V100, с более чем 100 миллионами параметров в больших, полностью подключенных сетях, которые умещаются в памяти GPU", - сказал он. Мы тренировались с лучшим (программным) пакетом Google TensorFlow, и на это ушло 3 с половиной часа".

"Затем мы показали, что наш новый алгоритм может сделать обучение за один час не на GPU, а на 44-ядерном CPU класса Xeon", - сказал Шривастава.

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

"Не нужно обучать всех нейронов по каждому делу", - сказал Медини. Мы подумали: "Если мы хотим выбрать только те нейроны, которые имеют отношение к делу, то это проблема поиска". Итак, алгоритмически, идея состояла в том, чтобы использовать локально-чувствительное хэширование, чтобы уйти от умножения матриц".

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

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

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

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

"Оборотная сторона, по сравнению с GPU, заключается в том, что нам требуется большая память", - сказал он. "В основной памяти есть иерархия кэша, и если вы не будете осторожны с ней, вы можете столкнуться с проблемой, называемой "бросок кэша", когда вы получаете много промахов кэша".

Шривастава сказал, что первые эксперименты его группы с SLIDE привели к значительному "обрыву" кэша, но их время обучения все равно было сравнимо со временем обучения GPU или быстрее. Так что он, Чен и Медини опубликовали первые результаты на ArXiv в марте 2019 года.