モデルレジストリとAmazon SageMakerモデルカードを統合する
Integrating Model Registry and Amazon SageMaker Model Card
Amazon SageMakerモデルカードを使用すると、モデルのドキュメント化を標準化し、設計、構築、トレーニング、評価を含むモデルのライフサイクルの可視化を実現することができます。モデルカードは、監査およびドキュメント化の目的で信頼性のあるビジネスおよび技術のメタデータの単一の情報源となることを目的としています。モデルガバナンスに重要なモデルの事実シートを提供します。
これまで、モデルカードはモデル名の一致を使用してAmazon SageMakerモデルレジストリのモデルに論理的に関連付けられていました。しかし、ビジネスの問題を機械学習(ML)モデルを使用して解決する際に、顧客が問題に取り組むにつれて、モデルの複数のバージョンを作成し、複数のモデルバージョンを運用化およびガバナンス化する必要があります。そのため、モデルカードを特定のモデルバージョンに関連付ける機能が必要です。
本記事では、モデルカードを展開されたモデルバージョンレベルでモデルレジストリと統合する新機能について説明します。モデルカードバージョンの管理についてのソリューションアーキテクチャとベストプラクティスについて説明し、モデルレジストリ内のモデルバージョンとのモデルカードの統合のセットアップ、運用化、ガバナンスについて説明します。
ソリューションの概要
SageMakerモデルカードは、ガバナンスの観点からモデルのドキュメント化を標準化するのに役立ち、SageMakerモデルレジストリはMLモデルの展開と運用化をサポートします。モデルレジストリは、モデルのメタデータ情報を持つMLモデルを組織化して格納するための階層的な構造をサポートしています。
組織がMLを使用してビジネスの問題を解決する場合、例えば顧客の離脱予測など、次の手順をお勧めします:
- 解決すべきビジネスの問題のためのモデルカードを作成します。
- 解決すべきビジネスの問題のためのモデルパッケージグループを作成します。
- モデルパッケージバージョン(例:Customer Churn V1)のビルド、トレーニング、評価、登録を行います。
- モデルパッケージバージョンをモデルカードにリンクするようにモデルカードを更新します。
- 新しいモデルパッケージバージョンについて反復する際には、前のバージョンからモデルカードをクローンし、新しいモデルパッケージバージョンにリンクします(例:Customer Churn V2)。
以下の図は、SageMakerモデルカードがモデルレジストリと統合されている様子を示しています。
前述の図に示すように、SageMakerモデルカードとモデルレジストリの統合により、モデルカードをモデルレジストリの特定のモデルバージョンに関連付けることができます。これにより、モデルの旅程全体で包括的かつ標準化されたドキュメンテーションを備えた登録済みモデルバージョンの単一情報源を確立し、SageMaker上でのモデルの発見性を高め、ガバナンス、コンプライアンス、およびアカウンタビリティを促進することができます。
モデルカードの管理のベストプラクティス
ガバナンスの下での機械学習の運用は、多くの企業組織にとって重要な要件です。特に高度に規制された業界では、AWSはML環境の信頼性のある運用を可能にするためにいくつかのサービスを提供しています。
SageMakerモデルカードは、ガバナンスとレポートのためにMLモデルの重要な詳細を一箇所で文書化するためのものです。モデルカードは、モデルの意図した使用方法やリスク評価、トレーニングの詳細やメトリクス、評価結果や観察結果、および考慮事項、推奨事項、カスタム情報などの追加情報を記録するのに役立ちます。
モデルカードは、開発プロセスの一環として管理および更新する必要があります。それらは、MLの継続的なデリバリーやパイプラインの重要な部分です。ウェルアーキテクチャのMLプロジェクトがMLOpsの枠組みの下で継続的な統合と継続的なデリバリー(CI/CD)を実装するのと同様に、継続的なMLドキュメンテーションプロセスは、多くの規制された業界や高リスクのユースケースでの重要な機能です。モデルカードは、責任ある透明なML開発のためのベストプラクティスの一部です。
以下の図は、モデルカードが開発ライフサイクルの一部であるべきであることを示しています。
以下のベストプラクティスに注意してください:
- プロジェクトライフサイクルの初期段階でモデルカードを作成することをお勧めします。プロジェクトの最初のフェーズでは、ビジネスの目標を特定し、MLの問題をフレームワーク化する作業に取り組む際に、モデルカードの作成を開始するべきです。ビジネス要件と重要なパフォーマンスメトリクスの異なるステップを進めるにつれて、モデルカードをドラフトステータスで作成し、ビジネスの詳細と意図した使用方法を決定することができます。
- モデルの開発ライフサイクルのフェーズとして、モデルレジストリを使用して本番用のモデルをカタログ化し、モデルのバージョンを管理し、モデルにメタデータを関連付けることをお勧めします。モデルレジストリはラインナップの追跡を可能にします。
- 成功裏に反復し、モデルを本番環境に展開する準備ができたら、モデルカードを更新する時が来ました。展開ライフサイクルフェーズでは、モデルカードのモデルの詳細を更新することができます。また、トレーニングの詳細、評価の詳細、倫理的な考慮事項、注意事項と推奨事項も更新する必要があります。
モデルカードには、関連付けられたバージョンがあります。モデルのバージョンは、モデルカードのステータス以外のすべての属性に対して不変です。モデルカードに他の変更を加える場合(評価メトリック、説明、予定された使用など)、SageMakerは更新された情報を反映するために新しいモデルカードのバージョンを作成します。これにより、作成されたモデルカードが改ざんされないようになっています。また、一意のモデル名には関連付けられたモデルカードが1つしかなく、モデルカードを作成した後に変更することはできません。
MLモデルは動的であり、ワークフロー自動化コンポーネントを使用すると、本番環境で何百ものモデルの構築、トレーニング、テスト、展開を容易にスケールアップし、より迅速に反復し、手動オーケストレーションによるエラーを減らし、繰り返し可能な仕組みを構築することができます。
したがって、モデルカードのライフサイクルは以下の図に示すようになります。モデルライフサイクルを通じてモデルカードを更新するたびに、自動的に新しいモデルカードのバージョンが作成されます。新しいモデルバージョンに対して反復するたびに、前のモデルバージョンの一部のモデルカード情報を継承し、同じライフサイクルに従う新しいモデルカードが作成されます。
前提条件
この投稿では、既にモデルがモデルレジストリにあることを前提としています。一緒に進める場合は、SageMaker Pipelines integration with Model Monitor and Clarify のGitHubのSageMakerの例を使用してモデルレジストリを埋めることができます。
モデルレジストリのモデルバージョンとモデルカードの統合
この例では、モデルレジストリに model-monitor-clarify-group
パッケージがあります。
このパッケージには2つのモデルバージョンがあります。
この例では、モデルのバージョン1を新しいモデルカードにリンクします。モデルレジストリでは、バージョン1の詳細を見ることができます。
これで、SageMaker Python SDKの新しい機能を使用できます。モデルレジストリの中からモデルカードをリンクしたい特定のモデルバージョンを選択することができます。
次に、前のモデルパッケージを取得したsagemaker.model_card ModelPackage
モジュールからmodel_package_details
パラメータを指定して、モデルバージョンのための新しいモデルカードを作成します。モデルカードには、必要なすべての追加の詳細を入力する必要があります。この投稿では、例としてシンプルなモデルカードを作成します。
それを使用して、SageMaker Python SDKを使用してモデルカードを作成できます。
モデルカードを再度ロードすると、"__model_package_details"
の下に関連するモデルが表示されます。
また、以下のコードスニペットの例に示すように、既存のモデルカードをmodel_package
で更新するオプションもあります。
my_card = ModelCard.load(("<model_card_name>")
mp_details = ModelPackage.from_model_package_arn("<arn>")
my_card.model_package_details = mp_details
my_card.update()
最後に、既存のモデルパッケージ内で新しいモデルパッケージバージョンを作成または更新する際に、既にそのモデルパッケージグループにモデルカードが存在する場合、ビジネスの詳細や意図的な使用方法などの一部の情報が新しいモデルカードに引き継がれることがあります。
クリーンアップ
ノートブックの前提条件セクションで作成されたリソースのクリーンアップは、ユーザーの責任です。リソースのクリーンアップ手順に従ってください。
結論
この記事では、SageMakerモデルカードをモデルレジストリ内のモデルバージョンに統合する方法について説明しました。モデルカードのソリューションアーキテクチャとモデルガバナンスの姿勢を向上させるためのベストプラクティスを共有し、モデルカードのセットアップとオペレーションの方法を示しました。このソリューションを試してみて、コメントセクションでご意見を共有していただくことをお勧めします。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles