Azure インフラストラクチャ (IaaS) での AI ワークロードのコンピューティングに関する推奨事項
この記事では、Azure インフラストラクチャ (IaaS) で AI ワークロードを実行している組織向けのコンピューティングに関する推奨事項を示します。 推奨されるアプローチは、Azure AI サービスとしてのプラットフォーム (PaaS) ソリューションを使用 して AI の導入を開始することです。 ただし、Azure GPU にアクセスできる場合は、このガイダンスに従って Azure IaaS で AI ワークロードを実行してください。
AI ワークロードでは、高いコンピューティング需要と大規模なデータ処理を処理するために、特殊な仮想マシン (VM) が必要です。 適切な VM を選択すると、リソースの使用が最適化され、AI モデルの開発とデプロイが高速化されます。 次の表に、推奨されるコンピューティング オプションの概要を示します。
AI フェーズ | 仮想マシン イメージ | 生成 AI | 非変性 AI (複雑なモデル) | 非変性 AI (小さなモデル) |
---|---|---|---|---|
AI モデルのトレーニング | データ サイエンス仮想マシン | GPU (ND ファミリを優先します。または、イーサネットで相互接続された VM で NC ファミリを使用する) | GPU (ND ファミリを優先します。または、イーサネットで相互接続された VM で NC ファミリを使用する) | メモリ最適化 (CPU) |
AI モデルの推論 | データ サイエンス仮想マシン | GPU (NC または ND ファミリ) | GPU (NC または ND ファミリ) | コンピューティング最適化 (CPU) |
適切な仮想マシン イメージを選択する
データ サイエンス仮想マシンなどの適切な仮想マシン イメージを選択して、AI ワークロード用の構成済みツールにすばやくアクセスします。 この選択により、効率的な AI 処理に必要なソフトウェアを提供しながら、時間とリソースを節約できます
データ サイエンス仮想マシンイメージから始めます。 データ サイエンス仮想マシン イメージは、データ サイエンス ツールへの事前構成済みアクセスを提供します。 これらのツールには、PyTorch、TensorFlow、scikit-learn、Jupyter、Visual Studio Code、Azure CLI、PySpark が含まれます。 GPU で使用する場合、イメージには Nvidia ドライバー、CUDA Toolkit、cuDNN も含まれます。 これらのイメージは、ベースライン イメージとして機能します。 さらにソフトウェアが必要な場合は、起動時にスクリプトを使用して追加するか、カスタム イメージに埋め込みます。 オーケストレーション ソリューションとの互換性を維持します。
必要に応じて代替画像を検索します。 データ サイエンス仮想マシン イメージがニーズを満たしていない場合は、Azure Marketplace またはその他の検索方法を使用して代替イメージを検索します。 たとえば、GPU では、InfiniBand ドライバー、NVIDIA ドライバー、通信ライブラリ、MPI ライブラリ、監視ツールを含む Linux イメージが必要になる場合があります。
仮想マシンのサイズを選択する
適切な仮想マシン サイズを選択すると、AI モデルの複雑さ、データ サイズ、コストの制約に合わせて調整されます。 トレーニングまたは推論のニーズに合わせてハードウェアを照合すると、効率が最大化され、過小使用や過負荷が防止されます。
仮想マシンのオプションを絞り込む。 最適なトレーニング時間と推論時間を得るための最新の仮想マシン SKU を選択します。 トレーニングでは、GPU 間の高速データ転送のために RDMA と GPU の相互接続をサポートする SKU を選択します。 推論の場合は、InfiniBand を使用する SKU を避けてください。これは不要です。 例としては、 ND MI300X v5 シリーズ、 ND H100 v5 シリーズ、 NDm A100 v4 シリーズ、 ND A100 v4 シリーズなどがあります。
仮想マシンの価格を確認します。 一般的なコストの 概要については、Linux および Windows VM の価格ページを使用してください。 詳細な見積もりについては、Azure 料金計算ツールを 使用してください。
スポット インスタンスを検討します。スポット インスタンスは、データ損失リスクを最小限に抑えた推論シナリオでコスト効率が高くなります。 スポット インスタンスでは、未使用のデータセンター容量を割引料金で利用することで、大幅な節約が実現されます。 ただし、この容量はいつでも回収できるため、スポット インスタンスは中断を処理できるワークロードに最適です。 データを定期的にチェックポイント処理して、削除時の損失を最小限に抑えます。 詳細については、「Azure CycleCloud でのスポット VM の使用」を参照してください。
コンピューティング オーケストレーション ソリューションを選択する
コンピューティング オーケストレーション ソリューションは、仮想マシン クラスター全体の AI タスクの管理を容易にします。 単純なデプロイの場合でも、オーケストレーターはコストを削減し、環境が再現可能であることを確認するのに役立ちます。 オーケストレーターは、特定の時間に必要なコンピューティングのみを使用するのに役立ちます。 操作とスケーラビリティを向上させるために、スケジュール、コンテナー化、スケーリングのニーズに基づいてオーケストレーション ツールを選択します。
オープンソース スケジューラには Azure CycleCloud を使用します。 Azure CycleCloud は、Slurm、Grid Engine、Torque/PBS などのオープンソース スケジューラに最適です。 柔軟なクラスター管理、カスタマイズ可能な構成、高度なスケジューリング機能が提供されます。 クラスター内の仮想マシンには、AI ワークロードを実行するための構成が必要です。 CycleCloud と Batch の仮想マシンは非永続的です。 オーケストレーターは、コスト削減に役立つ必要がある場合に VM を作成して削除します。 詳細については、Slum 用の Azure CycleCloud ワークスペースに関するページを参照してください。
組み込みのスケジュール設定には Azure Batch を使用します。 Azure Batch には、追加のソフトウェアのインストールや管理を必要とせず、組み込みのスケジュール機能が用意されています。 従量課金モデルがあり、ライセンス料金はありません。 また、コンテナー化されたタスクもネイティブにサポートされます。 デプロイのベスト プラクティスについては、Azure Batch アクセラレータに関するページを参照してください。
コンテナーのスケーリングには Azure Kubernetes Service (AKS) を使用します。 AKS は、クラスター全体でコンテナーをデプロイ、スケーリング、管理するためのマネージド サービスです。 これは、大規模なコンテナーで AI ワークロードを実行するのに適しています。 詳細については、「Azure Kubernetes Service を使用して GPU ベースのワークロードをホストする」を参照してください。
より簡単なタスクのためにジョブを手動で調整します。 オーケストレーションのニーズが最小限の場合は、AI リソースを手動で管理します。 小規模なワークロードの場合は、次の手順を検討してください。
- ワークフローを定義します。 依存関係やジョブ シーケンスなど、ワークフローをエンドツーエンドで理解します。 任意の手順でエラーを処理する方法を検討してください。
- ジョブをログに記録して監視します。 ジョブの明確なログ記録と監視フレームワークを実装します。
- 前提条件を検証します。 環境が、必要なライブラリやフレームワークを含むすべてのワークフロー要件を満たしていることを確認します。
- バージョン コントロールを使用します。 バージョン管理を使用して変更を追跡および管理します。
- タスクを自動化します。 スクリプトを使用して、データの前処理、トレーニング、評価を自動化します。
コンテナーを検討する
コンテナーは、効率的にスケーリングする一貫性のある再現可能な環境を提供します。 コンテナーは環境間の移行を合理化し、スケーラブルな AI ソリューションに不可欠です。
ドライバーのインストール。 さまざまなシナリオでコンテナー機能を有効にするために必要なドライバーがインストールされていることを確認します。 クラスター構成では、多くの場合、Pyxis や Enroot などのツールが必要です。
NVIDIA Container Toolkit を使用します。 このツールキットにより、コンテナー内の GPU リソースが有効になります。 CUDA ドライバーや GPU ドライバーなど、必要なすべてのドライバーをインストールし、好みのコンテナー ランタイムとエンジンを使用して AI ワークロードを実行します。