Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Host code-server no Amazon SageMaker

As equipes de aprendizado de máquina (ML) precisam de flexibilidade para escolher seu ambiente de desenvolvimento integrado (IDE) ao trabalhar em um projeto. Ele permite que você tenha uma experiência de desenvolvedor produtiva e inove com velocidade. Você pode até usar vários IDEs em um projeto. Amazon Sage Maker permite que as equipes de ML escolham trabalhar em ambientes totalmente gerenciados e baseados em nuvem dentro Estúdio Amazon SageMaker, Instâncias de notebook do SageMaker, ou de sua máquina local usando modo local.

O SageMaker fornece uma experiência de um clique para Jupyter e RStudio para construir, treinar, depurar, implantar e monitorar modelos de ML. Neste post, também compartilharemos um solução para hospedagem servidor de código no Sage Maker.

Com code-server, os usuários podem executar Código VS em máquinas remotas e acessá-lo em um navegador da web. Para equipes de ML, hospedar o code-server no SageMaker oferece alterações mínimas em uma experiência de desenvolvimento local e permite codificar de qualquer lugar, em computação em nuvem escalável. Com o VS Code, você também pode usar ambientes Conda integrados com TensorFlow e PyTorch otimizados para AWS, repositórios Git gerenciados, modo local e outros recursos fornecidos pelo SageMaker para acelerar sua entrega. Para administradores de TI, ele permite padronizar e agilizar o provisionamento de IDEs gerenciados e seguros na nuvem para integrar e habilitar equipes de ML em seus projetos rapidamente.

Visão geral da solução

Neste post, abordamos a instalação para ambientes Studio (Opção A) e instâncias de notebook (Opção B). Para cada opção, percorremos um processo de instalação manual que as equipes de ML podem executar em seu ambiente e uma instalação automatizada que os administradores de TI podem configurar para eles por meio do Interface de linha de comando da AWS (AWSCL).

O diagrama a seguir ilustra a visão geral da arquitetura para hospedar o code-server no SageMaker.

Nossa solução agiliza a instalação e configuração do code-server em seu ambiente. Ele funciona para JupyterLab 3 (recomendado) e JupyterLab 1 que são executados em instâncias de notebook Studio e SageMaker. Ele é feito de scripts de shell que fazem o seguinte com base na opção.

Para o Studio (Opção A), o script de shell faz o seguinte:

Para instâncias de notebook do SageMaker (Opção B), o script de shell faz o seguinte:

  • Instala o servidor de código.
  • Adiciona um atalho de servidor de código no menu de arquivos do notebook Jupyter e no inicializador JupyterLab para acesso rápido ao IDE.
  • Cria um ambiente Conda dedicado para gerenciar dependências.
  • Instala o Python e Estivador extensões no IDE.

Nas seções a seguir, percorremos o processo de instalação da solução para a Opção A e a Opção B. Verifique se você tem acesso ao Studio ou a uma instância de notebook.

Opção A: Host code-server no Studio

Para hospedar o code-server no Studio, conclua as seguintes etapas:

  1. Escolha Terminal do sistema no iniciador do Studio.
    ml-10244-studio-terminal-clique
  2. Para instalar a solução code-server, execute os seguintes comandos no terminal do sistema:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/studio
     
    chmod +x install-codeserver.sh
    ./install-codeserver.sh
    
    # Note: when installing on JL1, please prepend the nohup command to the install command above and run as follows: 
    # nohup ./install-codeserver.sh

    Os comandos devem levar alguns segundos para serem concluídos.

  3. Recarregue a página do navegador, onde você pode ver um Servidor de código botão no seu iniciador do Studio.
    botão ml-10244-code-server
  4. Escolha Servidor de código para abrir uma nova guia do navegador, permitindo que você acesse o code-server do seu navegador.
    A extensão Python já está instalada e você pode começar a trabalhar em seu projeto de ML.ml-10244-vscode

Você pode abrir sua pasta de projeto no VS Code e selecionar o ambiente Conda pré-criado para executar seus scripts Python.

ml-10244-vscode-conda

Automatize a instalação do code-server para usuários em um domínio do Studio

Como administrador de TI, você pode automatizar a instalação para usuários do Studio usando um configuração do ciclo de vida. Isso pode ser feito para todos os perfis de usuários em um domínio do Studio ou para perfis específicos. Ver Personalize o Amazon SageMaker Studio usando configurações de ciclo de vida para mais detalhes.

Para este post, criamos uma configuração de ciclo de vida a partir do servidor de código de instalação script e anexe-o a um domínio existente do Studio. A instalação é feita para todos os perfis de usuário no domínio.

Em um terminal configurado com a AWS CLI e as permissões apropriadas, execute os seguintes comandos:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/studio

LCC_CONTENT=`openssl base64 -A -in install-codeserver.sh`

aws sagemaker create-studio-lifecycle-config 
    --studio-lifecycle-config-name install-codeserver-on-jupyterserver 
    --studio-lifecycle-config-content $LCC_CONTENT 
    --studio-lifecycle-config-app-type JupyterServer 
    --query 'StudioLifecycleConfigArn'

aws sagemaker update-domain 
    --region  
    --domain-id  
    --default-user-settings 
    '{
    "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
    "LifecycleConfigArn": "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver",
    "InstanceType": "system"
    },
    "LifecycleConfigArns": [
    "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver"
    ]
    }}'

# Make sure to replace ,  and  in the previous commands with
# the Studio domain ID, the AWS region and AWS Account ID you are using respectively.

Após a reinicialização do Jupyter Server, o Servidor de código botão aparece no seu iniciador do Studio.

Opção B: hospedar code-server em uma instância de notebook SageMaker

Para hospedar o code-server em uma instância do notebook SageMaker, conclua as etapas a seguir:

  1. Inicie um terminal via Jupyter ou JupyterLab para sua instância de notebook.
    Se você usa o Jupyter, escolha terminal na Novo menu.
    Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.
  2.  Para instalar a solução code-server, execute os seguintes comandos em seu terminal:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/notebook-instances
     
    chmod +x install-codeserver.sh
    chmod +x setup-codeserver.sh
    sudo ./install-codeserver.sh
    sudo ./setup-codeserver.sh

    As instalações de servidor de código e extensões são persistentes na instância do notebook. No entanto, se você interromper ou reiniciar a instância, será necessário executar o seguinte comando para reconfigurar o code-server:

    sudo ./setup-codeserver.sh

    Os comandos devem levar alguns segundos para serem executados. Você pode fechar a guia do terminal quando vir o seguinte.

    saída ml-10244-terminal

  3. Agora recarregue a página do Jupyter e verifique o Novo menu novamente.
    A Servidor de código opção deve estar agora disponível.
    Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Você também pode iniciar o code-server do JupyterLab usando um botão de inicialização dedicado, conforme mostrado na captura de tela a seguir.

botão ml-10244-jupyterlab-code-server

Escolher Servidor de código abrirá uma nova guia do navegador, permitindo que você acesse o code-server do seu navegador. As extensões Python e Docker já estão instaladas e você pode começar a trabalhar em seu projeto de ML.

ml-10244-notebook-vscode

Automatize a instalação do code-server em uma instância de notebook

Como administrador de TI, você pode automatizar a instalação do servidor de código com um configuração do ciclo de vida em execução na criação da instância e automatize a configuração com uma em execução na inicialização da instância.

Aqui, criamos uma instância de notebook de exemplo e uma configuração de ciclo de vida usando o CLI da AWS. O on-create a configuração é executada servidor de código de instalação e on-start é executado servidor de código de configuração.

Em um terminal configurado com a AWS CLI e as permissões apropriadas, execute os seguintes comandos:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/notebook-instances

aws sagemaker create-notebook-instance-lifecycle-config 
    --notebook-instance-lifecycle-config-name install-codeserver 
    --on-start Content=$((cat setup-codeserver.sh || echo "")| base64) 
    --on-create Content=$((cat install-codeserver.sh || echo "")| base64)

aws sagemaker create-notebook-instance 
    --notebook-instance-name  
    --instance-type  
    --role-arn  
    --lifecycle-config-name install-codeserver

# Make sure to replace , ,
# and  in the previous commands with the appropriate values.

A instalação do code-server agora é automatizada para a instância do notebook.

Conclusão

Com o servidor de código hospedados no SageMaker, as equipes de ML podem executar o VS Code em computação em nuvem escalável, codificar de qualquer lugar e acelerar a entrega de projetos de ML. Para administradores de TI, permite padronizar e agilizar o provisionamento de IDEs gerenciados e seguros na nuvem, para integrar e habilitar equipes de ML em seus projetos rapidamente.

Neste post, compartilhamos uma solução que você pode usar para instalar rapidamente o code-server nas instâncias do Studio e do notebook. Compartilhamos um processo de instalação manual que as equipes de ML podem executar por conta própria e uma instalação automatizada que os administradores de TI podem configurar para eles.

Para ir mais longe em seus aprendizados, visite Incrível SageMaker no GitHub para encontrar todos os recursos relevantes e atualizados necessários para trabalhar com o SageMaker.


Sobre os autores

Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Giuseppe Ângelo Porcelli é um arquiteto de soluções especialista em aprendizado de máquina principal da Amazon Web Services. Com vários anos de experiência em engenharia de software e experiência em ML, ele trabalha com clientes de qualquer tamanho para entender profundamente suas necessidades comerciais e técnicas e projetar soluções de IA e Machine Learning que fazem o melhor uso da Nuvem AWS e da pilha Amazon Machine Learning. Ele trabalhou em projetos em diferentes domínios, incluindo MLOps, Computer Vision, NLP e envolvendo um amplo conjunto de serviços da AWS. Em seu tempo livre, Giuseppe gosta de jogar futebol.

Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Sofian Hamiti é um arquiteto de soluções especialista em IA/ML na AWS. Ele ajuda clientes de todos os setores a acelerar sua jornada de IA/ML, ajudando-os a criar e operacionalizar soluções de aprendizado de máquina de ponta a ponta.

Servidor de código host no Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Eric Pena é gerente de produto técnico sênior na equipe de plataformas de inteligência artificial da AWS, trabalhando no aprendizado de máquina interativo do Amazon SageMaker. Atualmente, ele se concentra em integrações de IDE no SageMaker Studio. Ele tem um MBA do MIT Sloan e fora do trabalho gosta de jogar basquete e futebol.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS