Нам нужны распределенные вычисления

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

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

Закон Мура мертв

За последние 40 лет закон Мура стал движущей силой беспрецедентного роста компьютерной индустрии. Согласно этому принципу, производительность процессора удваивается каждые 18 месяцев. Тем не менее, рост производительности замедлился до скудных 10-20% за тот же период. Несмотря на то, что закон Мура, возможно, закончился, потребность в увеличении вычислительной мощности осталась прежней. В ответ на это компьютерные архитекторы переключили свое внимание на разработку процессоров, ориентированных на предметную область, отдавая приоритет производительности, а не универсальности.

Предметно-ориентированного оборудования недостаточно

Как следует из названия, доменно-ориентированные процессоры оптимизированы для конкретных рабочих нагрузок, жертвуя универсальностью ради производительности. Глубокое обучение является ярким примером такой рабочей нагрузки, революционизируя различные области применения, включая финансовые услуги, промышленное управление, медицинскую диагностику, производство, оптимизацию систем и т. д. Компании наперегонки создают специализированные процессоры, такие как графические процессоры Nvidia и TPU Google, для поддержки рабочих нагрузок глубокого обучения. В то время как ускорители, такие как графические процессоры и TPU, увеличивают вычислительную мощность, они только расширяют закон Мура дальше в будущее, а не фундаментально повышают скорость улучшения.

Тройной удар спроса на приложения глубокого обучения:

Требования к приложениям машинного обучения растут с поразительной скоростью. Вот три основных рабочих нагрузки в качестве примеров:

Тренировка

Согласно известному сообщению в блоге OpenAI, вычисления, необходимые для достижения современных результатов машинного обучения, примерно удваиваются каждые 3,4 месяца с 2012 года. Это приравнивается к увеличению почти в 40 раз каждые 18 месяцев, что в 20 раз больше, чем закон Мура! Таким образом, даже если бы закон Мура не был отменен, он был бы значительно недостаточен для удовлетворения требований этих приложений. Этот взрывной рост характерен не только для нишевых приложений машинного обучения, таких как AlphaGo. Аналогичные тенденции наблюдаются и в основных приложениях, таких как компьютерное зрение и обработка естественного языка. Например, сравнение вычислительных ресурсов, необходимых для модели seq2seq с 2014 года, с подходом предварительного обучения на десятках миллиардов пар предложений 2019 года, показывает соотношение более 5000x. Это соответствует ежегодному росту в 5,5 раза. Эти цифры затмевают закон Мура, который предполагает рост всего в 1,6 раза в год.

Настройка

Ситуация усугубляется еще и тем, что модели обучаются не один раз. Качество модели часто зависит от различных гиперпараметров, таких как количество слоев, скрытые модули и размер пакета. Чтобы найти наилучшую модель, разработчикам приходится выполнять поиск по различным параметрам гиперпараметров. Этот процесс, называемый настройкой гиперпараметров, может быть ресурсоемким.

  • Например, RoBERTa, робастная методика для предварительного обучения NLP-моделей, использует не менее 17 гиперпараметров. Предполагая, что для каждого гиперпараметра требуется не менее двух значений, пространство поиска состоит из более чем 130 тыс. конфигураций. Даже частичное исследование этого пространства требует огромных вычислительных ресурсов.

  • Другим примером задачи настройки гиперпараметров является поиск нейронной архитектуры, который автоматизирует проектирование искусственных нейронных сетей, тестируя различные архитектуры и выбирая наиболее производительную. Исследователи сообщают, что разработка даже простой нейронной сети может занять сотни тысяч дней вычислений на GPU.

Моделирования

В то время как модели глубоких нейронных сетей, как правило, могут использовать достижения специализированного оборудования, не все алгоритмы машинного обучения могут это сделать. В частности, алгоритмы обучения с подкреплением включают в себя многочисленные симуляции. Из-за своей сложной логики эти симуляции лучше всего выполняются на центральных процессорах общего назначения (а графические процессоры используются только для рендеринга), а это означает, что они не выигрывают от последних достижений в области аппаратных ускорителей. Например, в недавнем сообщении в блоге OpenAI сообщила, что использует 128 000 ядер CPU и всего 256 GPU (т.е. в 500 раз больше CPU, чем GPU) для обучения модели, способной победить любителей в Dota 2. В то время как Dota 2 — это всего лишь игра, мы наблюдаем всплеск использования симуляций для приложений для принятия решений, и в этой области появляются такие стартапы, как Pathmind, Prowler и Hash.ai. По мере того, как симуляторы стремятся ко все более точному моделированию окружающей среды, их сложность возрастает, добавляя еще один мультипликативный фактор к вычислительной сложности обучения с подкреплением.

Зачем нужны распределенные вычисления для ИИ

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

В io.net мы разрабатываем инновационные инструменты и распределенные системы, такие как Ray, чтобы помочь разработчикам приложений войти в эту новую эру.

Last updated