Azure Machine Learning でのコンピューティング ターゲットとは
"コンピューティング ターゲット" とは、トレーニング スクリプトを実行したり、サービスのデプロイをホストしたりする、指定されたコンピューティング リソースまたは環境のことです。 この場所は、ローカル コンピューターでも、クラウドベースのコンピューティング リソースでもかまいません。 コンピューティング ターゲットを使用すると、コードを変更しなくても、後でコンピューティング環境を容易に変更できます。
Azure Machine Learning では、異なるコンピューティング先に対してさまざまなサポートが提供されています。 一般的なモデル開発ライフサイクルでは、次のことを行う可能性があります。
- 最初に、少量のデータを開発して実験します。 この段階では、コンピューティング ターゲットとしてローカル環境 (ローカル コンピューターやクラウド ベースの仮想マシン (VM) など) を使用します。
- より大きなデータにスケールアップするか、またはこれらのトレーニング コンピューティング ターゲットのいずれかを使用して分散トレーニングを実行します。
- モデルの準備ができたら、これらのデプロイ コンピューティング ターゲットのいずれかを使用して、そのモデルを Web ホスティング環境にデプロイします。
コンピューティング ターゲットに使用するコンピューティング リソースはワークスペースにアタッチされています。 ローカル コンピューター以外のコンピューティング リソースは、ワークスペースのユーザーによって共有されます。
コンピューティング ターゲットのトレーニング
より大規模なデータセットにトレーニングをスケールアップする、または分散トレーニングを実行する段階で、Azure Machine Learning コンピューティングを使用して、ジョブを送信するたびに自動スケーリングするシングルノードまたはマルチノード クラスターを作成します。 また、独自のコンピューティング リソースを接続することもできますが、シナリオごとにサポートは異なることがあります。
コンピューティング ターゲットは、各トレーニング ジョブで順に再利用できます。 たとえば、リモート VM をワークスペースにアタッチした後、複数のジョブでそれを再利用できます。 機械学習パイプラインの場合は、各コンピューティング ターゲットに対して、適切なパイプライン ステップを使用します。
ほとんどのジョブのトレーニング コンピューティング ターゲットには、次のいずれかのリソースを使用できます。 一部のリソースは、自動機械学習、機械学習パイプライン、またはデザイナーで使用することができません。 Azure Databricks は、ローカル実行および機械学習パイプライン用のトレーニング リソースとして使用できますが、他のトレーニング用のリモート ターゲットとしては使用できません。
トレーニング ターゲット | 自動機械学習 | Machine Learning パイプライン | Azure Machine Learning デザイナー |
---|---|---|---|
ローカル コンピューター | はい | ||
Azure Machine Learning コンピューティング クラスター | はい | イエス | はい |
Azure Machine Learning サーバーレス コンピューティング | はい | イエス | はい |
Azure Machine Learning コンピューティング インスタンス | はい (SDK を使用) | はい | はい |
Azure Machine Learning Kubernetes | はい | はい | |
リモート VM | はい | はい | |
Apache Spark プール (プレビュー) | はい (SDK ローカル モードのみ) | はい | |
Azure Databricks | はい (SDK ローカル モードのみ) | はい | |
Azure Data Lake Analytics | はい | ||
Azure HDInsight | はい | ||
Azure Batch | はい |
ヒント
コンピューティング インスタンスには 120 GB の OS ディスクがあります。 ディスク領域が不足する場合は、コンピューティング インスタンスを停止または再起動する前に、ターミナルを使用して少なくとも 1 GB から 2 GB をクリアしてください。
推論のコンピューティング先
推論を実行すると、Azure Machine Learning によって、モデルおよびそれを使用するために必要な関連リソースをホストする Docker コンテナーが作成されます。 それから、このコンテナーをコンピューティング先で使用します。
モデルをホストするために使用するコンピューティング先は、デプロイされたエンドポイントのコストと可用性に影響します。 次のテーブルを使用して、適切なコンピューティング先を選択します。
コンピューティング ターゲット | 使用目的 | GPU のサポート | 説明 |
---|---|---|---|
Azure Machine Learning エンドポイント | リアルタイムの推論 バッチ推論 |
はい | サーバーレス コンピューティングでのリアルタイム (マネージド オンライン エンドポイント) とバッチ スコアリング (バッチ エンドポイント) 用のフル マネージド コンピューティング。 |
Azure Machine Learning Kubernetes | リアルタイムの推論 バッチ推論 |
はい | オンプレミス、クラウド、エッジの Kubernetes クラスターで推論ワークロードを実行します。 |
コンピューティング ターゲット | 使用目的 | GPU のサポート | 説明 |
---|---|---|---|
ローカル Web サービス | テスト/デバッグ | 制限付きのテストとトラブルシューティングに使用。 ハードウェア アクセラレーションは、ローカル システムでのライブラリの使用に依存します。 | |
Azure Machine Learning Kubernetes | リアルタイムの推論 | はい | クラウドで推論ワークロードを実行します。 |
Azure Container Instances | リアルタイムの推論 開発/テスト目的でのみ推奨されます。 |
必要な RAM が 48 GB より少ない低スケール CPU ベース ワークロードに使用。 クラスターを管理する必要はありません。 サイズが 1 GB 未満のモデルにのみ適しています。 デザイナーでサポートされています。 |
注意
クラスター SKU を選択する場合は、まずスケールアップしてからスケールアウトします。モデルで必要とされる RAM の 150% が搭載されたマシンから始め、結果をプロファイルして、必要なパフォーマンスを備えたマシンを見つけます。 これについて学習した後は、同時推定のニーズに合うようにマシンの数を増やします。
Azure Machine Learning コンピューティング (マネージド)
Azure Machine Learning では、マネージド コンピューティング リソースの作成と管理が行われます。 この種のコンピューティングは、機械学習ワークロード向けに最適化されています。 Azure Machine Learning コンピューティング クラスター、サーバーレス コンピューティング、コンピューティング インスタンスだけがマネージド コンピューティングです。
サーバーレス コンピューティングを作成する必要はありません。 Azure Machine Learning コンピューティング インスタンスまたはコンピューティング クラスターは次の場所から作成できます。
- Azure Machine Learning スタジオ
- Python SDK および Azure CLI:
- Azure Resource Manager テンプレート。 テンプレートの例については、Azure Machine Learning コンピューティング クラスターの作成に関する記事を参照してください。
Note
コンピューティング クラスターを作成する代わりに、サーバーレス コンピューティングを使って、コンピューティングのライフサイクル管理を Azure Machine Learning にオフロードします。
作成されると、これらのコンピューティング リソースは、他の種類のコンピューティング ターゲットとは異なり、自動的にワークスペースの一部になります。
機能 | コンピューティング クラスター | コンピューティング インスタンス |
---|---|---|
シングルノードまたはマルチノード クラスター | ✓ | シングル ノード クラスター |
ジョブを送信するたびに自動スケーリング | ✓ | |
自動でのクラスター管理とジョブ スケジューリング | ✓ | ✓ |
CPU と GPU の両方のリソースをサポートします | ✓ | ✓ |
注意
コンピューティングがアイドル状態の場合に課金されないようにするには、次のようにします。
- コンピューティング "クラスター" の場合は、ノードの最小数を 0 に設定するか、サーバーレス コンピューティングを使用してください。
- コンピューティング "インスタンス" の場合は、アイドリングからのシャットダウンを有効にします。 コンピューティング インスタンスを停止するとコンピューティング時間の課金は停止されますが、ディスク、パブリック IP、Standard Load Balancer に対しては引き続き課金されます。
サポートされている VM シリーズおよびサイズ
重要
コンピューティング インスタンスやコンピューティング クラスターがこれらのシリーズのいずれかをベースにしている場合は、別の VM サイズで再作成してください。
これらのシリーズは、2023 年 8 月 31 日に廃止されました:
これらのシリーズは、2024 年 8 月 31 日に廃止されました:
Azure Machine Learning でマネージド コンピューティング リソースのノード サイズを選択すると、Azure で使用可能な VM サイズの中から選択できます。 Azure では、さまざまなワークロードに対応する Linux および Windows の幅広いサイズが提供されています。 詳細については、VM の種類とサイズに関するページを参照してください。
VM サイズを選択する際には次のような例外と制限事項があります。
- 一部の VM シリーズは、Azure Machine Learning でサポートされていません。
- GPU やその他の特別な SKU など、一部の VM は使用可能な VM の一覧に最初は表示されないことがあります。 ただし、クォータの変更を要求すれば、それらも使用できます。 クォータの要求について詳しくは、「クォータと制限の増加を要求」を参照してください。
サポートされているシリーズの詳細については、次の表を参照してください。
サポートされている VM シリーズ | カテゴリ | サポートしているもの |
---|---|---|
DDSv4 | 汎用 | コンピューティングのクラスターとインスタンス |
Dv2 | 汎用 | コンピューティングのクラスターとインスタンス |
Dv3 | 汎用 | コンピューティングのクラスターとインスタンス |
DSv2 | 汎用 | コンピューティングのクラスターとインスタンス |
DSv3 | 汎用 | コンピューティングのクラスターとインスタンス |
EAv4 | メモリ最適化 | コンピューティングのクラスターとインスタンス |
Ev3 | メモリ最適化 | コンピューティングのクラスターとインスタンス |
ESv3 | メモリ最適化 | コンピューティングのクラスターとインスタンス |
FSv2 | コンピューティング最適化 | コンピューティングのクラスターとインスタンス |
FX | コンピューティング最適化 | コンピューティング クラスター |
H | ハイ パフォーマンス コンピューティング | コンピューティングのクラスターとインスタンス |
HB | ハイ パフォーマンス コンピューティング | コンピューティングのクラスターとインスタンス |
HBv2 | ハイ パフォーマンス コンピューティング | コンピューティングのクラスターとインスタンス |
HBv3 | ハイ パフォーマンス コンピューティング | コンピューティングのクラスターとインスタンス |
HC | ハイ パフォーマンス コンピューティング | コンピューティングのクラスターとインスタンス |
LSv2 | ストレージ最適化 | コンピューティングのクラスターとインスタンス |
M | メモリ最適化 | コンピューティングのクラスターとインスタンス |
NC | GPU | コンピューティングのクラスターとインスタンス |
NC Promo | GPU | コンピューティングのクラスターとインスタンス |
NCv2 | GPU | コンピューティングのクラスターとインスタンス |
NCv3 | GPU | コンピューティングのクラスターとインスタンス |
ND | GPU | コンピューティングのクラスターとインスタンス |
NDv2 | GPU | コンピューティングのクラスターとインスタンス |
NV | GPU | コンピューティングのクラスターとインスタンス |
NVv3 | GPU | コンピューティングのクラスターとインスタンス |
NCasT4_v3 | GPU | コンピューティングのクラスターとインスタンス |
NDasrA100_v4 | GPU | コンピューティングのクラスターとインスタンス |
これらの VM シリーズは Azure Machine Learning でサポートされていますが、すべての Azure リージョンで使用できるとは限りません。 VM シリーズが使用可能かどうかを確認するには、「リージョン別の利用可能な製品」を参照してください。
注意
Azure Machine Learning は、Azure Compute がサポートするすべての VM サイズをサポートしているわけではありません。 使用可能な VM サイズを一覧表示するには、次の方法を使用します。
Note
Azure Machine Learning は、Azure Compute がサポートするすべての VM サイズをサポートしているわけではありません。 特定のコンピューティング VM の種類でサポートされている使用可能な VM サイズを一覧表示するには、次のいずれかのメソッドを使用します。
GPU 対応のコンピューティング先を使用する場合は、トレーニング環境に適切な CUDA ドライバーがインストールされていることを確認することが重要です。 次の表を使用して、使用する適切な CUDA バージョンを決定します。
GPU アーキテクチャ | Azure VM シリーズ | サポートされている CUDA のバージョン |
---|---|---|
Ampere | NDA100_v4 | 11.0+ |
Turing | NCT4_v3 | 10.0 以降 |
Volta | NCv3、NDv2 | 9.0 以上 |
Pascal | NCv2、ND | 9.0 以上 |
Maxwell | NV、NVv3 | 9.0 以上 |
Kepler | NC、NC Promo | 9.0 以上 |
CUDA のバージョンとハードウェアに互換性があることを確認するだけでなく、CUDA のバージョンが、使用している機械学習フレームワークのバージョンと互換性があることを確認します。
- PyTorch の場合は、Pytorch の以前のバージョンのページにアクセスして互換性を確認できます。
- Tensorflow の場合は、ソースからの Tensorflow のビルドのページにアクセスして互換性を確認できます。
コンピューティングの分離
Azure Machine Learning コンピューティングにより、特定のハードウェアの種類に分離される、単一顧客専用の VM サイズが提供されます。 分離された VM サイズは、コンプライアンスや規制上の要件を満たすなどの理由で、他の顧客のワークロードからの高いレベルの分離を必要とするワークロードに最適です。 分離されたサイズを利用すると、お使いの VM がその特定のサーバー インスタンス上で実行されている唯一の VM であることが保証されます。
現在の分離された VM のプランには、以下が含まれます。
- Standard_M128ms
- Standard_F72s_v2
- Standard_NC24s_v3
- Standard_NC24rs_v3 (RDMA 対応)
分離の詳細については、「Azure パブリック クラウドでの分離」を参照してください。
アンマネージド コンピューティング
"アンマネージド" コンピューティング先は、Azure Machine Learning によって管理されません。 この種類のコンピューティング ターゲットは、Azure Machine Learning の外部で作成してからワークスペースに接続します。 アンマネージド コンピューティング リソースでは、機械学習ワークロードのパフォーマンスを維持または向上するために追加の手順が必要になる場合があります。
Azure Machine Learning は、次の種類のアンマネージド コンピューティングをサポートしています。
- リモート仮想マシン
- Azure HDInsight
- Azure Databricks
- Azure Data Lake Analytics
詳細については、コンピューティング リソースの管理に関するページを参照してください。