A built-in Amazon Sage Maker O algoritmo XGBoost fornece um contêiner gerenciado para executar o popular XGBoostName estrutura de aprendizado de máquina (ML), com conveniência adicional de suporte a treinamento avançado ou recursos de inferência, como treinamento distribuído, fragmentação de conjunto de dados para conjuntos de dados em grande escala, Teste de modelo A/Bou inferência multimodelo pontos finais. Você também pode estender esse algoritmo poderoso para acomodar diferentes requisitos.
Empacotar o código e as dependências em um único contêiner é uma abordagem conveniente e robusta para fins de manutenção, reprodutibilidade e auditoria de código de longo prazo. A modificação do contêiner segue fielmente o contêiner base e evita a duplicação de funções existentes já suportadas pelo contêiner base. Nesta postagem, revisamos o funcionamento interno do contêiner do algoritmo SageMaker XGBoost e fornecemos scripts pragmáticos para personalizar diretamente o contêiner.
Estrutura do contêiner SageMaker XGBoost
O algoritmo XGBoost integrado do SageMaker é empacotado como um contêiner independente, disponível no GitHub, e pode ser estendido sob a licença de código aberto Apache 2.0, amigável ao desenvolvedor. O contêiner embala o algoritmo XGBoost de código aberto e ferramentas auxiliares para executar o algoritmo no ambiente SageMaker integrado com outros serviços da Nuvem AWS. Isso permite treinar modelos XGBoost em uma variedade de fontes de dados, faço previsões em lote em dados off-line ou hospedar um ponto final de inferência em tempo real oleoduto.
O contêiner oferece suporte a operações de treinamento e inferência com diferentes pontos de entrada. Para o modo de inferência, a entrada pode ser encontrada na função principal no script servindo.py. Para servir inferência em tempo real, o contêiner executa um FrascoBaseada servidor web que quando invocado, recebe uma solicitação codificada em HTTP contendo os dados, decodifica os dados no XGBoost Matriz D formato, carrega o modelo, e retorna um Resposta codificada em HTTP de volta. Esses métodos são encapsulados sob o Serviço de pontuação class, que também pode ser amplamente customizada através do modo script (veja o Apêndice abaixo).
O ponto de entrada para o modo de treinamento (modo algoritmo) é a função principal no treinamento.py. A função principal configura o ambiente de treinamento e chama a função de trabalho de treinamento. É flexível o suficiente para permitir treinamento distribuído ou de nó único, ou utilitários como validação cruzada. O cerne do processo de treinamento pode ser encontrado no train_job função.
Os arquivos Docker que empacotam o contêiner podem ser encontrados no GitHub repo. Observe que o contêiner é construído em duas etapas: uma base o contêiner é construído primeiro, seguido pelo final recipiente por cima.
Visão geral da solução
Você pode modificar e reconstruir o contêiner por meio do código-fonte. No entanto, isso envolve coletar e reconstruir todas as dependências e pacotes do zero. Nesta postagem, discutimos uma abordagem mais direta que modifica diretamente o contêiner sobre a imagem do contêiner do algoritmo SageMaker XGBoost já construída e disponível publicamente.
Nesta abordagem, nós puxar uma cópia da imagem pública do SageMaker XGBoost, modifique os scripts ou adicione pacotes e reconstrua o contêiner na parte superior. O contêiner modificado pode ser armazenado em um repositório privado. Dessa forma, evitamos reconstruir dependências intermediárias e, em vez disso, construímos diretamente sobre as bibliotecas já construídas, empacotadas no contêiner oficial.
A figura a seguir mostra uma visão geral do script usado para extrair a imagem de base pública, modificar e reconstruir a imagem e carregá-la em um servidor privado. Registro do Amazon Elastic Container (Amazon ECR). O script bash no código que acompanha esta postagem executa todas as etapas do fluxo de trabalho mostradas no diagrama. O acompanhamento caderno mostra um exemplo onde o URI de uma versão específica do algoritmo SageMaker XGBoost é primeiro recuperado e passado para o script bash, que substitui dois dos scripts Python na imagem, recria-a e envia a imagem modificada para um repositório privado do Amazon ECR. Você pode modificar o código que acompanha para atender às suas necessidades.
Pré-requisitos
A Repositório GitHub contém o código que acompanha esta postagem. Você pode executar o caderno de amostra em sua conta da AWS ou use o fornecido Formação da Nuvem AWS pilha para implantar o notebook usando um notebook SageMaker. Você precisa dos seguintes pré-requisitos:
- Uma conta AWS.
- Permissões necessárias para executar trabalhos de transformação e treinamento em lote do SageMaker e privilégios do Amazon ECR. O modelo CloudFormation cria amostra Gerenciamento de acesso e identidade da AWS (IAM).
Implante a solução
Para criar os recursos da sua solução usando o AWS CloudFormation, escolha Pilha de Lançamento:
A pilha implanta um notebook SageMaker pré-configurado para clonar o repositório GitHub. O passo a passo caderno inclui as etapas para extrair a imagem pública do SageMaker XGBoost para uma determinada versão, modificá-la e enviar o contêiner personalizado para um repositório privado do Amazon ECR. O notebook usa o público Conjunto de dados de abalone como exemplo, treina um modelo usando o modo de treinamento integrado do SageMaker XGBoost e reutiliza esse modelo na imagem personalizada para executar trabalhos de transformação em lote que produzem inferência junto com valores SHAP.
Conclusão
Os algoritmos integrados do SageMaker fornecem uma variedade de recursos e funcionalidades e podem ser estendidos ainda mais sob a licença de código aberto Apache 2.0. Nesta postagem, revisamos como estender o contêiner integrado de produção para o algoritmo SageMaker XGBoost para atender aos requisitos de produção, como código retroativo e compatibilidade de API.
O caderno de amostra e auxiliar Scripts fornece um ponto de partida conveniente para personalizar a imagem do contêiner SageMaker XGBoost da maneira que você deseja. De uma chance!
Apêndice: Modo Script
Modo de script fornece uma maneira de modificar muitos algoritmos integrados do SageMaker, fornecendo uma interface para substituir as funções responsáveis por transformar as entradas e carregar o modelo. O modo script não é tão flexível quanto modificar diretamente o contêiner, mas fornece uma rota totalmente baseada em Python para personalizar o algoritmo integrado sem a necessidade de trabalhar diretamente com Estivador.
No modo script, um user-module
é fornecido para personalizar a decodificação de dados, o carregamento do modelo e a realização de previsões. O módulo do usuário pode definir um transformer_fn
que lida com todos os aspectos do processamento da solicitação até a preparação da resposta. Ou em vez de definir transformer_fn
, você pode fornecer métodos personalizados model_fn
, input_fn
, predict_fn
e output_fn
individualmente para personalizar o carregamento do modelo e a decodificação e preparação da entrada para previsão. Para uma visão geral mais completa do modo de script, consulte Traga seu próprio modelo com o modo de script SageMaker.
Sobre os autores
Peyman Razaghi é cientista de dados na AWS. Ele possui doutorado em teoria da informação pela Universidade de Toronto e foi pesquisador de pós-doutorado na Universidade do Sul da Califórnia (USC), em Los Angeles. Antes de ingressar na AWS, Peyman foi engenheiro de sistemas da Qualcomm, contribuindo para vários padrões internacionais de telecomunicações notáveis. Ele é autor de vários artigos de pesquisa científica revisados por pares na área de estatística e engenharia de sistemas, e gosta de ser pai e andar de bicicleta fora do trabalho.
- "
- 100
- Acesso
- acomodar
- Conta
- avançado
- algoritmo
- algoritmos
- Todos os Produtos
- já
- Amazon
- api
- abordagem
- ÁREA
- artigos
- AWS
- construir
- construídas em
- Califórnia
- Escolha
- classe
- Na nuvem
- serviços na nuvem
- código
- Coleta
- completamente
- Recipiente
- contém
- facilidade
- Conveniente
- cria
- personalizadas
- dados,
- cientista de dados
- implantar
- implanta
- diferente
- diretamente
- discutir
- distribuído
- Estivador
- engenheiro
- Meio Ambiente
- exemplo
- estender
- Funcionalidades
- Figura
- Primeiro nome
- flexível
- seguinte
- formato
- encontrado
- Quadro
- função
- mais distante
- GitHub
- ótimo
- detém
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- Identidade
- imagem
- INFORMAÇÕES
- entrada
- integrado
- Interface
- Internacionais
- IT
- Trabalho
- Empregos
- aprendizagem
- Licença
- longo prazo
- Los Angeles
- máquina
- aprendizado de máquina
- FAZ
- Fazendo
- gerenciados
- ML
- modelo
- modelos
- mais
- caderno
- número
- oficial
- modo offline
- Operações
- Outros
- próprio
- ponto
- Popular
- poderoso
- predição
- Previsões
- privado
- processo
- produzir
- Produção
- fornecer
- fornece
- fornecendo
- público
- fins
- em tempo real
- repositório
- solicitar
- Requisitos
- pesquisa
- Recursos
- resposta
- responsável
- Retorna
- rever
- Rota
- Execute
- Cientista
- Serviços
- de servir
- raspando
- Software
- solução
- código fonte
- do sul
- pilha
- padrões
- estatística
- Suportado
- Apoiar
- suportes
- sistemas
- A fonte
- Através da
- juntos
- ferramentas
- topo
- Toronto
- Training
- trens
- Transformar
- transformando
- universidade
- usar
- variedade
- Wikipedia
- Atividades:
- seria