Learning@home — платформа для распределенного обучения больших нейросетей

Learning@home — платформа для распределенного обучения больших нейросетей

Максим Рябинин из ВШЭ и Яндекса вместе с Антоном Гусевым разработали платформу Learning@home, позволяющую распределять обучение нейросетевых моделей на множество компьютеров.

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

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

Эффективность работы нейросетевых моделей во многом зависит от их размера и от размера обучающей выборки. Например, лучшая на сегодня модель обработки естественного языка, GPT-3, имеет 175 миллиардов параметров и была обучена на 570 гигабайтах текстов. Но для обучения подобного масштаба требуется соответствующая вычислительная мощность, которая зачастую недоступна небольшим исследовательским группам.

Существуют проекты распределенных вычислений, решающие эту проблему с помощью волонтеров: любой человек с доступом к интернету может установить у себя программу, которая будет в фоновом режиме проводить нужные ученым вычисления. В 2020 году мощность сети биомолекулярных симуляций Folding@home перешла рубеж в один экзафлопс и продолжила расти.

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

В основе предложенной платформы Learning@home лежит метод коллектива экспертов, при котором за обработку разных входящих данных отвечают определенные «эксперты» — отдельные алгоритмы или компьютеры. Разработчики предложили разбивать слои обучаемой нейросети на набор экспертов. Каждый из экспертов может иметь свою специализацию, к примеру, выступать в качестве части нейросети сверточного или другого типа.

Сеть компьютеров для обучения или выполнения нейросетевых алгоритмов имеет децентрализованную структуру, а каждый из ее вычислительных узлов состоит из трех частей: исполняющей среды, управляющей части и DHT-узла. Исполняющая среда непосредственно отвечает за вычисления, то есть выступает в качестве эксперта. Управляющая часть принимает входящие данные, выбирает подходящих для их обработки экспертов и собирает данные вычислений. А DHT-узел — это часть распределенной хэш-таблицы, в которой сеть хранит свои данные.

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


Источники:

N+1, 1 сентября 2020, Суперкомпьютеры для обучения нейросетей заменили сетью распределенных вычислений
arXiv.org, arXiv:2002.04013, Learning@home: Crowdsourced Training of Large Neural Networks using Decentralized Mixture-of-Experts, Submitted on 10 Feb 2020, last revised 14 Jun 2020.
GitHub, learning@home hivemind, A library to train large neural networks across the internet. Imagine training one huge transformer on thousands of computers from universities, companies, and volunteers.