Amazon SageMaker Model Cardの共有を利用して、モデルのガバナンスを向上させる

Amazon SageMaker Model Cardを利用して、モデルのガバナンスを向上させる

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

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

MLモデルの開発、検証、使用にシステマティックな可視性を提供するフレームワークをMLガバナンスと呼びます。AWS re:Invent 2022では、Amazon SageMaker向けの新しいMLガバナンスツールが紹介され、MLプロジェクトを管理するためのアクセス制御を簡素化し、透明性を向上させます。MLガバナンスの一環として利用可能なツールの1つがAmazon SageMaker Model Cardsであり、モデルのライフサイクル全体で文書化を集中化し標準化することにより、モデル情報の真実の単一のソースを作成する機能を提供します。

SageMakerモデルカードを使用すると、モデルの設計、構築、トレーニング、評価など、モデルのライフサイクル全体にわたるモデルの文書化を標準化することができます。モデルカードは、モデルガバナンスに重要なビジネスおよび技術メタデータの真実の情報源となり、監査および文書化の目的で信頼性のある情報源となります。モデルガバナンスに重要なモデルのファクトシートを提供します。

モデル、プロジェクト、チームを拡大する際には、MLモデルの開発と展開のためのプロジェクトとチームの分離を提供するマルチアカウント戦略を採用することをお勧めします。MLモデルのガバナンスを改善する詳細については、Amazon SageMakerを使用して機械学習モデルのガバナンスを改善するを参照してください。

アーキテクチャの概要

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

  • データサイエンスアカウント – データサイエンティストはSageMaker Studioで実験を行い、SageMakerプロジェクトを使用してモデルをステージング/本番環境に展開するためのMLOpsセットアップを構築します。
  • ML共有サービスアカウント – データサイエンスアカウントからのMLOpsセットアップは、AWS CodeCommitおよびAWS CodePipelineを使用して継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプラインをトリガーします。
  • 開発アカウント – CI/CDパイプラインは、データの前処理、モデルのトレーニング、モデルの評価および登録などのポスト処理をカバーするMLパイプラインをさらにトリガーします。これらのパイプラインの出力は、推論の目的でSageMakerエンドポイントにモデルを展開します。ガバナンス要件に応じて、データサイエンスおよび開発アカウントを単一のAWSアカウントに統合することもできます。
  • データアカウント – 開発アカウントで実行されるMLパイプラインは、このアカウントからデータを取得します。
  • テストおよび本番アカウント – CI/CDパイプラインは、Devアカウント後にデプロイを続行し、これらのアカウントで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)アーキテクチャにおいて、モデルカードを管理するための推奨アプローチの1つである中央集約型モデルカードを示しています。ただし、ハブ・アンド・スポーク型のモデルカードを採用することもできます。この記事では、中央集約型モデルカードアプローチに焦点を当てますが、同じ原則はハブ・アンド・スポーク型アプローチにも拡張できます。主な違いは、各スポークアカウントが独自のモデルカードのバージョンを維持し、集計および中央集約アカウントにコピーするためのプロセスを持つことです。

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

このアーキテクチャは、以下のように実装されます。

  1. リードデータサイエンティストは、顧客離反のユースケースを解決するためにMLを使用するように通知され、ML共有サービスアカウントでドラフトステータスのCustomer Churn V1モデルのモデルカードを作成してMLプロジェクトを開始します。
  2. 自動化により、そのモデルカードはML Devアカウントと共有されます。
  3. データサイエンティストはモデルを構築し、実験結果に基づいてAPIを介してモデルカードに情報を追加し、モデルカードのステータスを「レビュー待ち」に設定します。
  4. 自動化により、そのモデルカードはMLテストアカウントと共有されます。
  5. MLエンジニア(MLE)はMLテストアカウントで統合および検証テストを実行し、中央レジストリのモデルのステータスを「承認待ち」にします。
  6. モデル承認者は、中央モデルカードに提供されたサポートドキュメンテーションを使用してモデルの結果を確認し、モデルカードを本番デプロイメントのために承認します。
  7. 自動化により、そのモデルカードはML本番アカウントと読み取り専用モードで共有されます。

前提条件

開始する前に、以下の前提条件を満たしていることを確認してください:

  • 2つのAWSアカウント。
  • 両方のAWSアカウントで、以下の操作を実行するための管理者アクセスを持つIAMフェデレーションロールがあること:
    • Amazon SageMaker内でモデルカードを作成、編集、表示、削除する。
    • AWS RAM内でリソース共有を作成、編集、表示、削除する。

詳細については、「AWS RAM用のIAMポリシーの例」を参照してください。

モデルカードの共有の設定

モデルカードが作成されるアカウントは、モデルカードのアカウントです。モデルカードのアカウントのユーザーは、アップデートできる共有アカウントと共有します。モデルカードのアカウント内のユーザーは、AWS Resource Access Manager(AWS RAM)を介してモデルカードを共有できます。AWS RAMは、AWSアカウント間でリソースを共有するのに役立ちます。

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

まず、以前に説明したように、顧客離反のユースケース用のモデルカードを作成します。Amazon SageMakerコンソールで、ガバナンスセクションを展開し、「モデルカード」を選択します。

モデルカードのステータスを「ドラフト」に設定し、「Customer-Churn-Model-Card」という名前でモデルカードを作成します。詳細については、「モデルカードの作成」を参照してください。このデモンストレーションでは、残りのフィールドは空白のままでモデルカードを作成してください。

または、次の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モデルカードに設定します。前のステップで作成したモデルカードが一覧に表示されます。

そのモデルを選択し、選択されたリソースセクションに表示されます。以下の手順に従って、再度そのリソースを選択し、次へを選択してください。

次のページでは、管理された権限を選択できます。カスタム権限を作成するか、デフォルトのオプション「AWSRAMPermissionSageMakerModelCards」を使用して、次へを選択します。詳細については、「AWS RAMでの権限の管理」を参照してください。

次のページでは、プリンシパルを選択できます。プリンシパルタイプの選択で、「AWSアカウント」を選択し、モデルカードを共有するアカウントのIDを入力します。追加を選択し、次のページに進んでください。

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

aws ram create-resource-share --name <モデルカードの名前>

aws ram associate-resource-share --resource-share-arn <前のコマンドで作成したリソース共有のARN> --resource-arns <モデルカードのARN>

AWS RAMコンソールでは、リソース共有の属性が表示されます。共有リソース、管理された権限、共有プリンシパルが「関連付けられている」状態になっていることを確認してください。

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

  • AWS OrganizationsとのAWS RAM共有を有効にしている場合、共有するプリンシパルが共有アカウントと同じ組織に所属している場合、そのプリンシパルはアカウント管理者に権限が付与されるとすぐにアクセスできます。
  • AWS OrganizationsとのAWS RAM共有を有効にしていない場合、組織内の個々のAWSアカウントとリソースを共有することもできます。消費アカウントの管理者はリソース共有に参加するための招待を受け取り、リソース共有で指定されたプリンシパルが共有リソースにアクセスできるようにする前に招待を承諾する必要があります。
  • リソースタイプがサポートしている場合、組織外のアカウントとも共有することができます。消費アカウントの管理者はリソース共有に参加するための招待を受け取り、リソース共有で指定されたプリンシパルが共有リソースにアクセスできるようにする前に招待を承諾する必要があります。

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

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

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

AWS RAMを使用すると、追加されたリソース共有、アクセス可能な共有リソース、およびリソースを共有したAWSアカウントの一覧を表示できます。共有リソースへのアクセスが必要なくなった場合は、リソース共有から離脱することもできます。

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

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

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

次の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>

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

aws sagemaker update-model-card --model-card-name <モデルカードのARN> --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}"

変更を行った後、モデルカードアカウントに戻り、共有アカウントで行った変更を確認することができます。

問題タイプは「Customer Churn Model」に更新されました。これは、AWS CLIコマンドの入力の一部として提供したものです。

クリーンアップ

作成したモデルカードを削除することができます。モデルカードを共有するために作成したAWS RAMリソース共有も削除することを忘れないでください。

結論

この記事では、MLワークロードを安全かつ信頼性の高い方法でスケーリングおよびガバナンスするためのマルチアカウントアーキテクチャの概要を提供しました。モデルカードの共有を設定するためのアーキテクチャパターンについて説明し、中央集権化されたモデルカードの共有パターンの動作を示しました。最後に、モデルの開発ライフサイクルにおいて可視性とガバナンスを向上させるために、複数のアカウント間でモデルカードの共有を設定しました。新しいモデルカードの共有機能を試してみて、ご意見をお聞かせください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「さまざまな用途に合わせて形を変える多目的ロボット」

イギリスのブリストル大学の研究者が開発した四面体の形をしたロボットは、柔軟な配管を備えており、その形状、サイズ、動き...

AI研究

「研究者が量子コンピューティングのためのトポロジカル超伝導体を進展させる」

「研究者たちは、より堅牢なキュービットを作るために、超伝導体とトポロジカル絶縁体を組み合わせた新しい材料システムを開...

AIニュース

「ジェネレーティブAIによる先進的なトランスフォーマーで創造性を解き放つ」

導入 人工知能の絶え間なく進化する風景において、近年際立った存在となっている名前があります。それがトランスフォーマーと...

AIニュース

「CEO氏によると、ホンダは東京で自動運転タクシーサービスを開始する予定です」

GMとの共同企業で、クルーズは最終的には500台のロボタクシーを所有することを目指しています

AIニュース

学生と教授たちは、建物のセンサーに抗議しています

イギリスのクイーン・メアリー大学の関係者は、今年初めにキャンパスの建物にセンサーが設置されることを発表しましたスタッ...