Eine Modellkarte erstellen - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Eine Modellkarte erstellen

Wichtig

Benutzerdefinierte IAM Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Genehmigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Taggen erlaubt, können "AccessDenied" Fehler auftreten, wenn versucht wird, Ressourcen zu erstellen. Weitere Informationen finden Sie unter Stellen Sie Berechtigungen für das Taggen von Ressourcen SageMaker bereit.

AWS Verwaltete Richtlinien für Amazon SageMakerdie Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Sie können eine Amazon SageMaker Model Card entweder mit der SageMaker Konsole oder mit SageMaker Python erstellenSDK. Sie können die API Operationen auch direkt verwenden. Weitere Informationen zu den API Vorgängen finden Sie unterNiedriges Niveau SageMaker APIs für Modellkarten.

Erstellen Sie mit der SageMaker Konsole eine Modellkarte

Gehen Sie zur SageMaker Amazon-Konsole. Wählen Sie im Navigationsbereich unter Governance die Option Modellkarten aus. Wählen Sie in der oberen rechten Ecke die Option Modellkarte erstellen aus.

Führen Sie die vier Schritte in der Eingabeaufforderung Modellkarte erstellen durch, um Details zu Ihrem Modell zu dokumentieren.

Schritt 1: Eingabe der Modelldetails und des Verwendungszwecks

Wenn es sich bei Ihrem Modell um eine AWS Ressource handelt, geben Sie den genauen Modellnamen in dieses Feld ein, um die Modelldetails automatisch auszufüllen. Informationen zum Durchsuchen vorhandener Modellnamen finden Sie unter Modelle in der SageMaker Amazon-Konsole. Jedem eindeutigen Modellnamen kann nur eine Modellkarte zugeordnet sein.

Wenn es sich bei Ihrem Modell nicht um eine AWS Ressource handelt, geben Sie einen eindeutigen Namen für Ihr Modell ein. Informationen zum Hinzufügen eines Modells als AWS Ressource finden Sie unter Modell erstellen im Amazon SageMaker Developer Guide. Alternativ können Sie Ihr Modell über SageMakerMarketplace oder Model Registry als SageMaker Modellpaket hinzufügen.

Weitere Informationen über die vorgesehenen Verwendungszwecke finden Sie unter Verwendungszwecke eines Modells. Weitere Informationen zu Risikoeinstufungen finden Sie unter Risikoeinstufungen.

Schritt 2: Geben Sie das Trainingsdetails ein

Fügen Sie der Modellkarte alle Trainingsdetails, Trainingsbeobachtungen, Datensätze, Hyperparameter und Details zur Zielfunktion des Modells hinzu.

Die Zielfunktion auf einer Modellkarte kann jede Funktion sein, die während des Trainings optimiert wird. Dies kann Kostenfunktionen, Verlustfunktionen oder objektive Kennzahlen beinhalten, ist aber nicht darauf beschränkt. Dokumentieren Sie in diesem Abschnitt die Zielfunktion, die für das Training Ihres Modells am wichtigsten ist.

Wir empfehlen Ihnen, die folgenden Attribute Ihrer Zielfunktion zu katalogisieren:

  • Optimierungsrichtung

  • Metrik

  • Beschreibung

Beispielsweise können Sie den Kreuzentropieverlust (metrisch) für ein binäres Klassifikationsproblem (Beschreibung) minimieren (Optimierungsrichtung) oder die Wahrscheinlichkeit einer logistischen Regression maximieren. Darüber hinaus können Sie Anmerkungen dazu machen, warum Sie diese Zielfunktion anderen vorgezogen haben.

Schritt 3: Geben Sie die Bewertungsdetails ein

Wenn Sie bereits Evaluierungsberichte haben, die von SageMaker Clarify oder Model Monitor generiert wurden, stellen Sie entweder eine S3-Datei URI für diese Berichte bereit oder laden Sie sie manuell hoch, um sie der Modellkarte hinzuzufügen.

Weitere Informationen zu SageMaker Clarify finden Sie unter SageMaker Clarify Processing Jobs for Bias Analysis and Explainability ausführen.

Weitere Informationen zur Überwachung von Abweichungen bei Modellqualitätsmetriken mit Model Monitor finden Sie unter Überwachen der Modellqualität.

Um Ihren eigenen Bewertungsbericht hinzuzufügen, wählen Sie Generische Modellkarten-Evaluierung. Alle Bewertungsberichte für Modellkarten müssen in der JSONSchema der Modellkarte enthalten sein.

Schritt 4: Geben Sie zusätzliche Details ein

Fügen Sie benutzerdefinierte Felder für Modellkartendetails für alle zusätzlichen Informationen hinzu, die Sie auf Ihrer Modellkarte angeben möchten. Sie könnten beispielsweise das benutzerdefinierte Feld Geschäftszweig mit dem Wert Persönliche Finanzen angeben.

Speichern der Modellkarte

Nachdem Sie die Informationen auf Ihrer Modellkarte überprüft haben, wählen Sie in der unteren rechten Ecke Speichern, um Ihre Modellkarte zu speichern.

Erstellen Sie eine Modellkarte mit SageMaker Python SDK

Bevor Sie eine Modellkarte erstellen, müssen Sie zunächst den Inhalt Ihrer Modellkarte definieren. Bei der Verwendung von SageMaker Python SDK besteht der Modellinhalt aus einer Modellübersicht, Trainingsdetails, Verwendungszwecken, Bewertungsdetails und zusätzlichen Informationen.

Sie können Modellkarten erstellen für:

  • Modelle, die in gehostet werden SageMaker

  • Modellpakete (Modelle) in der SageMaker Model Registry

  • Modelle, die außerhalb von gehostet oder registriert werden SageMaker

Sie können auch Modellkarten erstellen, ohne ihnen Modelle zuzuordnen.

Wir empfehlen, die von Ihnen trainierten Modelle zur SageMaker Modellregistrierung hinzuzufügen. Die Modellregistrierung hilft Ihnen dabei, Modelle zu katalogisieren und Modellversionen nachzuverfolgen. Wenn Sie eine Modellkarte erstellen, werden die Informationen über das Modell aus der Modellregistrierung automatisch in die Modellkarte übernommen. Sie können die Modellkarte bearbeiten oder ihr Informationen hinzufügen, nachdem Sie sie erstellt haben.

Informationen zur Verwendung der Modellregistrierung finden Sie unter Modellregistrierung und Bereitstellung mit Model Registry. Informationen zum Erstellen einer Modellkarte aus einer Modellregistrierung finden Sie unter Erstellen Sie eine Modellkarte für Ihr Modell in der SageMaker Modellregistrierung.

Anmerkung

Um Modellkarten mit SageMaker Python zu verwendenSDK, müssen Sie zunächst eine SageMaker Sitzung einrichten. Weitere Informationen finden Sie unter Session in der SageMaker SDK API Python-Referenz.

Informationen zum Erstellen einer Modellkarte für Modelle, die nicht in der SageMaker Modellregistrierung enthalten sind, finden Sie unterErstellen Sie ein Modell, das nicht in der Modellregistrierung enthalten ist.

Erstellen Sie ein Modell, das nicht in der Modellregistrierung enthalten ist

Verwenden Sie die Informationen in den folgenden Abschnitten, um eine Modellkarte für ein Modell zu erstellen, das Sie nicht zur Modellregistrierung hinzugefügt haben.

Schritt 1: Definieren der Modellübersicht

Definieren Sie einen Überblick über Ihr Modell.

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", )

Wenn es sich bei Ihrem Modell um eine AWS Ressource handelt, können Übersichtsinformationen wie das ModellARN, der Inferenzcontainer URI und der S3-Speicherort der Modellartefakte automatisch abgerufen werden. Drucken Sie die zugehörigen AWS Metadaten mit den folgenden Befehlen aus:

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

Schritt 2: Festlegen der Trainingsdetails

Um die Trainingsdetails Ihres Modells zu definieren, müssen Sie zunächst dessen Zielfunktion definieren.

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

Als Nächstes können Sie Ihre Trainingsdetails anhand Ihrer vorhandenen Modellübersicht, Trainingseinheit und Zielfunktion definieren. Fügen Sie hier alle Trainingsbeobachtungen hinzu.

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

Auch hier gilt: Wenn es sich bei Ihrem Modell um eine AWS Ressource handelt, werden bestimmte Trainingsdetails automatisch eingegeben. Drucken Sie den TrainingsjobARN, den Trainingscontainer URI und die Trainingsmetriken mit den folgenden Befehlen aus:

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])

Definieren Sie die Bewertungsdetails

Um die Bewertungsdetails Ihres Modells zu definieren, müssen Sie zunächst eine oder mehrere Metrikgruppen definieren, um die Metriken zu beschreiben, die für Bewertungsaufgaben verwendet werden.

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

Als Nächstes können Sie Ihre Bewertungsdetails mithilfe von Bewertungsmetriken und Datensätzen für jede Bewertungsaufgabe definieren. Fügen Sie hier alle Bewertungsbeobachtungen hinzu und geben Sie Ihrer Bewertungsaufgabe einen eindeutigen Namen.

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

Wenn Sie bereits Bewertungsberichte haben, die von SageMakerClarify oder SageMaker Model Monitor generiert wurden, laden Sie diese auf Amazon S3 hoch und stellen Sie ein S3 bereitURI, um Bewertungsmetriken automatisch zu analysieren. Um Ihren eigenen generischen Bewertungsbericht für Modellkarten hinzuzufügen, stellen Sie einen Bericht im JSONFormat der Bewertungsergebnisse bereit.

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

Schritt 3: Festlegen der Verwendungszwecke

Definieren Sie die Verwendungszwecke des Modells, einschließlich des allgemeinen Zwecks des Modells und der Anwendungsfälle, für die es vorgesehen war. Es wird außerdem empfohlen, alle Faktoren, die die Wirksamkeit dieses Modells in einem bestimmten Anwendungsfall beeinträchtigen könnten, sowie die Risikobewertung des Modells durch Ihr Unternehmen einzubeziehen. Weitere Informationen erhalten Sie unter Verwendungszwecke eines Modells und Risikoeinstufungen.

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", )

Zusätzliche Informationen definieren

Schließlich können Sie Ihrer Modellkarte zusätzliche benutzerdefinierte Informationen hinzufügen. Sie können alle ethischen Überlegungen, Vorbehalte und Empfehlungen zum Modell dokumentieren. Sie können auch beliebige benutzerdefinierte Details in Form von Schlüssel-Wert-Paaren hinzufügen.

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

Schritt 4: Erstellen einer Modellkarte

Benennen Sie Ihre Modellkarte, definieren Sie eine Modellkarte und verwenden Sie diese Definition dann, um eine Modellkarte mit SageMaker Python zu erstellenSDK.

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()

Erstellen Sie eine Modellkarte für Ihr Modell in der SageMaker Modellregistrierung

Bevor Sie mit der Erstellung einer Modellkarte beginnen, stellen Sie sicher, dass Sie eine Modellpaketgruppe und ein Modellpaket erstellt haben. Weitere Informationen zur Verwendung der Modellregistrierung finden Sie unter Modellregistrierung und Bereitstellung mit Model Registry.

Wichtig

Sie müssen über Berechtigungen verfügen, um die Operationen in SageMaker Model Registry verwenden zu können. Wir empfehlen die Verwendung AmazonSageMakerModelRegistryFullAccess AWS verwalteter Richtlinien. Für weitere Informationen über die verwaltete Richtlinie siehe AWS Verwaltete Richtlinien für Model Registry.

Verwenden Sie SageMaker PythonSDK, um eine Modellkarte für ein Modellpaket in der SageMaker Model Registry zu erstellen. Ein Modellpaket ist ein Modell, das Sie trainiert haben. Wenn Sie eine Modellkarte erstellen, importiert Amazon SageMaker Model Cards automatisch die Daten aus dem Modellpaket in die Modellkarte.

Wenn Sie eine Modellkarte für ein Modellpaket erstellen, verwendet Amazon SageMaker Model Card den DescribeModelPackageVorgang, um die Daten aus dem Modellpaket zur Modellkarte hinzuzufügen. Im Folgenden finden Sie Beispiele für Felder, die aus einem Modellpaket in eine Modellkarte importiert werden können:

Verwenden Sie den folgenden Code, um das Modellpaket zu definieren und daraus eine Modellkarte zu erstellen:

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()

Bei der status geben Sie den Genehmigungsstatus der Musterkarte an. Wenn Sie keinen Status angeben, verwendet SageMaker Model Cards den Standardwert vonDRAFT. Wenn Sie keine SageMaker Sitzung angeben, verwendet SageMaker Model Cards die SageMaker Standardsitzung.

Sie müssen einen Namen für das Modell und den Amazon-Ressourcennamen (ARN) des Modellpakets angeben. Informationen zum Abrufen des Amazon-Ressourcennamens (ARN) für das Modellpaket finden Sie unterDie Details einer Modellversion (Boto3) anzeigen und aktualisieren.

Die Modellkarte, die Sie anhand des Modellpakets erstellt haben, enthält möglicherweise Informationen, die entweder fehlen oder falsch sind. Sie können der Modellkarte Informationen hinzufügen oder sie bearbeiten. Weitere Informationen zur Verwaltung Ihrer Modellkarten finden Sie unter Aktionen für Modellkarten.

SageMaker Model Registry unterstützt die Versionierung Ihrer Modellpakete. Sie können Ihr Modellpaket versionieren und für jede Version eine Modellkarte erstellen. Die Informationen aus Modellkarten früherer Versionen werden auf Modellkarten übertragen, die aus nachfolgenden Versionen erstellt wurden. Sie könnten beispielsweise Version 1, Version 2 und Version 3 eines Modellpakets haben. Angenommen, Sie haben bereits eine Modellkarte für Version 1 erstellt, aber Sie haben noch keine für Version 2 erstellt. Wenn Sie eine Modellkarte für Version 3 erstellen, überträgt Amazon SageMaker Model Cards automatisch die Informationen von der Modellkarte für Version 1 auf die Modellkarte für Version 3.

Anmerkung

Sie können auch Modellkarten für Modellpakete erstellen, die keine Versionierung verwenden. Die meisten Machine-Learning-Workflows beinhalten jedoch mehrere Versionen desselben Modells, weshalb wir Folgendes empfehlen:

  1. Eine Version für jedes Modellpaket erstellen

  2. Erstellen einer Modellkarte für jede Version des Modellpakets