View a markdown version of this page

Erstellen Sie einen Tracking-Server mit dem AWS CLI - Amazon SageMaker KI

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.

Erstellen Sie einen Tracking-Server mit dem AWS CLI

Sie können einen Tracking-Server erstellen, indem Sie den verwenden, AWS CLI um die Sicherheit detaillierter anzupassen.

Voraussetzungen

Um einen Tracking-Server mit dem zu erstellen AWS CLI, benötigen Sie Folgendes:

  • Zugriff auf ein Terminal.Dies kann lokale IDEs, eine Amazon EC2 EC2-Instance oder AWS CloudShell beinhalten.

  • Zugriff auf eine Entwicklungsumgebung. Dabei kann es sich um lokale IDEs oder eine Jupyter-Notebook-Umgebung in Studio oder Studio Classic handeln.

  • Eine konfigurierte AWS CLI Installation. Weitere Informationen finden Sie unter Konfigurieren der AWS CLI.

  • eine IAM-Rolle mit entsprechenden Berechtigungen. Für die folgenden Schritte muss Ihre Umgebung über die Berechtigungen iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy und iam:ListPolicies verfügen. Diese Berechtigungen sind für die Rolle erforderlich, mit der die Schritte in diesem Benutzerhandbuch ausgeführt werden. Mit den Anweisungen in diesem Handbuch erstellen Sie eine IAM-Rolle, die als Ausführungsrolle des MLflow-Tracking-Servers verwendet wird, sodass er auf Daten in Ihren Amazon-S3-Buckets zugreifen kann. Darüber hinaus wird eine Richtlinie erstellt, die der IAM-Rolle des Benutzers, der über das MLflow SDK mit dem Tracking-Server interagiert, die Berechtigung erteilt, MLflow-APIs aufzurufen. Weitere Informationen finden Sie unter Ändern einer Rollenberechtigungsrichtlinie (Konsole).

    Wenn Sie ein SageMaker Studio-Notebook verwenden, aktualisieren Sie die Servicerolle für Ihr Studio-Benutzerprofil mit diesen IAM-Berechtigungen. Um die Servicerolle zu aktualisieren, navigieren Sie zur SageMaker AI-Konsole und wählen Sie die Domain aus, die Sie verwenden. Wählen Sie anschließend unter der Domain das Benutzerprofil aus, das Sie verwenden. Dort wird die Servicerolle aufgeführt. Navigieren Sie zur IAM-Konsole, suchen Sie unter Rollen nach der Servicerolle und aktualisieren Sie Ihre Rolle mit einer Richtlinie, die die Aktionen iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy und iam:ListPolicies zulässt.

Einrichten AWS CLI model

Folgen Sie diesen Befehlszeilenschritten in einem Terminal, AWS CLI um Amazon SageMaker AI mit MLflow einzurichten.

  1. Installieren Sie eine aktualisierte Version von. AWS CLI Weitere Informationen finden Sie unter Installieren oder Aktualisieren auf die neueste Version der AWS CLI im AWS CLI -Benutzerhandbuch.

  2. Stellen Sie mit dem folgenden Befehl sicher, dass das installiert AWS CLI ist:

    aws sagemaker help

    Drücken Sie auf q, um den Prompt zu beenden.

    Hilfe zur Problembehebung finden Sie unter Beheben häufig auftretender Einrichtungsprobleme.

Einrichten der MLflow-Infrastruktur

Der folgende Abschnitt zeigt Ihnen, wie Sie einen MLflow-Tracking-Server zusammen mit dem Amazon-S3-Bucket und der IAM-Rolle einrichten, die für den Tracking-Server benötigt werden.

Erstellen eines S3-Buckets

Verwenden Sie in Ihrem Terminal die folgenden Befehle, um einen Amazon S3-Bucket für allgemeine Zwecke zu erstellen:

Wichtig

Wenn Sie die Amazon S3 S3-URI für Ihren Artifact Store angeben, stellen Sie sicher, dass sich der Amazon S3 S3-Bucket auf demselben Server befindet AWS-Region wie Ihr Tracking-Server. Cross-regionDie Speicherung von Artefakten wird nicht unterstützt.

bucket_name=bucket-name region=valid-region aws s3api create-bucket \ --bucket $bucket_name \ --region $region \ --create-bucket-configuration LocationConstraint=$region

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

{ "Location": "/bucket-name" }

Einrichten von IAM-Vertrauensrichtlinien

Erstellen Sie anhand folgender Schritte eine IAM-Vertrauensrichtlinie. Weitere Informationen zu Rollen und Vertrauensrichtlinien finden Sie unter Rollenbegriffe und -konzepte im AWS Identity and Access Management -Benutzerhandbuch.

  1. Erstellen Sie mit dem folgenden Befehl in Ihrem Terminal eine Datei mit dem Namen mlflow-trust-policy.json.

    cat <<EOF > /tmp/mlflow-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF
  2. Erstellen Sie mit dem folgenden Befehl in Ihrem Terminal eine Datei mit dem Namen custom-policy.json.

    cat <<EOF > /tmp/custom-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:UpdateModelPackage", "s3:List*" ], "Resource": "*" } ] } EOF
  3. Verwenden Sie die Vertrauensrichtlinie, um eine Rolle zu erstellen. Fügen Sie dann IAM-Rollenrichtlinien hinzu, die MLflow den Zugriff auf Amazon S3 und SageMaker Model Registry in Ihrem Konto ermöglichen. MLflow benötigt Zugriff auf Amazon S3 für den Artefaktspeicher Ihres Tracking-Servers und die SageMaker Modellregistrierung für die automatische Modellregistrierung.

    Anmerkung

    Wenn Sie eine bestehende Rolle aktualisieren, verwenden Sie stattdessen den folgenden Befehl: aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json.

    role_name=role-name aws iam create-role \ --role-name $role_name \ --assume-role-policy-document file:///tmp/mlflow-trust-policy.json aws iam put-role-policy \ --role-name $role_name \ --policy-name custom-policy \ --policy-document file:///tmp/custom-policy.json role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)

Erstellen eines MLflow-Tracking-Servers

Verwenden Sie in Ihrem Terminal die create-mlflow-tracking-server API, um einen Tracking-Server in dem AWS-Region Ihrer Wahl zu erstellen. Dieser Schritt kann bis zu 25 Minuten dauern.

Sie können optional die Größe Ihres Tracking-Servers mit dem Parameter --tracking-server-config angeben. Wählen Sie zwischen "Small", "Medium" und "Large" aus. Die Standardgröße für die Konfiguration des MLflow-Tracking-Servers ist "Small". Sie können die Größe entsprechend der voraussichtlichen Nutzung des Tracking-Servers wählen, z. B. gemäß der Menge der protokollierten Daten, der Anzahl der Benutzer und der Nutzungshäufigkeit. Weitere Informationen finden Sie unter Größen des MLflow-Tracking-Servers.

Mit dem folgenden Befehl wird ein neuer Tracking-Server mit aktivierter automatischer Model Registry erstellt: Um die automatische Model Registry zu deaktivieren, geben Sie --no-automatic-model-registration an.

Nach der Erstellung Ihres Tracking-Servers können Sie die MLflow-Benutzeroberfläche starten. Weitere Informationen finden Sie unter Starten der MLflow-Benutzeroberfläche mit vorsignierter URL.

Anmerkung

Es kann bis zu 25 Minuten dauern, bis die Erstellung des Tracking-Servers abgeschlossen ist. Wenn die Erstellung des Tracking-Servers mehr als 25 Minuten dauert, überprüfen Sie, ob Sie über die erforderlichen IAM-Berechtigungen verfügen. Weitere Informationen zu IAM-Berechtigungen finden Sie unter Einrichten von IAM-Berechtigungen für MLflow. Wenn der Tracking-Server erfolgreich erstellt wurde, wird er automatisch gestartet.

Wenn Sie einen Tracking-Server erstellen, empfehlen wir, die neueste Version anzugeben. Informationen zu den verfügbaren Versionen finden Sie unter Tracking-Server-Versionen.

Standardmäßig ist der erstellte Tracking-Server die neueste Version. Wir empfehlen jedoch, immer die neueste Version explizit anzugeben, da sich die zugrunde liegenden MLflow-APIs ändern können.

ts_name=tracking-server-name region=valid-region version=valid-version aws sagemaker create-mlflow-tracking-server \ --tracking-server-name $ts_name \ --artifact-store-uri s3://$bucket_name \ --role-arn $role_arn \ --automatic-model-registration \ --region $region \ --mlflow-version $version

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

{ "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/tracking-server-name" }
Wichtig

Notieren Sie sich den ARN des Tracking-Servers für die spätere Verwendung. Sie benötigen außerdem den $bucket_name für die Schritte zur Bereinigung.