Hoje, a poluição do ar é um problema ambiental familiar que cria graves problemas respiratórios e cardíacos, que representam sérias ameaças à saúde. A chuva ácida, a destruição da camada de ozônio e o aquecimento global também são consequências adversas da poluição do ar. Há necessidade de monitoramento e automação inteligentes para evitar problemas graves de saúde e, em casos extremos, situações de risco de vida. A qualidade do ar é medida usando a concentração de poluentes no ar. Identificar os sintomas precocemente e controlar o nível de poluentes antes que se tornem perigosos é crucial. O processo de identificar a qualidade do ar e a anomalia no peso dos poluentes e diagnosticar rapidamente a causa raiz é difícil, caro e propenso a erros.
O processo de aplicação de soluções baseadas em IA e aprendizado de máquina (ML) para encontrar anomalias de dados envolve muita complexidade na ingestão, curadoria e preparação de dados no formato certo e, em seguida, otimizar e manter a eficácia desses modelos de ML por longos períodos de tempo. Tempo. Essa tem sido uma das barreiras para implementar e dimensionar rapidamente a adoção de recursos de ML.
Esta postagem mostra como usar uma solução integrada com Amazon Lookout para métricas e Mangueira de incêndio de dados do Amazon Kinesis para quebrar essas barreiras ingerindo dados de streaming de forma rápida e fácil e, posteriormente, detectando anomalias nos principais indicadores de desempenho de seu interesse.
O Lookout for Metrics detecta e diagnostica automaticamente anomalias (fora da norma) em dados comerciais e operacionais. É um serviço de ML totalmente gerenciado que usa modelos de ML especializados para detectar anomalias com base nas características de seus dados. Por exemplo, tendências e sazonalidade são duas características de métricas de séries temporais nas quais a detecção de anomalias com base em limites não funciona. As tendências são variações contínuas (aumentos ou diminuições) no valor de uma métrica. Por outro lado, a sazonalidade são padrões periódicos que ocorrem em um sistema, geralmente subindo acima de uma linha de base e depois diminuindo novamente. Você não precisa de experiência em ML para usar o Lookout for Metrics.
Demonstramos um cenário comum de monitoramento da qualidade do ar, no qual detectamos anomalias na concentração de poluentes no ar. Ao final desta postagem, você aprenderá a usar esses serviços gerenciados da AWS para ajudar a evitar problemas de saúde e aquecimento global. Você pode aplicar esta solução a outros casos de uso para melhor gerenciamento do ambiente, como detectar anomalias na qualidade da água, qualidade do solo e padrões de consumo de energia, para citar alguns.
Visão geral da solução
A arquitetura consiste em três blocos funcionais:
- Sensores sem fio colocados em locais estratégicos para detectar o nível de concentração de monóxido de carbono (CO), dióxido de enxofre (SO2) e dióxido de nitrogênio (NO2) no ar
- Ingestão e armazenamento de dados de streaming
- Detecção e notificação de anomalias
A solução fornece um caminho de dados totalmente automatizado desde os sensores até uma notificação enviada ao usuário. Você também pode interagir com a solução usando a IU do Lookout for Metrics para analisar as anomalias identificadas.
O diagrama a seguir ilustra nossa arquitetura de solução.
Pré-requisitos
Você precisa dos seguintes pré-requisitos antes de prosseguir com a solução. Para este post, usamos a região us-east-1.
- Baixe o script Python (publicar.py) e arquivo de dados do GitHub repo.
- Abra o
live_data.csv
arquivo em seu editor preferido e substitua as datas para a data de hoje e amanhã. Por exemplo, se a data de hoje for 8 de julho de 2022, substitua2022-03-25
de2022-07-08
. Mantenha o mesmo formato. Isso é necessário para simular os dados do sensor para a data atual usando o script do simulador de IoT. - Crie uma Serviço de armazenamento simples da Amazon (Amazon S3) e uma pasta chamada
air-quality
. Crie uma subpasta dentroair-quality
nomeadohistorical
. Para obter instruções, consulte Criação de uma pasta. - Nos envie os
live_data.csv
arquivo no bucket raiz do S3 ehistorical_data.json
na pasta histórica. - Crie uma Nuvem AWS9 ambiente de desenvolvimento, que usamos para executar o programa simulador Python para criar dados de sensor para esta solução.
Ingerir e transformar dados usando AWS IoT Core e Kinesis Data Firehose
Usamos um stream de entrega do Kinesis Data Firehose para ingerir os dados de streaming de Núcleo da AWS IoT e entregá-lo ao Amazon S3. Conclua as seguintes etapas:
- No console Kinesis Data Firehose, escolha Criar fluxo de entrega.
- Escolha fonte, escolha PUT direto.
- Escolha Destino, escolha Amazon S3.
- Escolha Nome do fluxo de entrega, insira um nome para seu fluxo de entrega.
- Escolha Caçamba S3, insira o bucket que você criou como pré-requisito.
- Insira valores para Prefixo do bucket do S3 e Prefixo de saída de erro do bucket do S3.Um dos principais pontos a serem observados é a configuração do prefixo personalizado configurado para o destino do Amazon S3. Esse padrão de prefixo garante que os dados sejam criados no bucket do S3 de acordo com a hierarquia de prefixo esperada pelo Lookout for Metrics. (Mais sobre isso posteriormente neste post.) Para obter mais informações sobre prefixos personalizados, consulte Prefixos personalizados para objetos Amazon S3.
- Escolha Intervalo de buffer, entrar
60
. - Escolha Criar ou atualizar a função do IAM.
- Escolha Criar fluxo de entrega.
Agora configuramos o AWS IoT Core e executamos o programa simulador de qualidade do ar. - No console do AWS IoT Core, criar uma política da AWS IoT chamado de administrador.
- No painel de navegação em Roteamento de mensagens, escolha Regras.
- Escolha Criar regra.
- Crie uma regra com o Ação do Kinesis Data Firehose(firehose).
Isso envia dados de uma mensagem MQTT para um fluxo de entrega do Kinesis Data Firehose. - Escolha Crie.
- Crie uma coisa da AWS IoT com nome
Test-Thing
e anexe a política que você criou. - Faça download do certificado, chave pública, chave privada, certificado de dispositivo e CA raiz para AWS IoT Core.
- Salve cada um dos arquivos baixados no
certificates
subdiretório que você criou anteriormente. - Faça upload de publish.py para o
iot-test-publish
pasta. - No console do AWS IoT Core, no painel de navegação, escolha Configurações.
- Debaixo Endpoint personalizado, copie o ponto de extremidade.
Este URL de endpoint personalizado do AWS IoT Core é pessoal para sua conta e região da AWS. - Substituir
customEndpointUrl
com seu URL de endpoint personalizado do AWS IoT Core, certificados com o nome do certificado eYour_S3_Bucket_Name
com o nome do seu bucket do S3.
Em seguida, você instala o pip e o AWS IoT SDK for Python. - Faça login no AWS Cloud9 e crie um diretório de trabalho em seu ambiente de desenvolvimento. Por exemplo:
aq-iot-publish
. - Crie um subdiretório para certificados em seu novo diretório de trabalho. Por exemplo:
certificates
. - Instale o AWS IoT SDK for Python v2 executando o seguinte na linha de comando.
- Para testar o pipeline de dados, execute o seguinte comando:
Você pode ver a carga útil na captura de tela a seguir.
Por fim, os dados são entregues ao bucket S3 especificado na estrutura de prefixo.
Os dados dos arquivos são os seguintes:
{"TIMESTAMP":"2022-03-20 00:00","LOCATION_ID":"B-101","CO":2.6,"SO2":62,"NO2":57}
{"TIMESTAMP":"2022-03-20 00:05","LOCATION_ID":"B-101","CO":3.9,"SO2":60,"NO2":73}
Os carimbos de data/hora mostram que cada arquivo contém dados para intervalos de 5 minutos.
Com o mínimo de código, agora ingerimos os dados do sensor, criamos um fluxo de entrada a partir dos dados ingeridos e armazenamos os dados em um bucket do S3 com base nos requisitos do Lookout for Metrics.
Nas seções a seguir, analisamos mais detalhadamente as construções no Lookout for Metrics e como é fácil configurar esses conceitos usando o console Lookout for Metrics.
Criar um detector
Um detector é um recurso Lookout for Metrics que monitora um conjunto de dados e identifica anomalias em uma frequência predefinida. Os detectores usam ML para encontrar padrões nos dados e distinguir entre variações esperadas nos dados e anomalias legítimas. Para melhorar seu desempenho, um detector aprende mais sobre seus dados ao longo do tempo.
Em nosso caso de uso, o detector analisa os dados do sensor a cada 5 minutos.
Para criar o detector, navegue até o console Lookout for Metrics e escolha Criar detector. Forneça o nome e a descrição (opcional) do detector, junto com o intervalo de 5 minutos.
Seus dados são criptografados por padrão com uma chave que a AWS possui e gerencia para você. Você também pode configurar se deseja usar uma chave de criptografia diferente daquela que é usada por padrão.
Agora vamos apontar esse detector para os dados nos quais você deseja que ele execute a detecção de anomalias.
Criar um conjunto de dados
Um conjunto de dados informa ao detector onde encontrar seus dados e quais métricas analisar em busca de anomalias. Para criar um conjunto de dados, conclua as etapas a seguir:
- No console do Amazon Lookout for Metrics, navegue até seu detector.
- Escolha Adicionar um conjunto de dados.
- Escolha Nome, insira um nome (por exemplo,
air-quality-dataset
). - Escolha Fonte de dados, escolha sua fonte de dados (para esta postagem, Amazon S3).
- Escolha Modo detector, selecione seu modo (para esta postagem, Contínuo).
Com o Amazon S3, você pode criar um detector em dois modos:
-
- Backtest - Este modo é usado para encontrar anomalias em dados históricos. Ele precisa que todos os registros sejam consolidados em um único arquivo.
- Contínuo – Este modo é usado para detectar anomalias em dados ao vivo. Usamos esse modo com nosso caso de uso porque queremos detectar anomalias à medida que recebemos dados de poluentes do ar do sensor de monitoramento do ar.
- Insira o caminho do S3 para a pasta S3 ativa e o padrão de caminho.
- Escolha Intervalo da fonte de dados, escolha Intervalos de 5 minutos.Se você tiver dados históricos dos quais o detector pode aprender padrões, você pode fornecê-los durante esta configuração. Espera-se que os dados estejam no mesmo formato que você usa para realizar um backtest. O fornecimento de dados históricos acelera o processo de treinamento do modelo de ML. Se isso não estiver disponível, o detector contínuo espera que dados suficientes estejam disponíveis antes de fazer inferências.
- Para este post, já temos dados históricos, então selecione Use dados históricos.
- Digite o caminho S3 de
historical_data.json
. - Escolha Formato de arquivo, selecione Linhas JSON.
Neste ponto, Lookout for Metrics acessa a fonte de dados e valida se pode analisar os dados. Se a análise for bem-sucedida, ela fornecerá uma mensagem "Validação bem-sucedida" e o levará para a próxima página, onde você configura medidas, dimensões e carimbos de data/hora.
Configurar medidas, dimensões e carimbos de data/hora
Medidas defina KPIs para os quais deseja rastrear anomalias. Você pode adicionar até cinco medidas por detector. Os campos usados para criar KPIs a partir de seus dados de origem devem estar em formato numérico. Os KPIs podem ser definidos atualmente agregando registros dentro do intervalo de tempo fazendo uma SOMA ou MÉDIA.
Dimensões oferecem a capacidade de fatiar e dividir seus dados definindo categorias ou segmentos. Isso permite rastrear anomalias para um subconjunto de todo o conjunto de dados para o qual uma determinada medida é aplicável.
Em nosso caso de uso, adicionamos três medidas, que calculam o AVG dos objetos vistos no intervalo de 5 minutos, e possuem apenas uma dimensão, para a qual é medida a concentração de poluentes.
Cada registro no conjunto de dados deve ter um carimbo de data / hora. A configuração a seguir permite que você escolha o campo que representa o valor do carimbo de data / hora e também o formato do carimbo de data / hora.
A próxima página permite que você revise todos os detalhes adicionados e, em seguida, salve e ative o detector.
O detector então começa a aprender o fluxo de dados na fonte de dados. Nesta fase, o status do detector muda para Initializing
.
É importante observar a quantidade mínima de dados necessária antes que o Lookout for Metrics possa começar a detectar anomalias. Para obter mais informações sobre requisitos e limites, consulte Observação de cotas de métricas.
Com configuração mínima, você criou seu detector, apontou-o para um conjunto de dados e definiu as métricas nas quais deseja que o Lookout for Metrics encontre anomalias.
Visualizar anomalias
Lookout for Metrics fornece uma rica experiência de interface de usuário para usuários que desejam usar o Console de gerenciamento da AWS para analisar as anomalias detectadas. Ele também fornece a capacidade de consultar as anomalias por meio de APIs.
Vejamos um exemplo de anomalia detectada em nosso caso de uso de dados de qualidade do ar. A captura de tela a seguir mostra uma anomalia detectada na concentração de CO no ar na hora e data designadas com uma pontuação de gravidade de 93. Ela também mostra a contribuição percentual da dimensão para a anomalia. Nesse caso, a contribuição de 100% vem da dimensão do ID do local B-101.
Criar alertas
O Lookout for Metrics permite enviar alertas usando uma variedade de canais. Você pode configurar o limite de pontuação de gravidade da anomalia no qual os alertas devem ser acionados.
Em nosso caso de uso, configuramos alertas para serem enviados a um Serviço de notificação simples da Amazon (Amazon SNS), que por sua vez envia um SMS. As capturas de tela a seguir mostram os detalhes de configuração.
Você também pode usar um alerta para acionar automações usando AWS Lambda funções para conduzir operações orientadas por API no AWS IoT Core.
Conclusão
Nesta postagem, mostramos como é fácil usar o Lookout for Metrics e o Kinesis Data Firehose para remover o trabalho pesado indiferenciado envolvido no gerenciamento do ciclo de vida completo da criação de aplicativos de detecção de anomalias baseados em ML. Essa solução pode ajudá-lo a acelerar sua capacidade de encontrar anomalias nas principais métricas de negócios e permitir que você concentre seus esforços no crescimento e na melhoria de seus negócios.
Nós o encorajamos a aprender mais visitando o Guia do desenvolvedor do Amazon Lookout for Metrics e experimente a solução de ponta a ponta habilitada por esses serviços com um conjunto de dados relevante para seus KPIs de negócios.
Sobre o autor
Dhiraj Thakur é arquiteto de soluções da Amazon Web Services. Ele trabalha com clientes e parceiros da AWS para fornecer orientação sobre adoção, migração e estratégia da nuvem corporativa. Ele é apaixonado por tecnologia e gosta de construir e experimentar no espaço de análise e IA/ML.
- AI
- arte ai
- gerador de arte ai
- ai robô
- Amazon Lookout para métricas
- inteligência artificial
- certificação de inteligência artificial
- inteligência artificial em bancos
- robô de inteligência artificial
- robôs de inteligência artificial
- software de inteligência artificial
- Aprendizado de máquina da AWS
- blockchain
- conferência blockchain ai
- Coingenius
- inteligência artificial conversacional
- conferência de criptografia ai
- dall's
- deep learning
- google ai
- aprendizado de máquina
- platão
- platão ai
- Inteligência de Dados Platão
- Jogo de Platão
- PlatãoData
- jogo de platô
- escala ai
- sintaxe
- zefirnet