A SDK do Amazon SageMaker Python é uma biblioteca de código aberto para treinamento e implantação de modelos de aprendizado de máquina (ML) em Amazon Sage Maker. Clientes corporativos em setores rigidamente controlados, como saúde e finanças, estabelecem proteções de segurança para garantir que seus dados sejam criptografados e que o tráfego não atravesse a Internet. Para garantir que o treinamento do SageMaker e a implantação de modelos de ML sigam essas barreiras, é uma prática comum definir restrições na conta ou Organizações da AWS nível por meio de políticas de controle de serviço e Gerenciamento de acesso e identidade da AWS (IAM) políticas para impor o uso de funções específicas do IAM, Nuvem virtual privada da Amazon (Amazon VPC) configurações e Serviço de gerenciamento de chaves AWS (AWS KMS). Nesses casos, os cientistas de dados precisam fornecer esses parâmetros para o código de implantação e treinamento do modelo de ML manualmente, anotando sub-redes, grupos de segurança e chaves KMS. Isso coloca o ônus sobre os cientistas de dados para lembrar de especificar essas configurações, para executar seus trabalhos com êxito e evitar erros de acesso negado.
A partir do SageMaker Python SDK versão 2.148.0, agora você pode configurar valores padrão para parâmetros como funções IAM, VPCs e chaves KMS. Administradores e usuários finais podem inicializar as primitivas de infraestrutura da AWS com padrões especificados em um arquivo de configuração no formato YAML. Depois de configurado, o Python SDK herda automaticamente esses valores e os propaga para as chamadas subjacentes da API do SageMaker, como CreateProcessingJob()
, CreateTrainingJob()
e CreateEndpointConfig()
, sem necessidade de ações adicionais. O SDK também oferece suporte a vários arquivos de configuração, permitindo que os administradores definam um arquivo de configuração para todos os usuários, e os usuários podem substituí-lo por meio de uma configuração em nível de usuário que pode ser armazenada em Serviço de armazenamento simples da Amazon (Amazon S3), Sistema de arquivos elástico da Amazon (Amazon EFS) para Estúdio Amazon SageMaker, ou o sistema de arquivos local do usuário.
Nesta postagem, mostramos como criar e armazenar o arquivo de configuração padrão no Studio e usar o recurso de padrões do SDK para criar seus recursos do SageMaker.
Visão geral da solução
Demonstramos esse novo recurso com uma solução de ponta a ponta Formação da Nuvem AWS modelo que cria a infraestrutura necessária e cria um domínio do Studio na VPC implantada. Além disso, criamos chaves KMS para criptografar os volumes usados nos trabalhos de treinamento e processamento. As etapas são as seguintes:
- Inicie a pilha do CloudFormation em sua conta. Como alternativa, se você quiser explorar esse recurso em um domínio ou notebook existente do SageMaker, pule esta etapa.
- Preencher o
config.yaml
arquivo e salve o arquivo no local padrão. - Execute um notebook de amostra com um caso de uso de ML de ponta a ponta, incluindo processamento de dados, treinamento de modelo e inferência.
- Substitua os valores de configuração padrão.
Pré-requisitos
Antes de começar, verifique se você tem uma conta da AWS e um usuário ou função do IAM com privilégios de administrador. Se você for um cientista de dados que está transmitindo parâmetros de infraestrutura para recursos em seu bloco de anotações, pode pular a próxima etapa de configuração de seu ambiente e começar a criar o arquivo de configuração.
Para usar esse recurso, certifique-se de atualizar sua versão do SageMaker SDK executando pip install --upgrade sagemaker
.
Configure o ambiente
Para implantar uma infraestrutura completa, incluindo rede e um domínio do Studio, conclua as seguintes etapas:
- Clone o Repositório GitHub.
- Faça login em sua conta da AWS e abra o console do AWS CloudFormation.
- Para implantar os recursos de rede, escolha Criar pilha.
- Carregue o modelo em
setup/vpc_mode/01_networking.yaml
. - Forneça um nome para a pilha (por exemplo,
networking-stack
) e conclua as etapas restantes para criar a pilha. - Para implantar o domínio do Studio, escolha Criar pilha novamente.
- Carregue o modelo em
setup/vpc_mode/02_sagemaker_studio.yaml
. - Forneça um nome para a pilha (por exemplo,
sagemaker-stack
) e forneça o nome da pilha de rede quando solicitado peloCoreNetworkingStackName
parâmetro. - Prossiga com as etapas restantes, selecione as confirmações para recursos IAM e crie a pilha.
Quando o status de ambas as pilhas for atualizado para CREATE_COMPLETE, Prossiga para o próximo passo.
Crie o arquivo de configuração
Para usar a configuração padrão do SageMaker Python SDK, crie um arquivo config.yaml no formato esperado pelo SDK. Para saber o formato do arquivo config.yaml, consulte Estrutura do arquivo de configuração. Dependendo do seu ambiente de trabalho, como notebooks Studio, instâncias de notebook SageMaker ou seu IDE local, você pode salvar o arquivo de configuração no local padrão ou substituir os padrões passando um local de arquivo de configuração. Para os locais padrão para outros ambientes, consulte Locais do arquivo de configuração. As etapas a seguir mostram a configuração de um ambiente de notebook Studio.
Para criar facilmente o config.yaml
, execute as seguintes células no terminal do sistema Studio, substituindo os espaços reservados pelos nomes de pilha do CloudFormation da etapa anterior:
Esse script preenche automaticamente o arquivo YAML, substituindo os espaços reservados pelos padrões de infraestrutura e salva o arquivo na pasta inicial. Em seguida, ele copia o arquivo para o local padrão dos blocos de anotações do Studio. O arquivo de configuração resultante deve ser semelhante ao seguinte formato:
Se você tiver um domínio existente e uma configuração de rede configurada, crie o config.yaml
arquivo no formato necessário e salve-o no local padrão para notebooks Studio.
Observe que esses padrões simplesmente preenchem automaticamente os valores de configuração para as chamadas apropriadas do SDK do SageMaker e não impõem ao usuário qualquer VPC, sub-rede ou função específica. Como administrador, se você deseja que seus usuários usem uma configuração ou função específica, use Chaves de condição IAM para impor os valores padrão.
Além disso, cada chamada de API pode ter suas próprias configurações. Por exemplo, no exemplo de arquivo de configuração anterior, você pode especificar vpc-a
e subnet-a
para trabalhos de treinamento e especifique vpc-b
e subnet-c
, subnet-d
para trabalhos de processamento.
Executar um notebook de amostra
Agora que você definiu o arquivo de configuração, pode começar a executar a construção de modelo e os notebooks de treinamento como de costume, sem a necessidade de definir explicitamente os parâmetros de rede e criptografia para a maioria das funções do SDK. Ver APIs e parâmetros compatíveis para obter uma lista completa de chamadas e parâmetros de API compatíveis.
No Studio, escolha o ícone File Explorer no painel de navegação e abra 03_feature_engineering/03_feature_engineering.ipynb
, como mostrado na captura de tela a seguir.
Execute as células do notebook uma a uma e observe que você não está especificando nenhuma configuração adicional. Ao criar o objeto do processador, você verá as saídas da célula como no exemplo a seguir.
Como você pode ver na saída, a configuração padrão é aplicada automaticamente ao trabalho de processamento, sem a necessidade de nenhuma entrada adicional do usuário.
Ao executar a próxima célula para executar o processador, você também pode verificar se os padrões estão definidos visualizando a tarefa no console do SageMaker. Escolher Processando trabalhos para Tratamento no painel de navegação, conforme mostrado na captura de tela a seguir.
Escolha o trabalho de processamento com o prefixo end-to-end-ml-sm-proc
, e você poderá visualizar a rede e a criptografia já configuradas.
Você pode continuar executando os notebooks restantes para treinar e implantar o modelo e notará que os padrões de infraestrutura são aplicados automaticamente para modelos e trabalhos de treinamento.
Substituir o arquivo de configuração padrão
Pode haver casos em que um usuário precise substituir a configuração padrão, por exemplo, para experimentar o acesso público à Internet ou atualizar a configuração de rede se a sub-rede ficar sem endereços IP. Nesses casos, o Python SDK também permite fornecer um local personalizado para o arquivo de configuração, seja no armazenamento local ou você pode apontar para um local no Amazon S3. Nesta seção, exploramos um exemplo.
Abra o user-configs.yaml
arquivo em seu diretório pessoal e atualize o EnableNetworkIsolation
valor para True
, sob a política TrainingJob
seção.
Agora, abra o mesmo notebook e adicione a seguinte célula ao início do notebook:
Com esta célula, você aponta o local do arquivo de configuração para o SDK. Agora, ao criar o objeto do processador, você notará que a configuração padrão foi substituída para habilitar o isolamento de rede e o trabalho de processamento falhará no modo de isolamento de rede.
Você pode usar a mesma variável de ambiente de substituição para definir o local do arquivo de configuração se estiver usando seu ambiente local, como VSCode.
Depurar e recuperar padrões
Para solução rápida de problemas, se você encontrar algum erro ao executar chamadas de API de seu notebook, a saída da célula exibe as configurações padrão aplicadas, conforme mostrado na seção anterior. Para visualizar a chamada exata do Boto3 criada para visualizar os valores de atributo passados do arquivo de configuração padrão, você pode depurar ativando o registro do Boto3. Para ativar o log, execute a seguinte célula na parte superior do notebook:
Quaisquer chamadas subseqüentes do Boto3 serão registradas com a solicitação completa, visível na seção do corpo no registro.
Você também pode visualizar a coleção de configurações padrão usando o session.sagemaker_config
valor conforme mostrado no exemplo a seguir.
Por fim, se você estiver usando o Boto3 para criar seus recursos do SageMaker, poderá recuperar os valores de configuração padrão usando o sagemaker_config
variável. Por exemplo, para executar o trabalho de processamento em 03_feature_engineering.ipynb
usando o Boto3, você pode inserir o conteúdo da seguinte célula no mesmo notebook e executar a célula:
Automatize a criação do arquivo de configuração
Para administradores, ter que criar o arquivo de configuração e salvá-lo em cada instância de bloco de anotações do SageMaker ou perfil de usuário do Studio pode ser uma tarefa assustadora. Embora você possa recomendar que os usuários usem um arquivo comum armazenado em um local padrão do S3, isso coloca a sobrecarga adicional de especificar a substituição nos cientistas de dados.
Para automatizar isso, os administradores podem usar o SageMaker Lifecycle Configurations (LCC). Para perfis de usuário do Studio ou instâncias de notebook, você pode anexar o seguinte exemplo de script LCC como um LCC padrão para o aplicativo Jupyter Server padrão do usuário:
See Usar configurações de ciclo de vida para Amazon SageMaker Studio or Personalizar uma instância de notebook para obter instruções sobre como criar e configurar um script de ciclo de vida padrão.
limpar
Quando terminar de experimentar esse recurso, limpe seus recursos para evitar o pagamento de custos adicionais. Se você provisionou novos recursos conforme especificado nesta postagem, conclua as etapas a seguir para limpar seus recursos:
- Encerre seus aplicativos do Studio para o perfil do usuário. Ver Desligar e atualizar o SageMaker Studio e os aplicativos do Studio para obter instruções. Certifique-se de que todos os aplicativos sejam excluídos antes de excluir a pilha.
- Exclua o volume EFS criado para o domínio do Studio. Você pode exibir o volume EFS anexado ao domínio usando um DescreverDomínio Chamada API.
- Exclua a pilha de domínio do Studio.
- Exclua os grupos de segurança criados para o domínio do Studio. Você pode encontrá-los no Amazon Elastic Compute Nuvem (Amazon EC2), com os nomes security-group-for-inbound-nfs-d-xxx e security-group-for-outbound-nfs-d-xxx
- Exclua a pilha de rede.
Conclusão
Nesta postagem, discutimos a configuração e o uso de valores padrão para os principais parâmetros de infraestrutura usando o SageMaker Python SDK. Isso permite que os administradores definam configurações padrão para cientistas de dados, economizando tempo para usuários e administradores, eliminando o fardo de especificar parâmetros repetidamente e resultando em um código mais enxuto e gerenciável. Para obter a lista completa de parâmetros e APIs compatíveis, consulte Configurando e usando padrões com o SageMaker Python SDK. Para quaisquer perguntas e discussões, junte-se ao Comunidade de aprendizado de máquina e IA.
Sobre os autores
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.
Bruno Pistone é um arquiteto de soluções especialista em IA/ML da AWS com sede em Milão. Ele trabalha com clientes de qualquer tamanho para ajudá-los a entender profundamente suas necessidades técnicas e projetar soluções de AI e Machine Learning que fazem o melhor uso da Nuvem AWS e da pilha Amazon Machine Learning. Sua área de especialização é Aprendizado de Máquina de ponta a ponta, Industrialização de Aprendizado de Máquina e MLOps. Ele gosta de passar tempo com seus amigos e explorar novos lugares, além de viajar para novos destinos.
Durga Sury é arquiteto de soluções de ML da equipe Amazon SageMaker Service SA. Ela é apaixonada por tornar o aprendizado de máquina acessível a todos. Em seus 4 anos na AWS, ela ajudou a configurar plataformas AI/ML para clientes corporativos. Quando não está trabalhando, ela adora andar de moto, romances de mistério e longas caminhadas com seu husky de 5 anos.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Compre e venda ações em empresas PRE-IPO com PREIPO®. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- Capaz
- Sobre
- Acesso
- acessível
- Conta
- ações
- adicionar
- Adição
- Adicional
- endereços
- administradores
- novamente
- AI
- AI / ML
- Todos os Produtos
- Permitindo
- permite
- já
- tb
- Apesar
- Amazon
- Amazon EC2
- Aprendizado de máquina da Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- e
- qualquer
- api
- APIs
- app
- aplicado
- apropriado
- Aplicativos
- SOMOS
- AS
- At
- anexar
- automatizar
- automaticamente
- evitar
- AWS
- Formação da Nuvem AWS
- fundo
- baseado
- BE
- sido
- antes
- Começo
- MELHOR
- corpo
- ambos
- amplo
- Prédio
- carga
- negócio
- by
- chamada
- chamadas
- CAN
- casas
- casos
- CD
- Células
- Escolha
- cliente
- Na nuvem
- código
- coleção
- comum
- completar
- Computar
- computador
- Visão de Computador
- condição
- Configuração
- cônsul
- conteúdo
- continuar
- ao controle
- controlado
- custos
- poderia
- crio
- criado
- cria
- Criar
- Atualmente
- personalizadas
- Clientes
- dados,
- informática
- cientista de dados
- Padrão
- defaults
- demonstrar
- Dependendo
- implantar
- implantado
- Implantação
- desenvolvimento
- Design
- destinos
- diferente
- discutido
- discussões
- monitores
- Não faz
- domínio
- domínios
- feito
- não
- down
- cada
- facilmente
- eco
- ou
- eliminando
- permitir
- criptografada
- criptografia
- final
- end-to-end
- Ponto final
- aplicar
- Engenharia
- garantir
- Entrar
- Empreendimento
- Meio Ambiente
- ambientes
- erros
- todos
- exemplo
- existente
- espera
- experimentar
- experiência
- explorar
- explorador
- Explorando
- FALHA
- falso
- Característica
- campo
- Envie o
- Arquivos
- financiar
- Encontre
- seguir
- seguinte
- segue
- Futebol
- Escolha
- formato
- Gratuito
- amigos
- da
- cheio
- funções
- ter
- obtendo
- Git
- Do grupo
- Ter
- ter
- he
- saúde
- ajudou
- ajuda
- sua experiência
- sua
- Início
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- http
- HTTPS
- ÍCONE
- Identidade
- if
- importar
- in
- Incluindo
- indústrias
- Infraestrutura
- entrada
- instalar
- instância
- instruções
- Interface
- Internet
- Acesso à internet
- para dentro
- envolvendo
- IP
- Endereços IP
- isolamento
- IT
- ESTÁ
- Trabalho
- Empregos
- juntar
- jpg
- Chave
- chaves
- grande
- aprendizagem
- Nível
- Biblioteca
- wifecycwe
- como
- Lista
- local
- localização
- locais
- log
- registrado
- logging
- longo
- olhar
- ama
- máquina
- aprendizado de máquina
- fazer
- Fazendo
- de grupos
- manualmente
- MILÃO
- ML
- MLOps
- Moda
- modelo
- modelos
- mais
- a maioria
- motocicleta
- múltiplo
- Mistério
- nome
- nomes
- Navegação
- você merece...
- necessário
- necessitando
- Cria
- rede
- networking
- Novo
- Próximo
- PNL
- não
- caderno
- Perceber..
- notando
- agora
- objeto
- of
- on
- uma vez
- ONE
- aberto
- open source
- or
- OS
- Outros
- Fora
- saída
- override
- próprio
- pão
- parâmetro
- parâmetros
- passou
- Passagem
- apaixonado
- pagar
- Locais
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- jogar
- ponto
- políticas
- Publique
- prática
- anterior
- Diretor
- privado
- privilégios
- em processamento
- Subcontratante
- Perfil
- Perfis
- projetos
- fornecer
- público
- Coloca
- Python
- Frequentes
- Links
- recomendar
- remanescente
- lembrar
- solicitar
- requeridos
- Recursos
- resposta
- restrições
- resultando
- Tipo
- papéis
- Execute
- corrida
- s
- SA
- sábio
- mesmo
- Salvar
- poupança
- Cientista
- cientistas
- Sdk
- Seção
- segurança
- Vejo
- serviço
- Serviços
- Sessão
- conjunto
- contexto
- instalação
- vários
- ela
- rede de apoio social
- mostrar
- mostrar
- mostrando
- semelhante
- simples
- simplesmente
- Tamanho
- Software
- Engenharia de software
- Soluções
- algo
- especialista
- específico
- especificada
- Passar
- pilha
- Pilhas
- começo
- começado
- Status
- Passo
- Passos
- armazenamento
- loja
- armazenadas
- estudo
- sub-rede
- sub-redes
- subseqüente
- entraram com sucesso
- tal
- Suportado
- suportes
- .
- Tarefa
- Profissionais
- Dados Técnicos:
- modelo
- terminal
- que
- A
- deles
- Eles
- então
- assim
- Este
- isto
- Através da
- hermeticamente
- tempo
- para
- topo
- tráfego
- Trem
- Training
- VIRAR
- Passando
- para
- subjacente
- compreender
- Atualizar
- atualização
- Uso
- usar
- caso de uso
- usava
- Utilizador
- usuários
- utilização
- valor
- Valores
- verificar
- versão
- via
- Ver
- vendo
- Virtual
- visível
- visão
- volume
- volumes
- queremos
- we
- web
- serviços web
- BEM
- quando
- precisarão
- de
- sem
- Atividades:
- trabalhou
- trabalhar
- trabalho
- yaml
- anos
- Vocês
- investimentos
- zefirnet