Hivemind — это библиотека для децентрализованного обучения крупных нейросетей. Функционал библиотеки обеспечивает распределённое обучение моделей на оборудовании пользователей. На данный момент библиотека на стадии пре-альфа.
Описание проблемы
Более крупные нейросети являются state-of-the-art как в задачах компьютерного зрения, так и в задачах обработки естественного языка. Среди примеров:
- Предобученные трансформеры — для NLP;
- Сверточные нейросети — для компьютерного зрения;
- GPT-3 с 175 миллиардами параметров
Transfer learning позволяет улучшать качество моделей с увеличением обучающей выборки. Однако обучение таких крупных моделей упирается в ограниченность вычислительных ресурсов. Одно обучение GPT-3 стоит $4.6 миллиона в облачных GPU. Так, вносить вклад в разработку state-of-the-art моделей глубокого обучения зачастую могут только ограниченные команды исследователей в корпорациях. Hivemind позволяет обойти это ограничение и децентрализовать обучение крупных нейросетей.
Подробнее про hivemind
Hivemind использует слой Decentralized Mixture of Experts (DMoE) для того, чтобы позволить группе пользователей распределить вычисления между машинами.
В hivemind все пользователи:
- Принимают одну или более моделей в зависимости от характеристик их железа;
- Участвуют в асинхронном обучении моделей и принимают модели от других пользователей;
- Формируют Distributed Hash Table, чтобы узнать модели друг друга. Это тот же тип протокола, который использует в распространении файлов BitTorrent
Hivemind использует Kademlia-based DHT, который масштабируется на десятки тысяч пользователей с логарифмической сложностью поиска.