Permettre la détection des anomalies sur les capteurs de tous les actifs - AWS IoT SiteWise

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Permettre la détection des anomalies sur les capteurs de tous les actifs

Création d'un modèle de calcul ()AWS CLI

Pour créer un modèle de calcul, utilisez l'interface de ligne de AWS commande (AWS CLI). Après avoir défini le modèle de calcul, entraînez-le et planifiez l'inférence pour détecter les anomalies sur les actifs de. AWS IoT SiteWise

Les étapes suivantes expliquent ce processus :

  1. Pour configurer la détection des anomalies, utilisez le UpdateAssetModel (AWS CLI) et répondez aux exigences suivantes :

    1. Au moins une propriété d'entrée qui est de l'un DOUBLE ou l'autre type de INTEGER données. Il s'agit d'une propriété de mesure ou de transformation, utilisée pour entraîner le modèle.

    2. Propriété de résultat de type STRING donnée. Il doit s'agir d'une propriété de mesure et enregistrer les résultats de détection des anomalies.

  2. Créez un fichier anomaly-detection-computation-model-payload.json avec le contenu suivant :

    Note

    Créez un modèle de calcul en le fournissant directement assetProperty comme source de données.

    { "computationModelName": "name of ComputationModel", "computationModelConfiguration": { "anomalyDetection": { "inputProperties": "${properties}", "resultProperty": "${p3}" } }, "computationModelDataBinding": { "properties": { "list": [ { "assetProperty": { "assetId": "asset-id", "propertyId": "input-property-id-1" } }, { "assetProperty": { "assetId": "asset-id", "propertyId": "input-property-id-2" } } ] }, "p3": { "assetProperty": { "assetId": "asset-id", "propertyId": "results-property-id" } } } }
  3. Exécutez la commande suivante pour créer un modèle de calcul :

    aws iotsitewise create-computation-model \ --cli-input-json file://anomaly-detection-computation-model-payload.json

ExecuteAction Préparation de la charge utile de l'API

Les étapes suivantes pour exécuter l'entraînement et l'inférence sont effectuées avec l'ExecuteActionAPI. L'entraînement et l'inférence sont configurés avec une configuration de charge utile d'action JSON. Lors de l'appel de l'ExecuteActionAPI, la charge utile de l'action doit être fournie sous forme de valeur avec une stringValue charge utile.

La charge utile doit respecter strictement les exigences de l'API. Plus précisément, la valeur doit être une chaîne plate sans caractères de contrôle (par exemple, nouvelles lignes, tabulations ou retours de chariot). Les options suivantes fournissent deux méthodes fiables pour fournir une charge utile d'action valide.

Option 1 : utiliser un fichier de charge utile propre

La procédure suivante décrit les étapes à suivre pour nettoyer le fichier de charge utile :

  1. Nettoyez le fichier pour supprimer les caractères de contrôle.

    tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
  2. Exécutez l'action avec le fichier@=file://....

    aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --action-payload stringValue@=file://training-or-inference-action-payload.json

Option 2 : chaîne en ligne avec guillemets échappés

Les étapes suivantes décrivent les étapes à suivre pour fournir la charge utile en ligne et éviter les fichiers intermédiaires :

  • Utilisez des guillemets évadés (\") dans la chaîne JSON.

  • Placez l'StringValue=..expression entière entre guillemets.

Exemple d'une charge utile d'action échappée :
aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"

Entraînez le AWS CLI

  1. Exécutez la commande suivante pour trouver actionDefinitionId l'AWS/ANOMALY_DETECTION_TRAININGaction. computation-model-idRemplacez-le par l'ID renvoyé à l'étape précédente.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Créez un fichier appelé anomaly-detection-training-payload.json et ajoutez-y les valeurs suivantes :

    Note

    La charge utile doit être conforme à. Option 1 : utiliser un fichier de charge utile propre

    1. StartTimeavec le début des données d'entraînement, fournies en secondes d'époque.

    2. EndTimeavec les données de fin d'entraînement, fournies en secondes d'époque.

    3. Vous pouvez éventuellement configurerConfigurations d'inférence avancées.

      1. (Facultatif) TargetSamplingRate avec le taux d'échantillonnage des données.

      2. (Facultatif) LabelInputConfiguration pour spécifier les périodes pendant lesquelles un comportement anormal s'est produit afin d'améliorer l'apprentissage des modèles.

      3. (Facultatif) ModelEvaluationConfiguration pour évaluer les performances du modèle en exécutant l'inférence sur une plage de temps spécifiée une fois l'entraînement terminé.

    { "exportDataStartTime": StartTime, "exportDataEndTime": EndTime }
    Exemple d'un exemple de charge utile d'entraînement :
    { "exportDataStartTime": 1717225200, "exportDataEndTime": 1722789360 }
  3. Exécutez la commande suivante pour démarrer l'entraînement (sans fournir d'actif comme ressource cible). Remplacez les paramètres suivants dans la commande :

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --action-definition-id training-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-training-payload.json
  4. Exécutez la commande suivante pour vérifier l'état du processus d'entraînement du modèle. Le dernier résumé de l'exécution indique le statut de l'exécution (RUNNINGCOMPLETED//FAILED).

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id
  5. Exécutez la commande suivante pour vérifier la configuration du dernier modèle entraîné. Cette commande produit une sortie uniquement si au moins un modèle a terminé l'entraînement avec succès.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id

Démarrer et arrêter l'inférence ()AWS CLI

Après avoir entraîné le modèle, lancez l'inférence, qui indique de commencer AWS IoT SiteWise à surveiller vos actifs industriels pour détecter les anomalies.

Lancer l'inférence

  1. Exécutez la commande suivante pour trouver actionDefinitionId l'AWS/ANOMALY_DETECTION_INFERENCEaction. Remplacez computation-model-id par l'ID réel du modèle de calcul créé précédemment.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Créez un fichier anomaly-detection-start-inference-payload.json et ajoutez le code suivant. Remplacez les paramètres suivants comme décrit :

    Note

    La charge utile doit être conforme à. Option 1 : utiliser un fichier de charge utile propre

    1. DataUploadFrequency: configurez la fréquence à laquelle le programme d'inférence s'exécute pour effectuer la détection des anomalies. Les valeurs autorisées sont :PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D.

      "inferenceMode": "START", "dataUploadFrequency": "DataUploadFrequency"
    2. (Facultatif) DataDelayOffsetInMinutes avec le décalage du délai en minutes. Définissez cette valeur entre 0 et 60 minutes.

    3. (Facultatif) TargetModelVersion avec la version du modèle à activer.

    4. (Facultatif) Configurez la weeklyOperatingWindow avec une configuration Shift.

    5. Vous pouvez éventuellement configurerConfigurations d'inférence avancées.

      1. Inférence à haute fréquence (5 minutes — 1 heure).

      2. Inférence à basse fréquence (2 heures — 1 jour).

      3. Planification flexible.

  3. Exécutez la commande suivante pour démarrer l'inférence. Remplacez les paramètres suivants dans le fichier de charge utile.

    1. computation-model-idavec l'ID du modèle de calcul cible.

    2. inference-action-definition-idavec l'ID de l'AWS/ANOMALY_DETECTION_INFERENCEaction de l'étape 1.

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-inference-payload.json
  4. Exécutez la commande suivante pour vérifier si l'inférence est toujours en cours. Le inferenceTimerActive champ est défini sur TRUE lorsque l'inférence est active.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id
  5. La commande suivante répertorie toutes les exécutions d'inférence :

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id
  6. Exécutez la commande suivante pour décrire une exécution individuelle. Remplacez execution-id par l'identifiant de l'étape 5 précédente.

    aws iotsitewise describe-execution \ --execution-id execution-id

Arrêter l'inférence

  1. Exécutez la commande suivante pour trouver actionDefinitionId l'AWS/ANOMALY_DETECTION_INFERENCEaction. Remplacez computation-model-id par l'ID réel du modèle de calcul créé précédemment.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Créez un fichier anomaly-detection-stop-inference-payload.json et ajoutez le code suivant.

    { "inferenceMode": "STOP" }
    Note

    La charge utile doit être conforme à. Option 1 : utiliser un fichier de charge utile propre

  3. Exécutez la commande suivante pour arrêter l'inférence. Remplacez le paramètre suivant dans le fichier de charge utile :

    1. computation-model-idavec l'ID du modèle de calcul cible.

    2. inference-action-definition-idavec l'ID de l'AWS/ANOMALY_DETECTION_INFERENCEaction de l'étape 1.

    Exemple de la commande d'arrêt de l'inférence :
    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json