Cuando intento instalar bibliotecas adicionales en mi instancia de cuaderno de Amazon SageMaker AI, aparece un error de tiempo de espera.
Resolución
Cuando un script de ](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)configuración del ciclo de vida[ se ejecuta durante más de 5 minutos, se produce un error en el script y SageMaker AI no crea ni inicia la instancia de cuaderno.
Utiliza uno de los métodos siguientes para solucionar este problema.
Ejecución del comando nohup
Si buscas una solución temporal, ejecuta el comando nohup para forzar que el script de configuración del ciclo de vida continúe ejecutándose en segundo plano hasta que instales los paquetes.
Ejecuta el siguiente comando con nohup al principio y el signo & al final:
#!/bin/bash
set -e
nohup pip install xgboost &
Tras instalar las bibliotecas, el script deja de ejecutarse. SageMaker AI no te notifica cuando esto ocurre, pero puede ejecutar el comando ps para comprobar el estado del script.
Nota: También puedes ejecutar el comando nohup para otros escenarios de tiempo de espera del script, como cuando descargas objetos de gran tamaño de Amazon Simple Storage Service (Amazon S3).
Creación de una instalación persistente personalizada de Conda en el volumen de la instancia de cuaderno
-
En el terminal de una instancia de cuaderno existente, ejecuta el siguiente comando en tu editor preferido para crear un archivo .sh:
vim custom-script.sh
-
Añade el contenido del script on-create al archivo .sh. Para copiar el script, consulta amazon-sagemaker-notebook-instance-lifecycle-config-samples en el sitio web de GitHub. El script crea un nuevo entorno de Conda en una instalación de Conda personalizada. El script también instala NumPy y Boto3 en el nuevo entorno de Conda.
Nota: La instancia de cuaderno debe tener conectividad a Internet para descargar el instalador de Miniconda e ipykernel.
-
Ejecuta el siguiente comando para marcar el script como ejecutable y ejecútalo:
chmod +x custom-script.sh
./custom-script.sh
-
Una vez finalizada la instalación, detén la instancia de cuaderno.
-
Añade el script on-start al archivo .sh. Para copiar el script, consulta amazon-sagemaker-notebook-instance-lifecycle-config-samples en el sitio web de GitHub.
-
En la instancia de cuaderno detenida, añade el script on-start como una configuración del ciclo de vida. Cada vez que inicias la instancia de cuaderno, el script hace que el entorno personalizado esté disponible como kernel en Jupyter.
-
Inicia la instancia de cuaderno y, a continuación, instala las bibliotecas personalizadas en el entorno personalizado.
Por ejemplo, para instalar pyarrow, ejecuta el siguiente comando:
import sys
!conda install --yes --prefix {sys.prefix} -c conda-forge pyarrow
Si detienes y, a continuación, inicias la instancia de cuaderno, el entorno personalizado de Conda y las bibliotecas seguirán estando disponibles. No es necesario volver a instalarlos.
Si recibes un mensaje de error que indica que debes actualizar Conda, ejecuta los siguientes comandos:
!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
Una vez finalizada la instalación de Conda, instala las bibliotecas.
Creación de un cuaderno de Neptune y configuración de sus políticas y conexiones
Al crear un cuaderno en Amazon Neptune, Neptune utiliza una configuración de ciclo de vida predeterminada que apunta a un objeto de S3, como aws s3 cp s3://aws-neptune-notebook/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz. El rol de AWS Identity and Access Management (IAM) de Neptune debe tener una política de permisos que otorgue las acciones s3:GetObject y s3:ListBucket para los recursos arn:aws:s3:::aws-neptune-notebook y arn:aws:s3:::aws-neptune-notebook/.
El rol de IAM de Neptune también debe tener una política de confianza que otorgue a SageMaker AI la acción AssumeRole. Por ejemplo, has activado la autenticación de bases de datos de IAM en el clúster de base de datos que has asociado al cuaderno. El rol de IAM debe tener una política de permisos que conceda la acción neptune-db: para el clúster de base de datos asociado.
Si usas una nube virtual privada (VPC) para conectar tu cuaderno de Neptune a Internet, debes conectar una puerta de enlace de NAT a la VPC. Además, debes configurar los grupos de seguridad para permitir el acceso a Internet a Amazon S3 y al Índice de paquetes de Python (PyPI). Para obtener más información sobre PyPI, consulta el sitio web del Índice de paquetes de Python.
Nota: Para solucionar problemas con los scripts de configuración del ciclo de vida, utiliza Registros de Amazon CloudWatch. Puedes encontrar los registro en las siguientes ubicaciones:
- Grupo de registro: /aws/sagemaker/NotebookInstances
- Secuencia de registro: example_notebook_instance_name/LifecycleConfigOnStart
Información relacionada
What is Amazon SageMaker AI? (¿Qué es Amazon SageMaker AI?)
Debug lifecycle configurations (Depuración de configuraciones del ciclo de vida)