Este exemplo de arquitetura mostra uma abordagem de ponta a ponta para a visão computacional da Internet das Coisas (IoT) na fabricação.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados
- O módulo personalizado do IoT Edge captura o fluxo de vídeo ao vivo, divide-o em quadros e executa inferência nos dados da imagem para determinar se ocorreu um incidente.
- O módulo personalizado também usa métodos do SDK de armazenamento do Azure ou API de blob para carregar os arquivos de vídeo brutos no Armazenamento do Azure, que atua como um armazenamento de mídia bruto.
- O módulo personalizado envia os resultados e metadados de inferência para o Hub IoT do Azure, que atua como um hub de mensagens central para comunicações em ambas as direções.
- Os Aplicativos Lógicos do Azure monitoram o Hub IoT em busca de mensagens sobre eventos de incidente. Os Aplicativos Lógicos roteiam resultados e metadados de inferência para o Microsoft Dataverse para armazenamento.
- Quando ocorre um incidente, os Aplicativos Lógicos enviam notificações por SMS e e-mail para o engenheiro do site. O engenheiro do site usa um aplicativo móvel baseado no Power Apps para reconhecer e resolver o incidente.
- O Power Apps extrai resultados de inferência e metadados do Dataverse e arquivos de vídeo brutos do Armazenamento de Blob para exibir informações relevantes sobre o incidente. O Power Apps atualiza o Dataverse com a resolução de incidentes fornecida pelo engenheiro do site. Esta etapa atua como validação human-in-the-loop para fins de reciclagem de modelos.
- O Azure Data Factory é o orquestrador de dados que busca arquivos de vídeo brutos do armazenamento de mídia bruta e obtém os resultados de inferência e metadados correspondentes do Dataverse.
- O Data Factory armazena os arquivos de vídeo brutos, além dos metadados, no Azure Data Lake, que serve como um arquivo de vídeo para fins de auditoria.
- O Data Factory quebra arquivos de vídeo brutos em quadros, converte os resultados de inferência em rótulos e carrega os dados no Armazenamento de Blobs, que atua como o armazenamento de dados de ML.
- As alterações no código do modelo acionam automaticamente o pipeline do orquestrador de modelos do Azure Pipelines, que os operadores também podem acionar manualmente. As alterações de código também iniciam o processo de treinamento e validação do modelo de ML no Azure Machine Learning.
- O Azure Machine Learning começa a treinar o modelo validando os dados do armazenamento de dados de ML e copiando os conjuntos de dados necessários para o Armazenamento de Blobs Premium do Azure. Essa camada de desempenho fornece um cache de dados para um treinamento de modelo mais rápido.
- O Azure Machine Learning usa o conjunto de dados no cache de dados Premium para treinar o modelo, validar o desempenho do modelo treinado, pontuá-lo em relação ao modelo recém-treinado e registrar o modelo no registro do Azure Machine Learning.
- O orquestrador de modelos do Azure Pipelines analisa o desempenho do modelo de ML recém-treinado e determina se ele é melhor do que os modelos anteriores. Se o novo modelo tiver um desempenho melhor, o pipeline baixará o modelo do Aprendizado de Máquina do Azure e criará uma nova versão do módulo de inferência de ML para publicar no Registro de Contêiner do Azure.
- Quando um novo módulo de inferência de ML está pronto, o Azure Pipelines implanta o contêiner do módulo do Registro de Contêiner para o módulo IoT Edge no Hub IoT.
- O Hub IoT atualiza o dispositivo IoT Edge com o novo módulo de inferência de ML.
Componentes
- O serviço Azure IoT Edge analisa os dados do dispositivo localmente para enviar menos dados para a nuvem, reagir rapidamente a eventos e operar em condições de baixa conectividade. Um módulo de ML do IoT Edge pode extrair informações acionáveis do streaming de dados de vídeo.
- O Hub IoT do Azure é um serviço gerenciado que permite comunicações bidirecionais confiáveis e seguras entre milhões de dispositivos IoT e um back-end baseado em nuvem. O Hub IoT fornece autenticação por dispositivo, roteamento de mensagens, integração com outros serviços do Azure e recursos de gerenciamento para controlar e configurar dispositivos IoT.
- As Aplicações Lógicas do Azure são um serviço de nuvem sem servidor para criar e executar fluxos de trabalho automatizados que integram aplicações, dados, serviços e sistemas. Os desenvolvedores podem usar um designer visual para agendar e orquestrar fluxos de trabalho de tarefas comuns. O Logic Apps tem conectores para muitos serviços de nuvem populares, produtos locais e outros aplicativos SaaS (software como serviço). Nesta solução, o Logic Apps executa o fluxo de trabalho de notificação automatizado que envia alertas por SMS e e-mail aos engenheiros do site.
- Power Apps é uma plataforma de dados e um conjunto de aplicativos, serviços e conectores. Ele serve como um ambiente de desenvolvimento rápido de aplicativos. A plataforma de dados subjacente é o Microsoft Dataverse.
- O Dataverse é uma plataforma de armazenamento baseada na nuvem para Power Apps. O Dataverse suporta notificações human-in-the-loop e armazena metadados associados ao pipeline de dados MLOps.
- O Armazenamento de Blobs do Azure é um armazenamento de objetos escalável e seguro para dados não estruturados. Você pode usá-lo para arquivos, data lakes, computação de alto desempenho, aprendizado de máquina e cargas de trabalho nativas da nuvem. Nesta solução, o armazenamento de Blob fornece um armazenamento de dados local para o armazenamento de dados de ML e um cache de dados Premium para treinar o modelo de ML. O nível premium do Armazenamento de Blob destina-se a cargas de trabalho que exigem tempos de resposta rápidos e altas taxas de transação, como a rotulagem de vídeo human-in-the-loop neste exemplo.
- O Data Lake Storage é um serviço de armazenamento massivamente escalável e seguro para cargas de trabalho de análise de alto desempenho. Os dados normalmente vêm de várias fontes heterogêneas e podem ser estruturados, semiestruturados ou não estruturados. O Azure Data Lake Storage Gen2 combina os recursos do Azure Data Lake Storage Gen1 com o Armazenamento de Blob e fornece semântica do sistema de arquivos, segurança no nível de arquivo e escala. Ele também oferece os recursos de armazenamento hierárquico, alta disponibilidade e recuperação de desastres do Blob Storage. Nesta solução, o Data Lake Storage fornece o armazenamento de vídeo de arquivamento para os arquivos de vídeo brutos e metadados.
- O Azure Data Factory é uma solução híbrida, totalmente gerenciada e sem servidor para fluxos de trabalho de integração e transformação de dados. Ele fornece uma interface do usuário livre de código e um painel de monitoramento fácil de usar. O Azure Data Factory usa pipelines para movimentação de dados. O mapeamento de fluxos de dados executa várias tarefas de transformação, como extrair, transformar e carregar (ETL) e extrair, carregar e transformar (ELT). Neste exemplo, o Data Factory orquestra os dados em um pipeline de ETL para os dados de inferência, que ele armazena para fins de reciclagem.
- O Azure Machine Learning é um serviço de aprendizagem automática de nível empresarial para criar e implementar modelos rapidamente. Ele fornece aos usuários em todos os níveis de habilidade um designer low-code, aprendizado de máquina automatizado e um ambiente de notebook Jupyter hospedado que suporta vários IDEs.
- O Azure Pipelines, parte dos serviços de desenvolvedor baseados em equipe do Azure DevOps, cria pipelines de integração contínua (CI) e implantação contínua (CD). Neste exemplo, o orquestrador de modelos do Azure Pipelines valida o código de ML, aciona pipelines de tarefas sem servidor, compara modelos de ML e cria o contêiner de inferência.
- O Registro de Contêiner cria e gerencia o Registro do Docker para criar, armazenar e gerenciar imagens de contêiner do Docker, incluindo modelos de ML em contêineres.
- O Azure Monitor coleta telemetria dos recursos do Azure, para que as equipes possam identificar problemas proativamente e maximizar o desempenho e a confiabilidade.
Alternativas
Em vez de usar o pipeline de dados para dividir o fluxo de vídeo em quadros de imagem, você pode implantar um módulo de Armazenamento de Blob do Azure no dispositivo IoT Edge. Em seguida, o módulo de inferência carrega os quadros de imagem inferenciados para o módulo de armazenamento no dispositivo de borda. O módulo de armazenamento determina quando carregar os quadros diretamente no armazenamento de dados ML. A vantagem dessa abordagem é que ela remove uma etapa do pipeline de dados. A desvantagem é que o dispositivo de borda está firmemente acoplado ao Armazenamento de Blobs do Azure.
Para orquestração de modelos, você pode usar o Azure Pipelines ou o Azure Data Factory.
- A vantagem do Azure Pipelines é sua estreita ligação com o código do modelo de ML. Você pode acionar o pipeline de treinamento facilmente com alterações de código por meio de CI/CD.
- O benefício do Data Factory é que cada pipeline pode provisionar os recursos de computação necessários. O Data Factory não retém os agentes do Azure Pipelines para executar o treinamento de ML, o que pode congestionar o fluxo normal de CI/CD.
Detalhes do cenário
Fábricas inteligentes totalmente automatizadas usam inteligência artificial (IA) e aprendizado de máquina (ML) para analisar dados, executar sistemas e melhorar processos ao longo do tempo.
Neste exemplo, as câmeras enviam imagens para um dispositivo do Azure IoT Edge que executa um modelo de ML. O modelo calcula inferências e envia saídas acionáveis para a nuvem para processamento posterior. As intervenções humanas fazem parte da inteligência que o modelo de ML capta. O processo de ML é um ciclo contínuo de treinamento, teste, ajuste e validação dos algoritmos de ML.
Potenciais casos de utilização
Os processos de fabricação usam visão computacional IoT em aplicações de segurança e garantia de qualidade. Os sistemas de visão computacional IoT podem:
- Ajude a garantir a conformidade com as diretrizes de fabricação, como a rotulagem adequada.
- Identificar defeitos de fabricação, como desníveis de superfície.
- Aumente a segurança monitorando as entradas de edifícios ou áreas.
- Defender a segurança dos trabalhadores através da deteção da utilização de equipamentos de proteção individual (EPI) e outras práticas de segurança.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Disponibilidade
Os aplicativos baseados em ML normalmente exigem um conjunto de recursos para treinamento e outro para servir. Os recursos de treinamento geralmente não precisam de alta disponibilidade, pois as solicitações de produção em tempo real não usam diretamente esses recursos. Os recursos necessários para atender às solicitações precisam ter alta disponibilidade.
Operações
Esta solução divide-se em três áreas operacionais:
Em operações de IoT, um modelo de ML no dispositivo de borda usa imagens em tempo real de câmeras conectadas para quadros de vídeo de inferência. O dispositivo de borda também envia fluxos de vídeo em cache para o armazenamento em nuvem para uso em auditoria e reciclagem de modelos. Após o retreinamento de ML, o Hub IoT do Azure atualiza o dispositivo de borda com o novo módulo de inferência de ML.
O MLOps usa práticas de DevOps para orquestrar operações de treinamento, teste e implantação de modelos. O gerenciamento do ciclo de vida do MLOps automatiza o processo de uso de modelos de ML para a tomada de decisões complexas ou a produção dos modelos. A chave para o MLOps é a coordenação estreita entre as equipes que criam, treinam, avaliam e implantam os modelos de ML.
As operações human-in-the-loop notificam as pessoas para intervirem em determinadas etapas da automação. Em transações human-in-the-loop, os trabalhadores verificam e avaliam os resultados das previsões de aprendizado de máquina. As intervenções humanas tornam-se parte da inteligência que o modelo de ML captura e ajudam a validar o modelo.
As seguintes funções humanas fazem parte desta solução:
Os engenheiros do site recebem as notificações de incidentes que os Aplicativos Lógicos enviam e validam manualmente os resultados ou previsões do modelo de ML. Por exemplo, o engenheiro do local pode examinar uma válvula que o modelo previu ter falhado.
Os rotuladores de dados rotulam conjuntos de dados para reciclagem, para completar o ciclo da solução de ponta a ponta. O processo de etiquetagem de dados é especialmente importante para dados de imagem, como um primeiro passo no treinamento de um modelo confiável através de algoritmos. Neste exemplo, o Azure Data Factory organiza os quadros de vídeo em agrupamentos positivos e falsos positivos, o que facilita o trabalho do rotulador de dados.
Os cientistas de dados usam os conjuntos de dados rotulados para treinar os algoritmos para fazer previsões corretas da vida real. Os cientistas de dados usam MLOps com Ações do GitHub ou Pipelines do Azure em um processo de CI para treinar e validar automaticamente um modelo. O treinamento pode ser acionado manualmente ou automaticamente verificando novos scripts ou dados de treinamento. Os cientistas de dados trabalham em um espaço de trabalho do Azure Machine Learning que pode registrar, implantar e gerenciar modelos automaticamente.
Os engenheiros de IoT usam o Azure Pipelines para publicar módulos do IoT Edge em contêineres no Registro de Contêiner. Os engenheiros podem implantar e dimensionar a infraestrutura sob demanda usando um pipeline de CD.
Os auditores de segurança analisam fluxos de vídeo arquivados para detetar anomalias, avaliar a conformidade e confirmar os resultados quando surgem dúvidas sobre as previsões de um modelo.
Nesta solução, o Hub IoT ingere a telemetria das câmeras e envia as métricas para o Azure Monitor, para que os engenheiros do site possam investigar e solucionar problemas. O Azure Machine Learning envia métricas de observabilidade e telemetria de modelo para o Azure Monitor, ajudando os engenheiros de IoT e cientistas de dados a otimizar as operações.
Desempenho
Os dispositivos IoT têm memória e poder de processamento limitados, por isso é importante limitar o tamanho do contêiner de modelo enviado para o dispositivo. Certifique-se de usar um dispositivo IoT que possa fazer inferência de modelo e produzir resultados em um período de tempo aceitável.
Para otimizar o desempenho para modelos de treinamento, esta arquitetura de exemplo usa o Armazenamento de Blob Premium do Azure. Essa camada de desempenho foi projetada para cargas de trabalho que exigem tempos de resposta rápidos e altas taxas de transação, como o cenário de rotulagem de vídeo human-in-the-loop.
As considerações de desempenho também se aplicam ao pipeline de ingestão de dados. O Data Factory maximiza a movimentação de dados fornecendo uma solução econômica e de alto desempenho.
Escalabilidade
A maioria dos componentes usados nesta solução são serviços gerenciados que são dimensionados automaticamente.
A escalabilidade para o aplicativo IoT depende de cotas e limitação do Hub IoT. Os fatores a considerar incluem:
- A quota diária máxima de mensagens para o Hub IoT.
- A quota de dispositivos ligados numa instância do Hub IoT.
- Rendimento de ingestão e processamento.
Em ML, escalabilidade refere-se à expansão de clusters usados para treinar modelos em relação a grandes conjuntos de dados. A escalabilidade também permite que o modelo de ML atenda às demandas dos aplicativos que o consomem. Para atender a essas necessidades, o cluster de ML deve fornecer escalabilidade horizontal em CPUs e em nós habilitados para GPU (unidade de processamento gráfico).
Para obter orientações gerais sobre como projetar soluções escaláveis, consulte a lista de verificação de eficiência de desempenho no Centro de Arquitetura do Azure.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
O gerenciamento de acesso no Dataverse e em outros serviços do Azure ajuda a garantir que apenas usuários autorizados possam acessar o ambiente, os dados e os relatórios. Esta solução utiliza o Azure Key Vault para gerir palavras-passe e segredos. O armazenamento é criptografado usando chaves gerenciadas pelo cliente.
Para obter orientações gerais sobre como projetar soluções seguras de IoT, consulte a Documentação de Segurança do Azure e a arquitetura de referência do Azure IoT.
Otimização de custos
A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.
No geral, utilize a calculadora de preços do Azure para prever os custos. Para outras considerações, consulte Otimização de custos.
O Azure Machine Learning também implanta os serviços Registro de Contêiner, Armazenamento do Azure e Cofre de Chaves do Azure, que incorrem em custos extras. Para obter mais informações, consulte Como funciona o Azure Machine Learning: arquitetura e conceitos.
O preço do Azure Machine Learning inclui cobranças para as máquinas virtuais (VMs) usadas para treinar o modelo na nuvem. Para obter informações sobre a disponibilidade do Azure Machine Learning e VMs por região do Azure, consulte Produtos disponíveis por região.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor Principal:
- Wilson Lee - Brasil | Engenheiro de Software Principal
Próximos passos
- Conceitos de IoT e Hub IoT do Azure
- O que é o Azure Logic Apps?
- O que é o Power Apps?
- Documentação do Microsoft Power Apps
- O que é o Microsoft Dataverse?
- Documentação do Microsoft Dataverse
- Introdução ao Azure Data Lake Storage Gen2
- O que é o Azure Data Factory?
- Documentação do Azure Machine Learning
- O que é o Azure DevOps?
- O que é o Azure Pipelines?
- Documentação do Azure Container Registry
- Descrição geral do Azure Monitor
- Azure IoT para locais de trabalho mais seguros
- A Dow Chemical usa IA de visão na borda para aumentar a segurança dos funcionários com o Azure
- Exemplo de GitHub de Deteção de Objeto de Borda