Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab

Recentemente, o Estúdio Amazon SageMaker lançou uma maneira fácil de executar notebooks como trabalhos em lote que podem ser executados em uma programação recorrente. Laboratório de estúdio do Amazon SageMaker também oferece suporte a esse recurso, permitindo que você execute notebooks desenvolvidos no SageMaker Studio Lab em sua conta da AWS. Isso permite dimensionar rapidamente seus experimentos de aprendizado de máquina (ML) com conjuntos de dados maiores e instâncias mais poderosas, sem precisar aprender nada novo ou alterar uma linha de código.

Nesta postagem, orientamos você sobre o pré-requisito único para conectar seu ambiente Studio Lab a uma conta da AWS. Depois disso, orientamos você pelas etapas para executar notebooks como um trabalho em lote do Studio Lab.

Visão geral da solução

O Studio Lab incorporou a mesma extensão do Studio, que é baseada na extensão de código aberto Jupyter para cadernos programados. Essa extensão tem parâmetros adicionais específicos da AWS, como o tipo de computação. No Studio Lab, um notebook agendado é primeiro copiado para um Serviço de armazenamento simples da Amazon (Amazon S3) em sua conta da AWS e execute no horário agendado com o tipo de computação selecionado. Quando o trabalho é concluído, a saída é gravada em um bucket do S3 e a computação da AWS é totalmente interrompida, evitando custos contínuos.

Pré-requisitos

Para usar os trabalhos de notebook do Studio Lab, você precisa de acesso administrativo à conta da AWS com a qual se conectará (ou assistência de alguém com esse acesso). No restante desta postagem, presumimos que você seja o administrador da AWS, se não for o caso, peça ao seu administrador ou proprietário da conta para revisar essas etapas com você.

Criar uma função de execução do SageMaker

Precisamos garantir que a conta da AWS tenha um Gerenciamento de acesso e identidade da AWS (IAM) Função de execução do SageMaker. Essa função é usada pelos recursos do SageMaker na conta e fornece acesso do SageMaker a outros recursos na conta da AWS. No nosso caso, nossos trabalhos de notebook são executados com essas permissões. Se o SageMaker tiver sido usado anteriormente nesta conta, talvez já exista uma função, mas ela pode não ter todas as permissões necessárias. Então vamos em frente e fazer um novo.

As etapas a seguir precisam ser executadas apenas uma vez, independentemente de quantos ambientes do SageMaker Studio Lab acessarão essa conta da AWS.

  1. No console IAM, escolha Setores no painel de navegação.
  2. Escolha Criar função.
  3. Escolha Tipo de entidade confiável, selecione Serviço AWS.
  4. Escolha Casos de uso para outros serviços da AWS, escolha SageMaker.
  5. Selecionar SageMaker – Execução.
  6. Escolha Próximo.
  7. Revise as permissões e escolha Próximo.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  8. Escolha Nome do papel, insira um nome (para esta postagem, usamos sagemaker-execution-role-notebook-jobs).
  9. Escolha Criar função.
  10. Anote o ARN da função.

O ARN da função estará no formato de arn:aws:iam::[account-number]:role/service-role/[role-name] e é necessário na configuração do Studio Lab.

Crie um usuário IAM

Para um ambiente Studio Lab acessar a AWS, precisamos criar um usuário IAM dentro da AWS e conceder a ele as permissões necessárias. Em seguida, precisamos criar um conjunto de chaves de acesso para esse usuário e fornecê-las ao ambiente do Studio Lab.

Esta etapa deve ser repetida para cada ambiente do SageMaker Studio Lab que acessará esta conta da AWS.

Observe que os administradores e proprietários de contas da AWS devem garantir que, na medida do possível, práticas de segurança bem arquitetadas sejam seguidas. Por exemplo, as permissões do usuário sempre devem ser reduzidas e as chaves de acesso devem ser alternadas regularmente para minimizar o impacto do comprometimento da credencial.

Neste blog, mostramos como usar o AmazonSageMakerFullAccess política gerenciada. Essa política fornece amplo acesso ao Amazon SageMaker que pode ir além do necessário. Detalhes sobre AmazonSageMakerFullAccess pode ser encontrado SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Embora o Studio Lab empregue segurança empresarial, deve-se observar que as credenciais de usuário do Studio Lab não fazem parte de sua conta da AWS e, portanto, por exemplo, não estão sujeitas à senha da AWS ou às políticas de MFA.

Para reduzir ao máximo as permissões, criamos um perfil de usuário especificamente para esse acesso.

  1. No console IAM, escolha Utilizadores no painel de navegação.
  2. Escolha Adicionar usuários.
  3. Escolha nome de usuário, digite um nome. É uma boa prática usar um nome que esteja vinculado a uma pessoa individual que usará esta conta; isso ajuda ao revisar os logs de auditoria.
  4. Escolha Selecione o tipo de acesso da AWS, selecione Chave de acesso – Acesso programático.
  5. Escolha Próximo: Permissões.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  6. Escolha Anexe políticas existentes diretamente.
  7. Pesquise e selecione AmazonSageMakerFullAccess.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  8. Pesquise e selecione AmazonEventBridgeFullAccess.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  9. Escolha Próximo: Tags.
  10. Escolha Próximo: Revisão.
  11. Confirme suas políticas e escolha Criar usuário.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.A página final do processo de criação do usuário deve mostrar as chaves de acesso do usuário. Deixe esta guia aberta, porque não podemos navegar de volta aqui e precisamos desses detalhes.
  12. Abra uma nova guia do navegador no Studio Lab.
  13. No Envie o menu, escolha New Launcher, Em seguida, escolha terminal.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  14. Na linha de comando, digite o seguinte código:
    aws configure

  15. Insira o seguinte código:
    1. Insira os valores da página do console do IAM para seu ID de chave de acesso e chave de acesso secreta.
    2. Escolha Default region name, entrar us-west-2.
    3. Deixar Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Parabéns, seu ambiente Studio Lab agora deve ser configurado para acessar a conta da AWS. Para testar a conexão, emita o seguinte comando:

aws sts get-caller-identity

Este comando deve retornar detalhes sobre o usuário do IAM que você configurou para usar.

Criar um trabalho de bloco de anotações

Trabalhos de notebook são criados usando notebooks Jupyter dentro do Studio Lab. Se seu notebook for executado no Studio Lab, ele poderá ser executado como um trabalho de notebook (com mais recursos e acesso aos serviços da AWS). No entanto, há algumas coisas a serem observadas.

Se você instalou pacotes para fazer seu notebook funcionar, adicione comandos para carregar esses pacotes em uma célula na parte superior do notebook. Ao usar um símbolo & no início de cada linha, o código será enviado para a linha de comando para ser executado. No exemplo a seguir, a primeira célula usa pip para instalar bibliotecas PyTorch:

%%capture
%pip install torch
%pip install torchvision

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Nosso notebook irá gerar um modelo PyTorch treinado. Com nosso código normal, salvamos o modelo no sistema de arquivos no Studio Labs.

Quando executamos isso como um trabalho de notebook, precisamos salvar o modelo em algum lugar onde possamos acessá-lo posteriormente. A maneira mais fácil de fazer isso é salvar o modelo no Amazon S3. Criamos um balde S3 para salvar nossos modelos e usamos outra célula de linha de comando para copiar o objeto para o balde.

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Usamos o Interface de linha de comando da AWS (AWS CLI) aqui para copiar o objeto. Poderíamos também usar o SDK da AWS para Python (Boto3) se quiséssemos ter um controle mais sofisticado ou automatizado do nome do arquivo. Por enquanto, garantiremos que alteramos o nome do arquivo sempre que executarmos o bloco de anotações para que os modelos não sejam substituídos.

Agora estamos prontos para criar o trabalho do notebook.

  1. Escolha (clique com o botão direito do mouse) o nome do bloco de anotações e escolha Criar trabalho de bloco de anotações.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
    Se esta opção de menu estiver ausente, talvez seja necessário atualizar o ambiente do Studio Lab. Para fazer isso, abra o Terminal no iniciador e execute o seguinte código:
    conda deactivate && conda env remove —name studiolab

  2. Em seguida, reinicie sua instância do JupyterLab escolhendo Laboratório de estúdio do Amazon SageMaker no menu superior e escolha Reinicie o JupyterLab.Como alternativa, vá para a página do projeto, desligue e reinicie o tempo de execução.
  3. No Criar emprego página, para Tipo de computação, escolha o tipo de computação adequado ao seu trabalho.

    Para obter mais informações sobre os diferentes tipos de capacidade de computação, incluindo o custo, consulte Preços do Amazon SageMaker (escolher Preço sob demanda e navegue para o Training aba. Você também pode precisar verificar a disponibilidade de cota do tipo de computação em sua conta da AWS. Para obter mais informações sobre cotas de serviço, consulte: Cotas de serviço da AWS.Para este exemplo, selecionamos uma instância ml.p3.2xlarge, que oferece 8 vCPU, 61 GB de memória e uma GPU Tesla V100.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

    Se não houver avisos nesta página, você deve estar pronto para começar. Se houver avisos, verifique se o ARN da função correta está especificado em Opções adicionais. Essa função deve corresponder ao ARN da função de execução do SageMaker que criamos anteriormente. O ARN está no formato arn:aws:iam::[account-number]:role/service-role/[role-name].

    Existem outras opções disponíveis dentro Opções adicionais; por exemplo, você pode selecionar uma determinada imagem e kernel que já podem ter a configuração necessária sem a necessidade de instalar bibliotecas adicionais.

  4. Se você deseja executar este bloco de anotações em um agendamento, selecione Executar em um cronograma e especifique com que frequência deseja que a tarefa seja executada.Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Queremos que este notebook seja executado uma vez, então selecionamos Corra agora.
  5. Escolha Crie.
    Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Lista de tarefas do notebook

A Trabalhos de Notebook A página lista todos os trabalhos atualmente em execução e aqueles que foram executados no passado. Você pode encontrar esta lista no Launcher (escolha, Envie o, New Launcher), então escolha Trabalhos de Notebook no Outros seção.

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Quando o trabalho do notebook estiver concluído, você verá a mudança de status para Completed (use o Recarregar opção se necessário). Você pode então escolher o ícone de download para acessar os arquivos de saída.

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Quando os arquivos forem baixados, você poderá revisar o bloco de anotações junto com a saída do código e o log de saída. No nosso caso, como adicionamos o código para cronometrar a execução da célula de treinamento, podemos ver quanto tempo o trabalho de treinamento levou - 16 minutos e 21 segundos, o que é muito mais rápido do que se o código tivesse sido executado dentro do Studio Lab (1 hora , 38 minutos, 55 segundos). Na verdade, o notebook inteiro funcionou em 1,231 segundos (pouco mais de 20 minutos) a um custo de menos de US$ 1.30 (USD).

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

W agora pode aumentar o número de épocas e ajustar os hiperparâmetros para melhorar o valor de perda do modelo e enviar outro trabalho de notebook.

Conclusão

Neste post, mostramos como usar trabalhos de notebook do Studio Lab para escalar o código que desenvolvemos no Studio Lab e executá-lo com mais recursos em uma conta da AWS.

Ao adicionar credenciais da AWS ao nosso ambiente do Studio Lab, não apenas podemos acessar trabalhos de notebook, mas também outros recursos de uma conta da AWS diretamente de nossos notebooks do Studio Lab. Dê uma olhada no AWS SDK para Python.

Esse recurso extra do Studio Lab eleva os limites dos tipos e tamanhos de projetos que você pode realizar. Conte-nos o que você construiu com esse novo recurso!


Sobre os autores

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Mike Câmaras é um Developer Advocate para IA e ML na AWS. Ele passou os últimos 7 anos ajudando construtores a aprender sobre nuvem, segurança e ML. Originalmente do Reino Unido, Mike é um bebedor de chá apaixonado e construtor de Lego.

Execute notebooks como trabalhos em lote no Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Michele Monclova é gerente de produto principal da AWS na equipe do SageMaker. Ela é uma nova-iorquina nativa e veterana do Vale do Silício. Ela é apaixonada por inovações que melhoram nossa qualidade de vida.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS