<НА ГЛАВНУЮ

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

Switch to English