AI ランタイム上のレイ

Note

もしDatabricks classic ComputeでRayを使っているなら、Databricks Runtime MLの Ray on Databricksを参照してください。

RayはPythonワークロードのスケーリングを目的としたオープンソースフレームワークです。 AIランタイム上でRayを動かすなら、基盤となるGPUインフラのプロビジョニングや管理をしなくても可能です。

なぜAIランタイムでRayを使うのか

Rayは、モデルトレーニング、バッチ推論、データ処理、ハイパーパラメータチューニングなどのPythonワークロードの配布に一般的に使われています。 AI Runtimeでは、RayはUnity Catalogボリュームのデータにアクセスし、MLflowで実験を追跡し、本番ワークフローの一部として実行できます。

AI Runtimeでは Ray Core、 Ray Data、 Ray Train、 Ray Tune などの一般的なレイライブラリを使用できます。 既存のRayワークロードは引き続きライブラリの標準APIを使用できます。

レイがAIランタイムでどのように動作するか

すべてのRayアプリケーションはRayクラスタ上で動作し、そのクラスタには1つ以上のノードが含まれることがあります。 AI Runtimeはノードをプロビジョニングし、Rayは利用可能なCPUおよびGPUリソースにわたってタスクやアクターをスケジュールします。 Rayの起動方法は実行インターフェースによります:

インターフェイス ノード Ray を開始する
Notebook ノートブックに接続された単一のノード AI Runtime SDK (ray_init())からdatabricks.airを呼び出す
Databricks コマンドラインインターフェース (CLI) 1つ以上のノードの固定集合 ノード0でヘッドを起動し、残りのノードを再利用可能なブートストラップスクリプトでワーカーとして結合します

ノートブックでRayを使う

ノートブックが AI Runtime GPU コンピューティングに接続されている場合は、Databricks AI Runtime SDK の ray_init() を使用して、接続されたノード上で Ray を起動します。

from databricks.air import ray_init

ray_init()

ray_init() 標準 ray.init() APIを呼び出し、Databricksドライバープロキシ経由でRayダッシュボードへのアクセスを設定し、ノートブック出力にダッシュボードURLを印刷します。 ダッシュボードを使って、コードが実行されている間にRayジョブ、タスク、アクター、ログ、リソース使用状況をチェックできます。

Note

ray_init() 環境バージョン5以上が必要です。 バージョン5では、serverless_gpuではなくdatabricks.airからインポートしてください。 Databricks AI v6にはRayが含まれています。 Standard v6を使う場合は、 ray_init()に連絡する前にRayをインストールしてください。 「 環境を設定する」を参照してください。

ノートブックの例

例 Description
レイコア ハローワールド 非同期GPUタスクを接続された計算に提出し、Rayダッシュボードでスケジューリングを確認し、結果を取得します。
CIFAR-10 ハイパーパラメータチューニングとレイチューン PyTorch画像分類器で並行分数GPU試験を実行し、非同期連続半分アルゴリズム(ASHA)を使って性能不振な構成を早期に止めます。
Qwen2.5-32BのRay DataおよびvLLMによるバッチ推論 8つの永続的vLLMレプリカを8台のH100 GPU上でマルチリンガルバッチ推論を実行し、その結果をUnityカタログのボリュームにParquetとして保存します。

DatabricksのCLIでRayを使いましょう

AIランタイム用のDatabricksのCLIコマンドは、シングルノードのRayワークロードをサポートします。 ワークロード構成では、固定された accelerator_type と num_acceleratorsを指定します。 Qwen2.5-3B Ray Trainのレシピには再利用可能なブートストラップスクリプトが含まれています。 ワークロードのcommandで、RAY_ENTRYPOINTをPythonファイルのパスに設定し、ブートストラップスクリプトを実行します。 ブートストラップスクリプトは以下のことをします:

  • ノード上のレイヘッドを起動し、設定されたエントリポイントを実行します。
  • エントリーポイントが終わると、レイプロセスは停止します。

アプリケーション内で、 ray.init(address="auto")でクラスターに接続します。

標準環境では、ray[data]、ray[train]、ray[tune]などのrayや必要な追加要素をワークロード依存関係に追加します。 Databricks AI v6にはRayが含まれています。

CLI の例

例 Description
Qwen2.5-3BによるRay Trainを用いた微調整 Qwen2.5-3Bを8xのH100ノード上でGPUごとに分散データパラレルワーカー1つにして微調整します。
Ray Data と vLLM を使用したバッチ推論 Qwen2.5-7B-Instructで回答を生成し、その結果をParquetとしてUnityカタログのボリュームに書き込みます。

データと Databricks の機能を使用する

RayワークロードはUnity Catalogボリュームのデータにアクセスし、MLflowで実行を記録し、宣言的自動化バンドルで定義されたLakeflowジョブタスクとして実行できます。

Unity カタログにおけるデータへのアクセス

Unityカタログテーブル内の表形式データについては、 ray.data.read_databricks_tables() を使ってテーブルを読み込んだり、DatabricksのSQLウェアハウスでSQLクエリを実行したりします。 倉庫ID、カタログ、スキーマを指定してください。AI RuntimeはローカルのSparkセッションを提供しません。 SQLを使って、Rayが結果を処理する前に結合、集約、フィルターを実行できます。

ファイルベースや非構造化データの場合は、Unity Catalogボリュームをご利用ください。 レイワーカーは /Volumes/<catalog>/<schema>/<volume>/... パスを使ってファイルにアクセスできます。 例えば、Ray DataはParquetファイルを ray.data.read_parquet() で読み取り、 Dataset.write_parquet()で結果を書き込むことができます。

ワークロードを追跡して統合管理

MLflowを使って、Rayワークロードのパラメータ、指標、アーティファクトを記録しましょう。 「 実験の追跡と観測可能性」を参照してください。

ワークロードをスケジュール化したり、CPUのデータ準備タスクで組み合わせる場合は、Lakeflow JobsとDeclarative Automation Bundlesをご利用ください。 「GPU ワークロードのスケジュール設定とタスクの作成」を参照してください。

既存のRayワークロードの移行

セルフマネージドのRayワークロードの移行には、インフラ構成やサービス統合をAIランタイム実行モデルに置き換えることが含まれます。

ワークロードを評価する

移行前に制限を確認してください。 ワークロードが1種類のアクセラレータで固定サイズのクラスタで動作可能か確認してください。

ワークロードを移行する

セルフマネージドのRayワークロードを移行するには:

  1. 対話型開発にはノートブックを、ジョブの送信には Databricks CLI を選択してください。
  2. 既存のクラスターリソースをAIランタイムのアクセラレータタイプとアクセラレータ数にマッピングします。 詳細は、ハードウェア を参照してください。
  3. ノートブック内の既存のクラスター起動処理を ray_init() に置き換えるか、Databricks CLI ワークロードに記載されているブート ストラップ スクリプトを使用してください。
  4. ワークロードのPython依存関係を宣言し、データ、チェックポイント、モデル、出力パスを更新します。
  5. 最小の適用構成でワークロードを検証します。 意図した固定トポロジーをテストする前に、データアクセス、リソースリクエスト、出力を確認してください。

Limitations

AIランタイム上のRayには以下の制限があります:

  • Rayクラスターは、ワークロード期間中固定されたノード数を持っています。 レイクラスターのオートスケーリングはサポートされていません。
  • ワークロード内のすべてのノードは同じ accelerator_typeを使用します。 RayクラスターはCPU専用とGPUワーカーグループを別々に含めたり、CPUとGPUの容量を独立してスケールさせることもできません。
  • Azure Databricksドライバープロキシを通じたRayダッシュボードへのアクセスはノートブックワークロードのみに利用可能です。
  • RayはノートブックとDatabricksのCLIワークロードの両方で単一のノード上で動作します。

Tip

CPU準備とGPU処理が別々の段階として動作できる場合は、マルチタスクのLakeflowジョブを使用し、Unityカタログボリュームを通じてタスク間でデータをやり取りします。