「モデルガバナンスを向上させるために、Amazon SageMaker Model Cardsの共有を利用してください」

Improve model governance by using Amazon SageMaker Model Cards for sharing.

人工知能(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でMLモデルのガバナンスを改善するを参照してください。

アーキテクチャの概要

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

  • データサイエンスアカウント – データサイエンティストはSageMaker Studioで実験を行い、SageMakerプロジェクトを使用してモデルをステージング/本番環境に展開するためのMLOpsセットアップを構築します。
  • ML共有サービスアカウント – データサイエンスアカウントからのMLOpsセットアップは、AWS CodeCommitおよびAWS CodePipelineを使用して継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプラインをトリガーします。
  • Devアカウント – CI/CDパイプラインは、データの前処理、モデルのトレーニング、モデルの評価や登録などの後処理をカバーするMLパイプラインをトリガーします。これらのパイプラインの出力は、推論目的で使用するためにSageMakerエンドポイントにモデルを展開します。ガバナンス要件に応じて、データサイエンスおよびDevアカウントを単一のAWSアカウントに統合することもできます。
  • データアカウント – Devアカウントで実行される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. リードデータサイエンティストは、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リージョンと同じリージョンで操作していることを確認してください。
  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\"}}"

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

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

クリーンアップ

作成したモデルカードを削除することができます。モデルカードを共有するために作成した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

機械学習

「テキストから言葉以上へ」 翻訳結果です

こんにちは読者の皆さん、今日は大規模言語モデル(LLM)の時代に生きていますこれにより、GPT4、ChatGPT、DALL·Eなどのソフ...

データサイエンス

「ウェアラブルデータによるコロナ感染予測」

消費者用ウェアラブルデバイスと医療用ウェアラブルデバイスの収斂は近いのか?

AI研究

新しいAI研究がMONAI Generative Modelsを紹介:研究者や開発者が簡単に生成モデルをトレーニング、評価、展開できるオープンソースプラットフォーム

最新の生成型人工知能の進歩により、医療画像を含む複数の分野で新たな進展がありました。これらの生成モデルは、異常検出、...

機械学習

「Google LLMは、ドキュメントを読むだけでツールをマスターできる」

急速な技術の進歩の時代において、人工知能(AI)は時折、人間のような驚異的な進歩を遂げています。Googleの研究者たちは画...

AI研究

「マックス・プランク研究所の研究者がPoseGPTを導入:画像やテキストの説明から3D人物のポーズを理解し、論理的に推論するための大規模言語モデル(LLM)を利用した人工知能フレームワーク」

人間の姿勢は、全体的な健康や幸福、さまざまな生活の側面において重要です。座っている、立っている、もしくは寝ている際の...

データサイエンス

このAI研究では、優れた画像分類のためにランダムスライスデータ拡張(RSMDA)を提案します:ニューラルネットワークの精度と堅牢性を向上させるための新しいアプローチ

データ拡張は深層学習における重要な技術であり、既存のサンプルを変更して新しいトレーニングデータを作成することを含みま...