Passer au contenu

Comment résoudre les problèmes de délai d'expiration des instances de bloc-notes Amazon SageMaker AI lorsque j'installe des bibliothèques supplémentaires ?

Lecture de 4 minute(s)
0

Lorsque j'essaie d'installer des bibliothèques supplémentaires dans mon instance de bloc-notes Amazon SageMaker AI, une erreur de délai d’expiration s'affiche.

Résolution

Lorsqu'un script de configuration du cycle de vie s'exécute pendant plus de 5 minutes, il échoue et SageMaker AI ne crée ni ne démarre l'instance de bloc-notes.

Appliquez l’une des méthodes suivantes pour résoudre le problème.

Exécuter la commande nohup

Pour une solution temporaire, exécutez la commande nohup pour forcer le script de configuration du cycle de vie à continuer à s'exécuter en arrière-plan jusqu'à ce que vous installiez les packages.

Exécutez la commande suivante avec nohup au début et une esperluette (&) à la fin :

#!/bin/bash
set -e
nohup pip install xgboost &

Après avoir installé les bibliothèques, le script cesse de s'exécuter. SageMaker AI ne vous avertit pas lorsque cela se produit, mais vous pouvez exécuter la commande ps pour vérifier l'état du script.

Remarque : Vous pouvez également exécuter la commande nohup pour d'autres scénarios de délai d’expiration des scripts, par exemple lorsque vous téléchargez des objets Amazon Simple Storage Service (Amazon S3) volumineux.

Créer une installation persistante personnalisée de Conda sur le volume de l'instance de bloc-notes

  1. Dans le terminal d'une instance de bloc-notes existante, exécutez la commande suivante dans votre éditeur préféré pour créer un fichier .sh :

    vim custom-script.sh
  2. Ajoutez le contenu du script on-create au fichier .sh. Pour copier le script, consultez la page amazon-sagemaker-notebook-instance-lifecycle-config-samples sur le site Web de GitHub. Le script crée un nouvel environnement Conda dans une installation Conda personnalisée. Le script installe également NumPy et Boto3 dans le nouvel environnement Conda.
    Remarque : L'instance du bloc-notes doit disposer d'une connexion Internet pour télécharger le programme d'installation de Miniconda et ipykernel.

  3. Exécutez la commande suivante pour marquer le script comme exécutable et exécuter le script :

    chmod +x custom-script.sh
    ./custom-script.sh
  4. Une fois l'installation terminée, arrêtez l'instance de bloc-notes.

  5. Ajoutez le script d’exécution au démarrage au fichier .sh. Pour copier le script, consultez la page amazon-sagemaker-notebook-instance-lifecycle-config-samples sur le site Web de GitHub.

  6. Sur l'instance de bloc-notes arrêtée, ajoutez le script de démarrage en tant que configuration du cycle de vie. Chaque fois que vous démarrez l'instance de bloc-notes, le script rend l'environnement personnalisé disponible sous forme de noyau dans Jupyter.

  7. Démarrez l'instance de bloc-notes, puis installez vos bibliothèques personnalisées dans l'environnement personnalisé.
    Par exemple, pour installer pyarrow, exécutez la commande suivante :

    import sys
    !conda install --yes --prefix {sys.prefix} -c conda-forge pyarrow

Si vous arrêtez, puis redémarrez votre instance de bloc-notes, votre environnement Conda personnalisé et vos bibliothèques sont toujours disponibles. Il n’est pas nécessaire de les réinstaller.

Si vous recevez un message d'erreur indiquant que vous devez mettre à jour Conda, exécutez les commandes suivantes :

!conda install -p "/home/ec2-user/anaconda3" "conda>=4.8" --yes
!conda install -p "/home/ec2-user/SageMaker/custom-miniconda/miniconda" "conda>=4.8" --yes

Une fois l'installation de Conda terminée, installez les bibliothèques.

Créer un bloc-notes Neptune et configurer ses politiques et ses connexions

Lorsque vous créez un bloc-notes dans Amazon Neptune, Neptune utilise une configuration de cycle de vie par défaut qui pointe vers un objet S3, tel que aws s3 cp s3://aws-neptune-notebook/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz. Le rôle Gestion des identités et des accès AWS (AWS IAM) Neptune doit disposer d'une politique d'autorisations qui accorde les actions s3:GetObject et s3:ListBucket pour les ressources arn:aws:s3:::aws-neptune-notebook et arn:aws:s3:::aws-neptune-notebook/.

Le rôle IAM Neptune doit également disposer d'une politique d’approbation qui confère à SageMaker AI l'action AssumeRole. Par exemple, vous avez activé l'authentification de base de données IAM sur le cluster de bases de données que vous avez associé au bloc-notes. Le rôle IAM doit disposer d'une politique d'autorisations qui accorde l'action neptune-db: pour le cluster de bases de données associé.

Si vous utilisez un cloud privé virtuel (VPC) pour connecter votre ordinateur portable Neptune à Internet, vous devez connecter une passerelle NAT au VPC. Vous devez également configurer les groupes de sécurité pour autoriser l'accès Internet à Amazon S3 et au Python Package Index (PyPI). Pour plus d'informations sur PyPI, consultez le site Web Python Package Index.

Remarque : Pour résoudre les problèmes liés aux scripts de configuration du cycle de vie, utilisez Amazon CloudWatch Logs. Vous trouverez les journaux aux emplacements suivants :

  • groupe de journaux : /aws/sagemaker/NotebookInstances
  • flux de journaux : example_notebook_instance_name/LifecycleConfigOnStart

Informations connexes

Qu'est-ce qu'Amazon SageMaker AI ?

Déboguer les configurations du cycle de vie

AWS OFFICIELA mis à jour il y a 10 mois