

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.

# Registrieren Sie eine Modellversion
<a name="model-registry-version"></a>

Sie können ein Amazon SageMaker AI-Modell registrieren, indem Sie eine Modellversion erstellen, die die Modellgruppe angibt, zu der es gehört. Eine Modellversion muss sowohl die Modellartefakte (die trainierten Gewichte eines Modells) als auch optional den Inferenzcode für das Modell enthalten.

Eine *Inferenz-Pipeline* ist ein SageMaker KI-Modell, das aus einer linearen Abfolge von zwei bis fünfzehn Containern besteht, die Inferenzanfragen verarbeiten. Sie registrieren eine Inferenz-Pipeline, indem Sie die Container und die zugehörigen Umgebungsvariablen angeben. Weitere Informationen zu Inferenz-Pipelines finden Sie unter [Inferenz-Pipelines in Amazon AI SageMaker](inference-pipelines.md).

Sie können ein Modell bei einer Inferenz-Pipeline registrieren, indem Sie die Container und die zugehörigen Umgebungsvariablen angeben. Gehen Sie wie folgt vor, um eine Modellversion mit einer Inferenzpipeline zu erstellen AWS SDK für Python (Boto3), indem Sie entweder die Amazon SageMaker Studio-Konsole verwenden oder indem Sie einen Schritt in einer SageMaker KI-Modellerstellungspipeline erstellen. 

**Topics**
+ [Registrieren Sie eine Modellversion (SageMaker AI-Pipelines)](#model-registry-pipeline)
+ [Registrieren einer Modellversion (Boto3)](#model-registry-version-api)
+ [Registrieren einer Modellversion (Studio oder Studio Classic)](#model-registry-studio)
+ [Registrieren Sie eine Modellversion von einem anderen Konto aus](#model-registry-version-xaccount)

## Registrieren Sie eine Modellversion (SageMaker AI-Pipelines)
<a name="model-registry-pipeline"></a>

Um eine Modellversion mithilfe einer SageMaker KI-Modellerstellungspipeline zu registrieren, erstellen Sie einen `RegisterModel` Schritt in Ihrer Pipeline. Weitere Informationen zum Erstellen eines `RegisterModel` als Teil einer Pipeline finden Sie unter [Schritt 8: Definieren Sie einen RegisterModel Schritt zum Erstellen eines Modellpakets](define-pipeline.md#define-pipeline-register).

## Registrieren einer Modellversion (Boto3)
<a name="model-registry-version-api"></a>

Um eine Modellversion mithilfe von Boto3 zu registrieren, rufen Sie die `create_model_package`-API-Operation auf.

Zunächst richten Sie das Parameterwörterbuch ein, das an die `create_model_package`-API-Operation übergeben werden soll.

```
# Specify the model source
model_url = "s3://{{your-bucket-name/model.tar.gz}}"

modelpackage_inference_specification =  {
    "InferenceSpecification": {
      "Containers": [
         {
            "Image": {{image_uri}},
	    "ModelDataUrl": {{model_url}}
         }
      ],
      "SupportedContentTypes": [ "text/csv" ],
      "SupportedResponseMIMETypes": [ "text/csv" ],
   }
 }

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : model_package_group_name,
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)
```

Dann rufen Sie die `create_model_package`-API-Operation auf und übergeben das Parameterwörterbuch, das Sie gerade eingerichtet haben.

```
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```

## Registrieren einer Modellversion (Studio oder Studio Classic)
<a name="model-registry-studio"></a>

Um eine Modellversion in der Amazon SageMaker Studio-Konsole zu registrieren, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus dem Menu aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Optionen **Modellgruppen** und **Meine Modelle** aus, sofern diese nicht bereits ausgewählt sind.

1. Wählen Sie **Registrieren** aus. Dadurch wird die Seite **Modell registrieren** geöffnet.

1. Befolgen Sie die Anweisungen auf der Seite **Modell registrieren** 

1. Nachdem Sie Ihre Auswahl überprüft haben, wählen Sie **Registrieren**. Sobald Sie fertig sind, werden Sie zur Seite mit der **Übersicht über** die Modellversionen weitergeleitet.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Öffnen Sie das Formular **Version registrieren**. Dafür stehen Ihnen zwei Optionen zur Verfügung:
   + Wählen Sie **Aktionen** und dann **Flow-Protokoll erstellen** aus.
   + Wählen Sie den Namen der Modellgruppe aus, für die Sie eine Modellversion erstellen möchten, und wählen Sie dann **Modellversion erstellen**.

1. Geben **Sie im Formular Modellversion registrieren** die folgenden Informationen ein:
   + Wählen Sie in der Dropdown-Liste **Name der Modellpaketgruppe** den Namen der Modellgruppe aus.
   + (Optional) Geben Sie eine Beschreibung für Ihre Modellversion ein.
   + Wählen Sie in der Dropdown-Liste **Status der Modellgenehmigung** den Status der Versionsgenehmigung aus.
   + (Optional) Fügen Sie im Feld **Benutzerdefinierte Metadaten** benutzerdefinierte Tags als Schlüssel-Wert-Paare hinzu.

1. Wählen Sie **Weiter** aus.

1. Geben Sie im Formular **Inferenzspezifikation** die folgenden Informationen ein:
   + Geben Sie den Speicherort Ihres Inferenz-Image ein.
   + Geben Sie den Speicherort Ihrer Modelldatenartefakte ein.
   + (Optional) Geben Sie Informationen zu Images ein, die für Transformations- und Echtzeit-Inferenzaufträge verwendet werden, sowie zu unterstützten Eingabe- und Ausgabe-MIME-Typen.

1. Wählen Sie **Weiter** aus.

1. (Optional) Geben Sie Details an, um Empfehlungen für Endgeräte zu geben.

1. Wählen Sie **Weiter** aus.

1. (Optional) Wählen Sie Modellmetriken aus, die Sie einbeziehen möchten.

1. Wählen Sie **Weiter** aus.

1. Stellen Sie sicher, dass die angezeigten Einstellungen korrekt sind, und wählen Sie **Modellversion registrieren** aus. Wenn Sie anschließend ein modales Fenster mit einer Fehlermeldung sehen, wählen Sie **Ansicht** (neben der Meldung), um die Ursache des Fehlers anzuzeigen.

1. Vergewissern Sie sich, dass Ihre neue Modellversion auf der Seite der übergeordneten Modellgruppe angezeigt wird.

------

## Registrieren Sie eine Modellversion von einem anderen Konto aus
<a name="model-registry-version-xaccount"></a>

Um Modellversionen bei einer Modellgruppe zu registrieren, die mit einem anderen AWS Konto erstellt wurde, müssen Sie eine kontoübergreifende AWS Identity and Access Management Ressourcenrichtlinie hinzufügen, um dieses Konto zu aktivieren. Beispielsweise ist ein AWS Konto in Ihrer Organisation für Schulungsmodelle zuständig, und ein anderes Konto ist für die Verwaltung, Bereitstellung und Aktualisierung von Modellen verantwortlich. Sie erstellen IAM-Ressourcenrichtlinien und wenden die Richtlinien auf die spezifische Kontoressource an, der Sie in diesem Fall Zugriff gewähren möchten. Weitere Informationen zu kontenübergreifenden Ressourcenrichtlinien finden Sie unter [Bewertungslogik für kontenübergreifende Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) im *AWS Identity and Access Management Benutzerhandbuch*. AWS

Informationen zur kontenübergreifenden Auffindbarkeit, sodass andere Konten Modellpaketgruppen vom Konto des Ressourceneigentümers aus einsehen können, finden Sie unter [Kontoübergreifende Auffindbarkeit](model-registry-ram.md).

**Anmerkung**  
Sie müssen außerdem einen KMS-Schlüssel verwenden, um die Aktion zur [Konfiguration der Ausgabedaten](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html) während des Trainings für die kontenübergreifende Bereitstellung zu verschlüsseln.

Um die kontenübergreifende Modellregistrierung in SageMaker AI zu aktivieren, müssen Sie eine kontenübergreifende Ressourcenrichtlinie für die Modellgruppe angeben, die die Modellversionen enthält. Im Folgenden finden Sie ein Beispiel, das kontenübergreifende Richtlinien für die Modellgruppe erstellt und diese Richtlinien auf diese spezifische Ressource anwendet.

Die folgende Konfiguration muss für das Quellkonto festgelegt werden, das kontenübergreifende Modelle in einer Modellgruppe registriert. In diesem Beispiel ist das Quellkonto das Modelltrainingskonto, das das Modellkonto schult und anschließend in der Modellregistrierung des Modellregistrierungskontos registriert.

Das Beispiel geht davon aus, dass Sie zuvor die folgenden Variablen definiert haben:
+ `sm_client`— Ein SageMaker AI Boto3-Client.
+ `model_package_group_name` – die Modellgruppe, der Sie Zugriff gewähren möchten.
+ `model_package_group_arn` – der Modellgruppen-ARN, für den Sie kontoübergreifenden Zugriff gewähren möchten.
+ `bucket` – der Amazon-S3-Bucket, in dem das Trainingsartefakte des Modells gespeichert sind.

Um ein Modell bereitstellen zu können, das in einem anderen Konto erstellt wurde, muss der Benutzer über eine Rolle verfügen, die Zugriff auf SageMaker KI-Aktionen hat, z. B. eine Rolle mit der `AmazonSageMakerFullAccess` verwalteten Richtlinie. Informationen zu von SageMaker KI verwalteten Richtlinien finden Sie unter[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md).

### Erforderliche IAM-Ressourcenrichtlinien
<a name="model-registry-version-xaccount-policies"></a>

Das folgende Diagramm zeigt die Richtlinien, die für die Registrierung eines kontenübergreifenden Modells erforderlich sind. Wie gezeigt, müssen diese Richtlinien während der Modelltraining aktiv sein, damit das Modell ordnungsgemäß im Model Registry-Konto registriert werden kann.

![Die Richtlinien, die für die kontenübergreifende Registrierung von Modellen erforderlich sind.](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/model_registry_cross_account.png)


Amazon ECR, Amazon S3 und AWS KMS Richtlinien werden in den folgenden Codebeispielen demonstriert. 

**Beispiel für eine Amazon ECR-Richtlinie**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:Describe*"
            ]
        }
    ]
}
```

------

**Beispiel für eine Amazon S3-Richtlinie**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetObjectAcl"
            ],
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        }
    ]
}
```

------

**Beispiel für eine Richtlinie AWS KMS **

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Wenden Sie Ressourcenrichtlinien auf Konten an
<a name="model-registry-version-xaccount-policy-usage"></a>

Die folgende Richtlinienkonfiguration wendet die im vorherigen Abschnitt erläuterten Richtlinien an und muss in das Modelltrainingskonto aufgenommen werden.

```
import json

# The Model Registry account id of the Model Group 
model_registry_account = "{{111111111111}}"

# The model training account id where training happens
model_training_account = "{{222222222222}}"

# 1. Create a policy for access to the ECR repository 
# in the model training account for the Model Registry account Model Group
ecr_repository_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {
          "AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "ecr:BatchGetImage",
          "ecr:Describe*"
        ]
    }]
}

# Convert the ECR policy from JSON dict to string
ecr_repository_policy = json.dumps(ecr_repository_policy)

# Set the new ECR policy
ecr = boto3.client('ecr')
response = ecr.set_repository_policy(
    registryId = model_training_account,
    repositoryName = "decision-trees-sample",
    policyText = ecr_repository_policy
)

# 2. Create a policy in the model training account for access to the S3 bucket 
# where the model is present in the Model Registry account Model Group
bucket_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {"AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "s3:GetObject",
          "s3:GetBucketAcl",
          "s3:GetObjectAcl"
        ],
        "Resource": [
          "arn:aws:s3:::{{{bucket}}}/*",
	  "Resource: arn:aws:s3:::{{{bucket}}}"
        ]
    }]
}

# Convert the S3 policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)

# Set the new bucket policy
s3 = boto3.client("s3")
response = s3.put_bucket_policy(
    Bucket = {{bucket}},
    Policy = bucket_policy)

# 3. Create the KMS grant for the key used during training for encryption
# in the model training account to the Model Registry account Model Group
client = boto3.client("kms")

response = client.create_grant(
    GranteePrincipal=model_registry_account,
    KeyId=kms_key_id
    Operations=[
        "Decrypt",
        "GenerateDataKey",
    ],
)
```

Die folgende Konfiguration muss in das Model Registry-Konto übernommen werden, in dem sich die Modellgruppe befindet.

```
# The Model Registry account id of the Model Group 
model_registry_account = "{{111111111111}}"

# 1. Create policy to allow the model training account to access the ModelPackageGroup
model_package_group_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPermModelPackageVersion",
            "Effect": "Allow",
            "Principal": {"AWS": f"arn:aws:iam::{{{model_training_account}}}:root"},
            "Action": ["sagemaker:CreateModelPackage"],
            "Resource": f"arn:aws:sagemaker:{region}:{model_registry_account}:model-package/{{{model_package_group_name}}}/*"
        }
    ]
}

# Convert the policy from JSON dict to string
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = {{model_package_group_name}},
    ResourcePolicy = model_package_group_policy)
```

Verwenden Sie abschließend die `create_model_package` Aktion aus dem Modelltrainingskonto, um das Modellpaket im Cross-Konto zu registrieren.

```
# Specify the model source
model_url = "s3://{{{bucket}}}/model.tar.gz"

#Set up the parameter dictionary to pass to the create_model_package API operation
modelpackage_inference_specification =  {
    "InferenceSpecification": {
        "Containers": [
            {
                "Image": f"{{{model_training_account}}}.dkr.ecr.us-east-2.amazonaws.com/decision-trees-sample:latest",
                "ModelDataUrl": model_url
            }
        ],
        "SupportedContentTypes": [ "text/csv" ],
        "SupportedResponseMIMETypes": [ "text/csv" ],
    }
}

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : {{model_package_group_arn}},
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)

# Create the model package in the Model Registry account
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```