Как алгоритмическая разреженность ускоряет центральный процессор до уровня GPU

Yannic Kilcher 52,1 тыс. 50 мин 7 мин 17.09.2022
Главное

В индустрии искусственного интеллекта долгое время доминировал постулат о том, что для эффективного развертывания нейросетей необходимы специализированные графические ускорители (GPU). Профессор Массачусетского технологического института (MIT) Нир Шавит (Nir Shavit) и его стартап Neural Magic бросают вызов этой парадигме, используя алгоритмическую разреженность (sparsity) для достижения производительности уровня GPU на обычных процессорах. В интервью автору ИТ-канала Яннику Кильхеру (Yannic Kilcher) ученый объяснил, почему современная аппаратная архитектура движется в неверном направлении и как вычисления на центральном процессоре способны совершить революцию в доступности ИИ.

🏎️ Рождение идеи и вызов монополии GPU 0:00

Гостем выпуска стал Нир Шавит — известный ученый, профессор компьютерных наук в MIT и израильском Технионе, лауреат престижной премии Гёделя (2004 год) и премии Дейкстры (2012 год). Шавит более 30 лет посвятил исследованиям многопоточных вычислений, а последние 10 лет активно занимается вычислительной нейробиологией. Его коммерческий проект Neural Magic возник из практической необходимости: во время работы в лаборатории над крупномасштабными биологическими проектами команда обнаружила, что при определенных оптимизациях обычный центральный процессор (CPU) способен выполнять инференс нейросетей со скоростью графического ускорителя — на тот момент архитектуры Nvidia Pascal.

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

🧠 Биологические корни: чему ИИ может научиться у человеческого мозга 2:41

Поворотной точкой в исследованиях Нира Шавита стало осознание того, насколько разрежены вычисления в человеческом мозге. По его оценке, современное машинное обучение находится в зачаточном, «брутфорс»-состоянии, когда нейросети обучаются и работают в максимально плотном (dense) режиме.

Шавит указывает на парадоксальное различие между эволюционным дизайном мозга и архитектурой современных чипов:

Таким образом, по мнению гостя, индустрия создает устройства, диаметрально противоположные биологическому идеалу. Вместо погони за флопсами разработчикам ИИ следует сосредоточиться на том, как эффективно реализовать гигантские, но экстремально разреженные графы.

В качестве примера грядущих изменений Шавит приводит архитектуру Pathways от Google, где при обработке конкретного входящего запроса активируется не вся нейросеть слой за слоем, а лишь небольшие локальные регионы модели. Именно так функционирует мозг: из соображений экономии энергии человек в каждый конкретный момент времени задействует лишь очень малую фракцию своего нейронного графа.

Собеседники коснулись фундаментального вопроса: является ли разреженность следствием жестких энергетических ограничений мозга, или же сама эта архитектура биологически оптимальна? Шавит объясняет это спецификой природного «железа»:

  1. Нейроны — это крайне медленные химические устройства, скорость работы которых ограничена.
  2. Чтобы выполнять миллиард операций в секунду, мозгу жизненно необходим глубокий параллелизм.
  3. Напротив, современный кремниевый мультипроцессор легко выполняет миллиарды инструкций последовательно, поэтому прямое копирование структуры мозга в кремнии бессмысленно.

Шавит подчеркивает, что обе системы Тьюринг-полны. По его мнению, инженерам нужно заимствовать именно алгоритмическую разреженность, а не пытаться воспроизвести физическую топологию нейронных связей на кремниевых кристаллах.

✂️ Анатомия разреженности: как «ножницы» оптимизации спасают от терафлопсов 14:37

Для объяснения концепции разреженности неспециалистам Нир Шавит предлагает наглядную аналогию. Если представить слои классической полносвязанной нейросети как ряды точек, соединенные множеством струн или пружин (весов), то процесс прунинга (прореживания) похож на работу ножницами. Инженеры буквально отсекают ненужные связи до тех пор, пока от исходного объема не останется всего 5–10% соединений.

Исследования показывают, что при правильном подходе такая усеченная сеть полностью сохраняет точность исходной модели. Оптимизация может быть двух типов:

По мнению Шавита, классическая концепция жестких последовательных слоев в ИИ — это временный этап. Изучение полного коннектома простейших организмов (червя C. elegans и плодовой мушки) показывает, что их нервная система представляет собой «разреженный хаос», лишенный строгой послойной структуры. Математически на любой граф можно наложить слои (например, с помощью обхода в ширину BFS), но реальные вычисления будущего, как считает эксперт, будут строиться вокруг асинхронных потоков данных по множественным альтернативным путям внутри сети.

В подтверждение гибкости биологических систем Шавит ссылается на исследование MIT, показавшее, что человеческий мозг способен распознать и классифицировать изображение всего за 13 миллисекунд (0,013 секунды). За такое короткое время сигналы физически не успели бы пройти через длинную цепочку последовательных слоев нейронов — распознавание происходит за счет мощных механизмов параллельного предсказания (prediction), которым современному ИИ еще только предстоит научиться.

💾 Экономика памяти и преодоление компромисса точности 20:06

В индустрии распространено мнение, что прунинг неизбежно ведет к деградации качества модели. Нир Шавит опровергает этот стереотип на примере внутренней разработки Neural Magic. Инженерам компании удалось проредить популярную языковую модель BERT-Base на 95%. Объем вычислений сократился в 20 раз, превратив задачу из вычислительной в проблему простого перемещения данных, а падение точности составило менее 1%.

Однако Шавит предлагает смотреть на экономику разреженности с другой стороны:

Главным препятствием для повсеместного старта со спарс-моделей остается необходимость иметь плотную (dense) модель-донора на этапе обучения (проблема «лотерейного билета»). Шавит отмечает, что консультант Neural Magic Дэн Алистар (Dan Alistarh) ведет активные исследования в области разреженного обучения (sparse training), позволяющего отсекать связи непосредственно в процессе обучения.

Тем не менее для большинства конечных пользователей это не является проблемой: коммерческий ландшафт ИИ устроен так, что компании редко обучают базовые архитектуры с нуля. Они берут готовые предобученные модели и проводят их дообучение (transfer learning). Использование технологии разреженного трансферного обучения (sparse transfer learning) позволяет проводить тонкую настройку нейросетей на колоссальной скорости прямо на CPU.

⚡ Технология Tensor Columns: как обойти медленную память CPU 28:26

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

Чтобы решить эту проблему, в Neural Magic изобрели прорывной подход к исполнению нейросетей, названный Tensor Columns («тензорные колонны»). Вместе с тем, процессоры обладают развитой за 60 лет инженерной мысли иерархией кэш-памяти (L1, L2, L3). По словам Шавита, если вычисления целиком удерживаются внутри быстрой кэш-памяти L1/L2 центрального процессора, CPU работает не уступая, а иногда и превосходя GPU по скорости работы с данными.

Суть технологии Tensor Columns заключается в следующем:

  1. Исполнение нейросети разбивается не горизонтально (слой за слоем), а вертикально в глубину (depth-wise).
  2. Модель разделяется продольно на узкие вычислительные «колонны», которые полностью помещаются в кэш-память L2.
  3. Процессор последовательно обрабатывает данные внутри кэша, практически никогда не обращаясь к медленной внешней оперативной памяти.

Алгоритм успешно справляется с неизбежным перекрытием данных между соседними вертикальными колоннами, не снижая темп вычислений. Результаты поражают: четырехъядерный CPU с технологией Neural Magic по задержке (latency) при инференсе модели BERT показывает результаты на уровне флагманского ускорителя Nvidia A100. Хотя у GPU остается колоссальное преимущество в общей пропускной способности (throughput), наращивание числа ядер в современных серверных процессорах постепенно нивелирует этот разрыв.

🔮 Будущее ИИ-инфраструктуры: от Grace Hopper до чиплетов и ARM на краю 36:47

Комментируя текущие аппаратные тренды, Шавит высказал скепсис относительно универсальности гибридных архитектур вроде Nvidia Grace Hopper, где CPU и GPU объединены на одной плате. По его мнению, такая схема идеальна для ИТ-гигантов уровня Google или Meta, способных нанимать штаты инженеров для написания сложнейшего софта сквозной конвейеризации данных. Для рядовых компаний необходимость кастомного программирования интерфейса переноса данных между CPU и GPU превращается в непреодолимый барьер и источник огромных задержек.

Вместо этого эксперт прогнозирует модульную эволюцию самих процессоров:

Исторически центральные процессоры всегда поглощали сторонние технологии, будь то аппаратная виртуализация или сетевые ускорители; аналогичное поглощение функций ИИ-ускорителей происходит и сейчас.

Еще одним стратегическим вектором для Neural Magic стал перенос технологии на ARM-архитектуру. На «краю» (edge) — в смартфонах, робототехнике и камерах безопасности — разреженность дает двойной выигрыш. Она не только увеличивает скорость, но и драматически снижает объем занимаемой памяти. Модели-гиганты с триллионами параметров, которые сегодня приходится дробить между 16 картами GPU, благодаря разреженности смогут свободно умещаться в рамках обычной десктопной оперативной памяти.

Весь стек программного обеспечения Neural Magic, включая движок DeepSparse, полностью открыт (Open Source), и компания активно развивает глобальное сообщество вокруг идеи программно-определяемого ИИ.

💬 Цитаты

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

Нир Шавит 06:28

«Посредством прореживания и аналогичных методов оптимизации мы обеспечиваем производительность уровня GPU на стандартных центральных процессорах.»

Нир Шавит 04:54
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Разреженность (Sparsity)
Свойство структуры данных или нейросети, при котором большая часть элементов или весов равна нулю и не участвует в вычислениях.
Прунинг (Pruning)
Процесс удаления малозначимых весов или целых структурных блоков из нейросети для ускорения ее работы и уменьшения размера.
Tensor Columns
Запатентованный метод вертикального (глубинного) выполнения слоев нейросети для оптимизации использования кэша процессора.
📊 Цифры
🗓 Хронология
  1. 2004 Нир Шавит удостоен премии Гёделя за вклад в теоретическую информатику.
  2. 2012 Нир Шавит получил премию Дейкстры за исследования в области распределенных вычислений.
⚖️ Другая сторона
Искусственный интеллект Нир Шавит Янник Кильхер Neural Magic DeepSparse Прунинг нейросетей