Pipelines Amazon SageMaker é um serviço AWS totalmente gerenciado para criar e orquestrar fluxos de trabalho de aprendizado de máquina (ML). O SageMaker Pipelines oferece aos desenvolvedores de aplicativos de ML a capacidade de orquestrar diferentes etapas do fluxo de trabalho de ML, incluindo carregamento de dados, transformação de dados, treinamento, ajuste e implantação. Você pode usar o SageMaker Pipelines para orquestrar trabalhos de ML no SageMaker e seus integração com o ecossistema maior da AWS também permite que você use recursos como AWS Lambda funções, Amazon EMR empregos e muito mais. Isso permite que você crie um pipeline personalizado e reproduzível para requisitos específicos em seus fluxos de trabalho de ML.
Nesta postagem, fornecemos algumas práticas recomendadas para maximizar o valor do SageMaker Pipelines e tornar a experiência de desenvolvimento perfeita. Também discutimos alguns cenários e padrões de design comuns ao construir pipelines do SageMaker e fornecemos exemplos para abordá-los.
Melhores práticas para pipelines SageMaker
Nesta seção, discutimos algumas práticas recomendadas que podem ser seguidas ao projetar fluxos de trabalho usando SageMaker Pipelines. Adotá-los pode melhorar o processo de desenvolvimento e agilizar o gerenciamento operacional do SageMaker Pipelines.
Use a sessão do pipeline para carregamento lento do pipeline
Sessão de pipeline permite a inicialização lenta de recursos de pipeline (os trabalhos não são iniciados até o tempo de execução do pipeline). O PipelineSession
contexto herda o Sessão SageMaker e implementa métodos convenientes para interagir com outras entidades e recursos do SageMaker, como trabalhos de treinamento, endpoints, conjuntos de dados de entrada em Serviço de armazenamento simples da Amazon (Amazon S3) e assim por diante. Ao definir SageMaker Pipelines, você deve usar PipelineSession
durante a sessão normal do SageMaker:
Execute pipelines no modo local para iterações rápidas e econômicas durante o desenvolvimento
Você pode executar um pipeline em modo local usando o LocalPipelineSession
contexto. Nesse modo, o pipeline e os trabalhos são executados localmente usando recursos na máquina local, em vez de recursos gerenciados pelo SageMaker. O modo local fornece uma maneira econômica de iterar o código do pipeline com um subconjunto menor de dados. Depois que o pipeline for testado localmente, ele poderá ser dimensionado para execução usando o Sessão de Pipeline contexto.
Gerencie um pipeline do SageMaker por meio de controle de versão
O versionamento de artefatos e definições de pipeline é um requisito comum no ciclo de vida de desenvolvimento. Você pode criar várias versões do pipeline nomeando objetos de pipeline com um prefixo ou sufixo exclusivo, sendo o mais comum um carimbo de data/hora, conforme mostrado no código a seguir:
Organize e rastreie execuções de pipeline do SageMaker integrando-o com SageMaker Experiments
O SageMaker Pipelines pode ser facilmente integrado com Experimentos SageMaker para organização e rastreamento de execuções de pipeline. Isto é conseguido especificando PipelineExperimentConfig na hora de criar um objeto de pipeline. Com este objeto de configuração, você pode especificar um nome de experimento e um nome de avaliação. Os detalhes de execução de um pipeline SageMaker são organizados de acordo com o experimento e teste especificados. Se você não especificar explicitamente um nome de experimento, um nome de pipeline será usado para o nome do experimento. Da mesma forma, se você não especificar explicitamente um nome de avaliação, um ID de execução de pipeline será usado para o nome do grupo de avaliação ou execução. Veja o seguinte código:
Execute pipelines do SageMaker com segurança em uma VPC privada
Para proteger as cargas de trabalho de ML, é uma prática recomendada implantar os trabalhos orquestrados pelo SageMaker Pipelines em uma configuração de rede segura dentro de uma VPC privada, sub-redes privadas e grupos de segurança. Para garantir e impor o uso deste ambiente seguro, você pode implementar o seguinte Gerenciamento de acesso e identidade da AWS (IAM) para o Função de execução do SageMaker (este é o papel assumido pelo pipeline durante sua execução). Você também pode adicionar a política para executar os trabalhos orquestrados pelo SageMaker Pipelines no modo de isolamento de rede.
Para obter um exemplo de implementação de pipeline com esses controles de segurança em vigor, consulte Orquestrando trabalhos, registro de modelo e implantação contínua com o Amazon SageMaker em um ambiente seguro.
Monitore o custo das execuções do pipeline usando tags
O uso de pipelines SageMaker por si só é gratuito; você paga pelos recursos de computação e armazenamento gerados como parte das etapas individuais do pipeline, como processamento, treinamento e inferência em lote. Para agregar os custos por execução de pipeline, você pode incluir Tag em cada etapa do pipeline que cria um recurso. Essas tags podem então ser referenciadas no explorador de custos para filtrar e agregar o custo total de execução do pipeline, conforme mostrado no exemplo a seguir:
No explorador de custos, agora você pode filtrar o custo pela tag:
Padrões de design para alguns cenários comuns
Nesta seção, discutimos padrões de design para alguns casos de uso comuns do SageMaker Pipelines.
Execute uma função Python leve usando uma etapa do Lambda
As funções Python são onipresentes nos fluxos de trabalho de ML; eles são usados em pré-processamento, pós-processamento, avaliação e muito mais. Lambda é um serviço de computação sem servidor que permite executar código sem provisionar ou gerenciar servidores. Com o Lambda, você pode executar código na linguagem de sua preferência que inclui Python. Você pode usar isso para executar código Python personalizado como parte do seu pipeline. Uma etapa Lambda permite que você execute funções do Lambda como parte do pipeline do SageMaker. Comece com o seguinte código:
Crie a função do Lambda usando o Auxiliar Lambda do SageMaker Python SDK:
Chame a etapa Lambda:
Passe dados entre etapas
Os dados de entrada para uma etapa do pipeline são um local de dados acessível ou dados gerados por uma das etapas anteriores do pipeline. Você pode fornecer essas informações como um ProcessingInput
parâmetro. Vejamos alguns cenários de como você pode usar ProcessingInput.
Cenário 1: passar a saída (tipos de dados primitivos) de uma etapa do Lambda para uma etapa de processamento
Os tipos de dados primitivos referem-se a tipos de dados escalares como string, inteiro, booleano e flutuante.
O trecho de código a seguir define uma função Lambda que retorna um dicionário de variáveis com tipos de dados primitivos. Seu código de função do Lambda retornará um JSON de pares de valores-chave quando invocado na etapa do Lambda no pipeline do SageMaker.
Na definição do pipeline, você pode definir parâmetros de pipeline do SageMaker que são de um tipo de dados específico e definir a variável para a saída da função Lambda:
Cenário 2: passar a saída (tipos de dados não primitivos) de uma etapa do Lambda para uma etapa de processamento
Tipos de dados não primitivos referem-se a tipos de dados não escalares (por exemplo, NamedTuple
). Você pode ter um cenário em que precisa retornar um tipo de dados não primitivo de uma função Lambda. Para fazer isso, você deve converter seu tipo de dados não primitivo em uma string:
Em seguida, você pode usar essa string como entrada para uma etapa subsequente no pipeline. Para usar a tupla nomeada no código, use eval()
para analisar a expressão Python na string:
Cenário 3: Passar a saída de uma etapa por meio de um arquivo de propriedades
Também é possível armazenar a saída de uma etapa de processamento em um arquivo JSON de propriedade para consumo a jusante num ConditionStep
ou outro ProcessingStep
. Você pode usar o Função JSONGet para consultar um arquivo de propriedade. Veja o seguinte código:
Vamos supor que o conteúdo do arquivo de propriedades seja o seguinte:
Nesse caso, ele pode ser consultado por um valor específico e usado nas etapas subsequentes usando a função JsonGet:
Parametrizar uma variável na definição do pipeline
Muitas vezes é desejável parametrizar variáveis para que possam ser usadas em tempo de execução — por exemplo, para construir um URI S3. Você pode parametrizar uma string de forma que ela seja avaliada em tempo de execução usando o Join
função. O trecho de código a seguir mostra como definir a variável usando o Join
função e use-a para definir o local de saída em uma etapa de processamento:
Execute código paralelo em um iterável
Alguns fluxos de trabalho de ML executam código em loops for paralelos em um conjunto estático de itens (um iterável). Pode ser o mesmo código executado em dados diferentes ou um trecho de código diferente que precisa ser executado para cada item. Por exemplo, se você tiver um número muito grande de linhas em um arquivo e quiser acelerar o tempo de processamento, poderá confiar no padrão anterior. Se quiser realizar transformações diferentes em subgrupos específicos nos dados, talvez seja necessário executar um trecho de código diferente para cada subgrupo nos dados. Os dois cenários a seguir ilustram como você pode projetar pipelines do SageMaker para essa finalidade.
Cenário 1: Implementar uma lógica de processamento em diferentes partes dos dados
Você pode executar um trabalho de processamento com múltiplas instâncias (definindo instance_count
para um valor maior que 1). Isso distribui os dados de entrada do Amazon S3 em todas as instâncias de processamento. Você pode então usar um script (process.py) para trabalhar em uma parte específica dos dados com base no número da instância e no elemento correspondente na lista de itens. A lógica de programação em process.py pode ser escrita de forma que um módulo ou trecho de código diferente seja executado dependendo da lista de itens que ele processa. O exemplo a seguir define um processador que pode ser usado em um ProcessingStep:
Cenário 2: Execute uma sequência de etapas
Quando você tem uma sequência de etapas que precisa ser executada em paralelo, pode definir cada sequência como um pipeline independente do SageMaker. A execução desses pipelines do SageMaker pode então ser acionada a partir de uma função Lambda que faz parte de um LambdaStep
no pipeline pai. O trecho de código a seguir ilustra o cenário em que duas execuções de pipeline diferentes do SageMaker são acionadas:
Conclusão
Nesta postagem, discutimos algumas práticas recomendadas para o uso e manutenção eficiente de pipelines SageMaker. Também fornecemos certos padrões que você pode adotar ao projetar fluxos de trabalho com SageMaker Pipelines, esteja você criando novos pipelines ou migrando fluxos de trabalho de ML de outras ferramentas de orquestração. Para começar a usar o SageMaker Pipelines para orquestração de fluxo de trabalho de ML, consulte o amostras de código no GitHub e Pipelines de criação de modelos do Amazon SageMaker.
Sobre os autores
Pinak Panigrahi trabalha com clientes para criar soluções orientadas por aprendizado de máquina para resolver problemas estratégicos de negócios na AWS. Quando não está ocupado com aprendizado de máquina, ele pode ser encontrado fazendo caminhadas, lendo um livro ou assistindo esportes.
Meenakshisundaram Thandavarayan trabalha para a AWS como um AI/ML Specialist. Ele tem paixão por projetar, criar e promover dados centrados no ser humano e experiências analíticas. A Meena se concentra no desenvolvimento de sistemas sustentáveis que oferecem vantagens competitivas mensuráveis para clientes estratégicos da AWS. Meena é uma conectora, pensadora de design e se esforça para conduzir os negócios a novas formas de trabalhar por meio da inovação, incubação e democratização.
- 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.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- ChartPrime. Eleve seu jogo de negociação com ChartPrime. Acesse aqui.
- BlockOffsets. Modernizando a Propriedade de Compensação Ambiental. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- habilidade
- Acesso
- acessível
- alcançado
- Açao Social
- adicionar
- endereçando
- adotar
- Adotando
- vantagens
- Depois de
- agregar
- Todos os Produtos
- permite
- tb
- Amazon
- Amazon Sage Maker
- Pipelines Amazon SageMaker
- Amazon Web Services
- an
- analítica
- e
- Outro
- api
- Aplicação
- apropriado
- SOMOS
- AS
- assumir
- assumiu
- At
- autoria
- disponível
- AWS
- baseado
- BE
- ser
- MELHOR
- melhores práticas
- entre
- livro
- construir
- Prédio
- negócio
- by
- CAN
- casas
- casos
- certo
- cliente
- código
- coleções
- comum
- competitivo
- Computar
- condição
- Configuração
- construir
- consumo
- conteúdo
- contexto
- contínuo
- controles
- Conveniente
- converter
- Correspondente
- Custo
- relação custo-benefício
- custos
- crio
- cria
- Criar
- personalizadas
- Clientes
- personalizado
- dados,
- conjuntos de dados
- Decifrar
- definir
- Define
- definição
- definição
- definições
- entregar
- democratização
- Dependendo
- implantar
- desenvolvimento
- Design
- Padrões de design
- concepção
- detalhes
- desenvolvedores
- em desenvolvimento
- Desenvolvimento
- diferente
- dimensões
- discutir
- discutido
- do
- não
- distância
- dirigido
- durante
- cada
- facilmente
- efeito
- eficiente
- ou
- elemento
- permite
- final
- aplicar
- garantir
- entidades
- Meio Ambiente
- avaliadas
- avaliação
- Evento
- Cada
- exemplo
- exemplos
- execução
- vasta experiência
- Experiências
- experimentar
- explorador
- expressão
- extrato
- poucos
- Envie o
- filtro
- Flutuador
- seguido
- seguinte
- Escolha
- Antigo
- encontrado
- Gratuito
- da
- totalmente
- função
- funções
- gerado
- ter
- maior
- Grupo
- Do grupo
- Ter
- he
- Marchar
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- http
- HTTPS
- ID
- Identidade
- if
- ilustra
- executar
- implementação
- implementa
- importar
- melhorar
- in
- incluir
- inclui
- Incluindo
- incubação
- de treinadores em Entrevista Motivacional
- Individual
- INFORMAÇÕES
- Inovação
- entrada
- instância
- em vez disso
- integrado
- Integração
- interagindo
- para dentro
- invocado
- isolamento
- IT
- Unid
- iterações
- ESTÁ
- se
- Trabalho
- Empregos
- json
- Chave
- língua
- grande
- Maior
- aprendizagem
- Permite
- wifecycwe
- leve
- como
- Lista
- carregamento
- local
- localmente
- localização
- lógica
- olhar
- máquina
- aprendizado de máquina
- manutenção
- fazer
- gerenciados
- de grupos
- gestão
- Maximizar
- Posso..
- métodos
- poder
- migrando
- ML
- Moda
- modelo
- Módulo
- mensal
- mais
- a maioria
- múltiplo
- nome
- Nomeado
- nomeando
- você merece...
- Cria
- rede
- Novo
- agora
- número
- objeto
- objetos
- obter
- of
- Oferece
- frequentemente
- on
- ONE
- operacional
- or
- orquestrada
- orquestração
- Organizado
- organização
- Outros
- saída
- Acima de
- pares
- Paralelo
- parâmetro
- parâmetros
- parte
- passar
- paixão
- padrão
- padrões
- Pagar
- para
- Realizar
- peça
- oleoduto
- Lugar
- platão
- Inteligência de Dados Platão
- PlatãoData
- Privacidade
- parte
- Publique
- prática
- práticas
- preferido
- anterior
- primitivo
- privado
- problemas
- processo
- processos
- em processamento
- Subcontratante
- Programação
- a promover
- Propriedades
- propriedade
- fornecer
- fornecido
- fornece
- propósito
- Python
- Links
- Leitura
- referir
- Registo
- regular
- depender
- requerimento
- Requisitos
- recurso
- Recursos
- resposta
- retorno
- voltar
- Retorna
- Tipo
- Execute
- é executado
- s
- sábio
- Pipelines SageMaker
- mesmo
- cenário
- cenários
- escrita
- desatado
- Seção
- seguro
- segurança
- Vejo
- Seqüência
- Serverless
- Servidores
- serviço
- Serviços
- Sessão
- conjunto
- contexto
- rede de apoio social
- mostrando
- Shows
- Similarmente
- simples
- menor
- fragmento
- So
- Soluções
- RESOLVER
- alguns
- especialista
- específico
- especificada
- velocidade
- Spin
- Esportes
- começo
- começado
- Declaração
- Passo
- Passos
- armazenamento
- loja
- Estratégico
- negócio estratégico
- simplificar
- Tanga
- esforça-se
- estrutura
- sub-redes
- subseqüente
- tal
- sustentável
- sistemas
- TAG
- tomar
- testado
- do que
- que
- A
- Eles
- então
- Lá.
- Este
- deles
- pensador
- isto
- Através da
- tempo
- timestamp
- para
- ferramentas
- Total
- pista
- Trem
- Training
- Transformação
- transformações
- julgamento
- desencadear
- desencadeado
- verdadeiro
- dois
- tipo
- tipos
- para
- único
- até
- Uso
- usar
- usava
- usos
- utilização
- valor
- Valores
- variável
- versão
- versões
- muito
- queremos
- assistindo
- Caminho..
- maneiras
- we
- web
- serviços web
- foram
- quando
- se
- enquanto
- precisarão
- de
- dentro
- sem
- Atividades:
- de gestão de documentos
- fluxos de trabalho
- trabalhar
- trabalho
- mundo
- escrito
- Vocês
- investimentos
- zefirnet