この記事では、KubeRay オペレーターを使用して Azure Kubernetes Service (AKS) 上に Ray クラスターをデプロイする方法について説明します。 また、Ray クラスターを使用して単純な機械学習モデルをトレーニングし、結果を Ray ダッシュボードに表示する方法についても説明します。
重要
オープンソース ソフトウェアは、AKS のドキュメントとサンプル全体で説明されています。 デプロイするソフトウェアは、AKS サービス レベル アグリーメント、限定保証、Azure サポートから除外されます。 AKS と共にオープンソース テクノロジを使用する場合は、それぞれのコミュニティとプロジェクト保守担当者から受けられるサポート オプションを調べ、計画を策定してください。
Microsoft は、AKS 上に展開するオープンソース パッケージを構築する責任を負います。 その責任には、ビルド、スキャン、署名、検証、修正プログラム プロセスの完全な所有権と、コンテナー イメージ内のバイナリの制御権が伴います。 詳細については、AKS の脆弱性管理に関するページと「AKS のサポート範囲」を参照してください。
Ray とは
Ray は、UC Berkeley の RISE ラボで開発されたオープン ソース プロジェクトであり、AI と Python アプリケーションをスケーリングするための統合フレームワークを提供するものです。 これは、コア分散ランタイムと、機械学習ワークロードを高速化するよう設計された一連の AI ライブラリとで構成されています。
Ray を使用すると、コンピューティング集中型の Python タスクを大規模に実行するプロセスが簡素化され、アプリケーションをシームレスにスケーリングできます。 このフレームワークでは、分散トレーニング、ハイパーパラメーター調整、強化学習、運用モデル提供など、さまざまな機械学習タスクがサポートされています。
詳細については、「Ray GitHub リポジトリ」を参照してください。
KubeRay とは
KubeRay は、Kubernetes に Ray クラスターをデプロイして管理するためのオープンソースの Kubernetes オペレーターです。 KubeRay により、Ray クラスターのデプロイ、スケーリング、監視が自動化されます。 これにより、Kubernetes カスタム リソースを使用して Ray クラスターを定義する宣言型の方法が提供され、Ray クラスターを他の Kubernetes リソースと共に簡単に管理できるようになります。
詳細については、「KubeRay GitHub リポジトリ」を参照してください。
Ray のデプロイ プロセス
デプロイのプロセスは、次の手順で構成されます。
- Terraform を使用してローカル プラン ファイルを作成し、Azure リソース グループ、専用のシステム ノード プール、Ray のワークロード ノード プールと 3 つのノードで構成される、インフラストラクチャに必要な AKS インフラストラクチャにとって望ましい状態を定義します。
- ローカルの Terraform プランを Azure にデプロイします。
- Terraform デプロイから出力を取得し、新しくデプロイされた AKS クラスターの Kubernetes 資格情報を取得します。
- Helm Ray リポジトリをインストールし、Helm を使用して KubeRay を AKS クラスターにデプロイします。
- Ray Job YAML マニフェストを Ray GitHub サンプル リポジトリからダウンロードして実行し、畳み込みニューラル ネットワーク (CNN) を使用して、MNIST データセットを使用して画像分類を実行します。
- Ray Job からログを出力して、Ray によって実行される機械学習プロセスに関する分析情報を取得します。
次のステップ
共同作成者
Microsoft では、この記事を保持しています。 最初の寄稿者は次のとおりです。
- Russell de Pina | プリンシパル TPM
- Ken Kilty | プリンシパル TPM
- Erin Schaffer |コンテンツ開発者 2
- Adrian Joian | プリンシパル カスタマー エンジニア
- Ryan Graham | プリンシパル テクニカル スペシャリスト