Amazon Sage Maker é um serviço de aprendizado de máquina (ML) totalmente gerenciado. Com o SageMaker, os cientistas e desenvolvedores de dados podem criar e treinar modelos de ML de forma rápida e fácil e, em seguida, implantá-los diretamente em um ambiente hospedado pronto para produção. O Sagemaker fornece uma instância de notebook de autoria Jupyter integrada para fácil acesso às suas fontes de dados para exploração e análise, para que você não precise gerenciar servidores. Ele também fornece algoritmos de ML comuns que são otimizados para serem executados com eficiência em dados extremamente grandes em um ambiente distribuído.
O SageMaker exige que os dados de treinamento para um modelo de ML estejam presentes em Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) ou Amazon FSx for Lustre (para obter mais informações, consulte Dados de treinamento de acesso). Para treinar um modelo usando dados armazenados fora dos três serviços de armazenamento com suporte, os dados primeiro precisam ser ingeridos em um desses serviços (normalmente Amazon S3). Isso requer a construção de um pipeline de dados (usando ferramentas como Gerenciador de dados do Amazon SageMaker) para mover dados para o Amazon S3. No entanto, essa abordagem pode criar um desafio de gerenciamento de dados em termos de gerenciamento do ciclo de vida desse meio de armazenamento de dados, criação de controles de acesso, auditoria de dados e assim por diante, tudo com o objetivo de organizar os dados de treinamento durante o trabalho de treinamento. Em tais situações, pode ser desejável ter os dados acessíveis ao SageMaker na mídia de armazenamento efêmera anexada às instâncias de treinamento efêmeras sem o armazenamento intermediário de dados no Amazon S3.
Este post mostra uma maneira de fazer isso usando Floco de neve como fonte de dados e baixando os dados diretamente do Snowflake para uma instância de trabalho do SageMaker Training.
Visão geral da solução
Usamos o Conjunto de dados de habitação da Califórnia como um conjunto de dados de treinamento para esta postagem e treine um modelo de ML para prever o valor médio da casa para cada distrito. Adicionamos esses dados ao Snowflake como uma nova tabela. Criamos um contêiner de treinamento personalizado que faz o download dos dados diretamente da tabela Snowflake para a instância de treinamento, em vez de primeiro fazer o download dos dados para um bucket do S3. Depois que os dados são baixados na instância de treinamento, o script de treinamento personalizado executa tarefas de preparação de dados e treina o modelo de ML usando o Estimador XGBoost. Todo o código deste post está disponível no GitHub repo.
A figura a seguir representa a arquitetura de alto nível da solução proposta para usar o Snowflake como fonte de dados para treinar modelos de ML com o SageMaker.
As etapas do fluxo de trabalho são as seguintes:
- Configure um notebook SageMaker e um Gerenciamento de acesso e identidade da AWS (IAM) com as permissões apropriadas para permitir que o SageMaker acesse Registro do Amazon Elastic Container (Amazon ECR), Secrets Manager e outros serviços em sua conta da AWS.
- Armazene as credenciais da sua conta do Snowflake no AWS Secrets Manager.
- Ingerir os dados em uma tabela em sua conta do Snowflake.
- Crie uma imagem de contêiner personalizada para treinamento de modelo de ML e envie-a para o Amazon ECR.
- Inicie um trabalho de treinamento do SageMaker para treinar o modelo de ML. A instância de treinamento recupera as credenciais do Snowflake do Secrets Manager e, em seguida, usa essas credenciais para baixar o conjunto de dados diretamente do Snowflake. Essa é a etapa que elimina a necessidade de primeiro fazer o download dos dados em um bucket do S3.
- O modelo de ML treinado é armazenado em um bucket S3.
Pré-requisitos
Para implementar a solução fornecida neste post, você deve ter um Conta da AWS, um conta floco de neve e familiaridade com o SageMaker.
Configurar um bloco de anotações do SageMaker e uma função IAM
Usamos o AWS CloudFormation para criar um notebook SageMaker chamado aws-aiml-blogpost-sagemaker-snowflake-example
e uma função IAM chamada SageMakerSnowFlakeExample
. Escolher Pilha de Lançamento para a região na qual você deseja implantar recursos.
Armazene as credenciais do Snowflake no Secrets Manager
Armazene suas credenciais do Snowflake como um segredo no Secrets Manager. Para obter instruções sobre como criar um segredo, consulte Create an AWS Secrets Manager secret
.
- Nomeie o segredo
snowflake_credentials
. Isso é necessário porque o código emsnowflake-load-dataset.ipynb
espera que o segredo seja chamado assim. - Crie o segredo como um par chave-valor com duas chaves:
- nome de usuário – Seu nome de usuário Snowflake.
- senha – A senha associada ao seu nome de usuário do Snowflake.
Ingerir os dados em uma tabela em sua conta do Snowflake
Para ingerir os dados, conclua as seguintes etapas:
- No console SageMaker, escolha Notebooks no painel de navegação.
- Selecione o notebook aws-aiml-blogpost-sagemaker-snowflake-example e escolha Abra o JupyterLab.
- Escolha
snowflake-load-dataset.ipynb
para abri-lo no JupyterLab. Este notebook irá processar o Conjunto de dados de habitação da Califórnia para uma mesa de floco de neve. - No bloco de anotações, edite o conteúdo da célula a seguir para substituir os valores de espaço reservado por aquele correspondente à sua conta do floco de neve:
- No menu Executar, escolha Executar todas as células para executar o código neste notebook. Isso fará o download do conjunto de dados localmente no bloco de anotações e o incluirá na tabela Snowflake.
O trecho de código a seguir no bloco de anotações ingere o conjunto de dados no Snowflake. Veja o snowflake-load-dataset.ipynb
notebook para obter o código completo.
- Feche o notebook depois que todas as células forem executadas sem nenhum erro. Seus dados agora estão disponíveis no Snowflake. A captura de tela a seguir mostra o
california_housing
tabela criada no Snowflake.
execute o sagemaker-snowflake-example.ipynb
caderno
Este bloco de anotações cria um contêiner de treinamento personalizado com uma conexão do Snowflake, extrai dados do Snowflake para o armazenamento efêmero da instância de treinamento sem prepará-lo no Amazon S3 e executa o treinamento do modelo Distributed Data Parallel (DDP) XGBoost nos dados. O treinamento DDP não é necessário para o treinamento do modelo em um conjunto de dados tão pequeno; ele está incluído aqui para ilustração de outro recurso do SageMaker lançado recentemente.
Crie um contêiner personalizado para treinamento
Agora criamos um contêiner personalizado para o trabalho de treinamento do modelo de ML. Observe que o acesso root é necessário para criar um contêiner do Docker. Este notebook SageMaker foi implantado com acesso root habilitado. Se as políticas da organização da sua empresa não permitirem acesso root aos recursos da nuvem, convém usar o seguinte arquivo Docker e scripts de shell para criar um contêiner do Docker em outro lugar (por exemplo, seu laptop) e, em seguida, enviá-lo para o Amazon ECR. Usamos o contêiner com base na imagem do contêiner SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
com os seguintes acréscimos:
- A Conector floco de neve para Python para baixar os dados da tabela Snowflake para a instância de treinamento.
- Um script Python para se conectar ao Secrets Manager para recuperar as credenciais do Snowflake.
Usar o conector Snowflake e o script Python garante que os usuários que usam essa imagem de contêiner para treinamento de modelo de ML não precisem escrever esse código como parte de seu script de treinamento e possam usar essa funcionalidade que já está disponível para eles.
A seguir está o Dockerfile para o contêiner de treinamento:
A imagem do contêiner é criada e enviada ao Amazon ECR. Esta imagem é usada para treinar o modelo de ML.
Treine o modelo de ML usando um trabalho de treinamento do SageMaker
Depois de criar com êxito a imagem do contêiner e enviá-la para o Amazon ECR, podemos começar a usá-la para treinamento de modelo.
- Criamos um conjunto de scripts Python para baixar os dados do Snowflake usando o Conector floco de neve para Python, prepare os dados e, em seguida, use o
XGBoost Regressor
para treinar o modelo de ML. É a etapa de baixar os dados diretamente para a instância de treinamento que evita a necessidade de usar o Amazon S3 como armazenamento intermediário para os dados de treinamento. - Facilitamos o treinamento paralelo de dados distribuídos fazendo com que o código de treinamento baixe um subconjunto aleatório dos dados, de modo que cada instância de treinamento baixe uma quantidade igual de dados do Snowflake. Por exemplo, se houver dois nós de treinamento, cada nó fará o download de uma amostra aleatória de 50% das linhas na tabela Snowflake. Veja o código a seguir:
- Em seguida, fornecemos o script de treinamento para o SageMaker SDK
Estimator
junto com o diretório de origem para que todos os scripts que criamos possam ser fornecidos ao contêiner de treinamento quando o trabalho de treinamento for executado usando oEstimator.fit
método:Para mais informações, consulte Preparar um script de treinamento do Scikit-Learn.
- Depois que o treinamento do modelo for concluído, o modelo treinado estará disponível como um
model.tar.gz
arquivo no bucket padrão do SageMaker para a região:
Agora você pode implantar o modelo treinado para obter inferência em novos dados! Para obter instruções, consulte Crie seu endpoint e implante seu modelo.
limpar
Para evitar cobranças futuras, exclua os recursos. Você pode fazer isso excluindo o modelo do CloudFormation usado para criar a função IAM e o notebook SageMaker.
Você terá que excluir os recursos do Snowflake manualmente do console do Snowflake.
Conclusão
Nesta postagem, mostramos como baixar dados armazenados em uma tabela Snowflake para uma instância de trabalho do SageMaker Training e treinar um modelo XGBoost usando um contêiner de treinamento personalizado. Essa abordagem nos permite integrar diretamente o Snowflake como uma fonte de dados com um notebook SageMaker sem ter os dados testados no Amazon S3.
Incentivamos você a aprender mais explorando o SDK do Amazon SageMaker Python e construir uma solução usando a implementação de amostra fornecida nesta postagem e um conjunto de dados relevante para o seu negócio. Se você tiver dúvidas ou sugestões, deixe um comentário.
Sobre os autores
Amit Arora é um arquiteto especialista em IA e ML na Amazon Web Services, ajudando clientes corporativos a usar serviços de aprendizado de máquina baseados em nuvem para dimensionar rapidamente suas inovações. Ele também é professor adjunto no programa de ciência e análise de dados MS na Georgetown University em Washington DC
Divya Muralidharan é arquiteto de soluções na Amazon Web Services. Ela é apaixonada por ajudar clientes corporativos a resolver problemas de negócios com tecnologia. Ela tem mestrado em Ciência da Computação pelo Rochester Institute of Technology. Fora do escritório, ela passa o tempo cozinhando, cantando e cultivando plantas.
Sergei Ermolin é Arquiteto Principal de Soluções AIML da AWS. Anteriormente, ele foi arquiteto de soluções de software para aprendizado profundo, análise e tecnologias de big data na Intel. Um veterano do Vale do Silício apaixonado por aprendizado de máquina e inteligência artificial, Sergey se interessou por redes neurais desde os dias pré-GPU, quando as usou para prever o comportamento de envelhecimento de cristais de quartzo e relógios atômicos de césio na Hewlett-Packard. Sergey possui um certificado MSEE e CS de Stanford e é bacharel em física e engenharia mecânica pela California State University, Sacramento. Fora do trabalho, Sergey gosta de fazer vinho, esquiar, andar de bicicleta, velejar e mergulhar. Sergey também é piloto voluntário da Vôo de anjo.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :é
- $UP
- 1
- 10
- 7
- 8
- a
- Sobre
- Acesso
- acessível
- Conta
- Adicionais
- Depois de
- contra
- Envelhecendo
- AI
- AIML
- algoritmos
- Todos os Produtos
- permite
- já
- Amazon
- Amazon FSx
- Amazon Sage Maker
- Amazon Web Services
- quantidade
- análise
- analítica
- e
- Outro
- abordagem
- apropriado
- arquitetura
- SOMOS
- artificial
- inteligência artificial
- AS
- associado
- At
- auditoria
- autoria
- disponível
- AWS
- Formação da Nuvem AWS
- base
- baseado
- BE
- Porque
- Grande
- Big Data
- construir
- Prédio
- construído
- negócio
- by
- Califórnia
- chamado
- CAN
- Células
- certificado
- desafiar
- acusações
- Escolha
- Limpeza
- Clocks
- Na nuvem
- código
- Coluna
- colunas
- comentar
- comum
- completar
- computador
- Ciência da Computação
- Contato
- da conexão
- cônsul
- Recipiente
- contém
- conteúdo
- controles
- crio
- criado
- cria
- Criar
- Credenciais
- personalizadas
- Clientes
- dados,
- gestão de dados
- Preparação de dados
- ciência de dados
- armazenamento de dados
- datetime
- dias
- DDP
- Decidindo
- profundo
- deep learning
- Padrão
- Grau
- implantar
- implantado
- desenvolvedores
- diretamente
- distribuído
- distrito
- Estivador
- não
- download
- de downloads
- cada
- facilmente
- eficientemente
- ou
- elimina
- em outro lugar
- habilitado
- encorajar
- Ponto final
- Engenharia
- garante
- Empreendimento
- Meio Ambiente
- erro
- exemplo
- executar
- existe
- espera
- exploração
- Explorando
- Extractos
- extremamente
- facilitar
- feira
- Familiaridade
- Característica
- Figura
- Envie o
- final
- Primeiro nome
- caber
- seguinte
- segue
- Escolha
- da
- cheio
- totalmente
- funcionalidade
- futuro
- ter
- obtendo
- GitHub
- vai
- Crescente
- Ter
- ter
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- de alto nível
- detém
- hospedado
- anfitriões
- House
- habitação
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- HTTPS
- Identidade
- imagem
- executar
- implementação
- importar
- in
- incluir
- incluído
- índice
- INFORMAÇÕES
- e inovações
- instalar
- instância
- Instituto
- instruções
- integrar
- integrado
- Intel
- Inteligência
- interessado
- IT
- Trabalho
- chaves
- laptop
- grande
- Sobrenome
- APRENDER
- aprendizagem
- Deixar
- wifecycwe
- ln
- localmente
- máquina
- aprendizado de máquina
- gerencia
- gerenciados
- de grupos
- Gerente
- gestão
- manualmente
- correspondente
- mecânico
- Mídia
- média
- Menu
- método
- ML
- modelo
- modelos
- mais
- mover
- MS
- nome
- Navegação
- você merece...
- Cria
- redes
- redes neurais
- Novo
- Próximo
- nó
- nós
- caderno
- número
- objeto
- of
- Office
- on
- ONE
- aberto
- otimizado
- ordem
- organização
- Outros
- lado de fora
- pacote
- pandas
- pão
- Paralelo
- parte
- paixão
- apaixonado
- Senha
- executa
- permissões
- Física
- piloto
- oleoduto
- espaço reservado
- Plants
- platão
- Inteligência de Dados Platão
- PlatãoData
- políticas
- populosa
- Publique
- predizer
- Preparar
- presente
- anteriormente
- Diretor
- problemas
- Agenda
- proposto
- fornecer
- fornecido
- fornece
- propósito
- Empurrar
- empurrado
- Python
- Frequentes
- rapidamente
- acaso
- rapidamente
- em vez
- Leia
- recentemente
- registros
- reduz
- região
- liberado
- relevante
- substituir
- representa
- requeridos
- exige
- Recursos
- retorno
- Tipo
- raiz
- LINHA
- Execute
- Sacramento
- sábio
- vela
- Salvar
- Escala
- Ciência
- cientistas
- scikit-learn
- Scripts
- Sdk
- Segredo
- Servidores
- serviço
- Serviços
- conjunto
- Shape
- concha
- rede de apoio social
- Shows
- periodo
- Silício
- Vale do Silício
- simples
- desde
- situações
- pequeno
- So
- Software
- solução
- Soluções
- RESOLVER
- fonte
- Fontes
- Espaço
- especialista
- encenação
- começo
- Estado
- Declaração
- Passo
- Passos
- armazenamento
- armazenadas
- sub-redes
- entraram com sucesso
- tal
- ajuda
- Suportado
- .
- mesa
- tarefas
- Tecnologias
- Tecnologia
- modelo
- condições
- que
- A
- A fonte
- deles
- Eles
- Este
- três
- Através da
- tempo
- para
- ferramentas
- Total
- Trem
- treinado
- Training
- trens
- tipicamente
- universidade
- Atualizar
- us
- usar
- Utilizador
- usuários
- Vale
- valor
- Valores
- veterano
- voluntário
- Washington
- Caminho..
- web
- serviços web
- qual
- QUEM
- precisarão
- de
- dentro
- sem
- Atividades:
- escrever
- XGBoostName
- Vocês
- investimentos
- zefirnet