fbpx

Extrair insights valiosos de dados coletados de sensores de máquinas pode ser difícil, muitas vezes exigindo a análise de dados de muitos sensores em paralelo, mas os resultados obtidos com a melhoria de processo compensam o investimento.

Devido à essa complexidade de análise de dados, os métodos de aprendizagem de máquina (ML - Machine Learning) estão se tornando cada vez mais populares para analisar dados de processos industriais.

Neste artigo vamos discutir por que, e como é possível, executar modelos de ML na borda, ou seja, próximo ao processo.

Porquê Machine Learning na borda?

Existem dois casos de usos principais para a ML em processos industriais:

  1. Detecção de anomalias;
  2. Maior tempo de funcionamento dos sistemas e máquinas sem que haja problemas.

Para esses dois casos de uso, há muitas situações em que é mais recomendado executar o modelo de Aprendizagem de Máquina na borda, próximo à origem dos dados. As razões geralmente se enquadram em uma dessas três categorias a seguir:

  1. Os resultados são necessários apenas localmente: Para um detector de anomalias que analisa dados de uma máquina e dispara uma ação em outra máquina ou em um sistema local, o envio de dados para a nuvem para análise apenas aumenta a complexidade e o custo da aplicação.
  2. A latência é crítica: Para os gatilhos de máquina para máquina, a latência é geralmente crítica e os requisitos de tempo podem não ser atendidos se os dados forem analisados na nuvem.
  3. O volume de dados precisa ser reduzido: Em muitos casos, a largura de banda para a nuvem é limitada, não confiável ou cara, especialmente em ativos móveis. Usar a ML para analisar o conjunto completo de dados localmente e depois enviar dados consolidados e agregados de valor mais alto para a nuvem pode ser a melhor solução.

O fluxo de trabalho da ML

O fluxo de trabalho da aprendizagem de máquina consiste de duas etapas principais: desenvolvimento do modelo e execução do modelo. O primeiro passo é uma operação offline onde os dados armazenados são usados para treinar e ajustar um modelo. Uma vez que os resultados satisfatórios sejam alcançados, o modelo treinado é implantado em um ambiente de execução para fazer previsões baseadas em dados em tempo real. A borda é normalmente usada apenas para executar o modelo da ML. No entanto, o desenvolvimento do modelo de ML é um processo iterativo em que o modelo pode ser otimizado/aprimorado ao longo do tempo, quanto mais dados estiverem disponíveis. Portanto, deve-se esperar que o modelo de ML na borda seja atualizado várias vezes durante o ciclo de vida da aplicação.

A aprendizagem de máquina para dados de streaming

Ao desenvolver/treinar, os dados do modelo de ML são preparados para corresponder aos requisitos do ambiente de ML. Algumas etapas comuns de preparação são:

  • Remover os excessos e dados inválidos, preenchendo os espaços em branco
  • Escalonar os valores dos sensores
  • Extrair recursos, como média/variância ou converter para domínio de frequência
  • Alinhar os valores no tempo

Ao executar o modelo de ML em um ambiente de streaming, todas essas operações devem ser aplicadas antes que os dados possam ser enviados para o modelo. Especialmente, a última operação, alinhar dados no tempo, requer alguma atenção especial. Ao treinar um modelo, os dados geralmente são armazenados em arquivos ou em um banco de dados com todos os valores de sensores presentes para cada intervalo de tempo, para que o modelo receba o mesmo conjunto de dados a cada vez. Em um ambiente de streaming, os dados dos sensores são recebidos em série, com cada sensor enviando dados em intervalos repetitivos, mas independentemente de todos os outros sensores e possivelmente em taxas de repetição diferentes. Antes de podermos fornecer dados de streaming para um modelo de ML, devemos alinhar os dados em limites de tempo regulares e, potencialmente, repetir dados de sensores que fornecem dados com uma frequência mais baixa.

A aprendizagem de máquina com a Crosser

A solução Edge Streaming Analytics da Crosser simplifica o desenvolvimento e a manutenção da computação de borda, oferecendo um modelo de programação baseado em fluxo, por meio da ferramenta de design visual FlowStudio e da orquestração central de nós de borda (Edge Nodes) por meio do EdgeDirector. Ambas ferramentas estão disponíveis através do serviço Crosser Cloud. Na borda, o software Crosser Node é instalado como um único Docker container e os fluxos são facilmente implantados e atualizados através do serviço de nuvem em qualquer grupo de nós com uma única operação.

Para obter mais informações sobre a solução Edge Streaming Analytics da Crosser, acesse aqui.

Além das ferramentas padrão para limpeza e preparação de dados, os seguintes recursos estão disponíveis para oferecer suporte aos modelos de ML em execução na borda:

  1. Ambiente padrão do Python acessível a partir de fluxos internos;
  2. Catálogo central de recursos para gerenciar modelos de ML e scripts Python;
  3. Junte-se ao módulo para alinhar dados de streaming em intervalos de tempo.

Traga sua própria AI

Atualmente, o Python é o ambiente mais comum para desenvolver modelos de ML. Mesmo assim, há um grande número de configurações alternativas sendo usadas. Há Python versão 2 e 3, e um grande número de estruturas de ML, como Scikit-learn, Tensorflow, Pytorch e várias opções comerciais. Para ter certeza de que podemos hospedar seu modelo de ML independentemente das escolhas feitas pela sua equipe de ciência de dados, a Crosser decidiu introduzir o conceito “Traga sua própria AI”.

Está gostando desse post? Então, assine a nossa newsletter!

No Edge Node da Crosser, você tem acesso a um ambiente Python padrão (versão 2 ou 3) e pode instalar quaisquer bibliotecas/estruturas adicionais que possam ser instaladas usando a cadeia de ferramentas padrão do Python. Esse ambiente é configurado por meio de um módulo de fluxo padrão, no qual você configura as bibliotecas necessárias e o código que deseja executar. Dessa forma, você pode ter certeza de que seu modelo pode ser executado no ambiente correto, conforme esperado pelos desenvolvedores do seu modelo.

Mesmo que atualmente o Python seja a escolha mais comum para muitos projetos de aprendizagem das máquinas, e a escolha óbvia para o suporte de AML inicial no nó de borda Crosser, existem outras alternativas como R, Javascript, Java, Julia… A Crosser pretende dar suporte aos ambientes de tempo de execução mais relevantes para tornar os modelos de ML em execução na borda o mais simples possível. Iniciativas como o formato ONNX, iniciado pela Microsoft e Facebook, objetivam fornecer um formato de interoperabilidade padrão para modelos de ML, para que qualquer ambiente de tempo de execução que dá suporte ao ONNX possa executar um modelo, independentemente de qual estrutura for usada para construí-lo. Isso também facilitará a execução de modelos de ML na borda. O suporte nativo da ONNX está agendado para meados de 2019 no Edge Node da Crosser.

Gerenciando recursos da ML

Para executar um modelo de ML na borda, o modelo treinado deve estar presente em cada Edge Node que precisa dele. Além disso, você pode precisar de algum código Python para a adaptação final dos dados de streaming e mapear os resultados do modelo para um formato que possa ser usado pelos consumidores locais.

O catálogo central de recursos na nuvem Crosser é usado para gerenciar todos os seus recursos de ML. Você pode fazer upload de modelos de ML treinados, bem como de scripts Python, e depois consultá-los facilmente ao criar fluxos. Quando você implantar esses fluxos em Edge Nodes, o sistema garante que todos os recursos necessários sejam baixados nos Edge Nodes relevantes.

Quando um fluxo for atualizado, por exemplo referenciando um novo modelo de ML, todos os Edge Nodes são atualizados automaticamente com uma única operação. O controle de versão de fluxo é usado para acompanhar suas alterações.

Para saber mais sobre esta solução e inscrever-se para receber uma demonstração ou teste, entre em contato conosco aqui!

Fonte: Crosser.io

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *