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 mithilfe des einen Tracking-Server erstellen, AWS CLI um die Sicherheit detaillierter anzupassen.

Voraussetzungen

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

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

  • Zugriff auf eine Entwicklungsumgebung. Dies kann eine lokale Umgebung IDEs oder eine Jupyter-Notebook-Umgebung in Studio oder Studio Classic beinhalten.

  • Eine konfigurierte Installation. AWS CLI 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. Die Anweisungen in diesem Handbuch erstellen eine IAM-Rolle, die als Ausführungsrolle des MLflow Tracking-Servers verwendet wird, sodass dieser auf Daten in Ihren Amazon S3 S3-Buckets zugreifen kann. Darüber hinaus wird eine Richtlinie erstellt, um der IAM-Rolle des Benutzers, der über das MLflow SDK mit dem Tracking-Server interagiert, die Berechtigung zum Aufrufen zu erteilen. MLflow APIs 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.

AWS CLIModell einrichten

Folgen Sie diesen Befehlszeilenschritten in einem Terminal, um das AWS CLI für Amazon SageMaker AI einzurichten MLflow.

  1. Installieren Sie eine aktualisierte Version vonAWS 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.

MLflow Infrastruktur einrichten

Im folgenden Abschnitt erfahren Sie, wie Sie einen MLflow Tracking-Server zusammen mit dem Amazon S3 S3-Bucket und der IAM-Rolle einrichten, die für den Tracking-Server erforderlich sind.

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. Die regionsübergreifende Artefaktspeicherung 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 innerhalb Ihres Kontos ermöglichen. MLflow muss Zugriff auf Amazon S3 für den Artefaktspeicher Ihres Tracking-Servers und SageMaker Model Registry für die automatische Modellregistrierung haben.

    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)

MLflow Tracking-Server erstellen

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 der MLflow Tracking-Server-Konfiguration 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 MLflow Servergrößen verfolgen.

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.

Nachdem Sie Ihren Tracking-Server erstellt haben, 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 Richten Sie IAM-Berechtigungen ein 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 liegende Version ändern MLflow APIs kann.

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.