ray について
ray は、本番環境の Ray における従来型機械学習 API のリファレンススキルです。分散トレーニング、データ処理、チューニング、サービング、クラスターを扱う開発者向けに、Ray 2.57.0 の API 変更と古いコードの問題をまとめています。
主な機能
- 01Ray の 6 分野にわたる 26 のルール
- 02Ray Train、Serve、Data、Core、Tune のガイダンス
- 03KubeRay と本番クラスターの運用方法
- 04Ray 2.57.0 で検証した例
活用シーン
- 01分散トレーニングとチェックポイントのコードレビュー
- 02Ray Data パイプラインと Tune の探索の構築
- 03Ray Serve のデプロイ設定の更新
- 04KubeRay 本番インフラの評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rayインストール後、Claude Code で/rayを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mdcore-classic-traps-residue.mdcore-object-store-sizing.mdcore-retries-system-failures-only.mdcore-state-api-not-ray-state.mddata-compute-not-concurrency.mddata-iter-torch-batches-not-to-torch.mddata-override-num-blocks.mddata-streaming-replaced-pipelines.mddata-zero-copy-read-only-batches.mdprod-baked-images-not-runtime-env.mdprod-gcs-ft-redis.mdprod-jobs-api-not-head-driver.mdprod-kuberay-crd-choice.mdprod-metrics-wiring.mdserve-autoscaling-current-fields.mdserve-deployment-response-handles.mdserve-max-ongoing-requests.mdserve-placement-controls.mdserve-run-build-deploy.mdtrain-configs-from-ray-train-elastic.mdtrain-prepare-model-and-loader.mdtrain-report-not-air-session.mdtrain-v2-default-changed-semantics.mdtune-driver-function-not-trainer.mdtune-runconfig-from-ray-tune.mdtune-tuner-canonical.md詳細
Ray
本番環境で使用できるオープンソースの Ray を対象とした、ライブラリ参照用スキルです。トレーニングからサービングまでを網羅する、6 つのカテゴリにわたる 26 のルールを収録しています。Ray の API は 2.x 系を通じて大きく変化しました(Train V2 がデフォルトになり、Serve ではパラメーターやハンドルクラスが完全に削除され、Ray Data では非推奨化が撤回されました)。そのため、旧バージョンの情報に精通したモデルが生成したコードは、警告やエラーを出したり、気付かないうちに別の意味になったりします。各ルールでは、修正対象となる誤ったデフォルトを明示しています。十分な能力を持つモデルがすでに正しく扱えることについては、ルールを設けていません。
対象範囲は、セルフホストの KubeRay クラスター上で動作する従来型の機械学習向け Ray です。LLM サービングとバッチ推論(ray.serve.llm、ray.data.llm)は、兄弟スキルである ray-llm の対象です。
ray 2.57.0(Python ≥ 3.10)に固定しています。API に関する記述は、展開した 2.57.0 の wheel に照らして検証済みです。従来型の機械学習の例は、稼働中のローカル Ray 2.57.0 ランタイムで実行して検証しました。
適用する場面
- 分散トレーニングコードの作成やレビュー —
TorchTrainer、ScalingConfig、チェックポイント、フォールトトレランス - Ray Data によるデータパイプラインの構築 — 読み込み、
map_batches、GPU 推論プール、トレーニング用データ取り込み - Ray Tune によるハイパーパラメーターの探索 — 特に Ray Train と組み合わせる場合
- Ray Serve デプロイメントの作成やレビュー — スケーリング、ハンドル、構成、本番環境向け設定
- Ray Core のプリミティブの直接使用 — タスク、アクター、オブジェクトストア、再試行
- 本番環境向け Ray インフラストラクチャの構築やレビュー — KubeRay CRD、ジョブの送信、フォールトトレランス、可観測性
ルールカテゴリ
| # | カテゴリ | プレフィックス | 対象 |
|---|---|---|---|
| 1 | Ray Train | train- | デフォルトの Train V2(非推奨の設定フィールド)、ray.air session よりも ray.train.report を使う方法、設定のインポートとエラスティックスケーリング、prepare_model/prepare_data_loader ラッパー |
| 2 | Ray Serve | serve- | max_ongoing_requests(旧名称は削除済み)、現在の自動スケーリング用フィールド、DeploymentResponse ハンドル、serve.run/build/deploy のライフサイクル、レプリカ配置オプション |
| 3 | Ray Data | data- | compute= の戦略(concurrency の変更)、override_num_blocks、パイプラインに代わるストリーミング実行、PyTorch のデータ取り込み、ゼロコピーの読み取り専用バッチ |
| 4 | Ray Core | core- | 従来のアンチパターンに残る見落としやすい影響、再試行/再起動のデフォルト、オブジェクトストアと /dev/shm のサイズ設定、ray.util.state |
| 5 | Ray Tune | tune- | 正式な方法としての Tuner(tune.run の実際の位置付けも含む)、ray.tune.RunConfig のインポート、ドライバー関数による Train との連携 |
| 6 | 本番環境とクラスター | prod- | KubeRay CRD の選択、Jobs API による送信、Redis を使った GCS のフォールトトレランス、ビルド済みイメージと runtime_env の比較、Prometheus/Grafana の接続 |
クイックリファレンス
1. Ray Train
train-v2-default-changed-semantics— 2.51 以降は V2 がデフォルトです。sync_config/verbose/fail_fastは削除されていますtrain-report-not-air-session—ray.train.report(metrics, checkpoint=)を使用します。ray.airはレガシー向けの互換レイヤーですtrain-configs-from-ray-train-elastic— V2 設定のインポート、エラスティックなnum_workers=(min, max)、大文字と小文字を区別するリソースキーtrain-prepare-model-and-loader—prepare_model/prepare_data_loaderを使わない場合、N 個のワーカーが同期されないコピーをそれぞれトレーニングします
2. Ray Serve
serve-max-ongoing-requests—max_concurrent_queriesは削除されています。max_ongoing_requests(デフォルトは 5)とmax_queued_requestsを使用しますserve-autoscaling-current-fields—target_ongoing_requests、*_factorフィールド、num_replicas="auto"、ゼロへのスケールserve-deployment-response-handles—DeploymentResponse.result()/awaitを使用し、ray.getは決して使用しません。.bind()による合成serve-run-build-deploy—serve.runとserve build/deployを使用します。Deployment.deploy()の時代は終わりましたserve-placement-controls—max_replicas_per_node、レプリカごとの配置グループ、ギャングスケジューリング、リクエストルーター
3. Ray Data
data-compute-not-concurrency—concurrency=は(再び)非推奨です。compute=ActorPoolStrategy/TaskPoolStrategyを使用しますdata-override-num-blocks— 読み取り API ではparallelismは非推奨ですdata-streaming-replaced-pipelines—DatasetPipeline/window/repeatは削除されました。実行は消費時にストリームとして行われますdata-iter-torch-batches-not-to-torch—to_torchは廃止されました。iter_torch_batchesと Train のデータセットシャードを使用しますdata-zero-copy-read-only-batches— バッチはデフォルトで読み取り専用ビューです。batch_sizeを明示的に設定してください
4. Ray Core
core-classic-traps-residue— 古典的なアンチパターンに残る、見落としやすい問題:ray.waitによる排出、クロージャー/グローバル変数のコピー、タスク実行時間の数ミリ秒単位の下限core-retries-system-failures-only—retry_exceptionsはオプトインです。アクターはデフォルトでは再起動しませんcore-object-store-sizing— デフォルトは 30%、コンテナでは/dev/shm、ローカルディスクへのスピルcore-state-api-not-ray-state—ray.stateは廃止されました。イントロスペクション API にはray.util.stateを使用します
5. Ray Tune
tune-tuner-canonical— API はTunerです。tune.runはレガシーですが、削除されてはいませんtune-runconfig-from-ray-tune— Tuner が受け取るのはray.tune.RunConfigであり、ray.trainやray.airのものではありませんtune-driver-function-not-trainer— Trainer を Tuner 内で使う方法は非推奨です。ドライバー関数とwith_resourcesを使用します
6. 本番環境とクラスター
prod-kuberay-crd-choice— RayCluster と RayJob(shutdownAfterJobFinishesのデフォルトは false)と RayServiceprod-jobs-api-not-head-driver— 長時間稼働するクラスターではray job submitを使用します。Ray Client は開発用ツールですprod-gcs-ft-redis— RayService でヘッドノードのクラッシュ後も稼働を維持するには、外部 Redis GCS が必要ですprod-baked-images-not-runtime-env— 本番環境の依存関係はイメージに含めます。runtime_env(現在はuv、image_uriも含む)は反復開発用ですprod-metrics-wiring— ダッシュボードで時系列を表示するには、外部の Prometheus/Grafana が必要です
使い方
該当する判断が必要になったら、リファレンスファイルを読んでください。各ルールでは、修正対象となる誤ったデフォルトを示したうえで、正規の方法を説明します(誤った方法と正しい方法の対比は、誤った方法が実際に問題となる場合にのみ示します)。
- セクションの定義 — カテゴリー構成
- ルールのテンプレート — ルールの追加用
- AGENTS.md — すべてのルールを含む目次を自動生成します
関連するスキル
ray-llm— Ray 上での LLM サービング(ray.serve.llm)とバッチ推論(ray.data.llm)用の姉妹ルールパックですmlflow-3— 実験トラッキングとモデルレジストリです。MLOps サイクルのトラッキング側で Ray Train と組み合わせて使用します
参照ファイル
| ファイル | 説明 |
|---|---|
| references/_sections.md | カテゴリーの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンとソースの参照 |