Salta al contenuto

Come posso risolvere i problemi di timeout di un'istanza del notebook Amazon SageMaker AI quando installo librerie aggiuntive?

4 minuti di lettura
0

Quando provo a installare librerie aggiuntive nella mia istanza del notebook Amazon SageMaker AI, ricevo un errore di timeout.

Risoluzione

Quando uno script di configurazione del ciclo di vita viene eseguito per più di 5 minuti, lo script ha esito negativo e SageMaker AI non crea né avvia l'istanza del notebook.

Utilizza uno dei seguenti metodi per risolvere il problema.

Esegui il comando nohup

Per una soluzione temporanea, esegui il comando nohup per forzare l'esecuzione dello script di configurazione del ciclo di vita in background fino all'installazione dei pacchetti.

Esegui questo comando con nohup all'inizio e una e commerciale (&) alla fine:

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

Dopo aver installato le librerie, l'esecuzione dello script viene interrotta. SageMaker AI non ti avvisa quando ciò accade, ma puoi eseguire il comando ps per verificare lo stato dello script.

Nota: puoi anche eseguire il comando nohup per altre situazioni in cui si verificano timeout degli script, ad esempio quando scarichi oggetti Amazon Simple Storage Service (Amazon S3) di grandi dimensioni.

Crea un'installazione Conda persistente personalizzata sul volume dell'istanza del notebook

  1. Nel terminale di un'istanza del notebook esistente, esegui questo comando nell'editor preferito per creare un file .sh:

    vim custom-script.sh
  2. Aggiungi il contenuto dello script in fase di creazione al file .sh. Per copiare lo script, consulta amazon-sagemaker-notebook-instance-lifecycle-config-samples sul sito web GitHub. Lo script crea un nuovo ambiente Conda in un'installazione Conda personalizzata. Lo script installa anche NumPy e Boto3 nel nuovo ambiente Conda.
    Nota: l'istanza del notebook deve disporre di connettività Internet per scaricare il programma di installazione di Miniconda e ipykernel.

  3. Esegui questo comando per contrassegnare lo script come eseguibile ed eseguirlo:

    chmod +x custom-script.sh
    ./custom-script.sh
  4. Al termine dell'installazione, arresta l'istanza del notebook.

  5. Aggiungi lo script all'avvio al file .sh. Per copiare lo script, consulta amazon-sagemaker-notebook-instance-lifecycle-config-samples sul sito web GitHub.

  6. Nell'istanza del notebook arrestata, aggiungi lo script all'avvio come configurazione del ciclo di vita. Ogni volta che avvii l'istanza del notebook, lo script rende l'ambiente personalizzato disponibile come kernel in Jupyter.

  7. Avvia l'istanza del notebook, quindi installa le librerie personalizzate nell'ambiente personalizzato.
    Ad esempio, per installare pyarrow, esegui questo comando:

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

Se arresti e avvii l'istanza del notebook, l'ambiente e le librerie Conda personalizzati sono ancora disponibili. Non serve installarli nuovamente.

Se ricevi un messaggio di errore indicante che devi aggiornare Conda, esegui questi comandi:

!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

Al termine dell'installazione di Conda, installa le librerie.

Crea un notebook Neptune e configura le policy e le connessioni

Quando crei un notebook in Amazon Neptune, Neptune utilizza una configurazione del ciclo di vita predefinita che punta a un oggetto S3, ad esempio aws s3 cp s3://aws-neptune-notebook/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz. Il ruolo AWS Identity and Access Management (AWS IAM) di Neptune deve avere una policy di autorizzazione che conceda le azioni s3:GetObject e s3:ListBucket per le risorse arn:aws:s3:::aws-neptune-notebook e arn:aws:s3:::aws-neptune-notebook/.

Il ruolo IAM di Neptune deve inoltre avere una policy di attendibilità che conceda a SageMaker AI l'azione AssumeRole. Ad esempio, hai attivato l'autenticazione del database IAM sul cluster di database associato al notebook. Il ruolo IAM deve avere una policy di autorizzazione che conceda l'azione neptune-db: per il cluster di database associato.

Se utilizzi un cloud privato virtuale (VPC) per connettere il notebook Neptune a Internet, devi collegare un gateway NAT al VPC. Inoltre, devi configurare i gruppi di sicurezza per consentire l'accesso Internet ad Amazon S3 e PyPI (Python Package Index). Per ulteriori informazioni su PyPI, consulta sito web Python Package Index.

Nota: per risolvere i problemi relativi agli script di configurazione del ciclo di vita, utilizza Amazon CloudWatch Logs. Puoi trovare i log nelle seguenti posizioni:

  • gruppo di log: /aws/sagemaker/NotebookInstances
  • flusso di log: example_notebook_instance_name/LifecycleConfigOnStart

Informazioni correlate

Cos'è Amazon SageMaker AI?

Esecuzione del debug delle configurazioni del ciclo di vita

AWS UFFICIALEAggiornata 9 mesi fa