LLM強化学習をフルスタックで — SkyRL で自前GPUからエージェント訓練まで
LLM強化学習をフルスタックで — SkyRL で自前GPUからエージェント訓練まで
ひとことでいうと
SkyRL(スカイアールエル)は、大規模言語モデル(LLM)を強化学習でさらに賢くするための、まとまったソフトウェアライブラリです。訓練・推論・エージェント実行・環境の4つの役割をひとつのパッケージ群として提供しており、自前のGPUサーバーやクラウド上でLLMを鍛え上げる環境を一から用意できます。Berkeley Sky Computing LabとAnyscaleの共同研究として開発されており、コードを修正したり、SQLを書いたりといった「何手もかかる複雑なタスク」を学習させるための設計が特徴です。研究者から企業の開発チームまで、LLMをもっと使いこなしたい方に向けたツールです。
こんな人におすすめ
LLMの研究者・機械学習エンジニア
PPOやGRPOといった強化学習アルゴリズムを自前のGPUクラスタで動かしたい方に最適です。veRLやOpenRLHFなど既存の強化学習フレームワークを使ったことがある方なら、設計の考え方が似ているためすぐに馴染めます。
エージェントシステムの開発者
SWE-Bench(ソフトウェアエンジニアリングの自動化ベンチマーク)やターミナル操作、SQLなど、複数のステップを踏むタスクをこなすエージェントをゼロから訓練・評価したい方におすすめです。skyrl-agentとskyrl-gymを組み合わせることで、環境構築から訓練まで一貫して進められます。
大学・企業の応用研究チーム
Biomni-R0(スタンフォード大学が取り組む生物医学推論)やCodeScout(SWE-Benchのコードローカライズでトップ水準)など、すでに外部プロジェクトへの組み込み実績があります。独自のタスク環境を標準インターフェースに沿って追加するだけで、既存の訓練パイプラインをそのまま再利用できます。
インストール・使い方
SkyRL のセットアップには uv(ユーブイ)という高速なPythonパッケージ管理ツールを推奨しています。また、実際の訓練にはNVIDIA製GPUとRay(レイ)という分散処理フレームワークが必要です。まずは以下の手順でリポジトリを手元に取り込み、環境を整えましょう。
Step 1: リポジトリのクローンと仮想環境の準備
git clone https://github.com/NovaSky-AI/SkyRL.git
cd SkyRL
# uv がなければ先にインストール
curl -Lsf https://astral.sh/uv/install.sh | sh
uv sync
ここでは「リポジトリ(ソースコードの置き場)」をターミナル(文字で命令を送る画面)を使って自分のパソコンやサーバーへコピーし、依存ライブラリを一括で揃えています。コマンドはコピー&ペーストでそのまま使えます。
Step 2: 各サブパッケージのインストール
統合パッケージ skyrl(訓練と推論をまとめて扱う)を使う場合:
cd skyrl
uv sync
エージェント層 skyrl-agent(複数ステップのタスクを担当)を使う場合:
cd skyrl-agent
cp .env.template .env # 環境変数(設定値)のファイルを作成
uv sync
Gym環境ライブラリ skyrl-gym(タスクの種類を管理する部品)を使う場合:
cd skyrl-gym
uv sync
それぞれのサブパッケージは独立して使えるため、必要な部分だけを取り込むことができます。.env ファイルにはAPIキーなどの設定を書き込みます。
Step 3: Dockerを使ったセットアップ(GPU環境推奨)
Docker(ドッカー)とは、ソフトウェアの動作環境をまるごとパッケージ化して再現できる仕組みです。公式のDockerfileが複数用意されており、Ray対応(Dockerfile.ray244)とMegatron対応(Dockerfile.megatron)があります。
docker build -f docker/Dockerfile.ray244 -t skyrl:ray244 .
GPU搭載サーバー上でこのコンテナを起動することが、本番利用では最も安定した方法です。
Step 4: 訓練スクリプトの実行
公式ドキュメントのTinker Quickstartに従い、YAML形式(設定を箇条書きで書くファイル形式)の設定ファイルを用意してから訓練を開始します。設定項目にはモデルの種類・学習率・バッチサイズなどが含まれます。
動かしてみた
SkyRL はPython 3.12系での動作が確認されており、pyproject.toml による依存関係の管理と uv.lock によるバージョン固定が設計に組み込まれています。これにより、チームメンバー間や異なるサーバー間でも同じ環境を再現しやすい構造になっています。
リポジトリの中身は skyrl/・skyrl-agent/・skyrl-gym/・skyrl-tx/ という4つのサブパッケージと docs/ ドキュメントフォルダで構成されており、Next.js(ウェブ系のフレームワーク)ベースのドキュメントサイトも同梱されています。
試す前に知っておくとよいことをまとめます。
- 必要なOS: Linux(GPUドライバが使えるもの)推奨
- GPU: NVIDIA A100クラス以上、またはそれに相当するGPUメモリを持つカード
- ディスク容量: モデルの重みや依存ライブラリを含めると数十GB以上が必要です
- Python: 3.12系で動作確認済み
- 依存管理:
uvのロックファイルで再現性を確保しているため、環境の一貫性を保ちやすい構成です
インストール後にブラウザで確認できるドキュメント
SkyRL は大規模なGPUクラスタとモデルの重みが前提のトレーニングフレームワークであるため、ブラウザ上で即時に試せる軽量デモは提供されていません。実際に試す際は、公式ドキュメントのQuickstartやTinker Quickstartを参照し、GPUサーバーまたはクラウド環境(AWS・Modal・Lambda Labsなど)上でセットアップすることをおすすめします。ドキュメントサイト自体はリポジトリの docs/ フォルダに同梱されており、ローカルでも閲覧できます。
実践のコツ — はじめの一歩
フルの訓練を始める前に、段階を踏んで環境を確認すると安心です。
-
まずimportを確認する: 以下のコードを実行してエラーが出なければパッケージが正常に入っています
import skyrl print(skyrl.__file__) -
GPUなしで始められる環境から試す:
skyrl-gymに含まれる数学やSQLなどの環境はGPUなしでも初期化できます。まずローカルでGymnasium APIの動作を確認してから、GPUクラスタへ移行する段階的な進め方がおすすめです -
公式のDevelopment Guideを手元に置く: ローカル開発フローが丁寧に解説されています。詰まったときの最初の参照先にしましょう
-
Dockerイメージを活用する: 依存ライブラリのバージョン問題を避けるために、公式Dockerイメージからスタートするのが手堅い方法です
-
設定ファイルはYAMLで管理する: 訓練の条件(学習率・バッチサイズなど)はYAMLファイルに外出しされているため、コードを書き換えずに実験条件を変えられます
-
サブパッケージは必要な分だけ入れる: すべてを一度にインストールしようとせず、試したい機能に対応するサブパッケージだけを最初に導入するとトラブルが少なくなります
用語とポイント解説
RL(Reinforcement Learning/強化学習) かんたんに言うと「うまくいったら褒め、失敗したら直す」を繰り返してモデルを成長させる仕組みです。人間が正解を全部教えるのではなく、報酬という信号をもとにモデル自身が学んでいきます。LLMの性能を伸ばす手法として近年広く使われています。
PPO / GRPO かんたんに言うと「強化学習のやり方のレシピ」です。どのように報酬を使ってモデルのパラメーターを更新するかを定めたアルゴリズムで、LLMをさらに賢くするRLHF(人間フィードバックによる強化学習)の文脈でよく使われます。SkyRLは両方に対応しています。
Tinker API かんたんに言うと「クラウド上の訓練サービスを呼び出す窓口の仕様」です。Anyscaleが提供するRL訓練サービスのインターフェース規格で、SkyRLはこれと同じ呼び出し方をオンプレミス(自前のサーバー)でも動かせるように実装しています。
Gymnasium API かんたんに言うと「強化学習の練習場を作るときの共通ルール」です。もともとOpenAIが定めた標準インターフェースで、環境の「観測・行動・報酬」をどう定義するかの取り決めです。この仕様に沿って書けば、SkyRL以外のフレームワークとも互換性が保てます。
Ray(レイ) かんたんに言うと「複数のマシンをつないで並列処理するための仕組み」です。SkyRLの分散訓練に使われており、大量のGPUを協調させてモデルを効率よく訓練するための基盤を担っています。Pythonで書かれており、クラウド・オンプレ両方で動きます。
long-horizon(長期タスク) かんたんに言うと「何手も先を考えて行動しなければならないタスク」のことです。1回のやりとりで終わる質問応答と異なり、ターミナルでコマンドを実行したりファイルを書き換えたりしながら最終ゴールに到達するような複雑なタスクを指します。
uv(ユーブイ)
かんたんに言うと「Pythonのライブラリ管理をとても速くしてくれるツール」です。Rustという言語で作られており、従来のpipより大幅に高速です。SkyRLはこのツールを標準として採用しており、uv.lock というファイルで全員が同じバージョンを使えるよう管理します。
SWE-Bench かんたんに言うと「AIがどれだけ実際のソフトウェアのバグを直せるかを測るテスト」です。GitHubの実際のissueとパッチを使って、コード修正エージェントの性能を評価するベンチマークで、SkyRLが対象としている代表的なタスクのひとつです。
フルスタック かんたんに言うと「必要なものが全部ひとまとめになっている」という意味です。SkyRLの文脈では、訓練エンジン・エージェント層・環境ライブラリ・推論バックエンドという4つの役割がひとつのエコシステムに揃っていることを指します。
活用例
-
コード修正エージェントの訓練:
skyrl-agentを使って、コードリポジトリを操作するエージェントをゼロからRL訓練できます。CodeScout(SWE-Benchのコードローカライズでトップ水準)がSkyRL上で実現されており、参考実装として利用できます。 -
Text-to-SQLの精度向上:
skyrl-gymのSQL環境とskyrlを組み合わせることで、少量のサンプルから高精度なSQL生成モデルを育てる研究に活用できます。SkyRL-SQL-7Bは653件のサンプルからGPT-4oを超える水準を達成した事例として知られています。 -
専門領域エージェントの開発: Gymnasium APIに沿って独自の環境クラスを
skyrl-gymに追加するだけで、既存の訓練インフラをそのまま使えます。Biomni-R0(生物医学推論)のように、医療・法律・金融など専門領域のエージェント能力をRLで強化する応用が可能です。 -
クラウドスクリプトをオンプレで動かす: Tinker API向けに書いた訓練スクリプトを、
skyrl-txを通じて自前のGPUサーバー上でそのまま実行できます。クラウドコストを抑えながらスクリプトの書き方を統一したいチームに向いています。 -
新しいRLアルゴリズムの検証: モジュール設計のため、PPOやGRPO以外の新しいアルゴリズムを差し替えて比較実験しやすい構造になっています。学術論文のアイデアを実装して検証する研究環境として活用できます。
-
段階的なエージェント教育パイプラインの構築: 数学・検索・ターミナル操作・コーディングなど複数のタスク環境が揃っているため、まず簡単なタスクで基礎能力を鍛えてから難しいタスクへ移行する、段階的な訓練カリキュラムを設計できます。
SkyRL は「訓練フレームワーク・環境ライブラリ・エージェント層・推論バックエンド」をひとつのOSSエコシステムとして提供する、まとまったLLM強化学習プラットフォームです。GPUインフラを持つ研究チームや企業にとって、既存フレームワークの代替または補完として有力な選択肢になります。ぜひコード修正エージェントの自社訓練やText-to-SQLの精度改善、専門領域エージェントの開発などに活用してみてはいかがでしょうか。