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

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

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

创建计算模型 ()AWS CLI

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

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

    { "computationModelName": "anomaly-detection-computation-model-name", "computationModelConfiguration": { "anomalyDetection": { "inputProperties": "${input_properties}", "resultProperty": "${result_property}" } }, "computationModelDataBinding": { "input_properties": { "list": [{ "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-1" } }, { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-2" } } ] }, "result_property": { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "results-property-id" } } } }
  • 运行以下命令创建计算模型:

    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> \ --resolve-to assetId=<ASSET_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> \ --resolve-to assetId=<ASSET_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. 运行以下命令开始训练。在命令中替换以下参数:

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

    2. asset-id其中包含你要训练模型的资产的 ID。

    3. training-action-definition-id使用步骤 1 中AWS/ANOMALY_DETECTION_TRAINING操作的 ID。

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id training-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-training-payload.json
    例 执行动作的:
    aws iotsitewise execute-action --target-resource computationModelId=27cb824c-fd84-45b0-946b-0a5b0466d890 --resolve-to assetId=cefd4b68-481b-4735-b466-6a4220cd19ee --action-definition-id e54cea94-5d1c-4230-a59e-4f54dcbc972d --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\ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. 运行以下命令以检查最新训练模型的配置。仅当至少一个模型成功训练后,此命令才会生成输出。

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  6. 使用ComputationModel时 AssetModelProperty,使用 ListComputationModelResolveToResourcesAPI 识别已执行操作的资产。

    aws iotsitewise list-computation-model-resolve-to-resources \ --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并添加以下值:

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

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

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

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

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

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

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

      3. 灵活的日程安排.

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

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

    2. asset-id其中包含训练模型所针对的资产的 ID。

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

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-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 \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. 以下命令列出了所有的推理执行:

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-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. asset-id其中包含训练模型所针对的资产的 ID。

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

    例 停止推理命令的:
    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json

查找在数据绑定中使用给定资源的计算模型

要列出绑定到给定资源的计算模型,请执行以下操作:

  • 资产模型(获取绑定了该资产模型的任何属性的所有计算模型)。

  • 资产(获取绑定该资产任何属性的所有计算模型)

  • 资产模型属性(获取绑定此属性的所有计算模型)

  • asset 属性(获取绑定此属性的所有计算模型。 这可能是为了提供信息,或者当用户尝试将此属性绑定到另一个计算模型但它已经绑定到其他地方时需要这样做)

使用 ListComputationModelDataBindingUsagesAPI 获取以资产(属性)或资产模型(属性)作为数据绑定的列表。ComputationModelId

request.json使用以下信息准备:

{ "dataBindingValueFilter": { "asset": { "assetId": "<string>" } // OR "assetModel": { "assetModelId": "<string>" } // OR "assetProperty": { "assetId": "<string>", "propertyId": "<string>" } // OR "assetModelProperty": { "assetModelId": "<string>", "propertyId": "<string>" } }, "nextToken": "<string>", "maxResults": "<number>" }

使用list-computation-model-data-binding-usages命令检索以资产或资产模型作为数据绑定的模型。

aws iotsitewise list-computation-model-data-binding-usages \ --cli-input-json file://request.json