ЖАНРЫ

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

Устройства от Google нельзя приобрести, но можно арендовать через облачные сервисы компании. Поэтому на текущий момент наиболее популярным оборудованием для обучения нейронных сетей остаются GPU от компании Nvidia, которая собирает на их основе специализированные серверы линейки DGX (в настоящее время свет увидели уже две версии таких машин). Участвуют в этой гонке и другие производители компьютерного «железа». Например, компания Intel в 2016 г. приобрела за 400 млн долларов стартап Nervana, в арсенале которого имеются два тензорных процессора: NNP-T (для обучения моделей, «T» в названии означает training) и NNP-I (для исполнения обученных моделей, «I» означает inferencing). В декабре 2019 г. Intel приобрёл ещё одну компанию, специализирующуюся на разработке TPU, ею стал израильский стартап Habana, в портфолио которого также содержатся два флагманских продукта: Habana Gaudi и Habana Goya. Сумма этой сделки составила уже 2 млрд долларов [1557] .

1557

Mayersen I. (2020). Intel is sacrificing previous AI acquisitions for Habana: They've traded one AI startup for another / TechSpot, February 2, 2020 // https://www.techspot.com/news/83826-intel-sacrificing-their-previous-ai-acquisitions-habana.html

В настоящее время более ста компаний по всему миру создают интегральные схемы специального назначения (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] .

1558

Toon N. (2020). Intr?odu?cing? 2?nd? g??enera?tio?n IPU systems fo?r AI a?t sc?ale // https://www.graphcore.ai/posts/introducing-second-generation-ipu-systems-for-ai-at-scale

1559

Cerebras Systems Smashes the 2.5 Trillion Transistor Mark with New Second Generation Wafer Scale Engine (2021) // https://www.cerebras.net/press-release/cerebras-systems-smashes-the-2-5-trillion-transistor-mark-with-new-second-generation-wafer-scale-engine/

1560

Suryavansh M. (2019). How to make your own deep learning accelerator chip! / Towards Data Science, Sep 18, 2019 // https://towardsdatascience.com/how-to-make-your-own-deep-learning-accelerator-chip-1ff69b78ece4

Специализированные серверы, предназначенные для задач машинного обучения, обычно включают в себя несколько 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, и разделяем её.

1561

Locken Lui (2018). “Tensors” in TensorFlow… / Medium, Aug 24, 2018 // https://medium.com/@lockenluy/tensors-in-tensorflow-have-nothing-to-do-with-tensors-2ffb75172d05

В последние годы производители электроники уделяют большое внимание созданию так называемых граничных [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 Импульсные нейронные сети

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

1562

Sapunov G. (2021). Hardware for Deep Learning / Intento, Feb 26, 2018 — Jan, 11, 2021 // https://blog.inten.to/hardware-for-deep-learning-current-state-and-trends-51c01ebbb6dc

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

Термин «импульсные нейронные сети» появился с лёгкой руки профессора Вольфганга Маасса, который в своей статье 1997 г. предложил разделить нейронные сети на три поколения. К первому он относил нейронные сети на основе нейронов с пороговой функцией активации, ко второму — сети на основе нейронов с непрерывными функциями активации (сигмоидальными, полиномиальными и т. д.), а к третьему — сети, которые в качестве вычислительных единиц используют так называемые импульсные нейроны [1563] .

1563

Maass W. (1997). Networks of spiking neurons: The third generation of neural network models / Neural Networks, Vol. 10, Iss. 9, December 1997, pp. 1659—1671 //00011-7

Импульсные нейроны, в отличие от нейронов обычного перцептрона, срабатывают не на каждом из циклов распространения сигнала, а только тогда, когда их мембранный потенциал (т. е. разница в электрическом заряде внутренней и внешней поверхностей клеточной оболочки) достигает определённого значения. Когда нейрон срабатывает, он генерирует сигнал, который передаётся другим нейронам, которые, в свою очередь, увеличивают или уменьшают свои мембранные потенциалы в соответствии с этим сигналом. Несложно убедиться, что источником вдохновения для импульсной модели нейрона послужили работы Луи Лапика, Ходжкина, Хаксли и других нейрофизиологов, занимавшихся изучением распространения электрических сигналов в нервной ткани. Системы уравнений, описывающие накопление потенциала, его утечки, срабатывание нейрона и так далее, могут различаться в различных импульсных моделях. Обычно выбор конкретной модели зависит от области применения нейроморфной системы, именно поэтому модели, лежащие в основах систем типа I, тяготеют к большей биологической достоверности; модели же, лежащие в основе систем типа II, обычно выбираются таким образом, чтобы обеспечить снижение вычислительных затрат и большее удобство применения в используемом типе оборудования. Среди преимуществ систем типа II по сравнению с тензорными процессорами можно назвать их крайне низкий уровень энергопотребления и тепловыделения.

Поделиться с друзьями: