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. Dies kann lokale 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
iam:ListPolicies
Berechtigungeniam:CreateRole
,iam:CreatePolicy
iam:AttachRolePolicy
, und 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 er auf Daten in Ihren Amazon S3 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 Erlaubnis 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 Konsole und wählen Sie die Domain aus, die Sie verwenden. Wählen Sie dann unter der Domäne 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
iam:CreateRole
, die dieiam:ListPolicies
Aktionen,iam:CreatePolicy
iam:AttachRolePolicy
, und zulässt.
Modell einrichten AWS CLI
Folgen Sie diesen Befehlszeilenschritten in einem Terminal, um das AWS CLI für Amazon SageMaker mit MLflow einzurichten.
-
Installieren Sie eine aktualisierte Version von. AWS CLI Weitere Informationen finden Sie im AWS CLI Benutzerhandbuch unter Installation oder Aktualisierung AWS CLI auf die neueste Version von.
-
Stellen Sie mit dem folgenden Befehl sicher, dass der installiert AWS CLI ist:
aws sagemaker help
Drücken Sie
q
, um die Eingabeaufforderung zu beenden.Hilfe zur Problembehebung finden Sie unter Beheben Sie häufig auftretende Einrichtungsprobleme.
Richten Sie die MLflow-Infrastruktur ein
Der folgende Abschnitt zeigt Ihnen, wie Sie einen MLflow Tracking Server zusammen mit dem Amazon S3 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 S3-Bucket für allgemeine Zwecke zu erstellen:
Anmerkung
Der Amazon S3 S3-Bucket, der für Ihren Artifact Store verwendet wird, muss sich auf demselben befinden AWS-Region wie Ihr Tracking-Server.
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
" }
Richten Sie IAM-Vertrauensrichtlinien ein
Gehen Sie wie folgt vor, um eine IAM-Vertrauensrichtlinie zu erstellen. Weitere Informationen zu Rollen und Vertrauensrichtlinien finden Sie im AWS Identity and Access Management Benutzerhandbuch unter Begriffe und Konzepte für Rollen.
-
Verwenden Sie in Ihrem Terminal den folgenden Befehl, um eine Datei mit dem Namen zu erstellen
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 -
Verwenden Sie in Ihrem Terminal den folgenden Befehl, um eine Datei mit dem Namen zu erstellen
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
-
Verwenden Sie die Vertrauensrichtliniendatei, 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-documentfile:///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-namecustom-policy
\ --policy-document file:///tmp/custom-policy.json
role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)
Erstellen Sie einen MLFlow-Tracking-Server
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 angeben--tracking-server-config
. Wählen Sie zwischen "Small"
"Medium"
, und"Large"
. Die Standardgröße der MLflow Tracking Server-Konfiguration ist"Small"
. Sie können eine Größe wählen, die von der voraussichtlichen Nutzung des Tracking-Servers abhängt, z. B. von der Menge der protokollierten Daten, der Anzahl der Benutzer und der Nutzungshäufigkeit. Weitere Informationen finden Sie unter MLflowServergrößen verfolgen.
Mit dem folgenden Befehl wird ein neuer Tracking-Server mit aktivierter automatischer Modellregistrierung erstellt. Um die automatische Modellregistrierung zu deaktivieren, geben Sie an--no-automatic-model-registration
.
Nachdem Sie Ihren Tracking-Server erstellt haben, können Sie die MLflow-Benutzeroberfläche starten. Weitere Informationen finden Sie unter Starten Sie die MLflow-Benutzeroberfläche mit einer vorsignierten 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 für MLflow ein Wenn Sie erfolgreich einen Tracking-Server erstellt haben, wird dieser automatisch gestartet.
ts_name=
tracking-server-name
region=valid-region
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
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 die Schritte $bucket_name
zum Aufräumen.
Beschreiben Sie den MLflow Tracking Server
Überprüfen Sie den Status Ihrer MLflow Tracking Server-Erstellung mit der describe-mlflow-tracking-server
API.
aws sagemaker describe-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Wenn die Erstellung des MLflow Tracking Servers noch im Gange ist, ist dasTrackingServerStatus
. "Creating"
Wenn die Erstellung des MLflow Tracking Servers abgeschlossen ist, ist dasTrackingServerStatus
. "Created"
Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:
{ "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/
tracking-server-name
", "MlflowTrackingServerName": "tracking-server-name
", "CreationTime": "2024-03-15T19:41:43+00:00", "LastModifiedTime": "2024-03-15T19:41:43+00:00", "CreatedBy": {}, "LastModifiedBy": {}, "ArtifactStoreUri": "s3://bucket-name
", "TrackingServerConfig": "Small
", "MlflowVersion": "v2.11.3", "TrackingServerStatus": "Created" }
MLflow Tracking Server auflisten
Listet MLflow Tracking Server mit der API auflist-mlflow-tracking-servers
.
aws sagemaker list-mlflow-tracking-servers \ --region
$region
Ihre Ausgabe sollte wie folgt aussehen:
{ "TrackingServerSummaries": [ { "TrackingServerArn": "arn:aws:sagemaker:
region
:123456789012
:mlflow-tracking-server/tracking-server-name
", "MlflowTrackingServerName": "tracking-server-name
", "CreationTime": "2024-04-11T16:58:27+00:00", "LastModifiedTime": "2024-04-11T16:58:27+00:00", "TrackingServerStatus": "CreatePending", "MlflowVersion": "v2.11.3" } ] }
Standardmäßig werden Tracking-Server in absteigender Reihenfolge nach Erstellungszeit aufgelistet. Um die Reihenfolge der Listen zu ändern, können Sie optional angeben, dass sie angezeigt werden --sort-order
Ascending
soll.
Sie können die aufgelisteten Tracking-Server optional nach filtern--tracking-server-status
, z. B. nach "Creating"
oder"Created"
.
Verwenden Sie den --created-after
Filter, um nur Tracking-Server aufzulisten, die nach einem bestimmten Datum und einer bestimmten Uhrzeit erstellt wurden. Die aufgelisteten Tracking-Server werden mit einem Datum und einer Uhrzeit wie angezeigt"2024-03-16T01:46:56+00:00"
. Der --created-after
Parameter enthält einen Unix-Zeitstempel. Informationen zur Konvertierung von Datum und Uhrzeit in einen Unix-Zeitstempel finden Sie unter. EpochConverter
aws sagemaker list-mlflow-tracking-servers \ --region
$region
\ --sort-orderAscending
\ --tracking-server-statusCreated
\ --created-after1712852168
Wenn Sie mehr als einen Tracking-Server auf demselben Server haben AWS-Region, können Sie den --next-token
Parameter verwenden, um durch Ihre Tracking-Server zu iterieren.
# List one tracking server in a specified AWS-Region to get a NextToken aws sagemaker list-mlflow-tracking-servers \ --max-results
1
\ --region$region
# Save the NextToken for this listed tracking server in a variable next_token=$(aws experiments-beta list-mlflow-tracking-servers \ --max-results1
\ --region$region
| jq -r .NextToken) # Use the NextToken to list the next tracking server and get a new NextToken aws sagemaker list-mlflow-tracking-servers \ --max-results1
\ --region$region
\ --next-token$next_token
Führen Sie den folgenden Befehl aus, um alle möglichen Listenoptionen zu sehen:
aws sagemaker list-mlflow-tracking-servers help
Stoppen oder starten Sie den MLflow Tracking Server
Verwenden Sie den folgenden Befehl, um den Tracking-Server zu stoppen:
aws sagemaker stop-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Verwenden Sie den folgenden Befehl, um den Tracking-Server zu starten:
Anmerkung
Es kann bis zu 25 Minuten dauern, bis Ihr Tracking-Server gestartet ist.
aws sagemaker start-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Aktualisieren Sie den MLflow Tracking Server
Sie können den Amazon S3 S3-Bucket für Artefaktspeicher, die Tracking-Servergröße, die Konfiguration der automatischen Modellregistrierung oder das wöchentliche Wartungsfenster jederzeit aktualisieren. Ein Tracking-Server muss gestoppt werden, damit er aktualisiert werden kann.
Verwenden Sie den folgenden Befehl, um den Tracking-Server zu aktualisieren und den Artifact Store-URI zu ändern:
aws sagemaker update-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --artifact-store-uri$updated-artifact-store-uri
\ --region$region