CLIツール
radixark/miles avatar
radixark/miles

Milesは大規模LLMとVLM向けのRLポストトレーニング基盤

このプロジェクトは「Miles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.」を基盤として、実践的に使えるオープンソース実装を提供し、再利用可能なツールチェーンと統合手段を備えています。

スター 2,886フォーク 496PythonApache-2.0

ひと目でわかる

これは何?
SGLangの高スループットrolloutとMegatron-LMの分散学習を組み合わせ、非同期RL、低精度学習、MoE経路再現、耐障害性を扱うApache-2.0フレームワークです。
誰に向いている?
大規模モデルのRLポストトレーニングをGPUクラスタで行い、rolloutと学習のずれを観測したいチーム向けです。小規模GPUや単一モデルの試作には運用負荷が大きくなり得ます。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

SGLangとMegatronの分担

MilesはSGLangをrollout、Megatron-LMをスケーラブルなtrainingに使います。PyTorch FSDP2 backendもありますが、recipe、parallelism、最大モデルはMegatron側に寄るとREADMEにあります。実験では生成worker、trainer、通信経路を分け、どこでGPUメモリと時間を消費するかを記録します。

SGLangとMegatronの分担を試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

非同期RLの観測点

rolloutとtraining workerを分離し、on-policyとoff-policyのschedule、async rollout、eval modeを設定できます。agentic workloadではrouterがSGLang engineへ要求を配分し、metadataを保ち、health checkを行います。worker数、待ち時間、queue、評価時点を固定し、スループットだけを比較しません。

非同期RLの観測点を試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

重み更新と低精度

P2P RDMAを使う構成では新しい重みをengineへloop内で渡し、READMEはtrillion parameter modelで秒単位と説明します。MXFP8、NVFP4、FP8、INT4 QAT、BF16、FP16を扱います。GPU、通信方式、precision、loss、発散の有無を同じrecipeで記録し、自称性能と実測を分けます。

重み更新と低精度を試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

TITOとMoE routing

Token-in-token-outはrolloutとtraining間のdetokenizeとretokenizeを避け、R3はrollout時のexpert routingをtrainerのforwardで再生します。これらは大規模MoEの不一致を扱う設計です。token列、routing情報、trainer入力、再現したlossを保存し、単なる生成品質の差と混同しません。

TITOとMoE routingを試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

耐障害性と環境

SGLang engine停止時に復旧してrunを継続するfault toleranceを掲げます。実験用に一台のengineを停止し、再起動時間、未処理rollout、checkpoint、学習step、最終出力を照合します。対応GPUはNVIDIAのGB300からA100、AMD MI300XからMI355Xまで列挙されていますが、機種ごとのstatusはInstallationで確認します。

耐障害性と環境を試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

recipeと採用規模

GRPO、GSPO、PPO、REINFORCE++、SFT、on-policy distillation、codingやcomputer-useのagentic environmentを扱い、Miles-diffusionではFlow-GRPOなども対象です。最初は一つのrecipeとSupported Modelsにあるモデルへ限定し、launch設定、container image、GPU数、checkpoint、評価指標を保存します。大規模運用へ広げる前に失敗復帰を再実行します。

recipeと採用規模を試す際は、READMEに書かれた対象版と依存を固定します。入力となるファイル、音声、画像、モデル、会話fixture、設定ファイルを検証用の複製に限定し、実行前の状態を保存します。実行後は画面表示だけでなく標準出力、標準エラー、終了コード、生成物、保存データを照合します。失敗した場合もログを残し、同じ入力で再実行して結果が一致するかを調べます。別の版や環境で差が出た時は、その差を性能向上と決めつけず、依存、権限、ネットワーク、機器条件のどれが変わったかを記録します。

編集部の結論

大規模モデルのRLポストトレーニングをGPUクラスタで行い、rolloutと学習のずれを観測したいチーム向けです。小規模GPUや単一モデルの試作には運用負荷が大きくなり得ます。まず公式InstallationとSupported Modelsを読み、対応GPU、recipe、rollout、チェックポイント復帰を小さな実験で確認してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート