Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Observabilité du modèle pour les tâches de formation sur des SageMaker HyperPod clusters orchestrés par Amazon EKS

Mode de mise au point
Observabilité du modèle pour les tâches de formation sur des SageMaker HyperPod clusters orchestrés par Amazon EKS - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SageMaker HyperPod les clusters orchestrés avec Amazon EKS peuvent s'intégrer à l'MLflow application sur Amazon SageMaker Studio. Les administrateurs de clusters configurent le MLflow serveur et le connectent aux SageMaker HyperPod clusters. Les data scientists peuvent mieux comprendre le modèle

Pour configurer un MLflow serveur à l'aide de la AWS CLI

Un serveur MLflow de suivi doit être créé par l'administrateur du cluster.

  1. Créez un serveur MLflow de suivi SageMaker AI, en suivant les instructions de la section Créer un serveur de suivi à l'aide de la AWS CLI.

  2. Assurez-vous que l'eks-auth:AssumeRoleForPodIdentityautorisation existe dans le rôle d'exécution IAM pour SageMaker HyperPod.

  3. Si le eks-pod-identity-agent module complémentaire n'est pas déjà installé sur votre cluster EKS, installez-le sur le cluster EKS.

    aws eks create-addon \ --cluster-name <eks_cluster_name> \ --addon-name eks-pod-identity-agent \ --addon-version vx.y.z-eksbuild.1
  4. Créez un trust-relationship.json fichier pour un nouveau rôle à appeler par Pod 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

    Exécutez le code suivant pour créer le rôle et associer la relation de confiance.

    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. Créez la politique suivante qui accorde à Pod l'accès pour appeler toutes les sagemaker-mlflow opérations et pour placer les artefacts du modèle dans S3. L'autorisation S3 existe déjà sur le serveur de suivi, mais si les artefacts du modèle sont trop importants, un appel direct à s3 est effectué depuis le MLflow code pour télécharger les artefacts.

    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
    Note

    ARNs Il doit s'agir de celui provenant du MLflow serveur et du compartiment S3 configurés avec le MLflow serveur pendant que vous avez créé le serveur en suivant les instructions Configurer l' MLflow infrastructure.

  6. Joignez la mlflow-metrics-emit-policy politique à l'hyperpod-mlflow-roleaide du document de stratégie enregistré à l'étape précédente.

    aws iam put-role-policy \ --role-name hyperpod-mlflow-role \ --policy-name mlflow-metrics-emit-policy \ --policy-document file://hyperpod-mlflow-policy.json
  7. Créez un compte de service Kubernetes pour que Pod puisse accéder au serveur. MLflow

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

    Exécutez la commande suivante pour l'appliquer au cluster EKS.

    kubectl apply -f mlflow-service-account.yaml
  8. Créez une association d'identité Pod.

    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

Pour collecter des métriques à partir des tâches de formation vers le MLflow serveur

Les data scientists doivent configurer le script d'entraînement et l'image docker pour transmettre des métriques au MLflow serveur.

  1. Ajoutez les lignes suivantes au début de votre script d'entraînement.

    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. Créez une image Docker à l'aide du script de formation et envoyez-la vers Amazon ECR. Obtenez l'ARN du conteneur ECR. Pour plus d'informations sur la création et le transfert d'une image Docker, consultez la section Transmission d'une image Docker dans le guide de l'utilisateur ECR.

    Astuce

    Assurez-vous d'ajouter l'installation des packages mlflow et sagemaker-mlflow dans le fichier Docker. Pour en savoir plus sur l'installation des packages, les exigences et les versions compatibles des packages, consultez la section Installation MLflow et le plug-in SageMaker AI MLflow .

  3. Ajoutez un compte de service dans les modules de formation pour leur donner accèshyperpod-mlflow-role. Cela permet aux Pods d'appeler MLflow APIs. Exécutez le modèle de soumission de tâches SageMaker HyperPod CLI suivant. Créez-le avec le nom du fichiermlflow-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. Démarrez la tâche à l'aide du fichier YAML comme suit.

    hyperpod start-job --config-file /path/to/mlflow-test.yaml
  5. Générez une URL pré-signée pour le serveur MLflow de suivi. Vous pouvez ouvrir le lien dans votre navigateur et commencer à suivre votre stage de formation.

    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

Rubrique suivante :

Observabilité des clusters

Rubrique précédente :

Observabilité
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.