SkyRL tx v0.1.0: локальный Tinker-совместимый движок RL для GPU-кластеров
'SkyRL tx v0.1.0 позволяет запускать Tinker-совместимый RL на собственных кластерах, добавляя end-to-end поддержку RL, ускорённую выборку и поддержку Postgres.'
SkyRL tx v0.1.0 предоставляет разработчикам возможность запускать Tinker-подобное обучение с подкреплением на собственной GPU-инфраструктуре с единым унифицированным движком и тем же минимальным API Tinker, который используется в управляемых сервисах.
Цели SkyRL tx
SkyRL tx — это единый движок для обучения и инференса, реализующий API Tinker и предназначенный для развёртывания на локальном железе. Проект нацелен на команды, которые хотят сохранить удобную модель разработки на низкоуровневых примитивах Tinker, но не завязываться на хостинговое окружение.
Кратко о Tinker API
Tinker (Thinking Machines) предлагает четыре основных примитива:
- forward_backward: выполняет прямой и обратный проход и аккумулирует градиенты.
- optim_step: обновляет веса модели на основе накопленных градиентов.
- sample: генерирует токены для взаимодействия, оценки или действий в RL.
- save_state: сохраняет контрольные точки для продолжения обучения.
Tinker предоставляет низкоуровневые примитивы, позволяя пользователям реализовывать собственные циклы обучения в обычном Python, пока сервис управляет планированием GPU и распределённым выполнением.
Место SkyRL tx в стеке SkyRL
SkyRL — это полный стек для обучения с подкреплением для больших языковых моделей: skyrl-agent (агенты для долгих горизонтов), skyrl-train (тренировка) и skyrl-gym (окружения для использования инструментов: математика, код, поиск, SQL). SkyRL tx — экспериментальная кросс-платформенная библиотека, которая открывает локальный REST API, совместимый с Tinker, для пост-тренировочных задач. Она служит системным слоем, который связывает логику RL, окружения и тренировочный код с конкретными GPU-ресурсами через интерфейс Tinker.
Архитектура: движок инференса, который также тренирует
SkyRL tx описывают как движок инференса, который поддерживает обратные проходы. Основные компоненты:
- REST API сервер: обрабатывает входящие запросы от разных пользователей.
- База данных: отслеживает метаданные о моделях, контрольных точках, запросах и futures; выступает в роли очереди задач. Текущая реализация использует SQLite с интерфейсом, который поддерживает и Postgres.
- Engine: планирует и пакетирует запросы между пользователями. Каждый экземпляр движка обслуживает одну базовую модель и может подключать много LoRA-адаптеров.
- Worker: выполняет прямые и обратные проходы, хранит определения моделей и состояния оптимизаторов. Несколько воркеров позволят реализовать более продвинутый шардинг в следующих версиях.
Что добавляет v0.1.0
Релиз сосредоточен на поддержке RL и повышении производительности. Ключевые изменения:
- Значительно более быстрая выборка благодаря jitting, корректному пакетированию и шардированию в движке.
- Поддержка разных параметров выборки на запрос, отдельных seed'ов и стоп-токенов — полезно, когда много экспериментов используют одну базовую модель.
- Исправления, которые позволили корректно запускать RL-цикл через движок.
- Поддержка gradient checkpointing и микропакетирования для sampling.
- Добавлена поддержка Postgres помимо SQLite.
Запуск RL end-to-end на 8 H100
В релизе есть рецепт для запуска RL end-to-end на кластере с 8 H100. Сначала клонируйте репозиторий SkyRL и в папке skyrl-tx запустите движок:
uv run --extra gpu --extra tinker -m tx.tinker.api \
--base-model Qwen/Qwen3-4B \
--max-lora-adapters 3 \
--max-lora-rank 1 \
--tensor-parallel-size 8 \
--train-micro-batch-size 8 > out.logЗатем клонируйте Tinker Cookbook от Thinking Machines и в папке tinker_cookbook/recipes выполните:
export TINKER_API_KEY=dummy
export WANDB_API_KEY=<your key>
uv run --with wandb --with tinker rl_loop.py \
base_url=http://localhost:8000 \
model_name="Qwen/Qwen3-4B" \
lora_rank=1 \
max_length=1024 \
save_every=100Этот сценарий генерирует кривую вознаграждения, подтверждающую, что RL-цикл корректно работает через локальный SkyRL tx бэкенд.
Ключевые выводы
SkyRL tx v0.1.0 реализует локальный Tinker-совместимый движок, который объединяет обучение и инференс для посттренировочных задач с LLM. Система выставляет примитивы Tinker (forward_backward, optim_step, sample, save_state) поверх REST, управляя при этом пакетированием, LoRA-адаптерами и размещением на устройствах. Архитектура разделена на API сервер, SQL базу, планировочный движок и воркеры. Версия v0.1.0 добавляет поддержку end-to-end RL, ускоренную jitted и sharded выборку, параметры выборки на запрос, gradient checkpointing, микропакетирование и поддержку Postgres, делая Tinker-совместимость практичным локальным RL-бэкендом для LLM.
Switch Language
Read this article in English