Ray は、AI および Python アプリケーションをスケーリングするためのオープンソース フレームワークです。Ray は、機械学習(ML)ワークフローの分散コンピューティングと並列処理を実現するためのインフラストラクチャを提供します。
すでに Ray を使用している場合は、同じオープンソースの Ray コードを使用して、最小限の変更でプログラムを作成し、Vertex AI でアプリケーションを開発できます。これにより、ML ワークフローの一部として、Vertex AI Prediction や BigQuery など、他の Google Cloud サービスとの Vertex AI のインテグレーションを使用できます。
すでに Vertex AI を使用していて、コンピューティング リソースをより簡単に管理する必要がある場合は、Ray コードを使用してトレーニングをスケールできます。
Ray on Vertex AI を使用するためのワークフロー
Colab Enterprise と Vertex AI SDK for Python を使用して Ray クラスタに接続します。
ステップ | 説明 |
---|---|
1. Ray on Vertex AI を設定する | Google プロジェクトを設定し、Ray Client の機能を含むバージョンの Vertex AI SDK for Python をインストールして、VPC ピアリング ネットワークを設定(オプション)します。 |
2. Vertex AI に Ray クラスタを作成する | Vertex AI に Ray クラスタを作成します。Vertex AI の管理者ロールが必要です。 |
3. Vertex AI で Ray アプリケーションを開発する | Vertex AI の Ray クラスタに接続してアプリケーションを開発します。Vertex AI のユーザーロールが必要です。 |
4. (省略可)BigQuery で Ray on Vertex AI を使用する | BigQuery を使用してデータの読み取り、書き込み、変換を行います。 |
5. (省略可)Vertex AI にモデルをデプロイして予測を取得する | Vertex AI オンライン エンドポイントにモデルをデプロイして、予測を取得します。 |
6. Vertex AI で Ray クラスタをモニタリングする | 生成されたログは Cloud Logging でモニタリングし、指標は Cloud Monitoring でモニタリングします。 |
7. Vertex AI の Ray クラスタを削除する | 不要な課金を避けるため、Vertex AI の Ray クラスタを削除します。 |
概要
Ray クラスタは、重要な ML ワークロードやピークシーズンに十分な容量を確保するために組み込まれています。ジョブの完了後にトレーニング サービスがリソースを解放するカスタムジョブとは異なり、Ray クラスタは削除されるまで使用できます。
注: 次のシナリオでは、長時間実行の Ray クラスタを使用します。
- 同じ Ray ジョブを複数回送信する場合、同じ長時間実行 Ray クラスタでジョブを実行することで、データと画像のキャッシュのメリットを活用できます。
- 実際の処理時間がジョブの起動時間よりも短い、短期的な Ray ジョブを多数実行する場合は、長時間実行クラスタを使用すると効果的です。
Vertex AI の Ray クラスタは、パブリック接続またはプライベート接続で設定できます。次の図では、Ray on Vertex AI のアーキテクチャとワークフローを示します。詳細については、パブリック接続またはプライベート接続をご覧ください。
パブリック接続を使用したアーキテクチャ
次のオプションを使用して、Vertex AI に Ray クラスタを作成します。
a. Google Cloud コンソールを使用して Vertex AI に Ray クラスタを作成します。
b. Vertex AI SDK for Python を使用して Vertex AI に Ray クラスタを作成します。
次のオプションを使用して、Vertex AI の Ray クラスタに接続し、インタラクティブな開発を行います。
a. Google Cloud コンソールで Colab Enterprise を使用して、シームレスに接続します。
b. 公共のインターネットにアクセスできる Python 環境を使用します。
Vertex AI の Ray クラスタでアプリケーションを開発し、モデルをトレーニングします。
任意の環境(Colab Enterprise または Python ノートブック)で Vertex AI SDK for Python を使用します。
任意の環境を使用して Python スクリプトを作成します。
Vertex AI SDK for Python、Ray Job CLI、または Ray Job Submission API を使用して、Vertex AI の Ray クラスタに Ray ジョブを送信します。
ライブ予測のために、トレーニング済みモデルをオンライン Vertex AI エンドポイントにデプロイします。
BigQuery を使用してデータを管理します。
VPC を使用したアーキテクチャ
次の図に、Google Cloud プロジェクトと VPC ネットワーク(オプション)を設定した後の Ray on Vertex AI のアーキテクチャとワークフローを示します。
(a)Google プロジェクトと(b)VPC ネットワークを設定します。
次のオプションを使用して、Vertex AI に Ray クラスタを作成します。
a. Google Cloud コンソールを使用して Vertex AI に Ray クラスタを作成します。
b. Vertex AI SDK for Python を使用して Vertex AI に Ray クラスタを作成します。
次のオプションを使用して、VPC ピアリング ネットワーク経由で Vertex AI 上の Ray クラスタに接続します。
Google Cloud コンソールで Colab Enterprise を使用します。
Vertex AI Workbench ノートブックを使用する。
Vertex AI の Ray クラスタでアプリケーションを開発し、次のオプションを使用してモデルをトレーニングします。
任意の環境(Colab Enterprise または Vertex AI Workbench ノートブック)で Vertex AI SDK for Python を使用します。
任意の環境を使用して Python スクリプトを作成します。Vertex AI SDK for Python、Ray Job CLI、または Ray ダッシュボードを使用して、Vertex AI の Ray クラスタに Ray ジョブを送信します。
予測のために、トレーニング済みモデルをオンライン Vertex AI エンドポイントにデプロイします。
BigQuery を使用してデータを管理します。
料金
Vertex AI での Ray の料金は次のように計算されます。
使用するコンピューティング リソースは、Vertex AI に Ray クラスタを作成するときに選択したマシン構成に基づいて課金されます。Vertex AI の Ray の料金については、料金ページをご覧ください。
Ray クラスタの場合、料金は RUNNING と UPDATING 状態のときにのみ発生します。他の状態では課金されません。課金される金額は、その時点での実際のクラスタサイズに基づきます。
Vertex AI で Ray クラスタを使用してタスクを実行する場合、ログが自動的に生成され、Cloud Logging の料金に基づいて課金されます。
オンライン予測用のエンドポイントにモデルをデプロイする場合は、Vertex AI の料金ページの予測と説明セクションをご覧ください。
Vertex AI の Ray と BigQuery を使用する場合は、BigQuery の料金をご覧ください。