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

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

В новом документе исследовательская группа DeepMind и Google Brain решает эту проблему с помощью Launchpad, модели программирования, которая упрощает процесс определения и запуска экземпляров распределенных вычислений.

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

Жизненный цикл предлагаемой Launchpad можно разделить на три фазы: настройка, запуск и выполнение. На этапе настройки создается структура данных программы; на этапе запуска эта структура данных обрабатывается для выделения ресурсов, адресов и т. д. и инициирования запуска указанных сервисов; Затем на этапе выполнения запускаются службы, например, создаются клиенты для связи служб.

Launchpad реализован на популярном языке программирования Python, что упрощает процесс определения программ и структур данных узлов и запуска для отдельных платформ. Платформа Launchpad также может быть легко реализована на любом другом главном языке, включая языки программирования низкого уровня, такие как C / C ++.

Модель программирования Launchpad достаточно богата для работы с широким спектром распределенных систем, включая серверы параметров (Ahmed et al., 2012; Li et al., 2014), MapReduce (Dean and Ghemawat, 2008) и Стратегии эволюции. Исследователи предоставляют подробные описания применения Launchpad к этим распространенным парадигмам распределенных систем с краткими кодами, иллюстрирующими способность фреймворка упростить процесс разработки общих алгоритмов и компонентов машинного обучения в этой области исследований.

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

Статья Launchpad: A Programming Model for Distributed Machine Learning Research находится на arXiv.

Автор: Геката Хе | Редактор: Майкл Саразен, Чейн Чжан

Мы знаем, что вы не хотите пропустить какие-либо новости или научные открытия. Подпишитесь на нашу популярную рассылку Synced Global AI Weekly, чтобы получать еженедельные обновления AI.