Эта статья от великого бога Ли МуParameter ServerДля изучения диссертации Ли Му опубликовал статьи об OSDI и NIPS, среди которыхOSDI-версиясклонен к проектированию системы, в то время какNIPS-версияПредвзятая к уровню алгоритма, эта статья, очевидно, является статьей OSDI.
В этой статье предлагается распределенная архитектура «сервера параметров» для поддержки распределенного машинного обучения. Распределенное машинное обучение в основном сталкивается со следующими проблемами:
- Доступ к параметрам требует большой пропускной способности сети
- Многие алгоритмы машинного обучения являются последовательными.
- Отказоустойчивость очень важна
Фреймворк в этой статье дает разработчикам два преимущества:
- Разбивая компоненты машинного обучения, бизнес-код можно сделать более кратким.
- Возможность реализации надежных, универсальных и высокопроизводительных алгоритмов распределенного машинного обучения.
Эта система имеет следующие пять характеристик:
- эффективное общение: использует асинхронную неблокирующую модель связи.
- Гибкая модель согласованности: может позволить разработчикам систем вручную устанавливать компромисс между скоростью сходимости и эффективностью системы.
- упругая шкала: Возможность добавлять новые узлы во время работы
- В отличие от и прочный: Быстрое восстановление после сбоев, детерминированное поведение благодаря векторным часам.
- легко использовать: параметры представлены в виде векторов и матриц для облегчения разработки алгоритмов машинного обучения.
Эти характеристики системы достигаются за счет выбора правильной системной технологии, применения ее в алгоритме машинного обучения и модификации машинного обучения для адаптации к системе. В процессе внедрения системы основные задачи заключаются в следующем:
- коммуникация: Повышение эффективности связи за счет массовой передачи параметров (векторные фрагменты, строки и столбцы матриц вместо отдельных значений параметров).
- Отказоустойчивость: благодаря резервному копированию в режиме реального времени, оперативному ремонту и внедрению
машинное обучение
Машинное обучение требуеттренировочные данныеКитайская модель обучения в основном включает три элемента:Извлечение признаков,целевая функцияиучиться. Извлечение признаков преобразует необработанные данные обучения вВектор признаков, в этой статье повторяться не будут. Процесс обучения заключается в минимизации целевой функции для получения модели. Кроме того, в задачах распределенного машинного обучения объем обучающих данных обычно очень велик.
минимизация риска
Обучение с учителем — это процесс минимизации риска, например, минимизация ошибки прогнозирования. Если естьобучающие выборки, а вектор признаков каждой выборки равен, соответствующая метка, параметры модели, целевая функция
вфункция потерь, которая определяет ошибку между прогнозируемым значением и истинным значением,это термин регуляризации, используемый для предотвращения переобучения модели. может использоваться в структуре сервера параметровРаспределенный субпладиентский спускМинимизируйте целевую функцию
В алгоритме распределенного субградиентного спуска каждому рабочему узлу нужно только вычислить назначенный рабочий набор параметров.Затем соответствующий градиент агрегируется сервисным узлом. полные параметры моделиОн может быть очень большим, и рабочие узлы столкнутся с большой нагрузкой при их использовании, но вы сможете сохранить только те значения параметров, которые используются.
генеративная модель
Другая форма машинного обучения - неподревающееся обучение, которое часто используется для изучения структуры самого данных. Типичным примером является модель темы: Учитывая некоторые документы, вывод темы, содержащиеся в каждом документе. Вызов с моделями темы - это то, что параметры о том, как генерируется текущий документ, должен быть разделен. Решение заключается в том, что каждый узел работника сохраняет только параметры, связанные с словами, которые появляются в назначенном документе.
Архитектура
Система сервера параметров состоит изсервисный узелгрупповые и множественныерабочий узелгрупповой состав. Сервисные узлы взаимодействуют друг с другом для резервного копирования и переноса параметров, а узел управления сервисом отвечает за поддержание согласованности между метаданными сервисных узлов. Группа рабочих узлов запускает приложение, а узлы планирования в группе рабочих узлов отвечают за назначение задач и мониторинг.
Сервер параметров начинается сПространства именПараметры организованы таким образом, что параметры модели используютключевое значениехранится в форме. Различные приложения могут совместно использовать пространства имен, например, одно приложение отвечает за обучение модели, а другое — за вывод модели.
Объем толкать и тянуть
Чтобы улучшить использование пропускной способности, система поддерживает проталкивание и вытягивание диапазона. сделатьэто ключ, затем
-
w.push(R,dest)
будетДиапазон средних клавиш находится вПараметры в push to dest -
w.pull(R,dest)
вытащено из дестаДиапазон средних клавиш находится впараметры в
Пользовательская функция для сервисных узлов
Помимо агрегации данных обслуживающего узла с рабочих узлов, может выполнятьсяопределяемая пользователем функция. Таким образом, пользователи могут реализовать некоторые более продвинутые алгоритмы оптимизации.
Асинхронные задачи и зависимости
задачиАсинхронное выполнение: после того как вызывающий абонент инициирует задачу, вы можете сразу же выполнять другие операции. Чтобы повысить скорость символизации, вы можете установить зависимости, запускаемые после завершения выполнения задачи, и установить зависимость задачи для обеспечения логики алгоритма.
Гибкая согласованность
Рабочие узлы могут выполнять назначенные задачи параллельно, но это может повлиять на производительность алгоритма обучения. Компромиссное соотношение между эффективностью системы и согласованностью зависит от чувствительности алгоритма к несогласованности и возможностей аппаратного обеспечения системы.Эта структура предоставляет разработчикам три режима на выбор:
- Последовательный порядок: следующая задача должна быть выполнена после завершения предыдущей задачи.
- в конечном итоге последовательный: все задачи начинаются вместе
- ограниченная задержка:существуетЗадачи, которые начинаются раньше времени, завершаются до начала задач
определяемый пользователем фильтр
Пользователь может определитьПользовательский фильтрПри желании синхронизируйте некоторые параметры, например, пользователи могут добавлять градиенты, влияющие на параметры модели.
выполнить
вектор часы
Для поддержки графиков зависимости задач и быстрого восстановления для каждой пары ключ-значение требуются часы. если каждыйКаждый параметр экономит время, если таковое имеетсяузлов, то всегопространстве, более разумным способом является экономия времени диапазона.
Информация
Сообщение, переданное в систему, имеет более одного в диапазоне ключейПары ключ-значение внутри и соответствующие векторные часы:
Сообщение может не содержать все пары ключ-значение в диапазоне, но часы для этих отсутствующих пар ключ-значение обновляются как обычно.
Если на каждой итерации обучающие данные рабочего узла не меняются, то ключ должен быть неизменным, тогда получатель может сохранить кеш ключа, а рабочему узлу нужно только отправить значение и хэш списка ключей. Кроме того, использование определяемых пользователем фильтров может дополнительно сократить количество пар ключ-значение, которые необходимо отправить.
согласованное хеширование
Узлы в группе сервисных узлов используютРаспределенная хэш-таблицадля сохранения параметров модели. Для упрощения конструкции в системе используется прямое сопоставление, которое единообразно управляется узлом управления службами.
Копируйте и согласовывайте
Каждый сервисный узел хранит копию параметров в диапазоне k соседних ключей в направлении против часовой стрелки в качестве ведомого узла для этих копий. Способ обновления реплики может быть
- При обновлении параметров сообщение об обновлении также будет отправлено на подчиненный узел, который сохраняет копию.
- Отправка на подчиненные узлы после завершения агрегирования параметров параметров
Управление сервисным узлом
Когда сервисный узел присоединяется к группе сервисных узлов:
- Узел управления сервисом назначает новому узлу диапазон ключей, и новый узел будет выступать в качестве главного узла для параметров этого диапазона.
- Узел получает параметры в этом диапазоне, становится главным узлом и получаетдополнительный диапазон параметров в качестве подчиненных узлов
- Узлы управления службами транслируют изменения. Другие узлы выпустят параметры, которыми больше не нужно управлять самостоятельно, и передадут незавершенные задачи новым узлам.
новый узел из узлаВытяните областьПроцесс параметризации можно разделить на два этапа:
- Заранее скопируйте копию всех исходных данных пары ключ-значение и соответствующие часы, которые можно использовать для восстановления, когда новый узел отключается;
- больше не обрабатывает областьсообщение на этапе предварительного копирования и отправить изменения на этапе предварительного копирования на новый узел.
Когда узел N получает сообщение о добавлении узла, ему необходимо:
- Удалите параметры, которыми вам больше не нужно управлять самостоятельно
- Повторно отправлять неподтвержденные сообщения, удаляя содержимое, которым вы не управляете
После отключения сервисного узла узлу управления сервисом необходимо назначить параметры, которыми управляет этот узел, другим узлам.
Управление рабочим узлом
когда новый рабочий узелПосле добавления в группу рабочих узлов:
- Узел планирования задач назначаетсячасть данных
- Узел загружает выделенные обучающие данные из сетевой файловой системы или других рабочих узлов, а затем извлекает параметры из служебного узла.
- Узел планирования задач транслирует изменения, другим результатам работы может потребоваться выпустить некоторые повторяющиеся обучающие данные.
Когда рабочий узел отключается, он может либо переназначить его, либо проигнорировать.Система предоставляет эту возможность разработчику, потому что:
- Когда количество обучающих данных очень велико, стоимость восстановления рабочего узла намного выше, чем стоимость восстановления сервисного узла.
- Потеря небольшой части обучающих данных не сильно повлияет на окончательную модель.
использованная литература
- Li, Mu, et al. "Scaling distributed machine learning with the parameter server." 11th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 14). 2014.
- Li, Mu, et al. "Parameter server for distributed machine learning." Big Learning NIPS Workshop. Vol. 6. 2013.