Testnet

SkipPipe: эффективный метод коммуникации для децентрализованного обучения

Это научная статья об эффективной коммуникации при параллельном обучении по конвейеру. В ней представлен алгоритм оптимального планирования, который максимизирует производительность и отказоустойчивость, минимизируя влияние на конвергенцию из-за пропусков уровней. Это сокращает время итераций распределенного обучения до 55% и обеспечивает устойчивость к 50%-ной частоте отказов узлов во время вывода.

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

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

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

Представляем SkipPipe

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

Он также обладает высокой отказоустойчивостью — демонстрирует устойчивость до 50% отказа узлов с потерей только 7% перплексии во время инференса (то есть, когда половина узлов конвейера для одной модели недоступна, мы теряем только 7% перплексии при запуске инференса через теперь уже разреженную модель).

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

Как это работает

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

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

Заключение

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

При сочетании с системой координации и методом доверенной верификации SkipPipe позволяет эффективно обучать огромные передовые модели на краудсорсинговых вычислениях.

Чтобы узнать больше, вы можете прочитать полную статью здесь.

SkipPipe полностью открыт и мы призываем исследовательское сообщество строить свои разработки на основе этого кода.