本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在跨資產的感應器上啟用異常偵測
建立運算模型 (AWS CLI)
若要建立運算模型,請使用 AWS 命令列界面 (AWS CLI)。定義運算模型後,請訓練模型並排定推論,以跨資產進行異常偵測 AWS IoT SiteWise。
下列步驟說明此程序:
-
若要設定異常偵測,請使用 UpdateAssetModel (AWS CLI),並符合下列要求:
-
至少一個輸入屬性為
DOUBLE
或INTEGER
資料類型。它是測量或轉換屬性,用於訓練模型。 -
STRING
資料類型的結果屬性。它必須是測量屬性,並存放異常偵測結果。
-
-
建立
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" } } } }
-
執行下列命令來建立運算模型:
aws iotsitewise create-computation-model \ --cli-input-json file://
anomaly-detection-computation-model-payload.json
ExecuteAction API 承載準備
執行訓練和推論的後續步驟會使用 ExecuteAction API 執行。訓練和推論都是使用 JSON 動作承載組態來設定。叫用 ExecuteAction API 時,必須提供動作承載做為具有stringValue
承載的值。
承載必須嚴格遵守 API 要求。具體而言,該值必須是沒有控制字元的扁平字串 (例如,換行、標籤或歸位字元)。下列選項提供兩種可靠的方式來提供有效的動作承載。
選項 1:使用乾淨的承載檔案
下列程序說明乾淨承載檔案的步驟:
-
清除 檔案以移除控制字元。
tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
-
使用 檔案執行 動作
@=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
-
執行下列命令來尋找
AWS/ANOMALY_DETECTION_TRAINING
動作actionDefinitionId
的 。computation-model-id
將 取代為上一個步驟中傳回的 ID。aws iotsitewise describe-computation-model \ --computation-model-id
computation-model-id
-
建立名為 的檔案
anomaly-detection-training-payload.json
,並新增下列值:注意
承載必須符合 選項 1:使用乾淨的承載檔案。
-
StartTime
訓練資料的開頭,以 epoch 秒提供。 -
EndTime
訓練資料的結尾,以 epoch 秒提供。 -
您可以選擇性地設定 進階推論組態。
-
(選用)
TargetSamplingRate
搭配資料的取樣率。 -
(選用)
LabelInputConfiguration
指定為改善模型訓練而發生異常行為的時段。 -
(選用)
ModelEvaluationConfiguration
在訓練完成後,透過在指定的時間範圍執行推論來評估模型效能。
-
{ "exportDataStartTime": StartTime, "exportDataEndTime": EndTime }
範例 訓練承載範例:
{ "exportDataStartTime": 1717225200, "exportDataEndTime": 1722789360 }
-
-
執行下列命令以開始訓練 (而不提供資產做為目標資源)。在 命令中取代下列參數:
aws iotsitewise execute-action \ --target-resource computationModelId=
computation-model-id
\ --action-definition-idtraining-action-definition-id
\ --action-payload stringValue@=file://anomaly-detection-training-payload.json
-
執行下列命令來檢查模型訓練程序的狀態。最新的執行摘要會顯示執行狀態 (
RUNNING
/COMPLETED
/FAILED
)。aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id
computation-model-id
-
執行下列命令來檢查最新訓練模型的組態。只有在至少有一個模型成功完成訓練時,此命令才會產生輸出。
aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id
啟動和停止推論 (AWS CLI)
訓練模型後,請啟動推論,指示 AWS IoT SiteWise 開始監控工業資產是否有異常。
開始推論
-
執行下列命令來尋找
AWS/ANOMALY_DETECTION_INFERENCE
動作actionDefinitionId
的 。computation-model-id
以先前建立的運算模型實際 ID 取代 。aws iotsitewise describe-computation-model \ --computation-model-id
computation-model-id
-
建立檔案
anomaly-detection-start-inference-payload.json
並新增下列程式碼。依照說明取代下列參數:注意
承載必須符合 選項 1:使用乾淨的承載檔案。
-
DataUploadFrequency
:設定推論排程執行的頻率,以執行異常偵測。允許的值為:PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D
。"inferenceMode": "START", "dataUploadFrequency": "
DataUploadFrequency
" -
(選用)
DataDelayOffsetInMinutes
搭配以分鐘為單位的延遲位移。將此值設定為 0 到 60 分鐘。 -
(選用)
TargetModelVersion
搭配要啟用的模型版本。 -
(選用)
weeklyOperatingWindow
使用輪班組態設定 。 -
您可以選擇性地設定 進階推論組態。
-
-
執行下列命令以開始推論。取代承載檔案中的下列參數。
-
computation-model-id
目標運算模型的 ID。 -
inference-action-definition-id
具有步驟 1 中AWS/ANOMALY_DETECTION_INFERENCE
動作的 ID。
aws iotsitewise execute-action \ --target-resource computationModelId=
computation-model-id
\ --action-definition-idinference-action-definition-id
\ --action-payload stringValue@=file://anomaly-detection-inference-payload.json
-
-
執行下列命令來檢查推論是否仍在執行中。推論作用中
TRUE
時,inferenceTimerActive
欄位會設為 。aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id
computation-model-id
-
下列命令會列出所有推論執行:
aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id
computation-model-id
-
執行下列命令來描述個別執行。
execution-id
將 取代為先前步驟 5 的 ID。aws iotsitewise describe-execution \ --execution-id
execution-id
停止推論
-
執行下列命令來尋找
AWS/ANOMALY_DETECTION_INFERENCE
動作actionDefinitionId
的 。computation-model-id
以先前建立的運算模型實際 ID 取代 。aws iotsitewise describe-computation-model \ --computation-model-id
computation-model-id
-
建立檔案
anomaly-detection-stop-inference-payload.json
並新增下列程式碼。{ "inferenceMode": "STOP" }
注意
承載必須符合 選項 1:使用乾淨的承載檔案。
-
執行下列命令來停止推論。取代承載檔案中的下列參數:
-
computation-model-id
目標運算模型的 ID。 -
inference-action-definition-id
具有步驟 1 中AWS/ANOMALY_DETECTION_INFERENCE
動作的 ID。
範例 停止推論命令的 :
aws iotsitewise execute-action \ --target-resource computationModelId=
computation-model-id
\ --action-definition-idinference-action-definition-id
\ --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json
-