Quando tento instalar bibliotecas adicionais na minha instância de caderno do Amazon SageMaker AI, recebo um erro de tempo limite.
Resolução
Quando um script de configuração do ciclo de vida é executado por mais de 5 minutos, o script falha e o SageMaker AI não cria nem inicia a instância de caderno.
Use um dos métodos a seguir para resolver o problema.
Executar o comando nohup
Para uma solução temporária, execute o comando nohup para forçar o script de configuração do ciclo de vida a continuar a execução em segundo plano até que você instale os pacotes.
Execute o seguinte comando com nohup no início e um e comercial (&) no final:
#!/bin/bash
set -e
nohup pip install xgboost &
Depois de instalar as bibliotecas, o script para de ser executado. O SageMaker AI não notifica você quando isso acontece, mas você pode executar o comando ps para verificar o status do script.
Observação: você também pode executar o comando nohup para outros cenários de tempo limite do script, como quando você baixa objetos grandes do Amazon Simple Storage Service (Amazon S3).
Criar uma instalação personalizada e persistente do Conda no volume da instância do caderno
-
No terminal de uma instância de caderno já criada, execute o seguinte comando em seu editor preferido para criar um arquivo .sh:
vim custom-script.sh
-
Adicione o conteúdo do script on-create ao arquivo .sh. Para copiar script, consulte amazon-sagemaker-notebook-instance-lifecycle-config-samples no site do GitHub. O script cria um novo ambiente Conda em uma instalação personalizada do Conda. O script também instala o NumPy e o Boto3 no novo ambiente Conda.
Observação: a instância de caderno deve ter conectividade com a internet para baixar o instalador do Miniconda e o ipykernel.
-
Execute o comando a seguir para marcar o script como executável e executá-lo:
chmod +x custom-script.sh
./custom-script.sh
-
Depois que a instalação for concluída, interrompa a instância de caderno.
-
Adicione o script on-start ao arquivo .sh. Para copiar script, consulte amazon-sagemaker-notebook-instance-lifecycle-config-samples no site do GitHub.
-
Na instância de caderno interrompida, adicione o script de inicialização como uma configuração de ciclo de vida. Sempre que você inicia a instância de caderno, o script disponibiliza o ambiente personalizado como um kernel no Jupyter.
-
Inicie a instância de caderno e instale suas bibliotecas personalizadas no ambiente personalizado.
Por exemplo, para instalar pyarrow, execute o seguinte comando:
import sys
!conda install --yes --prefix {sys.prefix} -c conda-forge pyarrow
Se você parar e iniciar sua instância de caderno, seu ambiente e bibliotecas personalizados do Conda ainda estarão disponíveis. Você não precisa instalá-los novamente.
Se você receber uma mensagem de erro dizendo que é preciso atualizar o Conda, execute os seguintes 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
Depois que a instalação do Conda for concluída, instale as bibliotecas.
Criar um caderno Neptune e configure suas políticas e conexões
Quando você cria um caderno no Amazon Neptune, o Neptune usa uma configuração de ciclo de vida padrão que aponta para um objeto do S3, como aws s3 cp s3://aws-neptune-notebook/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz. O perfil do AWS Identity and Access Management (AWS IAM) Neptune deve ter uma política de permissões que conceda as ações s3:GetObject e s3:ListBucket para os recursos arn:aws:s3:::aws-neptune-notebook e arn:aws:s3:::aws-neptune-notebook/.
O perfil do IAM Nepture também deve ter uma política de confiança que conceda ao SageMaker AI a ação AssumeRole. Por exemplo, você ativou a autenticação do banco de dados do IAM no cluster de banco de dados associado ao caderno. O perfil do IAM deve ter uma política de permissões que conceda a ação neptune-db: para o cluster de banco de dados associado.
Se você usa uma nuvem privada virtual (VPC) para conectar seu caderno Neptune à internet, deverá conectar um gateway NAT à VPC. Além disso, você deve configurar os grupos de segurança para permitir o acesso à internet ao Amazon S3 e ao Python Package Index (PyPI). Para obter mais informações sobre o PyPI, consulte o site Python Package Index.
Observação: para solucionar problemas com scripts de configuração do ciclo de vida, use o Amazon CloudWatch Logs. É possível encontrar esses logs nos locais a seguir:
- grupo de logs: /aws/sagemaker/NotebookInstances
- fluxo de logs: example_notebook_instance_name/LifecycleConfigOnStart
Informações relacionadas
O que é o Amazon SageMaker AI?
Configuração de depuração do ciclo de vida