ゼファーネットのロゴ

Amazon SageMaker モデルカード共有を使用してモデルガバナンスを改善する | アマゾン ウェブ サービス

日付:

人工知能 (AI) および機械学習 (ML) テクノロジーが主流になるにつれ、多くの企業が、本番環境で ML モデルを活用した重要なビジネス アプリケーションを大規模に構築することに成功しています。 ただし、これらの ML モデルはビジネスにとって重要な意思決定を行うため、企業にとって ML ライフサイクル全体にわたって適切なガードレールを追加することが重要です。 ガードレールは、モデルのライフサイクルで使用されるコード、構成、データとモデル構成のセキュリティ、プライバシー、品質がバージョン管理され、保存されることを保証します。

企業内での ML プロセスとアクティビティは、複数の利害関係者やペルソナからの貢献を必要とする深く関与したプロセスが組み込まれているため、より複雑になっているため、企業にとってこれらのガードレールの実装はますます困難になっています。 データ エンジニアとデータ サイエンティストに加えて、ML ライフサイクルを自動化および合理化するための運用プロセスが組み込まれています。 さらに、ビジネス関係者が急増し、場合によっては法律やコンプライアンスのレビューを行うため、アクセス制御、アクティビティ追跡、ML ライフサイクル全体にわたるレポート管理の透明性を高める機能が必要になります。

ML モデルの開発、検証、使用を体系的に可視化するフレームワークは、ML ガバナンスと呼ばれます。 AWS re:Invent 2022 の期間中、 AWS が新しい ML ガバナンス ツールを導入 for アマゾンセージメーカー これにより、アクセス制御が簡素化され、ML プロジェクトの透明性が高まります。 ML ガバナンスの一部として利用できるツールの XNUMX つは次のとおりです。 Amazon SageMaker モデルカード、モデルのライフサイクル全体を通じてドキュメントを一元化および標準化することで、モデル情報の信頼できる単一の情報源を作成する機能があります。

SageMaker モデル カードを使用すると、モデルの文書化方法を標準化できるため、設計、構築、トレーニング、評価に至るモデルのライフサイクルを可視化できます。 モデル カードは、監査と文書化の目的で確実に使用できる、モデルに関するビジネスおよび技術メタデータの信頼できる唯一の情報源となることを目的としています。 これらは、モデル ガバナンスにとって重要なモデルのファクト シートを提供します。

モデル、プロジェクト、チームをスケールするときのベスト プラクティスとして、ML モデルの開発とデプロイメントのためにプロジェクトとチームを分離するマルチアカウント戦略を採用することをお勧めします。 ML モデルのガバナンスの改善の詳細については、以下を参照してください。 Amazon SageMaker を使用して機械学習モデルのガバナンスを改善する.

アーキテクチャの概要

アーキテクチャは次のように実装されています。

  • データ サイエンス アカウント – データ サイエンティストは次のような実験を行います。 SageMaker スタジオ を使用してモデルをステージング/運用環境にデプロイするための MLOps セットアップを構築します。 SageMaker プロジェクト.
  • ML 共有サービス アカウント – データ サイエンス アカウントからセットアップされた MLOps は、次を使用して継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインをトリガーします。 AWS コードコミット & AWS コードパイプライン.
  • 開発アカウント – CI/CD パイプラインは、データの前処理、モデルのトレーニング、モデルの評価や登録などの後処理をカバーするこのアカウントの ML パイプラインをさらにトリガーします。 これらのパイプラインの出力により、モデルがデプロイされます。 SageMaker エンドポイント 推論目的で使用されます。 ガバナンス要件に応じて、データサイエンスと開発アカウントを単一の AWS アカウントに統合できます。
  • データ アカウント – 開発アカウントで実行されている ML パイプラインは、このアカウントからデータを取得します。
  • テスト アカウントと本番アカウント – CI/CD パイプラインは、開発アカウントの後にデプロイを継続して、これらのアカウントで SageMaker エンドポイント構成をセットアップします。
  • セキュリティとガバナンス – AWS Identity and Access Management (IAM)、AWS IAM Identity Center、AWS CloudTrail、AWS Key Management Service (AWS KMS)、Amazon CloudWatch、AWS Security Hub などのサービスは、セキュリティとガバナンスの一環としてこれらのアカウント全体で使用されます。ガバナンス。

次の図は、このアーキテクチャを示しています。

スケーラブルなマルチアカウント ML アーキテクチャの設定の詳細については、以下を参照してください。 Amazon SageMaker を使用した企業向け MLOps 基盤.

当社の顧客は、モデル カードで共有される情報を通じてモデルの可視性とガバナンスを向上させるために、アカウント間でモデル カードを共有する機能を必要としています。 クロスアカウント モデル カードの共有により、顧客は組織内で利用可能なモデル カードにアクセスしながら、マルチアカウント戦略のメリットを享受できるため、コラボレーションを加速し、ガバナンスを確保できます。

この投稿では、モデル カードの新しいアカウント間共有機能を使用して、モデル開発ライフサイクル (MDLC) アカウント間でモデル カードを設定し、アクセスする方法を示します。 まず、モデル カードのクロスアカウント共有機能を設定するためのシナリオとアーキテクチャについて説明し、次に、可視性とモデル ガバナンスを向上させるためにアカウント間で共有モデル カードを設定およびアクセスする方法の各コンポーネントを詳しく説明します。

ソリューションの概要

ML モデルを構築するときは、マルチアカウント アーキテクチャを設定してワークロードを分離し、セキュリティ、信頼性、スケーラビリティを向上させることをお勧めします。 この投稿では、顧客チャーンのユースケースのモデルを構築してデプロイすることを想定します。 次のアーキテクチャ図は、マルチアカウントの機械学習モデル開発ライフサイクル (MDLC) アーキテクチャでモデル カードを管理するための推奨アプローチの XNUMX つである集中型モデル カードを示しています。 ただし、別のアプローチであるハブアンドスポーク モデル カードを採用することもできます。 この記事では、集中型モデル カード アプローチのみに焦点を当てますが、同じ原則をハブアンドスポーク アプローチにも拡張できます。 主な違いは、各スポーク アカウントが独自のバージョンのモデル カードを維持し、集約して一元化されたアカウントにコピーするプロセスがあることです。

次の図は、このアーキテクチャを示しています。

アーキテクチャは次のように実装されています。

  1. リード データ サイエンティストは、ML を使用して顧客チャーンのユースケースを解決するよう通知され、ML 共有サービス アカウントでドラフト ステータスの顧客チャーン V1 モデルのモデル カードを作成することで ML プロジェクトを開始します。
  2. 自動化を通じて、そのモデル カードは ML 開発アカウントと共有されます
  3. データ サイエンティストはモデルを構築し、実験結果に基づいて API 経由でモデル カードに情報を入力し始めます。モデル カードのステータスは「レビュー保留中」に設定されます。
  4. 自動化により、そのモデル カードが ML テスト アカウントと共有されます
  5. ML エンジニア (MLE) が ML テスト アカウントで統合テストと検証テストを実行し、中央レジストリ内のモデルが承認待ちとしてマークされます。
  6. モデル承認者は、中央のモデル カードで提供されるサポート ドキュメントを使用してモデルの結果をレビューし、実稼働展開用のモデル カードを承認します。
  7. 自動化により、そのモデル カードは読み取り専用モードで ML Prod アカウントと共有されます。

前提条件

開始する前に、次の前提条件があることを確認してください。

  • ツー AWSアカウント.
  • 両方の AWS アカウントで、次のことを行うための管理者アクセス権を持つ IAM フェデレーション ロール。
    • Amazon SageMaker 内でモデルカードを作成、編集、表示、削除します。
    • AWS RAM 内でリソース共有を作成、編集、表示、削除します。

詳細については、 AWS RAM の IAM ポリシーの例.

モデルカード共有の設定

モデルカードを作成するアカウントがモデルカードアカウントとなります。 モデル カード アカウントのユーザーは、更新できる共有アカウントとそれらを共有します。 モデル カード アカウントのユーザーは、次の方法でモデル カードを共有できます。 AWS Resource Access Manager(AW​​S RAM)。 AWS RAM は、AWS アカウント間でリソースを共有するのに役立ちます。

次のセクションでは、モデル カードを共有する方法を示します。

まず、前述したように、Customer Churn ユースケースのモデル カードを作成します。 Amazon SageMaker コンソールで、[ガバナンス] セクションを展開し、[ガバナンス] セクションを選択します。 モデルカード.

モデルカードを作成します ドラフト 名前付きのステータス 顧客チャーンモデルカード。 詳細については、を参照してください。 モデルカードを作成する。 このデモでは、残りのフィールドを空白のままにして、モデル カードを作成できます。

あるいは、次の AWS CLI コマンドを使用してモデルカードを作成することもできます。

aws sagemaker create-model-card --model-card-name Customer-Churn-Model-Card --content "{"model_overview": {"model_owner": "model-owner","problem_type": "Customer Churn Model"}}" --model-card-status Draft

次に、AWS RAM を使用してクロスアカウント共有を作成します。 AWS RAM コンソールで、選択します リソース共有を作成する.

リソース共有の名前を入力します (例: 「Customer-Churn-Model-Card-Share」)。 リソースの中で – 任意 セクションで、リソースの種類を次のように選択します SageMaker モデル カード。 前のステップで作成したモデル カードがリストに表示されます。

そのモデルを選択すると、[選択されたリソース] セクションに表示されます。 次の手順に示すように、そのリソースを再度選択し、 Next.

次のページでは、管理されたアクセス許可を選択できます。 カスタム権限を作成することも、デフォルトのオプション「AWSRAMPermissionSageMakerModelCards」を選択します Next。 詳細については、を参照してください。 AWS RAM でのアクセス許可の管理.

次のページで、プリンシパルを選択できます。 [プリンシパル タイプの選択] で、次を選択します。 AWSアカウント シェアモデルカードのアカウントのIDを入力します。 選択する Add 次のページに進みます。

最後のページで情報を確認し、「リソース共有の作成」を選択します。 あるいは、以下を使用することもできます AWSCLI リソース共有を作成するコマンド:

aws ram create-resource-share --name <Name of the Model Card> aws ram associate-resource-share --resource-share-arn <ARN of resource share create from the previous command> --resource-arns <ARN of the Model Card>

AWS RAM コンソールに、リソース共有の属性が表示されます。 共有リソース、管理されたアクセス許可、および共有プリンシパルが「」にあることを確認してください。Associated" 状態。

AWS RAM を使用してリソース共有を作成した後、リソース共有で指定されたプリンシパルに共有のリソースへのアクセスを許可できます。

  • AWS Organizations との AWS RAM 共有を有効にし、共有先のプリンシパルが共有アカウントと同じ組織内にある場合、それらのプリンシパルは、アカウント管理者がアクセス許可を付与するとすぐにアクセスを受け取ることができます。
  • 組織との AWS RAM 共有を有効にしない場合でも、組織内の個々の AWS アカウントとリソースを共有できます。 使用側アカウントの管理者は、リソース共有に参加するための招待を受け取ります。リソース共有で指定されたプリンシパルが共有リソースにアクセスできるようにするには、その招待を受け入れる必要があります。
  • リソースの種類がサポートしている場合は、組織外のアカウントと共有することもできます。 使用側アカウントの管理者は、リソース共有に参加するための招待を受け取ります。リソース共有で指定されたプリンシパルが共有リソースにアクセスできるようにするには、その招待を受け入れる必要があります。

AWS RAM の詳細については、以下を参照してください。 AWS RAM の用語と概念.

共有モデルカードへのアクセス

これで、共有 AWS アカウントにログインしてモデル カードにアクセスできるようになりました。 AWS RAM へのアクセスを許可する IAM 権限 (IAM ロール) を使用して AWS コンソールにアクセスしていることを確認してください。

AWS RAM を使用すると、自分が追加されているリソース共有、アクセスできる共有リソース、およびリソースを共有している AWS アカウントを表示できます。 共有リソースにアクセスする必要がなくなった場合は、リソース共有を離れることもできます。

共有 AWS アカウントでモデル カードを表示するには:

  1. に移動します 私と共有: 共有リソース AWS RAM コンソールのページ。
  2. 共有が作成されたのと同じ AWS リージョンで操作していることを確認してください。
  3. モデルアカウントから共有されたモデルがリストに表示されます。 リソースの長いリストがある場合は、フィルターを適用して特定の共有リソースを検索できます。 複数のフィルターを適用して検索を絞り込むことができます。
  4. 次の情報が入手可能です。
    1. リソースID – リソースの ID。 これは、モデル カード アカウントで先ほど作成したモデル カードの名前です。
    2. リソースタイプ – リソースのタイプ。
    3. 最終共有日 – リソースが共有された日付。
    4. リソース共有 – リソースが含まれるリソース共有の数。 リソース共有を表示する値を選択します。
    5. オーナーID – リソースを所有するプリンシパルの ID。

AWS CLI オプションを使用してモデルカードにアクセスすることもできます。 正しい認証情報で設定された AWS IAM ポリシーについては、Amazon SageMaker 内でモデルカードを作成、編集、削除する権限があることを確認してください。 詳細については、以下を参照してください。 AWSCLIを設定する.

次の AWS IAM アクセス許可ポリシーをテンプレートとして使用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:ListModelCardVersions", "sagemaker:DescribeModelCardExportJob" ], "Resource": [ "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0", "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*" ] }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::Amazon-S3-bucket-storing-the-pdf-of-the-model-card/model-card-name/*" } ]
}

次の AWS CLI コマンドを実行して、共有モデル カードの詳細にアクセスできます。

aws sagemaker describe-model-card --model-card-name <ARN of the model card>

これで、このアカウントからこのモデル カードに変更を加えることができます。

aws sagemaker update-model-card --model-card-name <ARN of the Model Card> --content "{"model_overview": {"model_owner": "model-owner","problem_type": "Customer Churn Model"}}"

変更を加えた後、モデル カード アカウントに戻って、この共有アカウントに加えた変更を確認します。

問題の種類が「」に更新されました。Customer Churn Model」を AWS CLI コマンド入力の一部として提供しました。

クリーンアップ

作成したモデルカードを削除できます。 モデルカードを共有するために作成した AWS RAM リソース共有を必ず削除してください。

まとめ

この投稿では、ML ワークロードを安全かつ確実にスケーリングおよび管理するためのマルチアカウント アーキテクチャの概要を説明しました。 モデル カード共有を設定するためのアーキテクチャ パターンについて説明し、集中化されたモデル カード共有パターンがどのように機能するかを説明しました。 最後に、モデル開発ライフサイクルにおける可視性とガバナンスを向上させるために、複数のアカウント間でのモデル カード共有を設定しました。 ぜひ新しいモデルのカード共有機能をお試しいただき、フィードバックをお聞かせください。


著者について

ヴィシャル・ナイク アマゾン ウェブ サービス (AWS) のシニア ソリューション アーキテクトです。 彼は、AWS ソリューションとベストプラクティスを使用して、顧客がビジネスニーズを達成し、複雑な課題を解決できるよう支援することに喜びを感じているビルダーです。 彼の主な焦点分野には、機械学習、DevOps、コンテナーが含まれます。 ヴィシャールは余暇に、タイムトラベルや別世界をテーマにした短編映画を作るのが大好きです。

ラムヴィタルラムヴィタル AWS のプリンシパル ML ソリューション アーキテクトです。 彼は、分散、ハイブリッド、クラウド アプリケーションの設計と構築に 20 年以上の経験があります。 彼は、安全でスケーラブルな AI/ML およびビッグ データ ソリューションを構築し、企業顧客のクラウド導入と最適化の取り組みを支援してビジネス成果を向上させることに情熱を注いでいます。 暇なときは、オートバイに乗って、2 歳のシープ・ア・ドゥードゥルと散歩しています。

スポット画像

最新のインテリジェンス

スポット画像