litbaza книги онлайнРазная литератураОхота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 175 176 177 178 179 180 181 182 183 ... 482
Перейти на страницу:
млрд долларов[1557].

В настоящее время более ста компаний по всему миру создают интегральные схемы специального назначения (ASIC) и однокристальные системы (System-on-a-Chip, SoC), предназначенные для применения в области глубокого обучения. Некоторые из этих чипов просто умеют быстро умножать и складывать векторы и матрицы, другие (такие как, например, прототипы устройств от английского стартапа Graphcore) претендуют на более тонкий учёт специфики нейросетевых вычислений[1558]. Американская компания Cerebras специализируется на изготовлении экспериментальных схем (язык не поворачивается сказать «микросхем») для тензорных вычислений размером с целую кремниевую пластину. Ещё в 2021 г. компания представила публике процессор под названием Wafer Scale Engine 2 (Машина масштаба кремниевой пластины 2, WSE-2), предназначенный для решения задач в области ИИ, выполненный на основе 7-нанометровой технологии и содержащий целых 2,6 трлн транзисторов и 850 000 вычислительных ядер[1559]. Практически все крупные высокотехнологические компании имеют свои проекты подобных устройств. Помимо Google, Nvidia и Intel, в их число входят Facebook, Amazon (Inferentia), AMD, Tesla и многие другие[1560].

Специализированные серверы, предназначенные для задач машинного обучения, обычно включают в себя несколько GPU или TPU, связанных специализированными быстрыми шинами для обмена данными. Например, сервер DGX-2 объединяет 16 GPU Tesla V100 и имеет суммарную заявленную производительность в 2 Пфлопс. Самый быстрый на данный момент российский суперкомпьютер «Кристофари», построенный Сбербанком совместно с Nvidia, включает в себя 75 узлов DGX-2, связанных сверхбыстрой шиной Infiniband. Именно скорость передачи данных между исполняющими ядрами и хранилищами данных является ахиллесовой пятой тензорных архитектур при решении ряда практических задач машинного обучения. Поэтому для GPU и TPU так важен объём оперативной памяти, доступной каждому из тензорных ядер. Выпустив свои тензорные процессоры третьей версии, компания Google удвоила объём памяти на одной плате TPU — с 64 до 128 GiB (в четвёртой версии предположительно увеличила до 256 GiB, однако на момент написания этих строк официальные данные ещё не были опубликованы). Но даже при таких объёмах обучение свёрточных нейронных сетей, предназначенных для обработки трёхмерных изображений или видео, — непростая задача. Обычно каждый GPU или TPU в таких случаях рассчитывает градиент параметров модели на небольшой порции данных, после чего полученные градиенты усредняются. При этом GPU/ TPU должны обменяться градиентами, а их размер при достаточно большом размере модели может быть весьма существенным.

Использование термина «тензорные процессоры» нередко вызывает нехилый баттхёрт у математиков, которые знают, что понятие тензора не эквивалентно понятию многомерного массива. Конечно, если вы не математик, то довольно удобно считать, что единичное число — это скаляр, одномерный массив — вектор, двумерный — матрица, а произвольный n-мерный массив — это тензор. Но всё-таки тензоры и многомерные массивы (они же многомерные таблицы) — это разные типы объектов. Тензор — это особый тип функции, а многомерный массив — структура данных, подходящая для представления тензора в системе координат, в таком случае отдельное число в таблице называют компонентом тензора. Математики обычно определяют тензор как полилинейную функцию, то есть функцию нескольких векторных переменных, которая линейна по каждому из аргументов. Тензор линейно преобразует элементы одного линейного пространства в элементы другого, что бы это ни значило. Частными случаями тензоров являются скаляры, векторы, билинейные формы и так далее. Число измерений таблицы, представляющей тензор, называют его валентностью или рангом тензора. Это была минутка полезных математических знаний.

«„Тензоры“ в TensorFlow не имеют ничего общего с тензорами! — пишет рассерженный пользователь Locken Lui в комментарии к посту на платформе Medium. — Это злоупотребление использованием термина тензор. „Тензоры“ в смысле, используемом в TensorFlow, являются просто многомерными матрицами и не имеют ничего (!) общего с реальными тензорами в физике, континуальных теориях или теориях поля. Вы смешиваете эти понятия в своём посте. Возможно, название „Tensor“ было выбрано потому, что оно звучит проще, чем “MultidimensionalMatrixFlow”»[1561]. Мы понимаем вашу боль, Locken Lui, и разделяем её.

В последние годы производители электроники уделяют большое внимание созданию так называемых граничных [edge] устройств. Под граничными вычислениями [edge computing] обычно понимают децентрализованную обработку данных, при которой вычисления производятся на «последней миле» компьютерной сети. Вычислительные процедуры, производящие объёмный и в то же время индивидуализированный пользовательский контент, в ряде случаев выгодно располагать ближе к точке его потребления. Поэтому возникает необходимость в устройствах, способных выполнять необходимые вычисления в составе мобильных устройств, систем «умных домов», узлов игрового стриминга [edgelets] и так далее.

В июле 2018 г. Google анонсировала Edge TPU — специализированную микросхему ASIC, предназначенную для запуска моделей машинного обучения для граничных вычислений. Edge TPU имеет значительно меньший размер и потребляет гораздо меньше энергии по сравнению с облачными TPU.

Смешная третья опция для современного проектировщика нейронных сетей (помимо GPU/TPU и CPU, обычных центральных процессоров, которые, кстати сказать, сегодня тоже активно развиваются в направлении расширения наборов инструкций за счёт быстрых векторных операций) — это использование FPGA — устройств, относящихся к категории программируемых логических интегральных схем (ПЛИС). FPGA в наши дни часто используют для прототипирования ASIC: удобно сперва испытать ту или иную архитектуру микросхемы, прежде чем отправить её в серийное производство.

Если вас интересует более подробный анализ состояния дел в мире оборудования, предназначенного для задач глубокого обучения, то рекомендую регулярно дополняемый обзор[1562] от Григория Сапунова, в котором можно найти сведения о последних проектах в чудесном мире CPU, GPU и TPU, ПЛИС и ASIC.

5.3.4 Импульсные нейронные сети

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

Иногда устройства, предназначенные для ускорения работы нейронных сетей, называются также ИИ-ускорителями (AI accelerators) или NPU (Neural Processing Unit, Нейронный процессор). В их число обычно включают также и нейроморфные процессоры, которые мы коротко упомянули в подглаве 4.4.6. Современные нейроморфные системы можно условно разделить на два класса: системы, целью которых является моделирование процессов, происходящих в нервной ткани живых существ, и системы, ставящие своей целью решение

1 ... 175 176 177 178 179 180 181 182 183 ... 482
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?