モデルカードを作成する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

モデルカードを作成する

重要

Amazon SageMaker Studio または Amazon SageMaker Studio Classic が Amazon SageMaker リソースを作成できるようにするカスタムIAMポリシーは、それらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要です。IAM ポリシーで Studio と Studio Classic がリソースの作成を許可されていてもタグ付けが許可されていない場合、リソースの作成を試みるとAccessDenied「」エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。

AWS Amazon のマネージドポリシー SageMaker SageMaker リソースを作成するアクセス許可を付与する には、それらのリソースの作成中にタグを追加するアクセス許可が既に含まれています。

Amazon SageMaker Model Card は、 SageMaker コンソールまたは SageMaker Python を使用して作成できますSDK。API オペレーションを直接使用することもできます。API オペレーションの詳細については、「」を参照してくださいモデルカードの低レベル SageMaker APIs

SageMaker コンソールを使用してモデルカードを作成する

Amazon SageMaker コンソールに移動します。ナビゲーションペインの [ガバナンス][モデルカード] を選択します。右上隅で [モデルカードを作成] を選択します。

[モデルカードを作成] プロンプトの 4 つのステップを実行して、モデルの詳細を文書化します。

ステップ 1: モデルの詳細と使用目的を入力する

モデルが AWS リソースである場合は、このフィールドに正確なモデル名を指定して、モデルの詳細を自動入力します。既存のモデル名を参照するには、Amazon SageMaker コンソールの「モデル」を参照してください。一意のモデル名に関連付けられるモデルカードは 1 つだけです。

モデルが AWS リソースでない場合は、モデルの一意の名前を指定します。モデルを AWS リソースとして追加するには、「Amazon デベロッパーガイド」の「モデルの作成」を参照してください。 SageMaker または、 SageMaker Marketplace または SageMaker Model Registry を使用してモデルをモデルパッケージとして追加することもできます。

使用目的の詳細については、「モデルの使用目的」を参照してください。リスク評価の詳細については、「リスク評価」を参照してください。

ステップ 2: トレーニングの詳細を入力する

トレーニングの詳細、トレーニング観測値、データセット、ハイパーパラメータ、モデルの目的関数に関する詳細をモデルカードに追加します。

モデルカードの目的関数は、トレーニング中に最適化されるいずれかの関数になる可能性があります。これには、コスト関数、損失関数、または目的メトリクスが含まれますが、これらに限定されません。このセクションでは、モデルのトレーニングにとって最も重要な目的関数を文書化します。

目的関数の以下の属性をカタログ化することをお勧めします。

  • 最適化の方向

  • メトリクス

  • 説明

例えば、二項分類問題 (説明) ではクロスエントロピー損失 (メトリクス) を最小化 (最適化方向) したり、ロジスティック回帰の可能性を最大化したりできます。また、他の目的関数ではなくこの目的関数を選んだ理由についてのメモを提供できます。

ステップ 3: 評価の詳細を入力する

SageMaker Clarify または Model Monitor によって生成された既存の評価レポートがある場合は、それらのレポートURIに S3 を提供するか、手動でアップロードしてモデルカードに追加します。

SageMaker Clarify の詳細については、「バイアス分析と説明可能性のための SageMaker Clarify 処理ジョブの実行」を参照してください。

Model Monitor を使用してモデル品質メトリクスのドリフトをモニタリングする方法の詳細については、「Monitor model quality」を参照してください。

独自の評価レポートを追加するには、[汎用モデルカードの評価] を選択します。すべてのモデルカード評価レポートは モデルカードJSONスキーマ に含まれている必要があります。

ステップ 4: 追加の詳細を入力する

モデルカードに記載したい追加情報用に、カスタムモデルカード詳細フィールドを追加します。例えば、[パーソナルファイナンス] という値を持つカスタムフィールド [業務部門]を含めることができます。

モデルカードを保存する

モデルカードの情報を確認したら、右下隅の [保存] を選択してモデルカードを保存します。

SageMaker Python を使用してモデルカードを作成する SDK

モデルカードを作成する前に、まずモデルカードの内容を定義する必要があります。 SageMaker Python を使用する場合SDK、モデルコンテンツはモデルの概要、トレーニングの詳細、用途、評価の詳細、追加情報で構成されます。

以下のモデルカードを作成できます。

  • でホストされているモデル SageMaker

  • Model Registry 内のモデルパッケージ ( SageMaker モデル)

  • の外部でホストまたは登録されているモデル SageMaker

モデルを関連付けずにモデルカードを作成することもできます。

トレーニングしたモデルを SageMaker モデルレジストリに追加することをお勧めします。モデルレジストリは、モデルをカタログ化し、モデルバージョンを追跡するのに役立ちます。モデルカードを作成すると、モデルレジストリのモデルに関する情報がモデルカードに自動的に入力されます。モデルカードは、作成後に編集したり、情報を追加したりできます。

モデルレジストリの詳細については、「Model Registry を使用したモデル登録デプロイ」をご参照ください。モデルレジストリからモデルカードを作成する方法については、「Model Registry でモデルの SageMaker モデルカードを作成する」を参照してください。

注記

SageMaker Python でモデルカードを使用するにはSDK、まず SageMaker セッションを確立する必要があります。詳細については、 SageMaker Python SDKAPIリファレンスの「セッション」を参照してください。

Model Registry にないモデルの SageMaker モデルカードを作成するには、「」を参照してくださいモデルレジストリにないモデルを作成する

モデルレジストリにないモデルを作成する

以下のセクションの情報を使用して、モデルレジストリに追加していないモデルのモデルカードを作成します。

ステップ 1: モデルの概要を定義する

モデルの概要を定義します。

model_overview = ModelOverview.from_model_name( model_name=model_name, sagemaker_session=sagemaker_session, model_description="A-description-of-your-model", problem_type="Problem-type", # For example, "Binary Classification" algorithm_type="Algorithm-type", # For example, "Logistic Regression" model_creator="Name-of-model-creator", model_owner="Name-of-model-owner", )

モデルが AWS リソースである場合、モデル ARN、推論コンテナ URI、モデルアーティファクトの S3 の場所などの概要情報が自動的に取得されます。次のコマンドを使用して、関連付けられた AWS メタデータを印刷します。

print(model_overview.model_id) print(model_overview.inference_environment.container_image) print(model_overview.model_artifact)

ステップ 2: トレーニングの詳細を定義する

モデルのトレーニングの詳細を定義するには、まずその目的関数を定義しなければなりません。

objective_function = ObjectiveFunction( function=Function( function=ObjectiveFunctionEnum.MINIMIZE, facet=FacetEnum.LOSS, ), notes="An-explanation-about-objective-function", )

次に、既存のモデルの概要、セッション、目的関数を使用してトレーニングの詳細を定義できます。トレーニングに関する観測情報をすべてここに追加します。

training_details = TrainingDetails.from_model_overview( model_overview=model_overview, sagemaker_session=sagemaker_session, objective_function=objective_function, training_observations="Model-training-observations", )

ここでも、モデルが AWS リソースの場合、特定のトレーニングの詳細が自動的に入力されます。次のコマンドを使用してARN、トレーニングジョブ 、トレーニングコンテナ URI、およびトレーニングメトリクスを印刷します。

print(training_details.training_job_details.training_arn) print(training_details.training_job_details.training_environment.container_image) print([{"name": i.name, "value": i.value} for i in training_details.training_job_details.training_metrics])

評価の詳細を定義する

モデルの評価の詳細を定義するには、まず、評価ジョブに使用されるメトリクスを説明するメトリクスグループを 1 つ以上定義する必要があります。

my_metric_group = MetricGroup( name="binary classification metrics", metric_data=[Metric(name="accuracy", type=MetricTypeEnum.NUMBER, value=0.5)] )

次に、各評価ジョブの評価メトリクスとデータセットを使用して評価の詳細を定義できます。評価の観察情報があればここで追加し、評価ジョブに一意の名前を付けます。

evaluation_details = [ EvaluationJob( name="Example-evaluation-job", evaluation_observation="Evaluation-observations", datasets=["s3://path/to/evaluation/data"], metric_groups=[my_metric_group], ) ]

SageMaker Clarify または SageMaker Model Monitor によって生成された既存の評価レポートがある場合は、Amazon S3 にアップロードし、評価メトリクスを自動的に解析URIするための S3 を提供します。独自の汎用モデルカード評価レポートを追加するには、評価結果JSON形式でレポートを提供します。

report_type = "clarify_bias.json" example_evaluation_job.add_metric_group_from_json( f"example_metrics/{report_type}", EvaluationMetricTypeEnum.CLARIFY_BIAS )

ステップ 3: 使用目的を定義する

モデルの汎用的用途や意図したユースケースなどを含めて、モデルの使用目的を定義します。また、特定のユースケースにおけるこのモデルの有効性や、そのモデルに対する組織のリスク評価に影響する可能性のあるすべての要因を含めることも推奨されます。詳細については、「モデルの使用目的」 と 「リスク評価」 を参照してください。

intended_uses = IntendedUses( purpose_of_model="Purpose-of-the-model", intended_uses="The-intended-uses-of-this-model", factors_affecting_model_efficiency="Any-factors-effecting-model-efficacy", risk_rating=RiskRatingEnum.LOW, explanations_for_risk_rating="Explanation-for-low-risk-rating", )

追加情報を定義する

最後に、モデルカードにカスタム情報を追加できます。モデルに関する倫理上の考慮事項、注意事項、推奨事項をすべて文書化できます。キーと値のペアの形式で、任意のカスタム詳細を追加することもできます。

additional_information = AdditionalInformation( ethical_considerations="Any-ethical-considerations", caveats_and_recommendations="Any-caveats-and-recommendations", custom_details={"custom details1": "details-value"}, )

ステップ 4: モデルカードを作成する

モデルカードに名前を付け、モデルカードを定義してから、その定義を使用して SageMaker Python を使用してモデルカードを作成しますSDK。

model_card_name = "my-model-card" my_card = ModelCard( name=model_card_name, status=ModelCardStatusEnum.DRAFT, model_overview=model_overview, training_details=training_details, intended_uses=intended_uses, evaluation_details=evaluation_details, additional_information=additional_information, sagemaker_session=sagemaker_session, ) my_card.create()

Model Registry でモデルの SageMaker モデルカードを作成する

モデルカードの作成を開始する前に、モデルパッケージグループとモデルパッケージが作成されていることを確認してください。モデルレジストリの使用方法の詳細については、「Model Registry を使用したモデル登録デプロイ」をご参照ください。

重要

SageMaker Model Registry で オペレーションを使用するためのアクセス許可が必要です。AmazonSageMakerModelRegistryFullAccess AWS マネージドポリシーを使用することをお勧めします。管理ポリシーの詳細については、「AWS モデルレジストリのマネージドポリシー」を参照してください。

SageMaker Python SDKを使用して、モデルレジストリ内でモデルパッケージの SageMaker モデルカードを作成します。モデルパッケージはトレーニング済みモデルです。モデルカードを作成すると、Amazon SageMaker Model Cards はモデルパッケージからモデルカードにデータを自動的にインポートします。

モデルパッケージのモデルカードを作成すると、Amazon SageMaker Model Card は DescribeModelPackageオペレーションを使用してモデルパッケージからモデルカードにデータを追加します。モデルパッケージからモデルカードにインポートできるフィールドの例を以下に示します。

次のコードを使用してモデルパッケージを定義し、それに基づいてモデルカードを作成します。

mp_details = ModelPackage.from_model_package_arn( model_package_arn="example_model_package_arn", sagemaker_session=sagemaker_session, ) model_card_name = "example-model-card" my_card = ModelCard( name=model_card_name, status=ModelCardStatusEnum.status, model_package_details=mp_details, sagemaker_session=sagemaker_session, ) my_card.create()

status では、モデルカードの承認ステータスを指定します。ステータスを指定しない場合、 SageMaker モデルカードはデフォルト値 を使用しますDRAFT。 SageMaker セッションを指定しない場合、 SageMaker モデルカードはデフォルトの SageMaker セッションを使用します。

モデルの名前とモデルパッケージの Amazon リソースネーム (ARN) を指定する必要があります。モデルパッケージの Amazon リソースネーム (ARN) の取得については、「」を参照してくださいモデルバージョンの詳細の表示と更新 (Boto3)

モデルパッケージから作成したモデルカードは、情報が不足しているか不正確である可能性があります。モデルカードは編集したり情報を追加したりできます。モデルカードの管理方法の詳細については、「モデルカードアクション」を参照してください。

SageMaker Model Registry は、モデルパッケージのバージョニングをサポートしています。モデルパッケージをバージョン管理し、バージョンごとにモデルカードを作成できます。以前のバージョンのモデルカードの情報は、それ以降のバージョンで作成されたモデルカードに引き継がれます。例えば、バージョン 1、バージョン 2、バージョン 3 のモデルパッケージを作成できます。バージョン 1 のモデルカードは作成済みですが、バージョン 2 のモデルカードはまだ作成していないとします。バージョン 3 のモデルカードを作成すると、Amazon SageMaker Model Cards はバージョン 1 のモデルカードからバージョン 3 のモデルカードに情報を自動的に引き継ぎます。

注記

バージョニングを使用していないモデルパッケージのモデルカードを作成することもできます。ただし、ほとんどの機械学習ワークフローには同じモデルの複数のバージョンが含まれるため、以下を行うことをお勧めします。

  1. 各モデルパッケージのバージョン作成

  2. モデルパッケージの各バージョンのモデルカードの作成