Quero solucionar problemas com scripts de configuração do ciclo de vida (LCC) no Amazon SageMaker AI.
Resolução
O tempo limite do script da LCC
Quando o script da LCC leva mais tempo para ser executado do que a cota de 5 minutos, o script atinge o tempo limite.
Para diminuir o runtime do script, execute as seguintes ações:
- Reduza o número de etapas necessárias. Por exemplo, limite os ambientes conda nos quais você instala pacotes grandes.
- Execute tarefas em processos paralelos.
- Execute o comando nohup em seu script para ignorar os sinais de desligamento para que o script possa ser concluído em 5 minutos.
Para executar o comando nohup, inicialize o comando na linha de código específica e finalize a linha de código com um e comercial.
Exemplo de script:
===
#!/bin/bash
set -e
# OVERVIEW
# This script executes an existing Notebook file on the instance during start using nbconvert(https://github.com/jupyter/nbconvert)
# PARAMETERS
ENVIRONMENT=python3
NOTEBOOK_FILE=/home/ec2-user/SageMaker/test.ipynb
source /home/ec2-user/anaconda3/bin/activate "$ENVIRONMENT"
nohup jupyter nbconvert --to notebook --ExecutePreprocessor.timeout=-1 --ExecutePreprocessor.kernel_name=python3 --execute "$NOTEBOOK_FILE" &
source /home/ec2-user/anaconda3/bin/deactivate
====
Não é possível excluir uma LLC existente
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Ao tentar excluir um script de LCC que já está anexado a um domínio do SageMaker Studio, é possível receber a seguinte mensagem de erro:
"Loading of domain lifecycle failed. [400] ResourceNotFound: LifecycleConfig does not exist."
Para resolver esse problema, primeiro você deve desanexar o script da LCC e, em seguida, excluí-lo.
Ou é possível definir o parâmetro LifecycleConfigArns na configuração do seu domínio como uma lista vazia.
Para reconfigurar seu domínio, conclua as seguintes etapas:
-
Execute o seguinte comando describe-domain para visualizar a lista de scripts de LCC associados no parâmetro LifecycleConfigArns:
aws sagemaker describe-domain —domain-id d-xxxxxxxxx
-
Execute o seguinte comando update-domain para definir o parâmetro como uma lista vazia:
aws sagemaker update-domain --domain-id d-xxxxxxxxx \
--default-user-settings '{
"JupyterServerAppSettings": {
"DefaultResourceSpec": {
"InstanceType": "system"
},
"LifecycleConfigArns": []
}
}'
Quando você executa o comando update-domain novamente, o domínio não faz mais referência ao script da LCC. Em seguida, é possível anexar o novo script da LCC ao domínio.
O script LCC não pode instalar um pacote
Se a LCC não conseguir instalar pacotes em uma instância de domínio ou caderno do SageMaker Studio, talvez o script da LCC não tenha acesso ao domínio ou à instância. Para resolver esse problema, você deve conectar o domínio associado do SageMaker Studio ou a instância do caderno à Amazon Virtual Private Cloud (VPC). A VPC também deve permitir acesso à Internet.
É possível associar uma VPC à comunicação padrão pela Internet no modo PublicInternetOnly. Ou é possível configurar a comunicação com a Internet somente no modo VPC.
Se você usa apenas o modo VPC, configure grupos de segurança com regras de entrada e saída que permitam o seguinte tráfego:
- Tráfego NFS via TCP na porta 2049 entre o domínio e o volume do Amazon Elastic File System (Amazon EFS).
- Tráfego TCP dentro do grupo de segurança.
Observação: o tráfego TCP no grupo de segurança é necessário para conectar a aplicação do Jupyter Server e as aplicações do Kernel Gateway. Você deve permitir o acesso a pelo menos portas no intervalo 8192–65535.
Para permitir o acesso à Internet, você deve usar um gateway NAT com acesso à Internet.
A instância não consegue encontrar o conteúdo do script da LCC
Quando a instância da aplicação não consegue encontrar o conteúdo que está no script da LCC, é possível receber a seguinte mensagem de erro:
"stdbuf: failed to run command "/opt/ml/lifecycleconfig/lifecycle_script.sh": No such file or directory"
Esse erro pode ocorrer devido à incompatibilidade entre os símbolos formatados do Windows e os símbolos formatados do Unix. Os caracteres da janela usam terminações de linha CRLF (\r\n) e o Unix usa terminações de linha LF (\n).
As instâncias do caderno do Amazon SageMaker AI são executadas no sistema operacional (SO) Amazon Linux 2 (AL2). Um script bash da LCC que você baixa em um sistema operacional Windows e anexa diretamente à LLC não é válido para o sistema operacional Linux.
Para solucionar esse problema, realize as etapas a seguir:
- Abra o script bash no Notepad++.
- Escolha Exibir e, em seguida, escolha Mostrar símbolo.
- Escolha Mostrar todos os símbolos para visualizar as terminações de linha do Windows (\r\n).
- Altere CRLF para LF (\n) para tornar o script válido no Unix.
- Anexe o script à LCC.
Informações relacionadas
Configuração de depuração do ciclo de vida
Conectar cadernos do Studio em uma VPC a recursos externos