Esta é a Parte 3 de nossa série, onde projetamos e implementamos um pipeline MLOps para inspeção visual de qualidade na borda. Nesta postagem, nos concentramos em como automatizar a parte de implantação de borda do pipeline MLOps ponta a ponta. Nós mostramos como usar AWS IoT Greengrass gerenciar a inferência de modelo na borda e como automatizar o processo usando Funções de etapa da AWS e outros serviços da AWS.
Visão geral da solução
In Parte 1 Nesta série, definimos uma arquitetura para nosso pipeline de MLOps ponta a ponta que automatiza todo o processo de aprendizado de máquina (ML), desde a rotulagem de dados até o treinamento de modelo e implantação na borda. Em Parte 2, mostramos como automatizar as partes de rotulagem e treinamento de modelo do pipeline.
O exemplo de caso de uso usado para esta série é uma solução de inspeção de qualidade visual que pode detectar defeitos em etiquetas metálicas, que você pode implantar como parte de um processo de fabricação. O diagrama a seguir mostra a arquitetura de alto nível do pipeline MLOps que definimos no início desta série. Se você ainda não leu, recomendamos conferir Parte 1.
Automatizando a implantação de borda de um modelo de ML
Depois que um modelo de ML for treinado e avaliado, ele precisa ser implantado em um sistema de produção para gerar valor comercial, fazendo previsões sobre os dados recebidos. Esse processo pode rapidamente se tornar complexo em um ambiente de edge onde os modelos precisam ser implantados e executados em dispositivos que geralmente estão localizados longe do ambiente de nuvem no qual os modelos foram treinados. A seguir estão alguns dos desafios exclusivos do aprendizado de máquina na borda:
- Os modelos de ML geralmente precisam ser otimizados devido a restrições de recursos em dispositivos de borda
- Os dispositivos de borda não podem ser reimplantados ou mesmo substituídos como um servidor na nuvem, portanto, você precisa de um processo robusto de implantação de modelo e gerenciamento de dispositivos
- A comunicação entre dispositivos e a nuvem precisa ser eficiente e segura porque muitas vezes atravessa redes não confiáveis de baixa largura de banda
Vamos ver como podemos enfrentar esses desafios com serviços AWS além de exportar o modelo no formato ONNX, o que nos permite, por exemplo, aplicar otimizações como quantização para reduzir o tamanho do modelo para dispositivos de restrição. ONNX também fornece tempos de execução otimizados para as plataformas de hardware de borda mais comuns.
Dividindo o processo de implantação de borda, precisamos de dois componentes:
- Um mecanismo de implantação para a entrega do modelo, que inclui o próprio modelo e alguma lógica de negócios para gerenciar e interagir com o modelo
- Um mecanismo de fluxo de trabalho que pode orquestrar todo o processo para torná-lo robusto e repetível
Neste exemplo, usamos diferentes serviços da AWS para construir nosso mecanismo automatizado de implantação de borda, que integra todos os componentes necessários que discutimos.
Primeiramente, simulamos um dispositivo de borda. Para simplificar o fluxo de trabalho de ponta a ponta, usamos um Amazon Elastic Compute Nuvem (Amazon EC2) para simular um dispositivo de borda instalando o software AWS IoT Greengrass Core na instância. Você também pode usar instâncias do EC2 para validar os diferentes componentes em um processo de controle de qualidade antes de implantar em um dispositivo de produção de borda real. O AWS IoT Greengrass é um ambiente de execução de borda e serviço de nuvem de código aberto da Internet das Coisas (IoT) que ajuda você a criar, implantar e gerenciar software de dispositivos de borda. O AWS IoT Greengrass reduz o esforço para criar, implantar e gerenciar software de dispositivos de borda de maneira segura e escalonável. Depois de instalar o software AWS IoT Greengrass Core em seu dispositivo, você poderá adicionar ou remover recursos e componentes e gerenciar seus aplicativos de dispositivos IoT usando o AWS IoT Greengrass. Ele oferece muitos componentes integrados para facilitar sua vida, como os componentes StreamManager e MQTT Broker, que você pode usar para se comunicar com segurança com a nuvem, suportando criptografia ponta a ponta. Você pode usar esses recursos para fazer upload de imagens e resultados de inferência com eficiência.
Em um ambiente de produção, normalmente você teria uma câmera industrial fornecendo imagens para as quais o modelo de ML deveria produzir previsões. Para nossa configuração, simulamos a entrada dessa imagem carregando uma predefinição de imagens em um diretório específico no dispositivo de borda. Em seguida, usamos essas imagens como entrada de inferência para o modelo.
Dividimos o processo geral de implantação e inferência em três etapas consecutivas para implantar um modelo de ML treinado em nuvem em um ambiente de borda e usá-lo para previsões:
- Preparar – Empacotar o modelo treinado para implantação de borda.
- Implantação – Transferência de componentes de modelo e inferência da nuvem para o dispositivo de borda.
- Inferência – Carregue o modelo e execute o código de inferência para previsões de imagens.
O diagrama de arquitetura a seguir mostra os detalhes desse processo de três etapas e como o implementamos com os serviços da AWS.
Nas seções a seguir, discutiremos os detalhes de cada etapa e mostraremos como incorporar esse processo em uma orquestração automatizada e repetível e um fluxo de trabalho de CI/CD para os modelos de ML e o código de inferência correspondente.
Preparar
Os dispositivos de borda geralmente vêm com computação e memória limitadas em comparação com um ambiente de nuvem onde CPUs e GPUs poderosas podem executar modelos de ML facilmente. Diferentes técnicas de otimização de modelo permitem adaptar um modelo para uma plataforma específica de software ou hardware para aumentar a velocidade de previsão sem perder a precisão.
Neste exemplo, exportamos o modelo treinado no pipeline de treinamento para o formato ONNX para portabilidade, possíveis otimizações, bem como tempos de execução de borda otimizados, e registramos o modelo em Registro de modelos do Amazon SageMaker. Nesta etapa, criamos um novo componente do modelo Greengrass incluindo o modelo registrado mais recente para implantação subsequente.
Implantação
Um mecanismo de implantação seguro e confiável é fundamental ao implantar um modelo da nuvem para um dispositivo de borda. Como o AWS IoT Greengrass já incorpora um sistema de implantação de borda robusto e seguro, estamos usando isso para fins de implantação. Antes de examinarmos detalhadamente nosso processo de implantação, vamos recapitular rapidamente como funcionam as implantações do AWS IoT Greengrass. No centro do sistema de implantação do AWS IoT Greengrass estão componentes, que definem os módulos de software implantados em um dispositivo de borda executando o AWS IoT Greengrass Core. Eles podem ser componentes privados criados por você ou componentes públicos fornecidos por AWS ou o mais amplo Comunidade Greengrass. Vários componentes podem ser agrupados como parte de uma implantação. Uma configuração de implantação define os componentes incluídos em uma implantação e os dispositivos de destino da implantação. Ele pode ser definido em um arquivo de configuração de implantação (JSON) ou por meio do console do AWS IoT Greengrass ao criar uma nova implantação.
Criamos os dois componentes do Greengrass a seguir, que são então implantados no dispositivo de borda por meio do processo de implantação:
- Modelo empacotado (componente privado) – Este componente contém o modelo treinado e de ML no formato ONNX.
- Código de inferência (componente privado) – Além do modelo de ML em si, precisamos implementar alguma lógica de aplicação para lidar com tarefas como preparação de dados, comunicação com o modelo para inferência e pós-processamento dos resultados da inferência. Em nosso exemplo, desenvolvemos um componente privado baseado em Python para lidar com as seguintes tarefas:
- Instale os componentes de tempo de execução necessários, como o pacote Ultralytics YOLOv8 Python.
- Em vez de capturar imagens de uma transmissão ao vivo de câmera, simulamos isso carregando imagens preparadas de um diretório específico e preparando os dados da imagem de acordo com os requisitos de entrada do modelo.
- Faça chamadas de inferência no modelo carregado com os dados de imagem preparados.
- Verifique as previsões e carregue os resultados da inferência de volta para a nuvem.
Se você quiser dar uma olhada mais profunda no código de inferência que construímos, consulte o GitHub repo.
Inferência
O processo de inferência do modelo no dispositivo de borda é iniciado automaticamente após a conclusão da implantação dos componentes mencionados acima. O componente de inferência personalizado executa periodicamente o modelo de ML com imagens de um diretório local. O resultado da inferência por imagem retornada do modelo é um tensor com o seguinte conteúdo:
- Pontuações de confiança – Quão confiante o modelo está em relação às detecções
- Coordenadas do objeto – As coordenadas do objeto de arranhão (x, y, largura, altura) detectadas pelo modelo na imagem
No nosso caso, o componente de inferência se encarrega de enviar os resultados da inferência para um tópico MQTT específico no AWS IoT, onde pode ser lido para processamento posterior. Essas mensagens podem ser visualizadas por meio do cliente de teste MQTT no console do AWS IoT para depuração. Em um ambiente de produção, você pode decidir notificar automaticamente outro sistema que se encarrega de remover etiquetas metálicas defeituosas da linha de produção.
Orquestração
Conforme visto nas seções anteriores, várias etapas são necessárias para preparar e implantar um modelo de ML, o código de inferência correspondente e o tempo de execução ou agente necessário para um dispositivo de borda. Step Functions é um serviço totalmente gerenciado que permite orquestrar essas etapas dedicadas e projetar o fluxo de trabalho na forma de uma máquina de estado. A natureza sem servidor deste serviço e os recursos nativos do Step Functions, como integrações de API de serviços da AWS, permitem que você configure rapidamente esse fluxo de trabalho. Recursos integrados, como novas tentativas ou registros, são pontos importantes para construir orquestrações robustas. Para obter mais detalhes sobre a definição da máquina de estado em si, consulte o Repositório GitHub ou verifique o gráfico da máquina de estado no console do Step Functions depois de implantar este exemplo em sua conta.
Implantação de infraestrutura e integração em CI/CD
O pipeline de CI/CD para integrar e construir todos os componentes de infraestrutura necessários segue o mesmo padrão ilustrado em Parte 1 desta série. Nós usamos o Kit de desenvolvimento em nuvem da AWS (AWS CDK) para implantar os pipelines necessários de AWS Code Pipeline.
Aprendizagens
Existem várias maneiras de construir uma arquitetura para um sistema de implantação de borda de modelo de ML automatizado, robusto e seguro, que geralmente depende muito do caso de uso e de outros requisitos. No entanto, aqui estão alguns aprendizados que gostaríamos de compartilhar com você:
- Avalie antecipadamente se o adicional Requisitos de recursos de computação do AWS IoT Greengrass ajuste ao seu caso, especialmente com dispositivos de borda restrita.
- Estabeleça um mecanismo de implantação que integre uma etapa de verificação dos artefatos implantados antes da execução no dispositivo de borda para garantir que nenhuma violação ocorreu durante a transmissão.
- É uma boa prática manter os componentes de implantação no AWS IoT Greengrass tão modulares e independentes quanto possível para poder implantá-los de forma independente. Por exemplo, se você tiver um módulo de código de inferência relativamente pequeno, mas um modelo de ML grande em termos de tamanho, nem sempre será necessário implantar os dois se apenas o código de inferência tiver mudado. Isso é especialmente importante quando você tem largura de banda limitada ou conectividade de dispositivo de ponta de alto custo.
Conclusão
Isso conclui nossa série de três partes sobre a construção de um pipeline MLOps completo para inspeção visual de qualidade na borda. Analisamos os desafios adicionais que surgem com a implantação de um modelo de ML na borda, como empacotamento de modelo ou orquestração de implantação complexa. Implementamos o pipeline de forma totalmente automatizada para que possamos colocar nossos modelos em produção de forma robusta, segura, repetível e rastreável. Sinta-se à vontade para usar a arquitetura e a implementação desenvolvidas nesta série como ponto de partida para seu próximo projeto habilitado para ML. Se você tiver alguma dúvida sobre como arquitetar e construir tal sistema para o seu ambiente, por favor alcançar. Para outros tópicos e casos de uso, consulte nosso Machine Learning e Internet das coisas blogs.
Sobre os autores
Michael Roth é arquiteto de soluções sênior na AWS, apoiando clientes de manufatura na Alemanha para resolver seus desafios de negócios por meio da tecnologia AWS. Além do trabalho e da família, ele se interessa por carros esportivos e gosta de café italiano.
Jörg Wöhrle é arquiteto de soluções na AWS e trabalha com clientes de manufatura na Alemanha. Apaixonado por automação, Joerg trabalhou como desenvolvedor de software, engenheiro de DevOps e engenheiro de confiabilidade de sites em sua vida pré-AWS. Além da nuvem, ele é um corredor ambicioso e gosta de passar bons momentos com sua família. Portanto, se você tiver um desafio de DevOps ou quiser correr: informe-o.
Johannes Langer é arquiteto de soluções sênior na AWS, trabalhando com clientes empresariais na Alemanha. Johannes é apaixonado por aplicar aprendizado de máquina para resolver problemas reais de negócios. Em sua vida pessoal, Johannes gosta de trabalhar em projetos de reforma residencial e de passar tempo ao ar livre com sua família.
- 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. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :tem
- :é
- :onde
- $UP
- 150
- 7
- a
- Capaz
- Sobre
- Segundo
- Conta
- precisão
- real
- adicionar
- Adição
- Adicional
- avançar
- Depois de
- contra
- Agente
- Todos os Produtos
- permitir
- permite
- já
- tb
- sempre
- Amazon
- Amazon EC2
- Amazon Web Services
- ambicioso
- an
- e
- Outro
- qualquer
- api
- Aplicação
- aplicações
- Aplicar
- Aplicando
- arquitetura
- SOMOS
- AS
- de lado
- At
- automatizar
- Automatizado
- automatiza
- automaticamente
- Automação
- longe
- AWS
- AWS IoT Greengrass
- em caminho duplo
- Largura de Banda
- BE
- Porque
- tornam-se
- sido
- antes
- Começo
- além de
- entre
- Pós
- Grande
- Blogs
- ambos
- mais amplo
- corretor
- construir
- Prédio
- construído
- construídas em
- empacotado
- negócio
- mas a
- by
- chamadas
- Câmera
- CAN
- capacidades
- Cuidado
- carros
- casas
- casos
- desafiar
- desafios
- mudado
- verificar
- a verificação
- cliente
- Na nuvem
- código
- Café
- como
- comum
- comunicar
- Comunicação
- comparado
- integrações
- componente
- componentes
- Computar
- confiante
- Configuração
- Conectividade
- consecutivo
- cônsul
- restrições
- contém
- conteúdo
- núcleo
- software principal
- Correspondente
- Custo
- crio
- Criar
- personalizadas
- Clientes
- dados,
- Preparação de dados
- decidir
- dedicado
- mais profunda
- definir
- definido
- Define
- definição
- entregando
- Entrega
- dependente
- implantar
- implantado
- Implantação
- desenvolvimento
- Implantações
- Design
- detalhe
- detalhes
- descobrir
- detectou
- desenvolvido
- Developer
- Desenvolvimento
- dispositivo
- Dispositivos/Instrumentos
- diferente
- discutir
- discutido
- dividido
- do
- não
- down
- dois
- durante
- cada
- mais fácil
- facilmente
- borda
- eficiente
- eficientemente
- esforço
- ou
- embutir
- criptografia
- end-to-end
- Motor
- engenheiro
- garantir
- Empreendimento
- Todo
- Meio Ambiente
- especialmente
- avaliadas
- Mesmo
- exemplo
- família
- longe
- Moda
- defeituoso
- Funcionalidades
- sentir
- poucos
- Envie o
- caber
- Foco
- seguinte
- segue
- Escolha
- formulário
- formato
- Gratuito
- da
- totalmente
- funções
- mais distante
- gerar
- Alemanha
- Go
- Bom estado, com sinais de uso
- GPUs
- gráfico
- manipular
- aconteceu
- Hardware
- Ter
- altura
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- de alto nível
- ele
- sua
- Início
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- if
- imagem
- imagens
- executar
- implementação
- implementado
- importante
- melhoria
- in
- incluído
- inclui
- Incluindo
- Entrada
- Crescimento
- independentemente
- industrial
- Infraestrutura
- entrada
- instalar
- instalando
- instância
- integrar
- Integra-se
- integração
- integrações
- interagir
- interessado
- Internet
- internet das coisas
- para dentro
- iot
- Dispositivo IoT
- IT
- italiano
- se
- jpg
- json
- apenas por
- Guarda
- Chave
- Saber
- marcação
- mais recente
- aprendizagem
- deixar
- vida
- como
- Limitado
- Line
- viver
- carregar
- carregamento
- local
- localizado
- logging
- lógica
- olhar
- olhou
- perder
- lote
- máquina
- aprendizado de máquina
- fazer
- Fazendo
- gerencia
- gerenciados
- de grupos
- fabrica
- mecanismo
- Memória
- mensagens
- metal
- Michael
- ML
- MLOps
- modelo
- modelos
- modulares
- Módulo
- Módulos
- mais
- a maioria
- múltiplo
- nativo
- Natureza
- você merece...
- Cria
- Novo
- Próximo
- não
- objeto
- of
- Oferece
- frequentemente
- on
- open source
- otimizado
- or
- orquestração
- Outros
- A Nossa
- Fora
- ao ar livre
- global
- pacote
- acondicionamento
- parte
- peças
- paixão
- apaixonado
- padrão
- para
- pessoal
- oleoduto
- plataforma
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- por favor
- ponto
- pontos
- portabilidade
- possível
- Publique
- poderoso
- prática
- predição
- Previsões
- preparação
- Preparar
- preparado
- preparação
- privado
- problemas
- processo
- em processamento
- produzir
- Produção
- projeto
- projetos
- fornecido
- fornece
- público
- fins
- colocar
- Python
- Dúvidas
- qualidade
- Frequentes
- Links
- rapidamente
- Leia
- reais
- recapitulação
- recomendar
- reduzir
- reduz
- referir
- em relação a
- registrado
- relativamente
- confiabilidade
- confiável
- remover
- removendo
- Repetivel
- substituído
- requerer
- requeridos
- Requisitos
- recurso
- resultar
- Resultados
- uma conta de despesas robusta
- Execute
- corredor
- corrida
- é executado
- sábio
- mesmo
- escalável
- arranhar
- seções
- seguro
- firmemente
- Vejo
- visto
- envio
- senior
- Série
- servidor
- Serverless
- serviço
- Serviços
- conjunto
- contexto
- instalação
- Partilhar
- rede de apoio social
- mostrar
- mostrou
- Shows
- local
- Tamanho
- pequeno
- So
- Software
- solução
- Soluções
- RESOLVER
- alguns
- específico
- velocidade
- Passar
- Esportes
- Comece
- começa
- Estado
- Passo
- Passos
- franco
- transmitir canais
- subseqüente
- tal
- Apoiar
- .
- equipamento
- toma
- tomar
- Target
- tarefas
- técnicas
- Tecnologia
- condições
- teste
- que
- A
- O Estado
- deles
- Eles
- então
- Este
- coisas
- isto
- aqueles
- três
- três etapas
- Através da
- tempo
- para
- juntos
- tópico
- Temas
- rastreável
- treinado
- Training
- transferência
- dois
- tipicamente
- único
- Upload
- us
- usar
- caso de uso
- usava
- utilização
- VALIDAR
- valor
- Verificação
- muito
- via
- queremos
- Caminho..
- maneiras
- we
- web
- serviços web
- BEM
- quando
- qual
- inteiro
- largura
- de
- dentro
- sem
- Atividades:
- trabalhou
- de gestão de documentos
- trabalhar
- seria
- X
- ainda
- Vocês
- investimentos
- zefirnet