Petals распределяет запуск больших языковых моделей между пользователями по принципу BitTorrent

Petals, открытый проект, который позволяет запускать и дообучать очень большие языковые модели без собственного дата-центра. Идея: пользователь загружает на свой компьютер только часть модели, а остальные части в это же время обслуживают другие участники сети, вычисления распределяются между узлами, как при обмене файлами через BitTorrent. Для запуска достаточно обычной потребительской видеокарты или бесплатного Google Colab. Поддерживаются Llama 3.1 (модели вплоть до 405 миллиардов параметров), Mixtral (8x22B), Falcon (от 40 миллиардов параметров) и BLOOM (176 миллиардов параметров), их можно не только запускать для генерации текста, но и дообучать под свои задачи. По заявленным цифрам, однопакетный инференс работает со скоростью до 6 токенов в секунду для Llama 2 (70B) и до 4 токенов в секунду для Falcon (180B), авторы называют это достаточным для чат-ботов и интерактивных приложений. В отличие от обычных API для доступа к LLM, Petals даёт доступ к внутренностям модели: можно применять произвольные методы дообучения и сэмплирования, прогонять данные по нестандартным путям внутри сети и смотреть на скрытые состояния модели, то есть сочетать удобство API с гибкостью PyTorch и библиотеки Transformers от Hugging Face. Проект развивается в рамках исследовательской инициативы BigScience, той же, в рамках которой была создана модель BLOOM. Разработчики ведут сообщество в Discord и рассылают редкие обновления по почте (несколько раз в год).

Ключевые факты

  • Petals распределяет инференс и дообучение больших языковых моделей между добровольцами по принципу BitTorrent: каждый узел хранит и обслуживает только часть модели
  • Поддерживаются Llama 3.1 (до 405B параметров), Mixtral (8x22B), Falcon (от 40B) и BLOOM (176B)
  • Для участия достаточно потребительской видеокарты или бесплатного Google Colab
  • Заявленная скорость: до 6 токенов в секунду для Llama 2 (70B) и до 4 токенов в секунду для Falcon (180B)
  • Проект даёт доступ к внутренностям модели (кастомные пути, скрытые состояния) и развивается в рамках исследовательской инициативы BigScience

Почему это важно

Огромные открытые модели вроде Llama 3.1 на 405 миллиардов параметров или BLOOM на 176 миллиардов требуют дата-центра с десятками профессиональных ускорителей, рядовому энтузиасту или небольшой команде такое не по карману. Petals предлагает альтернативу: не покупать мощное железо самому, а объединить вычислительные ресурсы множества участников в общую сеть, где каждый отдаёт часть своей видеокарты и получает взамен доступ к модели целиком. Это снижает порог входа для работы с самыми большими открытыми моделями.

Кому это важно

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

Как это применить

Чтобы попробовать Petals, нужна потребительская видеокарта или бесплатный Google Colab, специализированное серверное железо не требуется. Пользователь запускает часть модели у себя и присоединяется к сети, где остальные части обслуживают другие участники. Интерфейс совместим по духу с библиотекой Transformers от Hugging Face, поэтому доступны привычные приёмы работы с моделью, но с большей гибкостью: собственные методы дообучения и сэмплирования, произвольные пути инференса через сеть, доступ к скрытым состояниям модели.

Можно ли доверять

Проект, часть исследовательской инициативы BigScience, той же, что создала модель BLOOM, то есть стоит за академическим консорциумом, а не анонимной командой. У проекта есть открытое сообщество в Discord и почтовая рассылка с редкими обновлениями (по заявлению авторов, несколько раз в год), что говорит о низком, но постоянном темпе развития. В исходном материале нет данных о текущей активности разработки, числе участников сети или недавних релизах, это стоит проверить отдельно перед тем, как полагаться на проект для продакшена.

Риски и подводные камни

Заявленная скорость, до 6 токенов в секунду для модели на 70 миллиардов параметров и до 4 токенов в секунду для модели на 180 миллиардов, заметно ниже, чем у выделенного сервера, и подходит скорее для интерактивных экспериментов, чем для промышленной нагрузки. Работа сети зависит от готовности добровольцев предоставлять свои вычислительные мощности: доступность и отзывчивость узлов не гарантированы, а сама архитектура подразумевает, что промежуточные вычисления по запросу пользователя проходят через чужие компьютеры, что может быть критично для приватных или конфиденциальных данных.