À medida que mais e mais clientes procuram colocar cargas de trabalho de aprendizado de máquina (ML) em produção, há um grande esforço nas organizações para reduzir o ciclo de vida de desenvolvimento do código ML. Muitas organizações preferem escrever seu código de ML em um estilo pronto para produção na forma de métodos e classes Python em vez de um estilo exploratório (escrever código sem usar métodos ou classes) porque isso os ajuda a enviar código pronto para produção mais rapidamente.
Com o Amazon Sage Maker, você pode usar o @decorador remoto para executar um trabalho de treinamento do SageMaker simplesmente anotando seu código Python com um decorador @remote. O SDK Python do SageMaker traduzirá automaticamente seu ambiente de espaço de trabalho existente e qualquer código de processamento de dados e conjuntos de dados associados em um trabalho de treinamento SageMaker executado na plataforma de treinamento SageMaker.
Executar uma função Python localmente geralmente requer várias dependências, que podem não vir com o ambiente de tempo de execução local do Python. Você pode instalá-los por meio de ferramentas de gerenciamento de pacotes e dependências, como pip or município.
No entanto, as organizações que operam em setores regulamentados, como bancos, seguros e saúde, operam em ambientes com controles rígidos de privacidade de dados e rede. Esses controles geralmente exigem que não haja acesso à Internet disponível em nenhum de seus ambientes. O motivo dessa restrição é ter controle total sobre o tráfego de entrada e saída para que possam reduzir as chances de agentes inescrupulosos enviarem ou receberem informações não verificadas por meio de sua rede. Muitas vezes, também é obrigatório ter esse isolamento de rede como parte das regras de conformidade industrial e de auditoria. Quando se trata de ML, isso restringe os cientistas de dados de baixar qualquer pacote de repositórios públicos como PyPI, Jibóiaou Conda Forge.
Para fornecer aos cientistas de dados acesso às ferramentas de sua escolha, respeitando também as restrições do ambiente, as organizações geralmente configuram seu próprio repositório de pacotes privado hospedado em seu próprio ambiente. Você pode configurar repositórios de pacotes privados na AWS de várias maneiras:
Neste post, focamos na primeira opção: usar CodeArtifact.
Visão geral da solução
O diagrama de arquitetura a seguir mostra a arquitetura da solução.
As etapas de alto nível para implementar a solução são as seguintes
- Configure uma nuvem privada virtual (VPC) sem acesso à Internet usando um Formação da Nuvem AWS template.
- Use um segundo modelo do CloudFormation para configurar o CodeArtifact como um repositório PyPI privado e fornecer conectividade ao VPC e configurar um Estúdio Amazon SageMaker ambiente para usar o repositório PyPI privado.
- Treine um modelo de classificação com base no MNIST conjunto de dados usando um decorador @remote do SageMaker Python SDK de código aberto. Todas as dependências serão baixadas do repositório PyPI privado.
Observe que o uso do SageMaker Studio nesta postagem é opcional. Você pode optar por trabalhar em qualquer ambiente de desenvolvimento integrado (IDE) de sua escolha. Você só precisa configurar o seu Interface de linha de comando da AWS (AWS CLI) corretamente. Para mais informações, consulte Configurar a AWS CLI.
Pré-requisitos
Você precisa de uma conta da AWS com um Gerenciamento de acesso e identidade da AWS (IAM) papel com permissões para gerenciar recursos criados como parte da solução. Para detalhes, consulte Criando uma conta da AWS.
Configurar uma VPC sem conexão com a Internet
Crie uma nova pilha do CloudFormation usando o vpc.yaml modelo. Este modelo cria os seguintes recursos:
- Uma VPC com duas sub-redes privadas em duas zonas de disponibilidade sem conectividade com a Internet
- Um VPC endpoint de gateway para acessar o Amazon S3
- VPC endpoints de interface para SageMaker, CodeArtifact e alguns outros serviços para permitir que os recursos no VPC se conectem aos serviços da AWS por meio de AWS PrivateLink
Forneça um nome de pilha, como No-Internet
e conclua o processo de criação da pilha.
Aguarde a conclusão do processo de criação da pilha.
Configure um repositório privado e o SageMaker Studio usando o VPC
A próxima etapa é implantar outra pilha do CloudFormation usando o sagemaker_studio_codeartifact.yaml modelo. Este modelo cria os seguintes recursos:
Forneça um nome de pilha e mantenha os valores padrão ou ajuste os parâmetros para o Nome de domínio CodeArtifact, nome do repositório privado, nome do perfil do usuário para SageMaker Studio e nome para o repositório PyPI público upstream. Você também precisamos fornecer o Nome da pilha de VPC criado na etapa anterior.
Quando a criação da pilha estiver concluída, o domínio do SageMaker deverá estar visível no console do SageMaker.
Para verificar se não há conexão com a Internet disponível no SageMaker Studio, iniciar o SageMaker Studio. Escolher File
, New
e Terminal
para iniciar um terminal e tentar enrolar qualquer recurso da Internet. Ele deve falhar ao se conectar, conforme mostrado na captura de tela a seguir.
Treine um classificador de imagem usando um decorador @remote com o repositório PyPI privado
Nesta seção, usamos o decorador @remote para executar um PyTorch trabalho de treinamento que produz um modelo de classificação de imagem MNIST. Para conseguir isso, configuramos um arquivo de configuração, desenvolvemos o script de treinamento e executamos o código de treinamento.
Definir um arquivo de configuração
Montamos um config.yaml
arquivo e forneça as configurações necessárias para fazer o seguinte:
- Executar um Trabalho de treinamento SageMaker no VPC sem internet criado anteriormente
- Baixe os pacotes necessários conectando-se ao repositório PyPI privado criado anteriormente
O arquivo se parece com o seguinte código:
A Dependencies
campo contém o caminho para requirements.txt
, que contém todas as dependências necessárias. Observe que todas as dependências serão baixadas do repositório privado. O requirements.txt
arquivo contém o seguinte código:
A PreExecutionCommands
A seção contém o comando para se conectar ao repositório PyPI privado. Para obter o URL do VPC endpoint do CodeArtifact, use o seguinte código:
Geralmente, obtemos dois VPC endpoints para CodeArtifact e podemos usar qualquer um deles nos comandos de conexão. Para mais detalhes, consulte Usar CodeArtifact de uma VPC.
Além disso, configurações como execution role
, output location
e VPC configurations
são fornecidos no arquivo de configuração. Essas configurações são necessárias para executar o trabalho de treinamento do SageMaker. Para saber mais sobre todas as configurações suportadas, consulte Arquivo de configuração.
Não é obrigatório usar o config.yaml
arquivo para trabalhar com o decorador @remote. Esta é apenas uma maneira mais limpa de fornecer todas as configurações ao decorador @remote. Todas as configurações também podem ser fornecidas diretamente nos argumentos do decorador, mas isso reduz a legibilidade e a manutenção das alterações a longo prazo. Além disso, o arquivo de configuração pode ser criado por um administrador e compartilhado com todos os usuários em um ambiente.
Desenvolva o roteiro de treinamento
Em seguida, preparamos o código de treinamento em arquivos Python simples. Dividimos o código em três arquivos:
- carregar_dados.py – Contém o código para baixar o conjunto de dados MNIST
- modelo.py – Contém o código para a arquitetura de rede neural para o modelo
- trem.py – Contém o código para treinar o modelo usando load_data.py e model.py
In train.py
, precisamos decorar a função de treinamento principal da seguinte forma:
Agora estamos prontos para executar o código de treinamento.
Execute o código de treinamento com um decorador @remote
Podemos executar o código de um terminal ou de qualquer prompt executável. Nesta postagem, usamos uma célula de bloco de anotações do SageMaker Studio para demonstrar isso:
A execução do comando anterior aciona o trabalho de treinamento. Nos logs, podemos ver que está baixando os pacotes do repositório PyPI privado.
Isso conclui a implementação de um decorador @remote trabalhando com um repositório privado em um ambiente sem acesso à internet.
limpar
Para limpar os recursos, siga as instruções em LIMPEZA.md.
Conclusão
Nesta postagem, aprendemos como usar efetivamente os recursos do decorador @remote enquanto ainda trabalhamos em ambientes restritivos sem acesso à Internet. Também aprendemos como podemos integrar os recursos de repositório privado do CodeArtifact com a ajuda do suporte de arquivo de configuração no SageMaker. Esta solução torna o desenvolvimento iterativo muito mais simples e rápido. Outra vantagem adicional é que você ainda pode continuar a escrever o código de treinamento de maneira mais natural e orientada a objetos e ainda usar os recursos do SageMaker para executar trabalhos de treinamento em um cluster remoto com alterações mínimas em seu código. Todo o código mostrado como parte deste post está disponível no Repositório GitHub.
Como próximo passo, encorajamos você a verificar o Funcionalidade do decorador @remote e API do SDK do Python e use-o em sua escolha de ambiente e IDE. Exemplos adicionais estão disponíveis no exemplos de amazon-sagemaker repositório para você começar rapidamente. Você também pode conferir a postagem Execute seu código de machine learning local como trabalhos de treinamento do Amazon SageMaker com alterações mínimas de código para mais detalhes.
Sobre o autor
Pandey Vikesh é arquiteto de soluções especialista em aprendizado de máquina na AWS, ajudando clientes de setores financeiros a projetar e criar soluções em IA e ML generativas. Fora do trabalho, Vikesh gosta de experimentar diferentes cozinhas e praticar esportes ao ar livre.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Automotivo / EVs, Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- BlockOffsets. Modernizando a Propriedade de Compensação Ambiental. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :é
- :não
- $UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- Sobre
- Acesso
- acessando
- Conta
- Alcançar
- em
- atores
- adicionado
- Adicional
- admin
- Vantagem
- AI
- Todos os Produtos
- permitir
- tb
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- e
- Outro
- qualquer
- api
- arquitetura
- SOMOS
- argumentos
- AS
- associado
- At
- automaticamente
- disponibilidade
- disponível
- AWS
- Bancário
- baseado
- BE
- Porque
- construir
- mas a
- by
- CAN
- capacidades
- chances
- Alterações
- verificar
- escolha
- Escolha
- aulas
- classificação
- Na nuvem
- Agrupar
- código
- COM
- como
- vem
- completar
- compliance
- Configuração
- Contato
- Conexão de
- da conexão
- Conectividade
- cônsul
- contém
- continuar
- ao controle
- controles
- poderia
- criado
- cria
- criação
- Credenciais
- Clientes
- dados,
- privacidade de dados
- informática
- conjuntos de dados
- Padrão
- demonstrar
- Dependência
- implantar
- Design
- detalhes
- desenvolver
- Desenvolvimento
- diferente
- diretamente
- dividido
- do
- domínio
- download
- efetivamente
- encorajar
- Ponto final
- Meio Ambiente
- ambientes
- épocas
- exemplos
- execução
- existente
- FALHA
- falso
- mais rápido
- poucos
- campo
- Envie o
- Arquivos
- financeiro
- indústrias financeiras
- Primeiro nome
- Flutuador
- Foco
- seguir
- seguinte
- segue
- Escolha
- formulário
- da
- cheio
- função
- porta de entrada
- generativo
- IA generativa
- ter
- Grupo
- Ter
- ter
- saúde
- ajudar
- ajuda
- ajuda
- de alto nível
- hospedado
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- http
- HTTPS
- ID
- Identidade
- imagem
- Classificação de imagem
- executar
- implementação
- in
- industrial
- indústrias
- INFORMAÇÕES
- instalar
- instruções
- com seguro
- integrar
- integrado
- Internet
- Acesso à internet
- conexão de internet
- para dentro
- isolamento
- IT
- Trabalho
- Empregos
- jpg
- apenas por
- Guarda
- Saber
- grande
- lançamento
- aprendido
- aprendizagem
- wifecycwe
- como
- Line
- local
- localmente
- entrar
- longo
- procurando
- OLHARES
- máquina
- aprendizado de máquina
- a Principal
- FAZ
- gerencia
- de grupos
- Ferramentas de gestão
- Mandato
- obrigatório
- muitos
- Posso..
- métodos
- mínimo
- ML
- modelo
- Módulos
- mais
- muito
- múltiplo
- nome
- nativo
- natural
- você merece...
- necessário
- rede
- networking
- rede neural
- Novo
- Próximo
- não
- caderno
- of
- frequentemente
- on
- open source
- operar
- operando
- contrário
- Opção
- or
- ordem
- organizações
- Outros
- Fora
- lado de fora
- Acima de
- próprio
- pacote
- pacotes
- parâmetros
- parte
- caminho
- permissões
- Lugar
- plataforma
- platão
- Inteligência de Dados Platão
- PlatãoData
- jogar
- Publique
- preferir
- Preparar
- anterior
- política de privacidade
- privado
- processo
- em processamento
- produz
- Produção
- Perfil
- fornecer
- fornecido
- público
- Empurrar
- colocar
- Python
- pytorch
- rapidamente
- pronto
- razão
- receber
- reduzir
- reduz
- regulamentadas
- indústrias reguladas
- remoto
- repositório
- requeridos
- exige
- recurso
- Recursos
- respeitando
- restrição
- restrições
- Restritivo
- Tipo
- regras
- Execute
- corrida
- é executado
- sábio
- cientistas
- Sdk
- Segundo
- Seção
- segurança
- Vejo
- semente
- envio
- Serviços
- conjunto
- vários
- compartilhado
- NAVIO
- rede de apoio social
- mostrando
- Shows
- simples
- mais simples
- simplesmente
- So
- solução
- Soluções
- especialista
- Esportes
- pilha
- começado
- Passo
- Passos
- Ainda
- loja
- Estrito
- estudo
- estilo
- sub-rede
- sub-redes
- tal
- fornecidas
- supply
- ajuda
- Suportado
- modelo
- terminal
- que
- A
- deles
- Eles
- Lá.
- Este
- deles
- isto
- três
- Através da
- para
- ferramentas
- Visão da tocha
- tráfego
- Training
- traduzir
- verdadeiro
- tentar
- dois
- sem escrúpulos
- URL
- usar
- usava
- usuários
- utilização
- Valores
- verificar
- via
- Virtual
- visível
- Caminho..
- maneiras
- we
- web
- serviços web
- quando
- qual
- enquanto
- Wikipedia
- precisarão
- de
- sem
- Atividades:
- trabalhar
- escrever
- escrita
- yaml
- Vocês
- investimentos
- zefirnet
- zonas