🔥 HIVEMIND - децентрализованное обучение из коробки
— Давайте честно, не приходила ли к вам мысля как-нибудь объединить кагл/колаб/{свое железо} ноутбуки в одну целую машину, чтобы и модельки обучать и инфу передавать?
👉 Так вот, ребята вот уже год-два делают свою либу и при этом явно добились результата.
⚡️ Вместе с Яндексом, ВШЭ, HF они продемонстрировали результат на NeurIPS 2021— обучили языковую модель ALBERT и сейчас помогают другим командам.
Ну ладно, что это вообще за штука и как она работает?
Два основных сценария:
1️⃣ Глобальное обучение — здесь как раз и нужны колабы, но у них внутренний firewall, поэтому в цепи должна быть хотя бы одна машина с "публичным ipшником" (любой сервак за 5 копеек, можно без гпу).
2️⃣ Локальное, когда ваши машины подключены по проводам.
👀 Вся магия происходит в оптимизаторе. Интернет медленный, поэтому нужно обучать за малое количество шагов с большим батчем. В целом можно использовать стандартный SGD/Adam/etc, но есть и специализированные: LAMB или LARS.
Стратегии обучения:
1️⃣ Локальная оптимизация — каждый участник делает независимо несколько шагов обучения на своих данных, а потом они все усредняют веса и повторяют процедуру.
2️⃣ Глобальная оптимизация — участники не применяют свои локальные градиенты сразу, а откладывают их. Когда все вместе соберут заранее оговорённое число примеров, они обмениваются градиентами и обновляют веса по "глобальным" градиентам.
❓Даст ли это сильное ускорение? Не знаю, все индивидуально, но сама технология действительно интересная.
Очень благодарен разработчикам за детальную QA сессию/лекцию по устройству либы, в комментах будут более точные объяснения.
@gradientdip
Демонстрация
CALM - пример
Внутреннее устройство DHT
Hivemind (github)
DeDLOC: обучаем большие нейросети всем миром
— Давайте честно, не приходила ли к вам мысля как-нибудь объединить кагл/колаб/{свое железо} ноутбуки в одну целую машину, чтобы и модельки обучать и инфу передавать?
👉 Так вот, ребята вот уже год-два делают свою либу и при этом явно добились результата.
⚡️ Вместе с Яндексом, ВШЭ, HF они продемонстрировали результат на NeurIPS 2021— обучили языковую модель ALBERT и сейчас помогают другим командам.
Ну ладно, что это вообще за штука и как она работает?
Два основных сценария:
1️⃣ Глобальное обучение — здесь как раз и нужны колабы, но у них внутренний firewall, поэтому в цепи должна быть хотя бы одна машина с "публичным ipшником" (любой сервак за 5 копеек, можно без гпу).
2️⃣ Локальное, когда ваши машины подключены по проводам.
👀 Вся магия происходит в оптимизаторе. Интернет медленный, поэтому нужно обучать за малое количество шагов с большим батчем. В целом можно использовать стандартный SGD/Adam/etc, но есть и специализированные: LAMB или LARS.
Стратегии обучения:
1️⃣ Локальная оптимизация — каждый участник делает независимо несколько шагов обучения на своих данных, а потом они все усредняют веса и повторяют процедуру.
2️⃣ Глобальная оптимизация — участники не применяют свои локальные градиенты сразу, а откладывают их. Когда все вместе соберут заранее оговорённое число примеров, они обмениваются градиентами и обновляют веса по "глобальным" градиентам.
❓Даст ли это сильное ускорение? Не знаю, все индивидуально, но сама технология действительно интересная.
Очень благодарен разработчикам за детальную QA сессию/лекцию по устройству либы, в комментах будут более точные объяснения.
@gradientdip
Демонстрация
CALM - пример
Внутреннее устройство DHT
Hivemind (github)
DeDLOC: обучаем большие нейросети всем миром