Pooled: пиринговое вычисление больших моделей машинного обучения в браузере
Pooled — это проект для организации пирингового вычисления больших открытых моделей машинного обучения прямо в браузере. С помощью Pooled ты можешь объединить мощности нескольких устройств (например, ноутбук, телефон и ПК) для совместного выполнения задач, таких как чат или разработка кода.
Отличительной чертой этого решения является его децентрализованная архитектура: нет серверов, все вычисления происходят на устройствах пользователей через WebRTC и WebGPU. Таким образом, ты можешь запускать модели, которые не смог бы потянуть на одном устройстве. Весь процесс запущен из браузера, и тебе не потребуется ничего устанавливать или создавать аккаунты. Это может быть полезно для разработчиков и исследователей, которые работают с ограниченными ресурсами.
Проект находится на стадии разработки, и у него могут быть ограничения по совместимости и функционалу. Поскольку для работы используются WebRTC и WebGPU, проверь свою браузерную среду.
Проект Pooled представляет собой решение для совместного использования ресурсов нескольких устройств для выполнения больших открытых моделей машинного обучения прямо в браузере. С помощью Pooled можно запустить модель, распределив её слои между твоим компьютером, компьютером друга и мобильным телефоном, что позволяет выполнять задачи, которые каждое из устройств не смогло бы решить самостоятельно. В этом проекте нет необходимости в установке дополнительного ПО, регистрации аккаунтов или использовании серверов для обработки данных.
Как это работает
Все устройство, присоединившиеся к комнате, открывают одну и ту же ссылку. Каждое устройство (ноутбук, настольный компьютер, телефон) загружает определённые слои модели и выполняет их на своём графическом процессоре. Во время обработки каждый токен передаётся между устройствами через прямое соединение WebRTC, а главный хост использует полученные данные для генерации следующего слова.
host embed the last token → hidden state
↓ a few KB over WebRTC
laptop layers 0–21 ─┐
desktop layers 22–42 ├─ каждый устройство выполняет свои слои на своём GPU
phone layers 43–63 ─┘
↓ back to the host
host final norm → LM head → sample → next token (and draft the ones after it)
Режим кодирования
В режиме Code ты можешь попросить модель создать, например, игру в Тетрис. Модель будет выполняться в виде агента, который может писать файлы, сервировать их на виртуальном локальном хосте и исправлять ошибки в коде. Все члены комнаты смогут увидеть файлы и запустить их на своих устройствах. Файлы будут храниться в браузере хоста или в определённой папке на диске.
Как запустить локально
Чтобы запустить Pooled на своём устройстве, выполни следующие команды в терминале:
git clone https://github.com/Nehanth/pooled && cd swarmllm
npx -y serve -l 8080 . # затем открой http://localhost:8080/room
Это запустит сервер, и ты сможешь начать использовать Pooled локально.
Ограничения и требования
Pooled работает в браузере, и наилучшие результаты были достигнуты в Chrome на macOS. На некоторых устройствах, таких как iPhone с Safari, возможны ограничения по памяти при загрузке больших моделей. Недостаточная поддержка WebGPU также может помешать стабильной работе на других браузерах, таких как Firefox.
Для приватности стоит помнить, что все участники комнаты могут видеть вопросы и ответы, поэтому лучше использовать этот сервис в кругу доверенных людей. Модельные данные и токены также не являются полностью защищёнными от доступа со стороны участников.
Заключение
Pooled предлагает уникальный подход к распределению вычислительных ресурсов для запуска больших ML моделей, позволяя запускать их без необходимости сложной настройки или установки программного обеспечения. Это делает проект доступным для более широкой аудитории, включая тех, кто хочет попробовать машинное обучение без лишних хлопот.
Открыть на GitHub: Nehanth/pooled →
RepoRadar