Azure Machine Learning に関する Azure Well-Architected Framework のパースペクティブ
Azure Machine Learning は、機械学習モデルのトレーニング、デプロイ、管理に使用できるマネージド クラウド サービスです。 コンピューティング SKU や構成など、モデルのトレーニングとデプロイの両方に幅広い選択肢と構成があります。 機械学習モデルは、Machine Learning コンピューティングや、Azure Kubernetes Service (AKS) などの他の Azure サービスにデプロイできます。
この記事では、Machine Learning を使用して機械学習モデルのトレーニング、デプロイ、管理を行う際に、情報に基づいた意思決定を行うためのアーキテクチャに関する推奨事項について説明します。 このガイダンスは、 Azure Well-Architected Framework の柱に基づいています。
重要
このガイドを使用する方法
各セクションには、 アーキテクチャ の関心領域と、テクノロジスコープにローカライズされた設計戦略を示す設計チェックリストがあります。
また、これらの戦略を具体化するのに役立つテクノロジ機能に関する 推奨事項 も含まれています。 推奨事項は、Machine Learning で使用できるすべての構成とその依存関係の完全な一覧を表しているわけではありません。 代わりに、設計パースペクティブにマップされた主要な推奨事項を一覧表示します。 推奨事項を使用して概念実証を構築するか、既存の環境を最適化します。
基本的なアーキテクチャ ベースラインである OpenAI エンド ツー エンド のチャット参照アーキテクチャ では、主な推奨事項の多くが示されています。
テクノロジスコープ
このレビューでは、これらの Azure リソースの相互に関連する決定に焦点を当てます。
- Machine Learning
- Machine Learning コンピューティング クラスター
- Machine Learning コンピューティング インスタンス
レビューでは、データ ストアや Azure Key Vaultなどの接続されているリソースには対応していません。
[信頼性]
信頼性の柱の目的は、 十分な回復性と障害から迅速に回復する機能を構築することで、継続的な機能を提供することです。
信頼性設計の原則は、個々のコンポーネント、システム フロー、およびシステム全体に適用される高度な設計戦略を提供します。
設計チェック リスト
信頼性の設計レビュー チェックリストに基づいて設計戦略を開始し、ビジネス要件との関連性を判断します。 戦略を拡張して、必要に応じてより多くのアプローチを含めます。
回復性: AKS などの可用性ゾーンをサポートする環境にモデルをデプロイします。 デプロイが可用性ゾーン間で分散されるようにすることで、データセンターの障害が発生した場合でもデプロイを確実に利用できるようになります。 信頼性と可用性を強化するために、複数リージョンのデプロイ トポロジを検討してください。
回復性: トレーニングと推論の両方に十分なコンピューティングがあることを確認します。 リソース計画を通じて、コンピューティング SKU とスケール設定がワークロードの要件を満たしていることを確認します。
回復性: 探索的作業に使用される Machine Learning ワークスペースと、運用環境で使用されるワークスペースを分離します。
回復性: 推論にマネージド オンライン エンドポイントを使用する場合は、ブルーグリーンデプロイなどのリリース戦略を使用してダウンタイムを最小限に抑え、新しいバージョンのデプロイに関連するリスクを軽減します。
ビジネス要件: サービス レベル アグリーメント (SLA) を要因として考慮して、信頼性のニーズに基づいてコンピューティング クラスター、コンピューティング インスタンス、および外部化された推論ホストの使用を選択します。
回復: 大規模なモデルをトレーニングするときに、Machine Learning でサポートされるチェックポイント機能などの自己復旧機能があることを確認します。
回復: 復旧戦略が定義されていることを確認します。 Machine Learning には自動フェールオーバーがありません。 そのため、ワークスペースとそのすべての依存関係 (Key Vault、Azure Storage、Azure Container Registryなど) を含む戦略を設計する必要があります。
Recommendations
推奨 | 特長 |
---|---|
マルチリージョン モデルのデプロイ: 信頼性と可用性を強化するために、可能な場合はマルチリージョンデプロイ環境を検討してください。 | 複数リージョンのデプロイにより、1 つのリージョンで障害が発生した場合でも、Machine Learning ワークロードが引き続き実行されます。 複数リージョンのデプロイにより、リージョン間の負荷分散が向上し、異なる地理的領域に配置されているユーザーのパフォーマンスが向上する可能性があります。 詳細については、「事業継続とディザスター リカバリーのためのフェールオーバー」を参照してください。 |
モデル トレーニングの回復性: Azure Container for PyTorch、TensorFlow Estimator クラス、またはモデルのチェックポイント処理をサポートする Run オブジェクトと FileDataset クラスなど、Machine Learning でサポートされているチェックポイント機能を使用します。 | モデル のチェックポイント処理では、トレーニング中に機械学習モデルの状態が定期的に保存されるため、中断、障害、または終了の場合に復元できます。 詳細については、「 Nebula を使用してチェックポイントの速度を向上させ、コストを削減する」を参照してください。 |
コンピューティング クラスターに専用仮想マシン層を使用する: バッチ推論にコンピューティング クラスターの専用仮想マシン 層を使用して、バッチ ジョブが割り込まれないことを確認します。 | 優先順位の低い仮想マシンは、割引価格で提供されますが、割り込み可能です。 専用仮想マシン層を使用するクラスターは割り込まれません。 |
セキュリティ
セキュリティの柱の目的は 、ワークロードに機密性、整合性、可用性の 保証を提供することです。
セキュリティ設計の原則は、機械学習に関する技術的な設計にアプローチを適用することで、これらの目標を達成するための高レベルの設計戦略を提供します。
設計チェック リスト
セキュリティの設計レビュー チェックリストに基づいて設計戦略を開始し、セキュリティ体制を改善するための脆弱性と制御を特定します。 戦略を拡張して、必要に応じてより多くのアプローチを含めます。
可用性: ワークスペースへのアクセスを仮想ネットワーク内のリソースに制限することで、Machine Learning ワークスペースの攻撃対象領域を減らします。
機密性: ネットワーク分離を実装することで、Machine Learning ワークスペースからのデータ流出を防ぎます。 すべての外部リソースへのアクセスが明示的に承認され、他のすべての外部リソースへのアクセスが許可されていないことを確認します。
整合性: 最小特権の原則に基づいて、外部リソースの Machine Learning ワークスペースを認証および承認するアクセス制御を実装します。
整合性: 特定のユース ケースまたはプロジェクトに基づいてワークスペースを設定することで、Machine Learning ワークスペースのユース ケースの分離を実装します。 このアプローチは、ユース ケースまたはプロジェクトのデータ資産と実験資産へのアクセスを必要とする個人のみがワークスペースにアクセスできるようにすることで、最小限の特権の原則に準拠しています。
整合性: 基本モデルへのアクセスを規制します。 承認されたレジストリのみがモデル レジストリ内のモデルにアクセスできることを確認します。
整合性: 承認されたコンテナー レジストリへのアクセスを規制します。 Machine Learning コンピューティングが承認されたレジストリにのみアクセスできることを確認します。
整合性: Machine Learning コンピューティングで実行できる Python パッケージを規制します。 Python パッケージを規制すると、信頼できるパッケージのみが実行されます。
整合性: Machine Learning コンピューティング環境でのトレーニングに使用されるコードに署名する必要があります。 コード署名を要求すると、実行中のコードが信頼できるソースからのものであり、改ざんされていないことが保証されます。
機密性: ロールベースのアクセス制御 (RBAC) に対する最小限の特権の原則に従って、Machine Learning ワークスペースおよびワークスペース ストレージ アカウントなどの関連リソースを使用して、個人がロールに必要なアクセス許可のみを持ち、潜在的なセキュリティ リスクを最小限に抑えます。
整合性: 保存データと転送中のデータの暗号化を実装することで、信頼と検証されたアクセスを確立します。
Recommendations
推奨 | 特長 |
---|---|
セキュリティ ベースライン: Machine Learning Service のセキュリティとコンプライアンスを強化するには、 Machine Learning の Azure セキュリティ ベースラインを適用します。 | セキュリティ ベースラインは、ネットワーク セキュリティ、ID 管理、データ保護、特権アクセスなどの重要なセキュリティ側面に関するガイダンスを提供します。 最適なセキュリティを実現するには、Microsoft Defender for Cloud を使用してこれらの側面を監視します。 |
マネージド仮想ネットワークの分離: Machine Learning 用 にマネージド仮想ネットワークの分離 を構成します。 マネージド仮想ネットワークの分離を有効にすると、ワークスペース用にマネージド仮想ネットワークが作成されます。 ワークスペース用に作成したマネージド コンピューティング リソースでは、このマネージド仮想ネットワークが自動的に使用されます。 マネージド仮想ネットワーク分離を実装できない場合は、 ネットワーク トポロジに関する推奨事項 に従って、ワークスペース リソースのプライベート エンドポイントなど、ソリューション内の残りのリソースから離れた専用サブネットにコンピューティングを分離する必要があります。 | マネージド仮想ネットワークの分離により、ワークスペースを他のネットワークから分離することでセキュリティが強化され、不正アクセスのリスクが軽減されます。 organization内の別のネットワークで侵害が発生するシナリオでは、Machine Learning ワークスペースの分離されたネットワークは影響を受けず、機械学習ワークロードを保護します。 |
Machine Learning ネットワークの分離: Machine Learning ワークスペースの プライベート エンドポイントを構成 し、そのプライベート エンドポイント経由でワークスペースに接続します。 | Machine Learning ネットワークの分離により、ワークスペースへのアクセスがセキュリティで保護され、制御されるようにすることで、セキュリティが強化されます。 ワークスペース用に構成されたプライベート エンドポイントを使用すると、プライベート IP アドレス経由でのみワークスペースへのアクセスを制限できます。 |
承認された送信アクセスのみを許可する: データ流出のリスクを最小限に抑えるために、Machine Learning ワークスペースでマネージド送信アクセスの送信 モード を Allow only approved outbound に構成します。 アクセスする必要があるリソースのプライベート エンドポイント、サービス タグ、または完全修飾ドメイン名 (FQDN) を構成します。 |
この構成により、データ流出のリスクが最小限に抑え、データ セキュリティが向上します。 この構成を有効にすると、システムにアクセスできる悪意のあるアクターは、未承認の外部宛先にデータを送信できません。 |
依存サービスの仮想ネットワーク分離: ストレージ、Key Vault、コンテナー レジストリなどの依存サービスをプライベート エンドポイントで構成し、パブリック アクセスを無効にします。 | ネットワークの分離により、Azure サービスとしてのプラットフォーム (PaaS) ソリューションへのアクセスをプライベート IP アドレスのみに制限することで、セキュリティが強化されます。 |
マネージド ID: Machine Learning と他のサービス間 の認証にマネージド ID を使用 します。 | マネージド ID は、資格情報を格納し、サービス プリンシパルを手動で管理およびローテーションする必要がなくなるため、セキュリティを向上させます。 |
ローカル認証を無効にする: Machine Learning コンピューティング クラスターとインスタンスの ローカル認証を無効にします 。 | ローカル認証を無効にすると、Machine Learning コンピューティングのセキュリティが強化され、ID とリソース資格情報の一元的な制御と管理が提供されます。 |
パブリック SSH ポートを無効にする: を に設定 remoteLoginPortPublicAccess して、Machine Learning コンピューティング クラスターでパブリック Secure Shell (SSH) ポートが閉じられるようにします Disabled 。 別のコンピューティングを使用する場合は、同様の構成を適用します。 |
SSH アクセスを無効にすると、承認されていない個人がアクセスを取得するのを防ぎ、システムに損害を与える可能性があり、ブルート フォース攻撃から保護できます。 |
Machine Learning コンピューティング用にパブリック IP アドレスをプロビジョニングしない: Machine Learning コンピューティング クラスターまたはコンピューティング インスタンスをプロビジョニングするときに enableNodePublicIp を に false 設定します。 別のコンピューティングを使用する場合は、同様の構成を適用します。 |
コンピューティング インスタンスまたはクラスターへの不正アクセスの可能性を制限することで、セキュリティを強化するためにパブリック IP アドレスをプロビジョニングしないようにします。 |
最新のオペレーティング システム イメージを取得する: コンピューティング インスタンスを再作成して、最新のオペレーティング システム イメージを取得します。 | 最新のイメージを使用すると、最新のセキュリティ パッチを確実に使用するなど、一貫性のある安定したセキュリティで保護された環境を維持できます。 |
厳密な Machine Learning ワークスペース アクセス制御: Microsoft Entra ID グループを使用してワークスペース アクセスを管理し、RBAC の最小特権の原則に従います。 | 厳密なワークスペース アクセス制御により、個人がロールに必要なアクセス許可のみを持つことが保証され、セキュリティが強化されます。 たとえば、データ サイエンティストは実験を実行できますが、セキュリティ設定を変更することはできない可能性があり、潜在的なセキュリティ リスクを最小限に抑えます。 |
モデル カタログのデプロイを制限する: モデルのデプロイを特定のレジストリに制限します。 | モデル カタログから特定のレジストリへのデプロイを制限すると、承認されたレジストリにのみモデルをデプロイできます。 このアプローチは、オープンソースの基本モデルへのアクセスを規制するのに役立ちます。 |
保存データを暗号化する: Machine Learning でカスタマー マネージド キーを使用することを検討します。 | 保存データを暗号化すると、ユーザーが直接管理するキーを使用して機密データが確実に暗号化され、データのセキュリティが強化されます。 独自の暗号化キーを管理するための規制要件がある場合は、この機能を使用してその要件に準拠します。 |
データ流出のリスクを最小限に抑える: データ流出防止を実装します。 たとえば、エグレス仮想ネットワーク トラフィックをフィルター処理し、特定の Azure Storage アカウントのみにデータ流出を許可するサービス エンドポイント ポリシーを作成します。 | 受信要件と送信要件を制限することで、データ流出のリスクを最小限に抑えます。 |
Advisor
Machine Learning の Advisor セキュリティのベスト プラクティスに関する推奨事項の例を次に示します。
- ワークスペースは、カスタマー マネージド キー (CMK) を使用して暗号化する必要があります。
- ワークスペースでは、Azure Private Linkを使用する必要があります。
- ワークスペースでは、パブリック ネットワーク アクセスを無効にする必要があります。
- コンピューティングは仮想ネットワーク内に存在する必要があります。
- 最新のソフトウェア更新プログラムを取得するには、コンピューティング インスタンスを再作成する必要があります。
Azure Policy
Machine Learning セキュリティの組み込みAzure Policy定義の例を次に示します。
- 指定した Machine Learning コンピューティングに対して許可されるレジストリを構成します。
- 指定した Machine Learning コンピューティングに対して許可される Python パッケージを構成します。
- Machine Learning ワークスペースでは、パブリック ネットワーク アクセスを無効にする必要があります。
- 最新のソフトウェア更新プログラムを取得するには、Machine Learning コンピューティング インスタンスを再作成する必要があります。
- Machine Learning コンピューティングは仮想ネットワーク内に存在する必要があります。
- Machine Learning コンピューティングでは、ローカル認証方法が無効になっている必要があります。
- Machine Learning ワークスペースは CMK で暗号化する必要があります。
- Machine Learning ワークスペースでは、Private Linkを使用する必要があります。
- Machine Learning ワークスペースでは、ユーザー割り当てマネージド ID を使用する必要があります。
- 指定された Machine Learning コンピューティングでジョブが実行される前に、 という承認エンドポイントが必要です。
- コンピューティング用のトレーニング コードのコード署名が必要です。
- モデルのデプロイを特定のレジストリに制限します。
コストの最適化
コストの最適化では、支出パターンの検出、重要な領域への投資の優先順位付け、ビジネス要件を満たしながらorganizationの予算を満たすように他のユーザーの最適化に重点を置いています。
コスト最適化設計原則を読み、これらの目標を達成するためのアプローチと、それらの環境でのモデルのトレーニングとデプロイに関連する技術的な設計の選択に必要なトレードオフを理解します。
設計チェック リスト
投資のための コスト最適化の設計レビュー チェックリスト に基づいて設計戦略を開始し、ワークロードがワークロードに割り当てられた予算と一致するように設計を微調整します。 設計では、適切な Azure 機能を使用し、投資を監視し、時間の経過と同時に最適化する機会を見つける必要があります。
使用状況の最適化: 適切なリソースを選択して、ワークロードの要件に確実に合わせます。 たとえば、CPU または GPU、さまざまな SKU、または低優先 VM と通常の優先順位の VM のどちらかを選択します。
使用状況の最適化: 使用されていないコンピューティング リソースが、アイドル状態のときにスケールダウンまたはシャットダウンされ、無駄を減らすことができるようにします。
使用の最適化: ポリシーを適用し、設計の上限と下限に準拠するようにクォータを構成します。
使用状況の最適化: トレーニング ワークロードの並列化をテストして、低コストの SKU でトレーニング要件を満たすことができるかどうかを判断します。
レートの最適化: 今後 1 年から 3 年間の使用量の見積もりが適切な場合は、Azure 予約仮想マシン インスタンスを購入します。
監視と最適化: モデルのトレーニング時に CPU や GPU 使用率などのリソース使用量を監視します。 リソースが完全に使用されていない場合は、リソースをより効率的に使用するようにコードを変更するか、小規模または安価な VM サイズにスケールダウンします。
Recommendations
推奨 | 特長 |
---|---|
コンピューティング リソースの最適化: ワークロードの要件に基づいてコンピューティング リソースを最適化します。 ワークロードに最適な SKU を選択します。
|
適切なコンピューティングを選択することは、ワークロードの実行コストに直接影響を与えるので重要です。 GPU または高パフォーマンス SKU を適切に使用せずに選択すると、無駄な支出が発生する可能性があります。一方、使用率の高いコンピューティングを選択すると、トレーニング時間とパフォーマンスの問題が非常に長くなる可能性があります。 |
コンピューティング スケーリングを最適化する: コンピューティング クラスターを自動スケーリング用に構成 して、必要なものだけを使用できるようにします。 トレーニング クラスターの場合は、ノードの最小数を 0 に設定し、ノードが適切な時間までアイドル状態になる時間を構成します。 反復実験を減らすには、コストを節約するための時間を短縮します。 反復実験を増やすには、時間を長くして、変更後のスケールアップまたはスケールダウンの支払いを防ぎます。 |
コンピューティング クラスターの使用量が少ない場合にスケールダウンするように、コンピューティング クラスターの自動スケーリングを構成します。 使用しない場合は、トレーニング クラスターを 0 にスケールダウンするには、ノードの最小数を 0 に設定します。 |
トレーニング終了ポリシーの設定: トレーニングの実行期間を制限するか、早期に終了するように早期 終了ポリシーを設定 します。 | 終了ポリシーを設定すると、パフォーマンスの低い実行を早期に停止することでコストを節約できます。 |
バッチ ワークロードに優先順位の低い仮想マシンを使用する: 時間の影響を受けず、中断が回復可能な バッチ ワークロードには、優先順位の低い仮想マシン を使用することを検討してください。 | 優先順位の低い仮想マシンを使用すると、低コストで大量のコンピューティング能力を使用できます。 Azure の余剰容量を利用します。 |
コンピューティング インスタンスのアイドル シャットダウンを有効にする: コンピューティング インスタンスのアイドル シャットダウン を有効にするか、使用時間がわかっている場合は 開始時刻と停止時間をスケジュール します。 | 既定では、コンピューティング インスタンスを使用でき、コストが発生します。 アイドル状態のときにシャットダウンするようにコンピューティング インスタンスを構成するか、またはそれらのスケジュールを構成すると、使用されていないときにコストが節約されます。 |
トレーニング ワークロードの並列化: トレーニング ワークロードの並列化を検討してください。 Machine Learning の並列コンポーネントの助けを借りて、それらを実行するテストを行います。 | 並列ワークロードは、複数の小さなインスタンスで実行でき、コスト削減につながる可能性があります。 |
Azure 予約 VM インスタンス: 今後 1 年から 3 年間の使用量の見積もりが適切な場合は、Azure 予約 VM インスタンスを購入します。 使用量の見積もりが適切な場合は、サービスの予約容量オプションを利用します。 | Azure 予約 VM インスタンスを購入して仮想マシンの使用量を前払いし、従量課金制の価格で割引を提供します。 割引は、予約に一致する仮想マシンの使用に自動的に適用されます。 |
オペレーショナル エクセレンス
オペレーショナル エクセレンスは、主に 開発プラクティス、可観測性、リリース管理の手順に焦点を当てています。
オペレーショナル エクセレンス設計原則は、ワークロードの運用要件に対してこれらの目標を達成するための高レベルの設計戦略を提供します。
設計チェック リスト
Machine Learning に関連する可観測性、テスト、デプロイのプロセスを定義するための オペレーショナル エクセレンスの設計レビュー チェックリスト に基づいて、設計戦略を開始します。
開発標準: Machine Learning モデル のカタログとレジストリを利用して、機械学習資産を格納、バージョン管理、共有します。
効率を高める自動化: 優れた 機械学習操作 (MLOps) のプラクティスに従います。 可能であれば、データの準備、トレーニング、スコアリングのプロセス用に、エンドツーエンドの自動化されたパイプラインを構築します。 スクリプトは自動化されたパイプラインに簡単に統合されるため、開発では、トレーニング モデルにノートブックの代わりにスクリプトを使用します。
自信を持ってデプロイする: Machine Learning ワークスペース、コンピューティング クラスター、コンピューティング インスタンス、およびその他のデプロイ環境用にコードとしてのインフラストラクチャ (IaC) を実装します。
監視: データ ドリフトを含むデプロイ済みモデルのパフォーマンスを監視します。
監視: モデルがオンライン エンドポイントにデプロイされている場合は、Application Insights でオンライン エンドポイントとデプロイを監視できるようにします。 トレーニング インフラストラクチャを監視して、ベースライン要件を満たしていることを確認します。
シンプルさ: 利用可能な場合は、Machine Learning 用に最適化されたキュレーションされた環境を使用します。
Recommendations
推奨 | 特長 |
---|---|
Machine Learning ワークスペース インスタンスを最小化する: メンテナンスを減らすために、可能な場合はワークスペースの数を最小限に抑えます。 | ワークスペースの数を制限すると、メンテナンス作業と運用コストが削減されます。 セキュリティなどの要件では、複数の個別のワークスペースが必要になる場合があります。 可能な場合は、ワークスペースの数を最小限に抑えます。 |
モデル カタログとレジストリを活用する: Machine Learning モデル カタログとレジストリを利用して、機械学習資産を格納、バージョン管理、共有します。 Machine Learning モデル カタログを使用すると、モデルの A/B テストとデプロイを実装するのに役立ちます。 |
Machine Learning モデル レジストリを使用して、機械学習モデルを格納およびバージョン管理し、変更を追跡し、トレーニングに使用されるジョブとデータセットの系列を維持します。 Machine Learning モデル カタログを使用すると、データ サイエンス チームは、事前トレーニング済みの基本的な機械学習モデルを検出、評価、微調整できます。 Machine Learning モデル レジストリにバージョン管理されたモデルを格納すると、A/B リリース、カナリア リリース、ロールバックなどのデプロイ戦略がサポートされます。 |
モデルのパフォーマンスを監視する: デプロイされたモデルのパフォーマンスを監視し、データセットのデータ ドリフトを検出します。 | デプロイされたモデルを監視することで、モデルがパフォーマンス要件を満たすことができます。 データ ドリフトの監視は、モデルのパフォーマンス低下につながる可能性がある入力データの変更を検出するのに役立ちます。 データ ドリフトの管理は、モデルが時間の経過と同時に正確な結果を提供することを保証するのに役立ちます。 |
インフラストラクチャの監視: モデルがオンライン エンドポイントにデプロイされている場合は、Application Insights でオンライン エンドポイントとデプロイを監視できるようにします。 トレーニング インフラストラクチャを監視して、ベースライン要件を満たしていることを確認します。 Machine Learning の リソース ログを収集 していることを確認します。 |
監視エンドポイントを使用すると、要求の待機時間や 1 分あたりの要求数などのメトリックを可視化できます。 パフォーマンスとベースラインを比較し、この情報を使用して、それに応じてコンピューティング リソースに変更を加えることができます。 ネットワーク バイトなどのメトリックを監視すると、クォータ制限に近づき、調整を防ぐ場合にアラートが生成される可能性があります。 同様に、トレーニング環境を監視すると、トレーニング環境を変更するための情報が提供されます。 この情報を使用して、スケールインまたはスケールアウト、さまざまなパフォーマンスの SKU でスケールアップまたはスケールダウンするか、CPU または GPU を選択するかを決定します。 |
モデル トレーニング環境をキュレーションする: 利用可能な場合は、Machine Learning 用に最適化されたキュレーションされた環境を使用します。 |
キュレーションされた環境 は、デプロイ時間を短縮し、デプロイとトレーニングの待機時間を短縮する Machine Learning によって事前に作成された環境です。 キュレーションされた環境を使用すると、トレーニングとデプロイの成功率が向上し、不要なイメージ ビルドが回避されます。 Azure Container for PyTorch などのキュレーションされた環境は、Machine Learning で大規模なモデルをトレーニングするために最適化することもできます。 |
パフォーマンス効率
パフォーマンス効率は、容量を管理することで 負荷が増加した場合でも、ユーザー エクスペリエンスを維持 することです。 この戦略には、リソースのスケーリング、潜在的なボトルネックの特定と最適化、ピーク パフォーマンスの最適化が含まれます。
パフォーマンス効率設計原則は、予想される使用に対してこれらの容量目標を達成するための高レベルの設計戦略を提供します。
設計チェック リスト
Machine Learning ワークロードの主要業績評価指標に基づいてベースラインを定義するための パフォーマンス効率の設計レビュー チェックリスト に基づいて設計戦略を開始します。
パフォーマンス目標: モデルの許容されるトレーニング時間と再トレーニング頻度を決定します。 トレーニング時間の明確な目標をテストと共に設定すると、トレーニング時間の目標を達成するために必要なコンピューティング リソース、CPU と GPU、CPU SKU を判断するのに役立ちます。
パフォーマンスターゲット: 応答時間、1 秒あたりの要求数、エラー率、アップタイムなど、デプロイされたモデルで許容されるパフォーマンス ターゲットを定義します。 パフォーマンス ターゲットは、デプロイされたモデルの効率のベンチマークとして機能します。 ターゲットは、CPU と GPU の決定、CPU SKU の選択、スケーリングの要件を比較するのに役立ちます。
容量要件を満たす: モデル トレーニングに適したコンピューティング リソースを選択します。
容量要件を満たす: モデルデプロイに適したコンピューティング リソースを選択します。
容量要件を満たす: 自動スケーリング機能を備えたデプロイ環境を選択して、需要の変動に応じて容量を追加および削除します。
パフォーマンスの達成と維持: デプロイされたモデルのパフォーマンスを継続的に監視し、結果を確認し、適切なアクションを実行します。
パフォーマンスの達成と維持: デプロイされたモデルのインフラストラクチャのパフォーマンスを継続的に監視し、結果を確認し、適切なアクションを実行します。 トレーニング インフラストラクチャを監視して、トレーニング時間の要件を満たしていることを確認します。
Recommendations
推奨 | 特長 |
---|---|
モデル トレーニングに適したコンピューティング サービスを選択する: 自動スケーリングが必要な場合は、モデル トレーニング用のコンピューティング インスタンスよりも Machine Learning コンピューティング クラスターを検討してください。 トレーニング要件に基づいてコンピューティング リソースを最適化します。 まず、CPU と GPU のどちらかを選択します。 既定では CPU ですが、ディープ ラーニング、画像やビデオの処理、大量のデータなどのワークロードには GPU を考慮してください。 次に、ワークロードに最適なイメージ SKU を選択します。 テストを使用して、ベースラインを決定する際のトレーニング時間に対してコストを最適化するコンピューティング オプションを選択します。 |
適切なコンピューティングを選択することは、トレーニング時間に直接影響を与えるので重要です。 適切な SKU と CPU と GPU を選択すると、モデルトレーニングが要件とパフォーマンス目標を満たすことができます。 過剰に使用されている低パフォーマンス SKU を選択すると、トレーニング時間とパフォーマンスの問題が非常に長くなる可能性があります。 コンピューティング クラスターは、水平スケーリングをサポートするワークロードをスケールアウトすることでパフォーマンスを向上させる機能を提供します。 この方法により、さまざまな要求でワークロードを柔軟に処理でき、必要に応じてマシンを追加または削除できます。 |
モデルデプロイ環境のスケーリング: デプロイ環境の自動スケーリング機能を使用します。 AKS デプロイ環境の場合は、クラスター オートスケーラーを使用して、需要に合わせてスケーリングします。 オンライン エンドポイントの場合は、 Azure Monitor 自動スケーリング機能との統合を使用して自動的にスケーリングします。 | 自動スケーリングでは、需要に合わせてデプロイされたモデルのインスタンスの数が調整されます。 |
モデルのパフォーマンスを監視する: デプロイされたモデルのパフォーマンスを監視します。 | 運用環境のモデルのパフォーマンスを追跡すると、データ ドリフト、予測ドリフト、データ品質、特徴帰属ドリフトなどの潜在的な問題がアラートされます。 データ ドリフトの監視は、モデルのパフォーマンス低下につながる可能性がある入力データの変更を検出するのに役立ちます。 データ ドリフトの管理は、モデルが時間の経過と同時に正確な結果を提供することを保証するのに役立ちます。 |
インフラストラクチャの監視: オンライン エンドポイントを監視 し、Monitor と統合して、適切なメトリックとログを追跡および監視します。 オンライン デプロイを作成するときに Application Insights を有効にします。 トレーニング インフラストラクチャを監視し、モデルのトレーニング時にメモリや CPU、GPU 使用率などのリソース使用量を確認して、ベースライン要件を満たしていることを確認します。 |
監視エンドポイントを使用すると、要求の待機時間や 1 分あたりの要求数などのメトリックを可視化できます。 パフォーマンスとベースラインを比較し、この情報を使用して、それに応じてコンピューティング リソースに変更を加えることができます。 ネットワーク バイトなどのメトリックを監視すると、クォータ制限に近づき、調整を防ぐ場合にアラートが生成される可能性があります。 同様に、トレーニング環境を監視すると、トレーニング環境を変更するための情報が提供されます。 この情報を使用して、スケールインまたはスケールアウト、さまざまなパフォーマンスの SKU でスケールアップまたはスケールダウンするか、CPU または GPU を選択するかを決定します。 |
Azure のポリシー
Azure には、Machine Learning とその依存関係に関連する広範な組み込みポリシー セットが用意されています。 上記の推奨事項の一部は、Azure ポリシーを使用して監査できます。 セキュリティに関連する次のポリシーを検討してください。
- 指定された Machine Learning コンピューティングに対して許可されるレジストリ。
- 指定した Machine Learning コンピューティングに対して許可される Python パッケージを構成します。
- Machine Learning コンピューティングは仮想ネットワーク内に存在する必要があります。
- Machine Learning コンピューティングでは、ローカル認証方法が無効になっている必要があります。
- Machine Learning ワークスペースでは、パブリック ネットワーク アクセスを無効にする必要があります。
- 最新のソフトウェア更新プログラムを取得するには、Machine Learning コンピューティング インスタンスを再作成する必要があります。
- Machine Learning ワークスペースは、カスタマー マネージド キーで暗号化する必要があります。
- Machine Learning ワークスペースでは、プライベート リンクを使用する必要があります。
- Machine Learning ワークスペースでは、ユーザー割り当てマネージド ID を使用する必要があります。
- 指定された Machine Learning コンピューティングでジョブが実行される前に、 という承認エンドポイントが必要です。
- コンピューティングのトレーニング コードにコード署名が必要です。
- モデルのデプロイを特定のレジストリに制限します。
コストの最適化に関連する次のポリシーを検討してください。
オペレーショナル エクセレンスに関連する次のポリシーを検討してください。
- 指定した Machine Learning コンピューティングの完全なログにログ フィルター式とデータストアを使用する必要があります。
- Machine Learning ワークスペースのリソース ログを有効にする必要があります。
包括的なガバナンスについては、Machine Learning のAzure Policy組み込み定義を確認してください。
Advisor の推奨事項
Azure Advisor は、個人用に設定されたクラウド コンサルタントで、ベスト プラクティスに従って Azure デプロイメントを最適化します。 Advisor の推奨事項は、Machine Learning の信頼性、セキュリティ、コスト効率、パフォーマンス、オペレーショナル エクセレンスを向上させるのに役立ちます。
セキュリティに関する次の Advisor の推奨事項を検討してください。
- ワークスペースは、カスタマー マネージド キー (CMK) を使用して暗号化する必要があります。
- ワークスペースではプライベート リンクを使用する必要があります。
- ワークスペースでは、パブリック ネットワーク アクセスを無効にする必要があります。
- コンピューティングは仮想ネットワーク内に存在する必要があります。
- 最新のソフトウェア更新プログラムを取得するには、コンピューティング インスタンスを再作成する必要があります。
オペレーショナル エクセレンスについては、次の Advisor の 推奨事項を検討してください。
- Machine Learning ワークスペースのリソース ログを有効にする必要があります。
次の手順
これらの記事は、この記事で強調されている推奨事項を示すリソースと考えてください。
- これらの推奨事項をワークロードに適用する方法の例として、 ベースライン OpenAI エンド ツー エンドのチャット参照アーキテクチャ を使用します。
- Machine Learning 製品ドキュメントを使用して、実装の専門知識を構築します。