Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Modellbeobachtbarkeit für Trainingsjobs auf SageMaker HyperPod Clustern, die von Amazon EKS orchestriert werden

Fokusmodus
Modellbeobachtbarkeit für Trainingsjobs auf SageMaker HyperPod Clustern, die von Amazon EKS orchestriert werden - 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.

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.

SageMaker HyperPod Mit Amazon EKS orchestrierte Cluster können in die MLflow Anwendung auf Amazon SageMaker Studio integriert werden. Cluster-Administratoren richten den MLflow Server ein und verbinden ihn mit den SageMaker HyperPod Clustern. Datenwissenschaftler können Einblicke in das Modell gewinnen

So richten Sie einen MLflow Server mit AWS CLI ein

Ein MLflow Tracking-Server sollte vom Clusteradministrator erstellt werden.

  1. Erstellen Sie einen SageMaker MLflow AI-Tracking-Server, indem Sie den Anweisungen unter Erstellen eines Tracking-Servers mithilfe der AWS CLI folgen.

  2. Stellen Sie sicher, dass die eks-auth:AssumeRoleForPodIdentityBerechtigung in der IAM-Ausführungsrolle für SageMaker HyperPod vorhanden ist.

  3. Wenn das eks-pod-identity-agent Add-on nicht bereits auf Ihrem EKS-Cluster installiert ist, installieren Sie es auf dem EKS-Cluster.

    aws eks create-addon \ --cluster-name <eks_cluster_name> \ --addon-name eks-pod-identity-agent \ --addon-version vx.y.z-eksbuild.1
  4. Erstellen Sie eine trust-relationship.json Datei für eine neue Rolle, die Pod aufrufen soll MLflow APIs.

    cat >trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEksAuthToAssumeRoleForPodIdentity", "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

    Führen Sie den folgenden Code aus, um die Rolle zu erstellen und die Vertrauensstellung anzuhängen.

    aws iam create-role --role-name hyperpod-mlflow-role \ --assume-role-policy-document file://trust-relationship.json \ --description "allow pods to emit mlflow metrics and put data in s3"
  5. Erstellen Sie die folgende Richtlinie, die dem Pod Zugriff gewährt, um alle sagemaker-mlflow Operationen aufzurufen und Modellartefakte in S3 zu speichern. Die S3-Berechtigung ist bereits auf dem Tracking-Server vorhanden, aber wenn die Modellartefakte zu groß sind, erfolgt ein direkter Aufruf an s3 über den MLflow Code, um die Artefakte hochzuladen.

    cat >hyperpod-mlflow-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:AccessUI", "sagemaker-mlflow:CreateExperiment", "sagemaker-mlflow:SearchExperiments", "sagemaker-mlflow:GetExperiment", "sagemaker-mlflow:GetExperimentByName", "sagemaker-mlflow:DeleteExperiment", "sagemaker-mlflow:RestoreExperiment", "sagemaker-mlflow:UpdateExperiment", "sagemaker-mlflow:CreateRun", "sagemaker-mlflow:DeleteRun", "sagemaker-mlflow:RestoreRun", "sagemaker-mlflow:GetRun", "sagemaker-mlflow:LogMetric", "sagemaker-mlflow:LogBatch", "sagemaker-mlflow:LogModel", "sagemaker-mlflow:LogInputs", "sagemaker-mlflow:SetExperimentTag", "sagemaker-mlflow:SetTag", "sagemaker-mlflow:DeleteTag", "sagemaker-mlflow:LogParam", "sagemaker-mlflow:GetMetricHistory", "sagemaker-mlflow:SearchRuns", "sagemaker-mlflow:ListArtifacts", "sagemaker-mlflow:UpdateRun", "sagemaker-mlflow:CreateRegisteredModel", "sagemaker-mlflow:GetRegisteredModel", "sagemaker-mlflow:RenameRegisteredModel", "sagemaker-mlflow:UpdateRegisteredModel", "sagemaker-mlflow:DeleteRegisteredModel", "sagemaker-mlflow:GetLatestModelVersions", "sagemaker-mlflow:CreateModelVersion", "sagemaker-mlflow:GetModelVersion", "sagemaker-mlflow:UpdateModelVersion", "sagemaker-mlflow:DeleteModelVersion", "sagemaker-mlflow:SearchModelVersions", "sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts", "sagemaker-mlflow:TransitionModelVersionStage", "sagemaker-mlflow:SearchRegisteredModels", "sagemaker-mlflow:SetRegisteredModelTag", "sagemaker-mlflow:DeleteRegisteredModelTag", "sagemaker-mlflow:DeleteModelVersionTag", "sagemaker-mlflow:DeleteRegisteredModelAlias", "sagemaker-mlflow:SetRegisteredModelAlias", "sagemaker-mlflow:GetModelVersionByAlias" ], "Resource": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-tracking-server/<ml tracking server name>" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::<mlflow-s3-bucket_name>" } ] } EOF
    Anmerkung

    Das ARNs sollte die vom MLflow Server und dem S3-Bucket sein, die mit dem MLflow Server während des Servers eingerichtet wurden, den Sie gemäß den Anweisungen MLflow Infrastruktur einrichten erstellt haben.

  6. Hängen Sie die mlflow-metrics-emit-policy Richtlinie hyperpod-mlflow-role mithilfe des im vorherigen Schritt gespeicherten Richtliniendokuments an.

    aws iam put-role-policy \ --role-name hyperpod-mlflow-role \ --policy-name mlflow-metrics-emit-policy \ --policy-document file://hyperpod-mlflow-policy.json
  7. Erstellen Sie ein Kubernetes-Dienstkonto für Pod, um auf den MLflow Server zuzugreifen.

    cat >mlflow-service-account.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: mlflow-service-account namespace: kubeflow EOF

    Führen Sie den folgenden Befehl aus, um ihn auf den EKS-Cluster anzuwenden.

    kubectl apply -f mlflow-service-account.yaml
  8. Erstellen Sie eine Pod-Identitätszuordnung.

    aws eks create-pod-identity-association \ --cluster-name EKS_CLUSTER_NAME \ --role-arn arn:aws:iam::111122223333:role/hyperpod-mlflow-role \ --namespace kubeflow \ --service-account mlflow-service-account

Um Messwerte von Trainingsaufträgen auf dem MLflow Server zu sammeln

Datenwissenschaftler müssen das Trainingsskript und das Docker-Image einrichten, um Metriken an den MLflow Server zu senden.

  1. Fügen Sie am Anfang Ihres Trainingsskripts die folgenden Zeilen hinzu.

    import mlflow # Set the Tracking Server URI using the ARN of the Tracking Server you created mlflow.set_tracking_uri(os.environ['MLFLOW_TRACKING_ARN']) # Enable autologging in MLflow mlflow.autolog()
  2. Erstellen Sie ein Docker-Image mit dem Trainingsskript und übertragen Sie es auf Amazon ECR. Ermittelt den ARN des ECR-Containers. Weitere Informationen zum Erstellen und Pushen eines Docker-Images finden Sie unter Pushing a Docker-Image im ECR-Benutzerhandbuch.

  3. Fügen Sie in den Trainingsjob-Pods ein Dienstkonto hinzu, auf das sie zugreifen können. hyperpod-mlflow-role Dadurch können Pods anrufen MLflow APIs. Führen Sie die folgende SageMaker HyperPod CLI-Vorlage für die Einreichung von Jobs aus. Erstellen Sie dies mit dem Dateinamenmlflow-test.yaml.

    defaults: - override hydra/job_logging: stdout hydra: run: dir: . output_subdir: null training_cfg: entry_script: ./train.py script_args: [] run: name: test-job-with-mlflow # Current run name nodes: 2 # Number of nodes to use for current training # ntasks_per_node: 1 # Number of devices to use per node cluster: cluster_type: k8s # currently k8s only instance_type: ml.c5.2xlarge cluster_config: # name of service account associated with the namespace service_account_name: mlflow-service-account # persistent volume, usually used to mount FSx persistent_volume_claims: null namespace: kubeflow # required node affinity to select nodes with SageMaker HyperPod # labels and passed health check if burn-in enabled label_selector: required: sagemaker.amazonaws.com/node-health-status: - Schedulable preferred: sagemaker.amazonaws.com/deep-health-check-status: - Passed weights: - 100 pullPolicy: IfNotPresent # policy to pull container, can be Always, IfNotPresent and Never restartPolicy: OnFailure # restart policy base_results_dir: ./result # Location to store the results, checkpoints and logs. container: 111122223333.dkr.ecr.us-west-2.amazonaws.com/tag # container to use env_vars: NCCL_DEBUG: INFO # Logging level for NCCL. Set to "INFO" for debug information MLFLOW_TRACKING_ARN: arn:aws:sagemaker:us-west-2:11112223333:mlflow-tracking-server/tracking-server-name
  4. Starten Sie den Job mit der YAML-Datei wie folgt.

    hyperpod start-job --config-file /path/to/mlflow-test.yaml
  5. Generieren Sie eine vorsignierte URL für den MLflow Tracking-Server. Sie können den Link in Ihrem Browser öffnen und damit beginnen, Ihren Ausbildungsjob zu verfolgen.

    aws sagemaker create-presigned-mlflow-tracking-server-url \ --tracking-server-name "tracking-server-name" \ --session-expiration-duration-in-seconds 1800 \ --expires-in-seconds 300 \ --region region
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.