Как обучать агентов на базе LLM с помощью RL на своих GPU
Обучение языковых моделей с помощью Reinforcement Learning до сих пор ассоциируется с гигантскими кластерами и закрытыми лабораториями. Если SFT (Supervised Fine-Tuning) давно стал рутиной для ML-инженеров, то надёжно запустить PPO или GRPO для многошаговых агентов всегда было той еще задачей. Приходилось либо писать собственный обвязочный код вокруг vLLM и DeepSpeed, либо мириться с ограничениями готовых фреймворков.
Исследователи из Berkeley Sky Computing Lab решили упростить этот процесс и выложили в открытый доступ проект SkyRL. Это полнофункциональный фреймворк, который закрывает весь цикл RL-дообучения: от генерации траекторий в изоляции до обновления весов модели прямо во время работы.
Из чего состоит фреймворк
Разработчики не стали делать монолитную систему. Вместо этого они разбили проект на несколько независимых слоев, которые легко комбинировать под свои задачи.
Центральная часть skyrl отвечает за оркестрацию процесса обучения на вашем оборудовании. Внутри объединены тренировочный движок и распределенный инференс. Главная фишка этого слоя — поддержка открытого стандарта Tinker API. Вы можете написать скрипт обучения один раз, а потом запустить его как на локальном сервере с картами NVIDIA или AMD, так и в облаке.
Слой skyrl-gym дает интерфейс для создания обучающих сред. В отличие от классического Gymnasium для робототехники, здесь среды адаптированы под текстовые и кодовые взаимодействия. Из коробки доступна поддержка баз данных SQL, интерпретаторов Python, поисковых систем и терминала Linux.
Слой skyrl-agent сфокусирован на долгосрочных задачах. Он помогает обучать агентов, которые совершают десятки последовательных шагов, вызывают внешние утилиты и корректируют свои действия на основе ответов среды.
Результаты на практике
Качественный фреймворк определяется не количеством абстракций, а реальными метриками. Команда проекта продемонстрировала возможности библиотеки на задаче Text-to-SQL.
Авторы взяли стандартную модель на 7 миллиардов параметров и провели RL-обучение через пайплайн SkyRL-SQL. Датасет содержал всего 653 обучающих примера. Модель не просто запоминала правильные SQL-запросы, а училась выполнять их в реальной СУБД, получать ошибки выполнения и исправлять синтаксис на следующем шаге. В результате эта небольшая модель превзошла по точности генерации коммерческие сервисы GPT-4o и o4-mini на специализированных тестах.
Еще один интересный пример — интеграция с окружением Harbor для подготовки агентов командной строки. Модель учится работать в реальном терминале: редактировать файлы, запускать тесты, искать баги в репозиториях и разворачивать окружения без участия человека.
Технические особенности реализации
При традиционном RL-обучении моделей инференс и обучение часто блокируют друг друга. Модель генерирует ответы, процесс останавливается, считаются градиенты, обновляются веса, и только потом начинается новая итерация. В SkyRL реализован полностью асинхронный режим с так называемым in-flight weight updates.
Пока актор генерирует новые токены и взаимодействует со средой, процесс обучения параллельно обновляет параметры модели. Новые веса передаются в сервис инференса прямо на лету, что резко снижает простой дорогостоящих ускорителей.
Библиотека не пытается изобретать велосипед с нуля. Под капотом используются проверенные решения из open-source сообщества: идеи из veRL, OpenRLHF и Search-R1.
Где проект уже нашел применение
Несмотря на молодой возраст, фреймворк успел стать основой для нескольких сторонних исследований.
Команда из Стэнфорда использовала SkyRL для создания Biomni-R0. Это агент, способный решать сложные биомедицинские задачи и строить логические цепочки на уровне эксперта. Проект CodeScout применил фреймворк для точной локализации багов в коде в рамках бенчмарка SWE-Bench. Также на базе библиотеки развиваются проекты OpenThoughts-Agent и Endless Terminals, где RL применяется для процедурной генерации задач в Linux-терминале без ручной розмітки данных.
С чего начать эксперименты
Для работы вам понадобится сервер с Linux, несколькими GPU и установленным PyTorch. Процесс установки выглядит стандартно для Python-проектов:
git clone https://github.com/NovaSky-AI/SkyRL.git
cd SkyRL
pip install -e .
Далее вы можете запустить один из готовых рецептов обучения. Например, для запуска простейшего цикла RL на задачах математики или SQL достаточно вызвать соответствующий скрипт из папки с примерами:
python -m skyrl.train --config-name=math_ppo
Если вы хотите интегрировать собственную среду, достаточно унаследовать класс от Gymnasium API и определить методы step() и reset(). Модель будет получать наблюдения в виде текста или системных ответов и возвращать сгенерированный текст как действие.
Стоит ли внедрять в свои проекты
SkyRL пригодится R&D-командам и инженерам, которые выросли из стандартного SFT и хотят выжать максимум из моделей среднего размера. Научить LLM пользоваться инструментами в конкретной доменной области за счет RL — это рабочий способ переиграть универсальные проприетарные модели по точности и стоимости запроса.
Главный нюанс: проект находится в фазе активной разработки. В репозитории около 400 открытых вопросов, а архитектура отдельных модулей продолжает меняться. Если вам необходимо готовое коробчатое решение с кнопкой «сделать хорошо», возможно, стоит немного подождать. Но если вы готовы разобраться в коде и ищете гибкий фундамент для собственных RL-агентов, SkyRL сэкономит месяцы разработки.