在所有资产的传感器上启用异常检测 - AWS IoT SiteWise

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在所有资产的传感器上启用异常检测

创建计算模型 ()AWS CLI

要创建计算模型,请使用 AWS 命令行界面 (AWS CLI)。定义计算模型后,训练模型并安排推理,以便对中的资产进行异常检测。 AWS IoT SiteWise

以下步骤说明了此过程:

  1. 要设置异常检测,请使用 UpdateAssetModel (AWS CLI),并满足以下要求:

    1. 至少一个INTEGER数据类型为DOUBLE或的输入属性。它要么是测量属性,要么是变换属性,用于训练模型。

    2. STRING数据类型的结果属性。它必须是测量属性,并存储异常检测结果。

  2. 创建包含以下内容anomaly-detection-computation-model-payload.json的文件:

    注意

    通过直接提供assetProperty作为数据源来创建计算模型。

    { "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. 运行以下命令创建计算模型:

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

ExecuteAction API 有效负载准备

执行训练和推理的后续步骤是使用 ExecuteActionAPI 执行的。训练和推理均使用 JSON 操作负载配置进行配置。调用 ExecuteActionAPI 时,必须将操作负载作为带有效stringValue载荷的值提供。

有效载荷必须严格遵守 API 要求。具体而言,该值必须是没有控制字符(例如,换行符、制表符或回车符)的扁平字符串。以下选项提供了两种可靠的方式来提供有效的动作有效载荷。

选项 1:使用干净的有效载荷文件

以下过程描述了清理有效载荷文件的步骤:

  1. 清理文件以删除控制字符。

    tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
  2. 使用文件执行操作@=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

选项 2:带转义引号的内联字符串

以下步骤描述了以内联方式提供有效负载并避免使用中间文件的步骤:

  • 在 JSON 字符串中使用转义的双引号 (\")。

  • 将整个StringValue=..表达式用双引号包起来。

例 逃脱的动作有效载荷:
aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"

训练 AWS CLI

  1. 运行以下命令以查找 AWS/ANOMALY_DETECTION_TRAINING 操作的 actionDefinitionIdcomputation-model-id替换为上一步中返回的 ID。

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. 创建一个名为的文件anomaly-detection-training-payload.json并添加以下值:

    注意
    1. StartTime以训练数据的开头为单位,以纪元秒为单位提供。

    2. EndTime最后是训练数据,以纪元秒为单位提供。

    3. 您可以选择配置高级推理配置

      1. (可选)TargetSamplingRate使用数据的采样率。

      2. (可选)LabelInputConfiguration指定发生异常行为的时间段,以改进模型训练。

      3. (可选)ModelEvaluationConfiguration通过在训练完成后的指定时间范围内运行推理来评估模型性能。

    { "exportDataStartTime": StartTime, "exportDataEndTime": EndTime }
    例 训练有效载荷示例:
    { "exportDataStartTime": 1717225200, "exportDataEndTime": 1722789360 }
  3. 运行以下命令开始训练(不提供资产作为目标资源)。在命令中替换以下参数:

    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. 运行以下命令以检查模型训练过程的状态。最新的执行摘要显示执行状态 (RUNNING/COMPLETED/FAILED)。

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id
  5. 运行以下命令以检查最新训练模型的配置。只有当至少一个模型成功完成训练时,此命令才会生成输出。

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

开始和停止推理 ()AWS CLI

训练完模型后,开始推理,这会指示 AWS IoT SiteWise 您开始监控您的工业资产是否存在异常。

开始推理

  1. 运行以下命令以查找 AWS/ANOMALY_DETECTION_INFERENCE 操作的 actionDefinitionIdcomputation-model-id替换为之前创建的计算模型的实际 ID。

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. 创建文件anomaly-detection-start-inference-payload.json并添加以下代码。按所述替换以下参数:

    注意
    1. DataUploadFrequency:配置推理计划的运行频率,以执行异常检测。支持的值为:PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D

      "inferenceMode": "START", "dataUploadFrequency": "DataUploadFrequency"
    2. (可选)DataDelayOffsetInMinutes延迟偏移量以分钟为单位。将此值设置在 0 到 60 分钟之间。

    3. (可选)TargetModelVersion使用要激活的模型版本。

    4. (可选)weeklyOperatingWindow使用轮班配置进行配置。

    5. 您可以选择配置高级推理配置

      1. 高频推理(5 分钟 — 1 小时).

      2. 低频推理(2 小时 — 1 天).

      3. 灵活的日程安排.

  3. 运行以下命令开始推理。替换负载文件中的以下参数。

    1. computation-model-id带有目标计算模型的 ID。

    2. inference-action-definition-id使用步骤 1 中AWS/ANOMALY_DETECTION_INFERENCE操作的 ID。

    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. 运行以下命令以检查推理是否仍在运行。当推理处于活动状态TRUE时,该inferenceTimerActive字段设置为。

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id
  5. 以下命令列出了所有的推理执行:

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id
  6. 运行以下命令来描述单个执行。execution-id替换为先前步骤 5 中的 ID。

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

停止推理

  1. 运行以下命令以查找 AWS/ANOMALY_DETECTION_INFERENCE 操作的 actionDefinitionIdcomputation-model-id替换为之前创建的计算模型的实际 ID。

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. 创建文件anomaly-detection-stop-inference-payload.json并添加以下代码。

    { "inferenceMode": "STOP" }
    注意
  3. 运行以下命令停止推理。替换负载文件中的以下参数:

    1. computation-model-id带有目标计算模型的 ID。

    2. inference-action-definition-id使用步骤 1 中AWS/ANOMALY_DETECTION_INFERENCE操作的 ID。

    例 停止推理命令的:
    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