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

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

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

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

Проблема затхлости

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

На рисунке показано сравнение точности модели, то есть процента правильных классификаций, между моделью и параллелизмом данных.

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

Конвейерная обработка и причина устаревания

Обучение Pipeline — это, по сути, чередование выборочных данных, которые были разделены на мини-пакеты, которые проходят через конвейер, обычно распространяясь вперед, генерируя градиенты по мере их перемещения от одного графического процессора к другому. После завершения прямого распространения (прямого прохода) пакета эти пакеты заставляют распространяться назад (обратный проход) для получения обновлений веса из прямого прохода. Таким образом, конструктивно это движение вперед и назад, как показано на рисунке ниже.

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

Причина застоя

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

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

Например, на рисунке выше 4-я мини-партия принимает различные версии веса, от W4 до W6, во время своего полного цикла. С точки зрения 4-й мини-партии W4 и W5 являются устаревшими, а единственной версией гирь без устаревания является W6, поскольку W6 получается после того, как 3-я мини-партия обновляет веса.

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

Предотвращение устаревания с помощью SpecTrain

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

Как мы видим на этом рисунке, для той же 4-й мини-партии вместо того, чтобы принимать другие и устаревшие значения, с помощью SpecTrain графические процессоры предсказывают будущую версию веса, которая, как ожидается, не будет устаревшей. Версия без устаревания изначально должна была быть W6. W6 будет принят только после W4 и W5, но при использовании SpecTrain обработка 4-го мини-пакета во всем цикле основана на W6, а не на W4, что дает нам правильные градиенты, тем самым повышая общую точность.

Прогноз веса

SpecTrain прогнозирует будущие веса на основе наблюдения за сглаженными градиентами, используемыми в Momentum Stochastic Gradient Decent (SGD), что отражает тенденцию обновления весов. Momentum SGD — это хорошо известная методика, помогающая ускорить и улучшить стабильность SGD за счет сглаживания обновлений веса. Сглаженный градиент (vt) представляет собой средневзвешенное значение последних градиентов и рассчитывается по следующему уравнению:

где γ — коэффициент затухания с 0 ‹ γ ≤ 1, а «gt» — вновь созданный градиент. Путем усреднения недавних градиентов по фактору затухания сглаженный градиент vt отражает тенденцию обновления весов. Таким образом, сглаженные градиенты можно использовать для прогнозирования будущих весов.

Влияние SpecTrain

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

Каждый из экспериментов проводится путем обучения каждой модели на 5000 итераций, а потери при обучении, потери при проверке и точность проверки записываются для каждого полного круга или итерации, чтобы показать кривую обучения. Как мы видим из результатов исследования, модельный параллелизм с SpecTrain работает исключительно лучше, чем обычный модельный параллелизм.

Потеря точности, от которой сильно пострадал параллелизм модели, с использованием прогнозирования веса находится на одном уровне с параллелизмом данных, а также облегчает проблему нестабильности за счет прогнозирования веса, а кривая обучения SpecTrain аналогична параллелизму данных, что указывает на то, что использование SpecTrain может достичь почти надежного тренировочного процесса. Хотя он не превосходит параллелизм данных с функциями параллелизма моделей, а результаты параллелизма данных могут с легкостью обучать глубокие нейронные сети с объемными наборами данных.

Следовательно, исследование, предоставленное нам Эффективное и надежное параллельное обучение DNN с помощью параллелизма моделей на платформе с несколькими графическими процессорами, позволяет сказать, что SpecTrain решает проблему устаревания. Помощь в расширении параллелизма моделей до предела.

Вышеупомянутая статья спонсируется Vevesta.

Vevesta:Словарь функций и методов вашей команды по машинному обучению. Ускорьте свой проект по машинному обучению, используя функции, методы и проекты, используемые вашими коллегами.

Следующая статья будет публиковаться с интервалом в неделю. Яесли вам понравилась моя статья, просто отправьте мне несколько аплодисментов и отзывов по адресу [email protected] или подпишитесь на нас в Twitter по адресу @vevesta_labsза регулярные обновления моих статей.

100 первых пользователей, которые войдут в Вевесту, получат бесплатную подписку на 3 месяца.

Рекомендации

  1. Трубопровод и СпецТрейн
  2. Распределенное обучение
  3. Обучение надежной параллельной DNN