(Этот блог был написан в сотрудничестве с Чжевэй Яо, Сехун Ким, Майклом В. Махони и Куртом Койцером. Данные, использованные для этого исследования, доступны в Интернете.)

Объем вычислений, необходимых для обучения моделей SOTA AI в области компьютерного зрения (CV), обработки естественного языка (NLP) и обучения речи, в последнее время увеличивается со скоростью 15 раз каждые два года, как показано на рисунке 1. Важно отметить, что это масштабирование был значительно более быстрым для последних моделей трансформаторов, который растет со скоростью 750x / 2 года. Эта экспоненциальная тенденция была основным драйвером для ускорителей AI, которые сосредоточены на увеличении пиковой вычислительной мощности оборудования, часто за счет упрощения и / или удаления других частей, таких как иерархия памяти.

Однако эти тенденции упускают из виду возникающую проблему с обучением моделей SOTA, особенно моделей НЛП и систем рекомендаций: узкие места в памяти и коммуникации. Фактически, некоторые приложения ИИ становятся узкими местами из-за внутри- и межчиповых взаимодействий и обмена данными через / с ускорителями ИИ. В частности, размер флагманской модели НЛП увеличивается в 240 раз каждые 2 года. См. Рисунок 2. Аналогичным образом, модели больших систем рекомендаций достигли параметров O (10) ТБ. Сравните это с памятью DRAM ускорителя, которая масштабируется только в 2 раза каждые 2 года.

Важно отметить, что требования к памяти для обучения моделей ИИ обычно в несколько раз превышают количество параметров. Это связано с тем, что для обучения требуется сохранение промежуточных активаций, и это обычно добавляет в 3–4 раза больше памяти, чем количество параметров (исключая вложения). Это проиллюстрировано на рисунке 3, где показан общий объем обучающей памяти для обучения различных флагманских моделей ИИ на протяжении многих лет. Мы можем ясно видеть, как на дизайн моделей нейронной сети SOTA (NN) неявно влияла емкость DRAM ускорителей в разные годы.

Эти проблемы обычно называют проблемой стены памяти. Проблема стены памяти связана как с ограниченной емкостью, так и с пропускной способностью передачи памяти. Это влечет за собой разные уровни передачи данных в памяти. Например, передача данных между вычислительной логикой и встроенной памятью, или между вычислительной логикой и памятью DRAM, или между разными процессорами на разных сокетах. Во всех этих случаях емкость и скорость передачи данных значительно отстают от вычислительных возможностей оборудования (HW).

Можно надеяться, что мы сможем использовать параллелизм с распределенной памятью путем горизонтального масштабирования обучения на нескольких ускорителях, чтобы избежать ограниченного объема памяти и полосы пропускания одного аппаратного обеспечения. Однако при распределении работы по нескольким процессам также возникает проблема стены памяти: узкое место передачи данных между ускорителями NN, что еще медленнее и менее эффективно, чем перемещение данных на кристалле. Как и в случае с единой системной памятью, нам не удалось преодолеть технологические проблемы, связанные с масштабированием пропускной способности сети. Это можно увидеть на Рисунке 4, где мы показываем, как пиковая вычислительная мощность увеличилась в 90 000 раз за последние 20 лет по сравнению с 30-кратным увеличением пропускной способности DRAM / межсоединения. К сожалению, было очень сложно преодолеть фундаментальные проблемы увеличения пропускной способности DRAM / Interconnect [1]. Таким образом, горизонтальное масштабирование работает только для задач с высокой степенью вычислительной мощности с очень небольшим объемом обмена данными и передачей данных.

Многообещающие решения для прорыва стены:

«Никакая экспонента не может продолжаться вечно», и отсрочка экспоненциального масштабирования со скоростью 240x / 2 года не будет возможной надолго, даже для крупных гиперкалярных компаний. Это вкупе с увеличивающимся разрывом между вычислительными ресурсами и пропускной способностью вскоре сделает очень сложным обучение более крупных моделей, поскольку стоимость будет экспоненциально выше.

Чтобы продолжить инновации и сломать стену памяти, нам нужно переосмыслить дизайн моделей искусственного интеллекта. Здесь есть несколько проблем. Во-первых, современные методы разработки моделей ИИ в основном являются специальными и / или включают очень простые правила масштабирования. Например, последние большие модели Transformer в основном представляют собой масштабную версию почти той же базовой архитектуры, предложенной в исходной модели BERT [22]. Во-вторых, нам необходимо разработать более эффективные методы обработки данных для обучения моделей ИИ. Современные сети требуют огромного количества обучающих данных и сотен тысяч итераций для обучения, что очень неэффективно. Кто-то может заметить, что это также отличается от того, как обучается человеческий мозг, который часто требует очень мало примеров для каждой концепции / класса. В-третьих, текущие методы оптимизации и обучения требуют большой настройки гиперпараметров (таких как скорость обучения, импульс и т. Д.), Что часто приводит к сотням проб и ошибок, чтобы найти правильную настройку для успешного обучения модели. Таким образом, стоимость обучения, представленная на рисунке 1, является лишь нижней границей фактических накладных расходов, а истинная стоимость обычно намного выше. В-четвертых, непомерно большие размеры моделей SOTA NN делают их развертывание для вывода очень сложной задачей. Это касается не только таких моделей, как GPT-3. Фактически, развертывание больших рекомендательных систем (которые похожи на Transformers, но имеют гораздо большее встраивание и после этого очень мало уровней MLP [23]), которые используются гиперскалярными компаниями, является серьезной проблемой. Наконец, при разработке аппаратных ускорителей основное внимание уделялось увеличению пиковых вычислений с относительно меньшим вниманием к улучшению рабочих нагрузок, связанных с памятью. Это затрудняет как обучение больших моделей, так и исследование альтернативных моделей, таких как Graph NN, которые часто ограничены полосой пропускания и не могут эффективно использовать существующие ускорители.

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

Эффективные алгоритмы обучения

Одной из основных проблем при обучении моделей NN является необходимость настройки гиперпараметров методом грубой силы. Это включает в себя определение скорости обучения, его графика отжига, количества итераций, необходимых для сходимости, и т. Д. Это добавляет (намного) больше накладных расходов на обучение моделей SOTA. Многие из этих проблем возникают из-за методов SGD первого порядка, используемых для обучения. Хотя варианты SGD легко реализовать, они не устойчивы к настройке гиперпараметров и их очень сложно настроить для новых моделей, для которых неизвестен правильный набор гиперпараметров. Одним из многообещающих подходов к решению этой проблемы является использование методов стохастической оптимизации второго порядка, таких как наш недавно разработанный метод ADAHESSIAN [4]. Эти методы, как правило, более устойчивы к настройке гиперпараметров и позволяют достичь SOTA. Однако современные методы требуют в 3–4 раза большего объема памяти, что требует решения. Многообещающим направлением работы для этого является статья Zero от Microsoft, в которой показано, как можно обучать модели в 8 раз больше с тем же объемом памяти, удаляя / разделяя избыточные переменные состояния оптимизации [21, 3]. Если можно будет устранить накладные расходы, связанные с этими методами более высокого порядка, они могут значительно снизить общие затраты на обучение больших моделей.

Другой многообещающий подход включает уменьшение объема памяти и повышение локальности данных алгоритмов оптимизации за счет выполнения большего количества вычислений. Одним из простых примеров является сохранение / контрольная точка только подмножества активаций во время прямого прохода вместо сохранения всех активаций, чтобы уменьшить объем памяти, занимаемый картой функций, показанный на рисунке 3. Остальные активации могут быть затем пересчитаны при необходимости. Несмотря на то, что это увеличит объем вычислений, можно значительно сократить объем памяти до 5 раз [2], всего на 20% больше.

Еще одно важное решение - разработать алгоритмы оптимизации, устойчивые к обучению с низкой точностью. Фактически, одним из главных достижений в ускорителях ИИ стало использование арифметики половинной точности (FP16) вместо одинарной точности [5,6]. Это позволило более чем в 10 раз увеличить вычислительные возможности оборудования. Однако было сложно еще больше снизить точность с половинной точности до INT8 без ухудшения точности с помощью текущих методов оптимизации.

Эффективное развертывание

Развертывание последних моделей SOTA, таких как GPT-3 или большие рекомендательные системы, является довольно сложной задачей, так как они требуют развертывания распределенной памяти для вывода. Одним из многообещающих решений для решения этой проблемы является сжатие этих моделей для вывода путем снижения точности (т.е. квантования) или удаления (т.е. сокращения) их избыточных параметров.

Первый подход - это квантование, метод, который можно применять на этапах обучения и / или вывода. Хотя было очень сложно снизить точность обучения намного ниже FP16, можно использовать сверхнизкую точность для вывода. С помощью существующих методов относительно легко квантовать вывод до точности INT4 с минимальным влиянием на точность. Это приводит к сокращению занимаемой площади модели и задержки до 8 раз [7,8,19,20]. Однако сделать вывод с точностью до уровня ниже INT4 сложнее, и в настоящее время это очень активная область исследований.

Другая возможность - полностью удалить / сократить избыточные параметры в модели. С помощью современных методов можно сократить до 30% нейронов со структурированной разреженностью и до 80% с неструктурированной разреженностью с минимальным влиянием на точность [9,10]. Однако выйти за этот предел очень сложно и часто приводит к фатальному снижению точности. Решение этой проблемы - открытая.

Переосмысление конструкции ускорителей искусственного интеллекта

Существуют фундаментальные проблемы одновременного увеличения как пропускной способности памяти, так и максимальной вычислительной мощности чипа [1]. Однако можно пожертвовать пиковыми вычислениями для достижения лучшего компромисса между вычислениями и пропускной способностью. Это не невыполнимая задача, и на самом деле архитектура ЦП уже включает хорошо оптимизированную иерархию кеш-памяти. Вот почему центральные процессоры имеют гораздо лучшую производительность, чем графические процессоры, для проблем, связанных с полосой пропускания. К таким проблемам относятся большие проблемы с рекомендациями. Однако главная проблема современных ЦП заключается в том, что их пиковая вычислительная мощность (т. Е. FLOPS) примерно на порядок меньше, чем у ускорителей ИИ, таких как графические процессоры или TPU. Одна из причин этого заключается в том, что ускорители искусственного интеллекта в основном предназначены для достижения максимальных пиковых вычислений. Это часто требует удаления таких компонентов, как иерархия кеша, в пользу добавления дополнительной вычислительной логики. Можно представить себе альтернативную архитектуру между этими двумя крайностями, предпочтительно с более эффективным кэшированием и, что важно, с DRAM большей емкости (возможно, иерархией DRAM с различной полосой пропускания). Последнее может быть очень полезным для устранения узких мест в распределенной памяти [18].

Заключение

Вычислительные затраты на обучение последних моделей SOTA Transformer в НЛП увеличивались со скоростью 750x / 2 года, а размер параметра модели увеличивался со скоростью 240x / 2 года. Напротив, пиковые аппаратные FLOPS масштабируются со скоростью 3,1x / 2 года, в то время как как DRAM, так и пропускная способность межсоединений все больше отстают, со скоростью масштабирования 1,4x / 2 года. Чтобы представить эти цифры в перспективе, пиковые аппаратные FLOPS увеличились в 90 000 раз за последние 20 лет, в то время как пропускная способность DRAM / Interconnect увеличилась только в 30 раз за тот же период времени. С учетом этих тенденций память - в частности, передача памяти внутри / между чипами - скоро станет основным ограничивающим фактором при обучении больших моделей ИИ. Таким образом, нам необходимо переосмыслить обучение, развертывание и проектирование моделей ИИ, а также то, как мы проектируем оборудование ИИ, чтобы справиться с этой все более сложной стеной памяти.

Мы хотели бы поблагодарить Суреша Кришну и Анируддху Нрусимху за их ценные отзывы.

* ¹ Мы специально не включаем стоимость обучения моделей обучения с подкреплением в этот график, поскольку стоимость обучения в основном связана со средой моделирования, и в настоящее время нет единого мнения о стандартной среде моделирования. Также обратите внимание, что мы сообщаем о PFLOP, необходимых для обучения каждой модели, чтобы избежать использования какого-либо приближения для использования развертывания оборудования, поскольку последнее зависит от конкретной библиотеки и используемого оборудования. Наконец, все ставки в этом документе были вычислены путем решения линейной регрессии, чтобы соответствовать данным, показанным на каждом графике.

* ² Скорость роста, показанная на Рисунке 2, рассчитывается только с учетом моделей на основе Transformer (синие кружки), а не систем рекомендаций.

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

* ⁴ Мы нормализуем аппаратные пиковые значения FLOPS с помощью системы R10000, поскольку она использовалась для отчета о стоимости обучения Lenet-5 в основополагающей работе [24].

ССЫЛКИ:

[1] Паттерсон Д.А. Задержка отстает от пропускной способности. Коммуникации ACM. 1 октября 2004 г.; 47 (10): 71–5.

[2] Джайн П., Джайн А., Нрусимха А., Голами А., Аббил П., Койцер К., Стойка I, Гонсалес Дж. Э. Мат: сломать стену памяти с помощью оптимальной тензорной рематериализации. Препринт arXiv arXiv: 1910.02653. 2019 Октябрь 7.

[3] Rajbhandari S, Rasley J, Ruwase O, He Y. Zero: Оптимизация памяти для обучения модели с триллионом параметров. InSC20: Международная конференция по высокопроизводительным вычислениям, сетям, хранилищам и анализу, 9 ноября 2020 г. (стр. 1–16). IEEE.

[4] Яо З., Голами А., Шен С., Койцер К., Махони М.В. ADAHESSIAN: адаптивный оптимизатор второго порядка для машинного обучения. Препринт arXiv arXiv: 2006.00719. 2020 июн 1.

[5] Гинзбург Б., Николаев С., Кисвани А., Ву Х., Голаминеджад А., Кират С., Хьюстон М., Фит-Флореа А., изобретатели; Nvidia Corp, правопреемник. Тензорная обработка с использованием формата низкой точности. Заявка на патент США US 15 / 624,577. 2017 Декабрь 28.

[6] Мичкявичюс П., Наранг С., Албен Дж., Диамос Дж., Эльсен Э., Гарсия Д., Гинзбург Б., Хьюстон М., Кучаев О., Венкатеш Г., Ву Х. Тренировка на смешанную точность. Препринт arXiv arXiv: 1710.03740. 2017 10 окт.

[7] Яо З, Донг З, Чжэн З, Голами А., Ю Дж, Тан Э, Ван Л., Хуанг Ц., Ван И, Махони М. В., Койцер К. HAWQV3: Квантование двухуровневой нейронной сети. Препринт arXiv arXiv: 2011.10680. 2020 ноя 20.

[8] Голами А., Ким С., Яо З, Донг З., Махони М., Койцер К., Обзор методов квантования для эффективного вывода нейронных сетей, препринт arxiv, arxiv: arXiv: 2103.13630, 2021.

[9] Гейл Т., Элсен Э., Хукер С. Состояние разреженности в глубоких нейронных сетях. Препринт arXiv arXiv: 1902.09574. 2019 Февраль 25.

[10] Хефлер Т., Алистарх Д., Бен-Нун Т., Драйден Н., Песте А. Редкость в глубоком обучении: сокращение и рост для эффективного вывода и обучения в нейронных сетях. Препринт arXiv arXiv: 2102.00554. 2021 31 янв.

[11] Иандола Ф. Н., Хан С., Москевич М. В., Ашраф К., Далли В. Дж., Койцер К. SqueezeNet: точность на уровне AlexNet с уменьшением в 50 раз параметров и размером модели ‹0,5 МБ. Препринт arXiv arXiv: 1602.07360. 2016 24 февраля.

[12] Голами А., Квон К., Ву Б., Тай З., Юэ Х, Джин П., Чжао С., Койцер К. Squeezenext: Дизайн нейронной сети с учетом аппаратного обеспечения. В материалах конференции IEEE по компьютерному зрению и семинарам по распознаванию образов 2018 г. (стр. 1638–1647).

[13] Ву Б., Иандола Ф., Джин PH, Койцер К. Сжедет: Унифицированные, небольшие, маломощные полностью сверточные нейронные сети для обнаружения объектов в режиме реального времени для автономного вождения. InProceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops 2017 (pp. 129–137).

[14] Шоу А., Хантер Д., Ландола Ф., Сидху С. SqueezeNAS: Быстрый поиск нейронной архитектуры для более быстрой семантической сегментации. InProceedings of the IEEE / CVF International Conference on Computer Vision Workshops 2019 (pp. 0–0).

[15] Ву Б., Ван А., Юэ Икс, Койцер К. Squeezeseg: Сверточные нейронные сети с повторяющейся CRF для сегментации объектов дороги в реальном времени из облака точек трехмерного лидара. In2018 Международная конференция IEEE по робототехнике и автоматизации (ICRA), 21 мая 2018 г. (стр. 1887–1893). IEEE.

[16] Иандола Ф. Н., Шоу А. Э., Кришна Р., Койцер К. В.. SqueezeBERT: Что компьютерное зрение может научить НЛП эффективным нейронным сетям? Препринт arXiv arXiv: 2006.11316. 2020 июн 19.

[17] Ховард А.Г., Чжу М., Чен Б., Калениченко Д., Ван В., Вейанд Т., Андреетто М., Адам Х. Мобильные сети: эффективные сверточные нейронные сети для приложений мобильного зрения. Препринт arXiv arXiv: 1704.04861. 2017 17 апреля.

[18] Кришна С., Кришна Р. Ускорение рекомендательных систем с помощью аппаратного «масштабирования». Препринт arXiv arXiv: 2009.05230. 2020 сен 11.

[19] Ким С., Голами А., Яо З., Махони М. В., Койцер К. I-BERT: квантование BERT только для целых чисел. Препринт arXiv arXiv: 2101.01321. 2021 Янв.

[20] Патрик Джадд, старший архитектор глубокого обучения, Целочисленное квантование для ускорения DNN, Nvidia, GTC 2020.

[21] Ботту Л., Кертис Ф., Нокедал Дж. Методы оптимизации для крупномасштабного машинного обучения. Сиамский обзор. 2018; 60 (2): 223–311.

[22] Девлин Дж., Чанг М.В., Ли К., Тутанова К. БЕРТ: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. Препринт arXiv arXiv: 1810.04805. 2018 окт 11.

[23] Наумов М., Мудигере Д., Ши Х.Дж., Хуанг Дж., Сундараман Н., Парк Дж., Ван Х, Гупта У, Ву С.Дж., Аззолини А.Г., Джулгаков Д. Модель рекомендаций глубокого обучения для систем персонализации и рекомендаций. Препринт arXiv arXiv: 1906.00091. 2019 31 мая.

[24] ЛеКун И., Боттоу Л., Бенжио И., Хаффнер П. Применение градиентного обучения к распознаванию документов. Труды IEEE. 1998 ноя; 86 (11): 2278–324.