Aujourd'hui, la pollution de l'air est un problème environnemental familier qui crée de graves problèmes respiratoires et cardiaques, qui constituent de graves menaces pour la santé. Les pluies acides, l'appauvrissement de la couche d'ozone et le réchauffement climatique sont également des conséquences néfastes de la pollution atmosphérique. Une surveillance et une automatisation intelligentes sont nécessaires pour prévenir les problèmes de santé graves et, dans les cas extrêmes, les situations mettant la vie en danger. La qualité de l'air est mesurée à l'aide de la concentration de polluants dans l'air. Il est crucial d'identifier les symptômes tôt et de contrôler le niveau de polluant avant qu'il ne soit dangereux. Le processus d'identification de la qualité de l'air et de l'anomalie dans le poids des polluants, et le diagnostic rapide de la cause profonde, est difficile, coûteux et sujet aux erreurs.
Le processus d'application de solutions basées sur l'IA et l'apprentissage automatique (ML) pour trouver des anomalies de données implique une grande complexité dans l'ingestion, la conservation et la préparation des données dans le bon format, puis l'optimisation et le maintien de l'efficacité de ces modèles ML sur de longues périodes de temps. temps. Cela a été l'un des obstacles à la mise en œuvre et à la mise à l'échelle rapides de l'adoption des fonctionnalités de ML.
Cet article vous montre comment utiliser une solution intégrée avec Amazon Lookout pour les métriques ainsi que le Firehose de données Amazon Kinesis pour briser ces barrières en ingérant rapidement et facilement des données en streaming, et en détectant par la suite les anomalies dans les indicateurs de performance clés qui vous intéressent.
Lookout for Metrics détecte et diagnostique automatiquement les anomalies (valeurs aberrantes par rapport à la norme) dans les données commerciales et opérationnelles. Il s'agit d'un service ML entièrement géré qui utilise des modèles ML spécialisés pour détecter les anomalies en fonction des caractéristiques de vos données. Par exemple, les tendances et la saisonnalité sont deux caractéristiques des métriques de séries chronologiques dans lesquelles la détection d'anomalies basée sur un seuil ne fonctionne pas. Les tendances sont des variations continues (augmentations ou diminutions) de la valeur d'une métrique. D'autre part, la saisonnalité est constituée de modèles périodiques qui se produisent dans un système, s'élevant généralement au-dessus d'une ligne de base, puis diminuant à nouveau. Vous n'avez pas besoin d'expérience en ML pour utiliser Lookout for Metrics.
Nous démontrons un scénario commun de surveillance de la qualité de l'air, dans lequel nous détectons des anomalies dans la concentration de polluants dans l'air. À la fin de cet article, vous apprendrez à utiliser ces services gérés d'AWS pour aider à prévenir les problèmes de santé et le réchauffement climatique. Vous pouvez appliquer cette solution à d'autres cas d'utilisation pour une meilleure gestion de l'environnement, comme la détection d'anomalies dans la qualité de l'eau, la qualité des terres et les modèles de consommation d'énergie, pour n'en nommer que quelques-uns.
Vue d'ensemble de la solution
L'architecture se compose de trois blocs fonctionnels :
- Capteurs sans fil placés à des endroits stratégiques pour détecter le niveau de concentration de monoxyde de carbone (CO), de dioxyde de soufre (SO2) et de dioxyde d'azote (NO2) dans l'air
- Ingestion et stockage de données en streaming
- Détection et notification d'anomalies
La solution fournit un chemin de données entièrement automatisé depuis les capteurs jusqu'à une notification envoyée à l'utilisateur. Vous pouvez également interagir avec la solution à l'aide de l'interface utilisateur Lookout for Metrics afin d'analyser les anomalies identifiées.
Le diagramme suivant illustre notre architecture de solution.
Pré-requis
Vous avez besoin des prérequis suivants avant de pouvoir continuer avec la solution. Pour cet article, nous utilisons la région us-east-1.
- Téléchargez le script Python (publier.py) et le fichier de données du GitHub repo.
- Ouvrez le
live_data.csv
fichier dans votre éditeur préféré et remplacez les dates par la date d'aujourd'hui et celle de demain. Par exemple, si la date d'aujourd'hui est le 8 juillet 2022, remplacez2022-03-25
comprenant2022-07-08
. Gardez le même format. Ceci est nécessaire pour simuler les données du capteur pour la date actuelle à l'aide du script du simulateur IoT. - Créer un Service de stockage simple Amazon (Amazon S3) compartiment et un dossier nommé
air-quality
. Créer un sous-dossier à l'intérieurair-quality
nomméhistorical
. Pour obtenir des instructions, consultez Créer un dossier. - Télécharger le
live_data.csv
fichier dans le compartiment S3 racine ethistorical_data.json
dans le dossier historique. - Créer un AWSCloud9 environnement de développement, que nous utilisons pour exécuter le programme de simulation Python afin de créer des données de capteur pour cette solution.
Ingérer et transformer des données à l'aide d'AWS IoT Core et de Kinesis Data Firehose
Nous utilisons un flux de diffusion Kinesis Data Firehose pour ingérer les données de streaming de Noyau AWS IoT et envoyez-le à Amazon S3. Effectuez les étapes suivantes :
- Sur la console Kinesis Data Firehose, choisissez Créer un flux de diffusion.
- Pour Identifier, choisissez PUT direct.
- Pour dentaire, choisissez Amazon S3.
- Pour Nom du flux de diffusion, saisissez un nom pour votre flux de diffusion.
- Pour Seau S3, saisissez le bucket que vous avez créé comme prérequis.
- Entrez des valeurs pour Préfixe de compartiment S3 ainsi que le Préfixe de sortie d'erreur de compartiment S3.L'un des points clés à noter est la configuration du préfixe personnalisé qui est configuré pour la destination Amazon S3. Ce modèle de préfixe garantit que les données sont créées dans le compartiment S3 conformément à la hiérarchie de préfixes attendue par Lookout for Metrics. (Plus d'informations à ce sujet plus loin dans cet article.) Pour plus d'informations sur les préfixes personnalisés, consultez Préfixes personnalisés pour les objets Amazon S3.
- Pour Intervalle de tampon, Entrer
60
. - Selectionnez Créer ou mettre à jour le rôle IAM.
- Selectionnez Créer un flux de diffusion.
Nous configurons maintenant AWS IoT Core et exécutons le programme de simulation de la qualité de l'air. - Sur la console AWS IoT Core, créer une stratégie AWS IoT appelé administrateur.
- Dans le volet de navigation sous Routage des messages, choisissez Règles.
- Selectionnez Créer une règle.
- Créer une règle avec le Action Kinesis Data Firehose (firehose).
Cela envoie les données d'un message MQTT à un flux de diffusion Kinesis Data Firehose. - Selectionnez Création.
- Créer un objet AWS IoT avec le nom
Test-Thing
et joignez la stratégie que vous avez créée. - Téléchargez le certificat, la clé publique, la clé privée, le certificat d'appareil et l'autorité de certification racine pour AWS IoT Core.
- Enregistrez chacun des fichiers téléchargés sur le
certificates
sous-répertoire que vous avez créé précédemment. - Téléchargez Publish.py sur le
iot-test-publish
dossier. - Sur la console AWS IoT Core, dans le volet de navigation, choisissez Paramètres.
- Sous Point de terminaison personnalisé, copiez le point de terminaison.
Cette URL de point de terminaison personnalisé AWS IoT Core est personnelle à votre compte AWS et à votre région. - remplacer
customEndpointUrl
avec votre URL de point de terminaison personnalisé AWS IoT Core, des certificats avec le nom du certificat etYour_S3_Bucket_Name
avec le nom de votre compartiment S3.
Ensuite, vous installez pip et le kit SDK AWS IoT pour Python. - Connectez-vous à AWS Cloud9 et créez un répertoire de travail dans votre environnement de développement. Par exemple:
aq-iot-publish
. - Créez un sous-répertoire pour les certificats dans votre nouveau répertoire de travail. Par exemple:
certificates
. - Installez le kit SDK AWS IoT pour Python v2 en exécutant ce qui suit à partir de la ligne de commande.
- Pour tester le pipeline de données, exécutez la commande suivante :
Vous pouvez voir la charge utile dans la capture d'écran suivante.
Enfin, les données sont livrées au compartiment S3 spécifié dans la structure de préfixe.
Les données des fichiers sont les suivantes :
{"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}
Les horodatages montrent que chaque fichier contient des données pour des intervalles de 5 minutes.
Avec un minimum de code, nous avons maintenant ingéré les données du capteur, créé un flux d'entrée à partir des données ingérées et stocké les données dans un compartiment S3 en fonction des exigences de Lookout for Metrics.
Dans les sections suivantes, nous examinons plus en détail les constructions dans Lookout for Metrics et la facilité de configuration de ces concepts à l'aide de la console Lookout for Metrics.
Créer un détecteur
Un détecteur est une ressource Lookout for Metrics qui surveille un jeu de données et identifie les anomalies à une fréquence prédéfinie. Les détecteurs utilisent ML pour trouver des modèles dans les données et faire la distinction entre les variations attendues des données et les anomalies légitimes. Pour améliorer ses performances, un détecteur en apprend plus sur vos données au fil du temps.
Dans notre cas d'utilisation, le détecteur analyse les données du capteur toutes les 5 minutes.
Pour créer le détecteur, accédez à la console Lookout for Metrics et choisissez Créer un détecteur. Indiquez le nom et la description (facultatif) du détecteur, ainsi que l'intervalle de 5 minutes.
Vos données sont chiffrées par défaut avec une clé qu'AWS possède et gère pour vous. Vous pouvez également configurer si vous souhaitez utiliser une clé de chiffrement différente de celle utilisée par défaut.
Pointons maintenant ce détecteur vers les données sur lesquelles vous souhaitez qu'il exécute la détection d'anomalies.
Créer un jeu de données
Un ensemble de données indique au détecteur où trouver vos données et quelles métriques analyser pour les anomalies. Pour créer un ensemble de données, procédez comme suit :
- Sur la console Amazon Lookout for Metrics, accédez à votre détecteur.
- Selectionnez Ajouter un ensemble de données.
- Pour Nom, entrez un nom (par exemple,
air-quality-dataset
). - Pour La source de données, choisissez votre source de données (pour cet article, Amazon S3).
- Pour Mode détecteur, sélectionnez votre mode (pour ce post, Cyber reconnaissance).
Avec Amazon S3, vous pouvez créer un détecteur selon deux modes :
-
- Backtest – Ce mode est utilisé pour trouver des anomalies dans les données historiques. Il a besoin que tous les enregistrements soient consolidés dans un seul fichier.
- Cyber reconnaissance – Ce mode est utilisé pour détecter les anomalies dans les données en direct. Nous utilisons ce mode avec notre cas d'utilisation car nous voulons détecter les anomalies lorsque nous recevons des données sur les polluants atmosphériques du capteur de surveillance de l'air.
- Entrez le chemin S3 pour le dossier S3 en direct et le modèle de chemin.
- Pour Intervalle de source de données, choisissez Intervalles de 5 minutes.Si vous disposez de données historiques à partir desquelles le détecteur peut apprendre des modèles, vous pouvez les fournir lors de cette configuration. Les données doivent être dans le même format que celui que vous utilisez pour effectuer un backtest. La fourniture de données historiques accélère le processus de formation du modèle ML. Si ce n'est pas disponible, le détecteur continu attend que suffisamment de données soient disponibles avant de faire des inférences.
- Pour cet article, nous avons déjà des données historiques, alors sélectionnez Utiliser les données historiques.
- Entrez le chemin S3 de
historical_data.json
. - Pour Format de fichier, sélectionnez Lignes JSON.
À ce stade, Lookout for Metrics accède à la source de données et valide s'il peut analyser les données. Si l'analyse est réussie, il vous donne un message "Validation réussie" et vous amène à la page suivante, où vous configurez les mesures, les dimensions et les horodatages.
Configurer des mesures, des dimensions et des horodatages
Les mesures définissez les KPI pour lesquels vous souhaitez suivre les anomalies. Vous pouvez ajouter jusqu'à cinq mesures par détecteur. Les champs utilisés pour créer des KPI à partir de vos données sources doivent être au format numérique. Les KPI peuvent être actuellement définis en agrégeant les enregistrements dans l'intervalle de temps en effectuant une SOMME ou une MOYENNE.
Dimensions vous donne la possibilité de découper et de découper vos données en définissant des catégories ou des segments. Cela vous permet de suivre les anomalies pour un sous-ensemble de l'ensemble des données pour lesquelles une mesure particulière est applicable.
Dans notre cas d'utilisation, nous ajoutons trois mesures, qui calculent l'AVG des objets vus dans l'intervalle de 5 minutes, et n'ont qu'une seule dimension, pour laquelle la concentration de polluants est mesurée.
Chaque enregistrement de l'ensemble de données doit avoir un horodatage. La configuration suivante vous permet de choisir le champ qui représente la valeur d'horodatage ainsi que le format de l'horodatage.
La page suivante vous permet de revoir tous les détails que vous avez ajoutés, puis d'enregistrer et d'activer le détecteur.
Le détecteur commence alors à apprendre le flux de données dans la source de données. A ce stade, l'état du détecteur passe à Initializing
.
Il est important de noter la quantité minimale de données requise avant que Lookout for Metrics puisse commencer à détecter les anomalies. Pour plus d'informations sur les exigences et les limites, voir Recherchez les quotas de métriques.
Avec une configuration minimale, vous avez créé votre détecteur, l'avez dirigé vers un ensemble de données et défini les métriques dans lesquelles vous souhaitez que Lookout for Metrics détecte les anomalies.
Visualisez les anomalies
Lookout for Metrics offre une riche expérience d'interface utilisateur aux utilisateurs qui souhaitent utiliser le Console de gestion AWS pour analyser les anomalies détectées. Il offre également la possibilité d'interroger les anomalies via des API.
Examinons un exemple d'anomalie détectée dans notre cas d'utilisation des données sur la qualité de l'air. La capture d'écran suivante montre une anomalie détectée dans la concentration de CO dans l'air à l'heure et à la date désignées avec un score de gravité de 93. Elle montre également le pourcentage de contribution de la dimension à l'anomalie. Dans ce cas, la contribution de 100 % provient de la dimension d'ID d'emplacement B-101.
Créer des alertes
Lookout for Metrics vous permet d'envoyer des alertes à l'aide de divers canaux. Vous pouvez configurer le seuil du score de gravité des anomalies auquel les alertes doivent être déclenchées.
Dans notre cas d'utilisation, nous configurons des alertes à envoyer à un Service de notification simple d'Amazon (Amazon SNS), qui à son tour envoie un SMS. Les captures d'écran suivantes montrent les détails de la configuration.
Vous pouvez également utiliser une alerte pour déclencher des automatisations en utilisant AWS Lambda afin de piloter des opérations basées sur l'API sur AWS IoT Core.
Conclusion
Dans cet article, nous vous avons montré à quel point il est facile d'utiliser Lookout for Metrics et Kinesis Data Firehose pour supprimer les charges lourdes indifférenciées impliquées dans la gestion du cycle de vie de bout en bout de la création d'applications de détection d'anomalies alimentées par ML. Cette solution peut vous aider à accélérer votre capacité à trouver des anomalies dans les mesures commerciales clés et vous permettre de concentrer vos efforts sur la croissance et l'amélioration de votre entreprise.
Nous vous encourageons à en apprendre davantage en visitant le Guide du développeur Amazon Lookout for Metrics et essayez la solution de bout en bout activée par ces services avec un ensemble de données pertinent pour les KPI de votre entreprise.
A propos de l'auteure
Dhiraj Thakur est un architecte de solutions avec Amazon Web Services. Il travaille avec les clients et partenaires AWS pour fournir des conseils sur l'adoption, la migration et la stratégie du cloud d'entreprise. Il est passionné de technologie et aime créer et expérimenter dans le domaine de l'analyse et de l'IA / ML.
- AI
- art de l'IA
- générateur d'art ai
- robot IA
- Amazon Lookout pour les métriques
- intelligence artificielle
- certification en intelligence artificielle
- intelligence artificielle en banque
- robot d'intelligence artificielle
- robots d'intelligence artificielle
- logiciel d'intelligence artificielle
- Apprentissage automatique AWS
- blockchain
- conférence blockchain ai
- cognitif
- intelligence artificielle conversationnelle
- crypto conférence ai
- de dall
- l'apprentissage en profondeur
- google ai
- machine learning
- Platon
- platon ai
- Intelligence des données Platon
- Jeu de Platon
- PlatonDonnées
- jeu de platogamie
- échelle ai
- syntaxe
- zéphyrnet