AWS Machine Learning Operations (MLOps) フレームワーク 時間の経過とともに AI モデルを進化させる反復的かつ反復的なプロセスです。 DevOps と同様に、実務者は、品質管理のためのさまざまな環境 (品質保証、統合、運用など) を通じて成果物を効率的にプロモーションできるようになります。 並行して、顧客は次のような方法でマルチアカウント戦略を迅速に採用しています。 AWS組織 および AWS Control Tower 安全で隔離された環境を作成します。 この組み合わせにより、AWS の事前トレーニング済み AI サービスを使用して MLOps を実装する際に課題が生じる可能性があります。 Amazon Rekognitionカスタムラベル。 この投稿では、セキュリティのベスト プラクティスを維持しながらその複雑さを軽減するための設計パターンについて説明します。
概要
あらゆる業界のお客様が、機械学習 (ML) を効率的に運用し、ビジネス価値を実現するまでの時間を短縮することの価値を認識しています。 ほとんどの AWS の事前トレーニング済み AI サービスは、一般的なユースケースの中でも特に、コンピュータービジョン、翻訳、不正行為検出のためのすぐに使用できる機能を通じてこの状況に対処します。 多くのユースケースでは、一般的な答えを超えたドメイン固有の予測が必要です。 AI サービスは、これらのシナリオに対して顧客がラベル付けしたデータを使用して、予測モデルの結果を微調整できます。
時間の経過とともに、ドメイン固有の語彙は変化し、進化します。 たとえば、工具メーカーが画像内の製品 (ハンマーやドライバーなど) を検出するためにコンピューター ビジョン モデルを作成したとします。 将来のリリースでは、レンチとのこぎりのサポートが追加されます。 これらの新しいラベルを使用するには、製造元の Web サイトやカスタム アプリケーションのコードを変更する必要があります。 現在、両方のアーティファクトが同時に解放する必要がある依存関係があります。
AWS MLOps フレームワークは、反復的かつ反復的なプロセスを通じてこれらのリリースの課題に対処します。 モデル成果物は、運用エンドユーザーに届く前に、アプリケーション コードなどのさまざまな品質ゲートを通過する必要があります。 通常、これらの品質ゲートは次を使用して実装します。 複数の AWS アカウント AWS 組織内。 このアプローチにより、これらのアプリケーション ドメインを一元管理し、ガードレールとビジネス要件を強制する柔軟性が得られます。 組織内に数十、さらには数百のアカウントを持つことがますます一般的になってきています。 ただし、ワークロード分離のニーズとチームの規模および複雑さのバランスを取る必要があります。
MLOps 担当者には、アカウント間で成果物をプロモートするための標準手順があります (QA から運用環境への移行など)。 これらのパターンは実装が簡単で、コードとバイナリ リソースをコピーすることに依存します。 Amazon シンプル ストレージ サービス (Amazon S3) バケット。 ただし、AWS 事前トレーニング済み AI サービスは現在、トレーニング済みのカスタム モデルを AWS アカウント間でコピーすることをサポートしていません。 このようなメカニズムが存在するまでは、同じデータセットを使用して各 AWS アカウントでモデルを再トレーニングする必要があります。 このアプローチでは、新しいアカウントでモデルを再トレーニングするための時間とコストがかかります。 このメカニズムは、一部の顧客にとっては実行可能なオプションとなる可能性があります。 ただし、この投稿では、AWS 組織のアカウント全体でこれらのカスタム モデルを安全に共有しながら、これらのカスタム モデルを一元的に定義および進化させる手段を示します。
ソリューションの概要
この投稿では、AWS の事前トレーニング済み AI Service ドメイン固有モデルを安全に共有するための設計パターンについて説明します。 これらのサービスには以下が含まれます アマゾン詐欺検出器, Amazon Transcribe, Amazonの再認識、いくつか例を挙げると。 これらの戦略は広く適用できますが、具体的な例として Rekognition Custom Labels に焦点を当てます。 Rekognition Custom Labels 特有のニュアンスについては、意図的に深く掘り下げることを避けています。
このアーキテクチャは、管理アカウントで構成された AWS Control Tower から始まります。 AWS Control Tower は、安全なマルチアカウント AWS 環境をセットアップして管理するための最も簡単な方法を提供します。 次の図に示すように、次の図を使用します。 アカウントファクトリ AWS Control Tower で XNUMX つの AWS アカウントを作成します。
- デプロイオーケストレーション用の CI/CD アカウント (たとえば、 AWS コードスター)
- 外部エンドユーザー用の実稼働アカウント (公開 Web サイトなど)
- 社内開発チーム (試作前など) の品質保証アカウント
- カスタム モデルとサポート システムの ML アカウント
- AWS レイク ハウス 独自の顧客データを保持するアカウント
規制要件、業界、規模によっては、この構成が粒度が高すぎたり、粗すぎたりする場合があります。 参照する AWS Organizations と AWS Control Tower を使用したマルチアカウント環境の管理 詳細については、
Rekognition カスタム ラベル モデルの作成
Rekognition Custom Labels モデルを作成する最初のステップは、それをホストする AWS アカウントを選択することです。 単一の ML アカウントを使用して ML の旅を始めることもできます。 このアプローチでは、あらゆるツールと手順が XNUMX か所に統合されます。 ただし、この集中化により、個々のアカウントが肥大化し、モノリシックな環境が生じる可能性があります。 より成熟した企業は、この ML アカウントをチームまたはワークロードごとにセグメント化します。 粒度に関係なく、一元的に定義してモデルを一度トレーニングするという目的は同じです。
この投稿では、単一の ML アカウントと別のデータ レイク アカウントで Rekognition Custom Labels モデルを使用する方法を示します (次の図を参照)。 データが別のアカウントに存在する場合は、次のようにリソース ポリシーを構成する必要があります。 S3 バケットへのクロスアカウント アクセスを提供する オブジェクト。 この手順により、バケットの内容が ML アカウントと安全に共有されます。 を参照してください。 クイックスタートサンプル の詳細については、 Amazon Rekognition ドメイン固有モデルの作成.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSRekognitionS3AclBucketRead20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::S3:" }, { "Sid": "AWSRekognitionS3GetBucket20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:::S3:/*" }, { "Sid": "AWSRekognitionS3ACLBucketWrite20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::S3:" }, { "Sid": "AWSRekognitionS3PutObject20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::S3:/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ]
}
クロスアカウントアクセスを有効にする
モデルを構築してデプロイした後は、エンドポイントは ML アカウント内でのみ使用できます。 使用しないでください。 静的キー アクセスを共有します。 絶対です 代理アクセス を使用して実稼働 (または QA) アカウントに AWS IDおよびアクセス管理 (IAM) の役割。 ML アカウントでクロスアカウント ロールを作成するには、次の手順を実行します。
- Rekognition Custom Labelsコンソールで、 プロジェクト プロジェクト名を選択します。
- 選択する Models そしてあなたのモデル名。
- ソフトウェア設定ページで、下図のように モデルを使用 タブで、下にスクロールして モデルを使用する のセクションから無料でダウンロードできます。
- モデル Amazon リソースネーム (ARN) をコピーします。 次のようにフォーマットする必要があります。
arn:aws:rekognition:region-name:account-id:project/model-name/version/version-id/timestamp
. - でロールを作成します
rekognition:DetectCustomLabels
モデル ARN へのアクセス許可と、許可する信頼ポリシーsts:AssumeRole
本番 (または QA) アカウントから (たとえば、arn:aws:iam::PROD_ACCOUNT_ID_HERE:root
). - 必要に応じて、ワークロード固有のアクション (S3 バケットへのアクセスなど) に追加のポリシーをアタッチします。
- 必要に応じて、 条件要素 追加の委任要件を強制するため。
- 次のセクションで使用する新しいロールの ARN を記録します。
エンドポイントを呼び出す
セキュリティ ポリシーを設定したら、構成をテストします。 簡単なアプローチには、 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンスと、 AWSコマンドラインインターフェイス (AWS CLI)。 次の手順でエンドポイントを呼び出します。
- 本番 (または QA) アカウントで、Amazon EC2 のロールを作成します。
- 許可するポリシーをアタッチします。
sts:AssumeRole
ML アカウントのクロスロール ARN に追加します。 - Amazon Linux 2 インスタンスを起動する 前のステップの役割を使用します。
- プロビジョニングされるまで待ってから、 SSH を使用して Linux インスタンスに接続する.
- コマンドを呼び出す
aws iam assume-role
前のセクションのクロスアカウントの役割に切り替えます。 - モデルエンドポイントを開始するまだ実行していない場合は、Rekognition コンソールまたは 開始プロジェクト バージョン AWS CLI コマンド。
- コマンドを呼び出す aws rekognition 検出カスタムラベル 動作をテストします。
AWS SDK と別のコンピューティング リソース (たとえば、 AWSラムダ).
公共のインターネットを避ける
前のセクションでは、detect-custom-labels リクエストは Virtual Private Cloud (VPC) のインターネット ゲートウェイを使用し、パブリック インターネットを通過します。 TLS/SSL 暗号化により、多くのワークロードの通信チャネルが十分に保護されます。 使用できます AWS プライベートリンク 〜へ VPC とサポートするサービス間の接続を有効にする インターネット ゲートウェイ、NAT デバイス、VPN 接続、トランジット ゲートウェイ、または AWSダイレクトコネクト 繋がり。 その後、detect-custom-labels リクエストが AWS ネットワークから公共のインターネットに公開されることはありません。 AWS PrivateLink は、この投稿内で使用されるすべてのサービスをサポートしています。 事前トレーニングされた AI サービスを強制することもできます IAM によるプライベート接続の使用 クロスロールポリシーで。 この制御により、構成を誤ったクライアントが事前トレーニングされた AI サービスのインターネットに接続されたエンドポイントを使用することを防ぐ、別のレベルの保護が追加されます。 追加情報については、次を参照してください。 Amazon VPC エンドポイントでの Amazon Rekognition の使用, Amazon S3 の AWS PrivateLink, AWS STS インターフェイス VPC エンドポイントの使用.
次の図は、実稼働アカウント、ML アカウント、QA アカウント間の VPC エンドポイント構成を示しています。
モデルをプロモートするための CI/CD パイプラインを構築する
AWS では、Amazon Rekognition プロジェクトのデータセットにカスタムラベルを付けるために、より多くのトレーニングデータとテストデータを継続的に提供することをお勧めします。 モデルを改善する。 プロジェクトにさらにデータを追加すると、新しいモデルによって精度が向上したり、ラベルが変更されたりすることがあります。
MLOps では、モデル アーティファクトに一貫性がなければなりません。 事前トレーニングされた AI サービスでこれを実現するために、AWS では、コードの参照を新しいモデル バージョンの ARN に更新することでモデル エンドポイントを昇格することをお勧めします。 このアプローチにより、各環境 (QA アカウントや運用アカウントなど) でのドメイン固有のモデルの再トレーニングが回避されます。 アプリケーションは、次のように新しいモデルの ARN をランタイム変数として使用できます。 AWS システム マネージャー マルチアカウント内または マルチステージ環境.
XNUMX つの粒度レベルにより、クロスアカウント モデルへのアクセスが、特にアカウント、プロジェクト、モデル バージョン レベルで制限されます。 モデルは冪等であり、特定の時点のトレーニングにマッピングされる固有の ARN を持ちます。 arn:aws:rekognition:account:region:project/project_name/version/name/timestamp
.
次の図は、QA から本番環境へのモデルのローテーションを示しています。
前述のアーキテクチャでは、本番アプリケーションと QA アプリケーションは、それぞれの VPC エンドポイントを通じて v2 または v3 モデル エンドポイントを使用する API 呼び出しを行います。 構成ストアから ARN を受け取ります (たとえば、 Amazon Systems Manager パラメータストア or AWS アプリ構成)。 このプロセスは n 環境は多数ありますが、簡単にするために XNUMX つのアカウントのみを使用して説明します。 必要に応じて、置き換えられたモデル バージョンを削除すると、それらのリソースがさらに消費されなくなります。
ML アカウントには、アクセスを必要とする各環境固有 (運用アカウントなど) の IAM ロールがあります。 デプロイの一部としての CI/CD パイプラインは、IAM ロールのインライン ポリシーを変更して、適切なモデルへのアクセスを許可します。
Model-v2 を QA アカウントから運用アカウントに昇格させるシナリオを考えてみましょう。 このプロセスには次の手順が必要です。
- Rekognition Custom Labels コンソールで、Model-v2 エンドポイントを実行状態に移行します。
- ML アカウントの IAM クロスアカウント ロールに、新しいバージョンの Model-v2 へのアクセスを付与します。
なお、 リソース要素 ARN のワイルドカードをサポートします。
- 委任ロールを使用して、実稼働アプリケーションから Model-v2 にテスト呼び出しを送信します。
- 必要に応じて、Model-v1 へのクロスアカウント ロールのアクセスを削除します。
- 必要に応じて、追加の AWS アカウントごとにステップ 2 ~ 3 を繰り返します。
- 必要に応じて、コストの発生を避けるために Model-v1 エンドポイントを停止します。
すべてのリージョンの IAM コントロール プレーンから IAM データ プレーンへのグローバル ポリシーの伝播は、結果的に整合性のある操作です。 この設計では、マルチリージョン構成でわずかな遅延が発生する可能性があります。
サービス制御ポリシーを通じてガードレールを作成する
クロスアカウントロールを使用すると、事前トレーニングされたマネージド AI リソースを共有するための安全なメカニズムが作成されます。 しかし、その役割のポリシーが寛容すぎる場合はどうなるのでしょうか? これらのリスクを軽減するには、 サービス コントロール ポリシー (SCP) を使用して、アカウント全体にアクセス許可のガードレールを設定する。 ガードレールは、 最大権限 IAM ID で使用できます。 これらの機能により、モデル消費者アカウントが共有 Amazon Rekognition エンドポイントを停止するなどの行為を防ぐことができます。 適切なガードレール要件を定義した後、 組織内の組織単位 複数のアカウントにわたるこれらのポリシーを一元管理できるようになります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyModifyingRekgnotionProjects", "Effect": "Deny", "Action": [ "rekognition:CreateProject*", "rekognition:DeleteProject*", "rekognition:StartProject*", "rekognition:StopProject*", ], "Resource": [ “arn:aws:rekognition:*:*:project/* ] } ]
}
また、検出制御を構成してその構成を監視し、コンプライアンスから逸脱しないようにすることもできます。 AWS IAMアクセスアナライザー 組織全体のポリシーの評価と、未使用のアクセス許可のレポートをサポートします。 さらに、 AWSConfig AWS リソースの構成の評価、監査、評価が可能になります。 この機能は、次のような標準的なセキュリティおよびコンプライアンスの要件をサポートします。 検証と修復 S3 バケットの暗号化設定。
まとめ
コンピューター ビジョン、翻訳、不正行為検出などの ML 機能を追加するには、すぐに使えるソリューションが必要です。 また、品質管理、コンプライアンス、規制の目的で、さまざまな環境を分離するセキュリティ境界も必要です。 AWS の事前トレーニング済み AI サービスと AWS Control Tower は、その機能を簡単にアクセスでき安全な方法で提供します。
AWS の事前トレーニング済み AI サービスは現在、トレーニング済みのカスタム モデルを AWS アカウント間でコピーすることをサポートしていません。 このようなメカニズムが存在するまでは、同じデータセットを使用して各 AWS アカウントでモデルを再トレーニングする必要があります。 この投稿では、IAM クロスアカウント ポリシーを使用して、堅牢なセキュリティ制御を維持しながらモデル エンドポイントを共有する代替設計アプローチを示します。 さらに、余分なトレーニング ジョブに対する支払いを停止することもできます。 クロスアカウントポリシーの詳細については、次を参照してください。 IAMチュートリアル:IAMロールを使用してAWSアカウント間でアクセスを委任する.
著者について
ネイト・バッハマイヤー は AWS のシニア ソリューション アーキテクトで、一度に XNUMX つのクラウド統合をしながらニューヨークを遊牧的に探索しています。 彼は顧客のワークロードの移行と最新化を専門としています。 これに加えて、ネイトはフルタイムの学生であり、XNUMX 人の子供がいます。
マリオ・ブルゴイン AWS のシニア パートナー ソリューション アーキテクト、AI/ML スペシャリスト、および MLOps のグローバル テクノロジー リードです。 彼は、クラウドに AI ソリューションを導入する企業顧客やパートナーと協力しています。 彼は、ビッグデータ用の最初の商用機械学習システムの 30 つを作成したことから始まり、スタートアップや企業で機械学習と AI に XNUMX 年以上の経験を持っています。 マリオは残りの時間を、XNUMX 台のベルギー製タービュレンで遊んだり、家族のために夕食を作ったり、数学や宇宙論を学んだりして過ごしています。
ティム・マーフィー は、AWS のシニア ソリューション アーキテクトであり、さまざまな業界の企業顧客と協力して、クラウドでビジネス ベースのソリューションを構築しています。 彼は過去 XNUMX 年間、新興企業、非営利企業、営利企業、政府機関と協力してインフラストラクチャを大規模に展開してきました。 テクノロジーをいじっていない余暇には、彼が地球の遠く離れた場所で山をハイキングしたり、波でサーフィンをしたり、新しい街をサイクリングしたりしているのを見つけることができるでしょう。
- "
- 100
- 98
- 私たちについて
- アクセス
- 越えて
- Action
- 行動
- NEW
- 住所
- AI
- AIサービス
- すべて
- 許可
- 既に
- しかし
- Amazon
- 間で
- 別の
- API
- 適用可能な
- 申し込み
- アプローチ
- 建築
- 利用できます
- AWS
- BEST
- ベストプラクティス
- ビッグデータ
- ブロート
- ビルド
- ビジネス
- 機能
- 例
- 原因となる
- 課題
- 市町村
- クラウド
- コード
- 組み合わせ
- コマーシャル
- コマンドと
- コミュニケーション
- コンプライアンス
- 計算
- 条件
- 接続
- Connections
- 接続性
- 領事
- consumer
- 消費
- 中身
- コントロール
- コスト
- 作成
- Customers
- データ
- 十年
- 遅延
- 展開します
- 展開する
- 展開
- 設計
- 検出
- 開発
- デバイス
- 異なります
- そうではありません
- ドメイン
- ダウン
- EARTH
- 簡単に
- 効果
- 暗号化
- エンドポイント
- Enterprise
- 環境
- 例
- 体験
- 家族
- 名
- 柔軟性
- フォーカス
- フォロー中
- フレームワーク
- 詐欺
- 機能性
- 未来
- ゲイツ
- グローバル
- 政府・公共機関
- HTTPS
- 何百
- アイデンティティ
- 実装する
- include
- 個人
- 産業
- 産業を変えます
- 情報
- インフラ関連事業
- 統合
- インタフェース
- インターネット
- 分離
- IT
- 子供たち
- ラベル
- つながる
- 学習
- レベル
- LINE
- linuxの
- 機械
- 機械学習
- 管理
- マネージャー
- 管理する
- メーカー
- ゲレンデマップ
- 数学
- ML
- モデル
- 最も
- ネットワーク
- ニューヨーク
- 業務執行統括
- オプション
- 編成
- 組織
- 組織
- その他
- パートナー
- パートナー
- ポリシー
- 方針
- 予測
- 校長
- プライベート
- プロセス
- ラボレーション
- 生産
- 製品
- プロジェクト
- 所有権
- 保護
- は、大阪で
- 公共
- 目的
- 品質
- 受け取ります
- お勧めする
- 縮小
- レギュレータ
- リリース
- 必要とする
- 要件
- リソースを追加する。
- リソース
- 結果
- リスク
- ランニング
- 規模
- SDDK
- 安全に
- セキュリティ
- セキュリティポリシー
- サービス
- サービス
- セッションに
- シェアする
- shared
- 株式
- 簡単な拡張で
- サイズ
- ソリューション
- 専門にする
- 特に
- start
- スタートアップ
- 都道府県
- ステートメント
- ストレージ利用料
- 店舗
- 作戦
- 学生
- サポート
- サポート
- スイッチ
- システム
- チーム
- テク
- テクノロジー
- test
- 介して
- 時間
- トレーニング
- トランジット
- インタビュー
- 信頼
- ユニーク
- つかいます
- 値
- バーチャル
- ビジョン
- VPN
- 波浪
- ウェブサイト
- ウェブサイト
- この試験は
- 以内
- 無し
- ワーキング
- 作品
- 年