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.
Créez un serveur de suivi à l'aide du AWS CLI
Vous pouvez créer un serveur de suivi à l'aide du AWS CLI pour une personnalisation plus précise de la sécurité.
Prérequis
Pour créer un serveur de suivi à l'aide du AWS CLI, vous devez disposer des éléments suivants :
-
Accès à un terminal.Cela peut inclure des IDE locaux, une instance Amazon EC2 ou. AWS CloudShell
-
Accès à un environnement de développement. Cela peut inclure des IDE locaux ou un environnement de bloc-notes Jupyter dans Studio ou Studio Classic.
-
Une AWS CLI installation configurée. Pour plus d'informations, veuillez consulter Configuration de l' AWS CLI.
-
Un rôle IAM doté des autorisations appropriées. Les étapes suivantes nécessitent que votre environnement dispose de
iam:CreateRole
,iam:CreatePolicy
iam:AttachRolePolicy
, etiam:ListPolicies
d'autorisations. Ces autorisations sont nécessaires pour le rôle utilisé pour exécuter les étapes de ce guide de l'utilisateur. Les instructions de ce guide créent un rôle IAM qui est utilisé comme rôle d'exécution du serveur de suivi MLflow afin qu'il puisse accéder aux données de vos compartiments Amazon S3. En outre, une politique est créée pour donner au rôle IAM de l'utilisateur qui interagit avec le serveur de suivi via le SDK MLflow l'autorisation d'appeler les API MLflow. Pour plus d'informations, consultez Modifier une politique d'autorisations de rôle (console).Si vous utilisez un bloc-notes SageMaker Studio, mettez à jour le rôle de service de votre profil utilisateur Studio avec ces autorisations IAM. Pour mettre à jour le rôle de service, accédez à la SageMaker console et sélectionnez le domaine que vous utilisez. Ensuite, sous le domaine, sélectionnez le profil utilisateur que vous utilisez. Vous y verrez le rôle de service répertorié. Accédez à la console IAM, recherchez le rôle de service sous Rôles et mettez à jour votre rôle avec une politique autorisant les
iam:ListPolicies
actionsiam:CreateRole
iam:CreatePolicy
,iam:AttachRolePolicy
, et.
Configurer le AWS CLI modèle
Suivez ces étapes de ligne de commande dans un terminal AWS CLI pour configurer MLflow pour Amazon SageMaker .
-
Installez une version mise à jour du AWS CLI. Pour plus d'informations, voir Installer ou mettre à jour la dernière version du AWS CLI dans le guide de AWS CLI l'utilisateur.
-
Vérifiez que le AWS CLI est installé à l'aide de la commande suivante :
aws sagemaker help
Appuyez
q
pour quitter l'invite.Pour bénéficier d'une aide à la résolution des problèmes, consultez Résoudre les problèmes de configuration courants.
Configuration de l'infrastructure MLflow
La section suivante explique comment configurer un serveur de suivi MLflow ainsi que le bucket Amazon S3 et le rôle IAM nécessaires au serveur de suivi.
Création d’un compartiment S3
Dans votre terminal, utilisez les commandes suivantes pour créer un compartiment Amazon S3 à usage général :
Note
Le compartiment Amazon S3 utilisé pour votre magasin d'artefacts doit se trouver dans le même emplacement Région AWS que votre serveur de suivi.
bucket_name=
bucket-name
region=valid-region
aws s3api create-bucket \ --bucket$bucket_name
\ --region$region
\ --create-bucket-configuration LocationConstraint=$region
La sortie doit ressembler à ce qui suit :
{ "Location": "/
bucket-name
" }
Configurer des politiques de confiance IAM
Suivez les étapes ci-dessous pour créer une politique de confiance IAM. Pour plus d'informations sur les rôles et les politiques de confiance, consultez la section Termes et concepts relatifs aux rôles dans le Guide de AWS Identity and Access Management l'utilisateur.
-
Dans votre terminal, utilisez la commande suivante pour créer un fichier appelé
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 -
Dans votre terminal, utilisez la commande suivante pour créer un fichier appelé
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
-
Utilisez le fichier de politique de confiance pour créer un rôle. Ajoutez ensuite des politiques de rôle IAM qui permettent à MLflow d'accéder à Amazon S3 et à SageMaker Model Registry depuis votre compte. MLflow doit avoir accès à Amazon S3 pour le magasin d'artefacts de votre serveur de suivi et au SageMaker Model Registry pour l'enregistrement automatique des modèles.
Note
Si vous mettez à jour un rôle existant, utilisez plutôt la commande suivante :
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)
Création d'un serveur de suivi MLflow
Dans votre terminal, utilisez l'create-mlflow-tracking-server
API pour créer un serveur de suivi dans celui Région AWS de votre choix. Cette étape peut prendre jusqu'à 25 minutes.
Vous pouvez éventuellement spécifier la taille de votre serveur de suivi à l'aide du paramètre--tracking-server-config
. Choisissez entre "Small"
"Medium"
, et"Large"
. La taille de configuration par défaut du serveur de suivi MLflow est"Small"
. Vous pouvez choisir une taille en fonction de l'utilisation prévue du serveur de suivi, telle que le volume de données enregistrées, le nombre d'utilisateurs et la fréquence d'utilisation. Pour plus d’informations, consultez MLflowTailles des serveurs de suivi.
La commande suivante crée un nouveau serveur de suivi avec l'enregistrement automatique des modèles activé. Pour désactiver l'enregistrement automatique des modèles, spécifiez--no-automatic-model-registration
.
Après avoir créé votre serveur de suivi, vous pouvez lancer l'interface utilisateur de MLflow. Pour plus d’informations, consultez Lancez l'interface utilisateur MLflow à l'aide d'une URL présignée.
Note
La création du serveur de suivi peut prendre jusqu'à 25 minutes. Si la création du serveur de suivi prend plus de 25 minutes, vérifiez que vous disposez des autorisations IAM nécessaires. Pour plus d'informations sur les autorisations IAM, consultezConfiguration des autorisations IAM pour MLflow. Lorsque vous créez un serveur de suivi avec succès, celui-ci démarre automatiquement.
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
La sortie doit ressembler à ce qui suit :
{ "TrackingServerArn": "arn:aws:sagemaker:
region
:123456789012
:mlflow-tracking-server/tracking-server-name
" }
Important
Prenez note de l'ARN du serveur de suivi pour une utilisation ultérieure. Vous aurez également besoin $bucket_name
des étapes de nettoyage.
Décrire le serveur de suivi MLflow
Vérifiez l'état de la création de votre serveur de suivi MLflow à l'aide de l'describe-mlflow-tracking-server
API.
aws sagemaker describe-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Lorsque la création du serveur de suivi MLflow est toujours en cours, TrackingServerStatus
c'est "Creating"
le cas. Lorsque la création du serveur de suivi MLflow est terminée, c'TrackingServerStatus
est "Created"
le cas. La sortie doit ressembler à ce qui suit :
{ "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" }
Serveur de suivi List MLflow
Répertoriez les serveurs de suivi MLflow avec l'list-mlflow-tracking-servers
API.
aws sagemaker list-mlflow-tracking-servers \ --region
$region
Votre sortie doit ressembler à ce qui suit :
{ "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" } ] }
Par défaut, les serveurs de suivi sont répertoriés par ordre décroissant par date de création. Pour modifier l'ordre de la liste, vous pouvez éventuellement --sort-order
définir comme étantAscending
.
Vous pouvez éventuellement filtrer les serveurs de suivi répertoriés par--tracking-server-status
, par exemple "Creating"
ou"Created"
.
Utilisez le --created-after
filtre pour répertorier uniquement les serveurs de suivi créés après une date et une heure spécifiques. Les serveurs de suivi répertoriés sont affichés avec une date et une heure telles que"2024-03-16T01:46:56+00:00"
. Le --created-after
paramètre prend en compte un horodatage Unix. Pour convertir une date et une heure en horodatage Unix, consultez. EpochConverter
aws sagemaker list-mlflow-tracking-servers \ --region
$region
\ --sort-orderAscending
\ --tracking-server-statusCreated
\ --created-after1712852168
Si vous avez plusieurs serveurs de suivi au même endroit Région AWS, vous pouvez utiliser le --next-token
paramètre pour parcourir vos serveurs de suivi par itération.
# List one tracking server in a specified Région AWS 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
Pour voir toutes les options de liste possibles, exécutez la commande suivante :
aws sagemaker list-mlflow-tracking-servers help
Arrêtez ou démarrez le serveur de suivi MLflow
Pour arrêter le serveur de suivi, utilisez la commande suivante :
aws sagemaker stop-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Pour démarrer le serveur de suivi, utilisez la commande suivante :
Note
Le démarrage de votre serveur de suivi peut prendre jusqu'à 25 minutes.
aws sagemaker start-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
Mettre à jour le serveur de suivi MLflow
Vous pouvez à tout moment mettre à jour le compartiment de stockage des artefacts Amazon S3, la taille du serveur de suivi, la configuration de l'enregistrement automatique des modèles ou la fenêtre de maintenance hebdomadaire. Un serveur de suivi doit être arrêté pour être mis à jour.
Pour mettre à jour le serveur de suivi et modifier l'URI du magasin d'artefacts, utilisez la commande suivante :
aws sagemaker update-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --artifact-store-uri$updated-artifact-store-uri
\ --region$region