Ir para o conteúdo

Como soluciono problemas de tempo limite da instância de caderno do Amazon SageMaker AI ao instalar bibliotecas adicionais?

4 minuto de leitura
0

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

  1. 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
  2. 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.

  3. Execute o comando a seguir para marcar o script como executável e executá-lo:

    chmod +x custom-script.sh
    ./custom-script.sh
  4. Depois que a instalação for concluída, interrompa a instância de caderno.

  5. Adicione o script on-start ao arquivo .sh. Para copiar script, consulte amazon-sagemaker-notebook-instance-lifecycle-config-samples no site do GitHub.

  6. 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.

  7. 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

AWS OFICIALAtualizada há 8 meses