Personalização de uma instância de SageMaker notebook usando um script LCC - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Personalização de uma instância de SageMaker notebook usando um script LCC

Importante

Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte Forneça permissões para marcar recursos de SageMaker IA.

AWS políticas gerenciadas para Amazon SageMaker AIque dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Uma configuração de ciclo de vida (LCC) fornece scripts de shell que são executados apenas quando você cria ou inicia a instância de caderno. Ao criar uma instância de caderno, você pode criar uma nova LCC ou anexar uma LCC que você já tenha. Os scripts de configuração do ciclo de vida são úteis para os seguintes casos de uso:

  • Instalando pacotes ou cadernos de amostra em uma instância de caderno

  • Configurar rede e segurança para uma instância de caderno

  • Usar um script shell para personalizar uma instância de caderno

Você também pode usar um script de configuração do ciclo de vida para acessar os AWS serviços do seu notebook. Por exemplo, você pode criar um script que permite usar seu notebook para controlar outros AWS recursos, como uma instância do Amazon EMR.

Mantemos um repositório público de scripts de configuração do ciclo de vida do notebook que abordam casos de uso comuns para personalizar instâncias do notebook em -. https://github.com/aws-samples/ amazon-sagemaker-notebook-instance lifecycle-config-samples

nota

Cada script tem um limite de 16.384 caracteres.

O valor da variável de ambiente $PATH que está disponível para ambos os scripts é /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin. O diretório de trabalho, que é o valor da variável de ambiente $PWD é /.

Visualize CloudWatch os registros das configurações do ciclo de vida da instância do notebook no grupo /aws/sagemaker/NotebookInstances de registros no fluxo de registros. [notebook-instance-name]/[LifecycleConfigHook]

Scripts não podem ser executados por mais de 5 minutos. Se um script for executado por mais de 5 minutos, haverá falha e a instância de caderno não será criada nem iniciada. Para ajudar a diminuir o tempo de execução de scripts, tente o seguinte:

  • Reduza as etapas necessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.

  • Execute tarefas em processos paralelos.

  • Use o comando nohup no seu script.

Você pode ver uma lista das configurações do ciclo de vida da instância do notebook que você criou anteriormente escolhendo a configuração do ciclo de vida no console de IA. SageMaker Você pode anexar uma LCC de instância de caderno ao criar uma nova instância de caderno. Para ter mais informações sobre como criar uma instância de caderno, consulte Crie uma instância de SageMaker notebook da Amazon.

Práticas recomendadas para configuração do ciclo de vida

Veja a seguir as melhores práticas para usar configurações de ciclo de vida:

Importante

Não recomendamos armazenar informações confidenciais em seu script de configuração do ciclo de vida.

  • As configurações de ciclo de vida são executadas como o usuário root. Se o seu script fizer alguma alteração no diretório /home/ec2-user/SageMaker (por exemplo, instalar um pacote com pip), use o comando sudo -u ec2-user para executar como o usuário ec2-user. Esse é o mesmo usuário com o qual o Amazon SageMaker AI é executado.

  • SageMaker As instâncias de notebooks de IA usam conda ambientes para implementar diferentes kernels para notebooks Jupyter. Se quiser instalar pacotes disponíveis para um ou mais kernels de caderno, coloque os comandos para instalar os pacotes com comandos de ambiente conda que ativam o ambiente conda que contém o kernel no qual você deseja instalar os pacotes.

    Por exemplo, para instalar um pacote somente para o ambiente do python3, use o seguinte código:

    #!/bin/bash sudo -u ec2-user -i <<EOF # This will affect only the Jupyter kernel called "conda_python3". source activate python3 # Replace myPackage with the name of the package you want to install. pip install myPackage # You can also perform "conda install" here as well. source deactivate EOF

    Se você deseja instalar um pacote em todos os ambientes conda na instâncias de caderno, use o seguinte código:

    #!/bin/bash sudo -u ec2-user -i <<EOF # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") # Installing packages in the Jupyter system environment can affect stability of your SageMaker # Notebook Instance. You can remove this check if you'd like to install Jupyter extensions, etc. if [ $env = 'JupyterSystemEnv' ]; then continue fi # Replace myPackage with the name of the package you want to install. pip install --upgrade --quiet myPackage # You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF
  • Você deve armazenar todos os ambientes conda na pasta de ambientes padrão (/home/user/anaconda3/envs).

Importante

Ao criar ou alterar um script, recomendamos usar um editor de texto que forneça quebras de linha de estilo UNIX, como o editor de texto disponível no console quando um caderno é criado. Copiar texto de um sistema operacional que não seja Linux pode incluir quebras de linha incompatíveis e resultar em um erro inesperado.