

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 자산의 센서에서 이상 탐지 활성화
<a name="anom-detection-sensors-asset"></a>

## 계산 모델 생성(AWS CLI)
<a name="create-computation-model"></a>

계산 모델을 생성하려면 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 페이로드 준비
<a name="create-action-payload"></a>

 훈련 및 추론을 실행하는 다음 단계는 [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html) API를 사용하여 수행됩니다. 훈련과 추론 모두 JSON 작업 페이로드 구성으로 구성됩니다. [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html) API를 호출할 때 작업 페이로드를 `stringValue`페이로드와 함께 값으로 제공해야 합니다.

 페이로드는 API 요구 사항을 엄격하게 준수해야 합니다. 특히 값은 **제어 문자**(예: 줄 바꿈, 탭 또는 캐리지 리턴)가 없는 **플랫 문자열**이어야 합니다.

다음 옵션은 유효한 작업 페이로드를 제공하는 두 가지 신뢰할 수 있는 방법을 제공합니다.

### 옵션 1: 클린 페이로드 파일 사용
<a name="clean-payload-file"></a>

다음 절차에서는 클린 페이로드 파일의 단계를 설명합니다.

1. 파일을 정리하여 제어 문자를 제거합니다.

   ```
   tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
   ```

1. 파일을 사용하여 작업을 실행합니다`@=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: 이스케이프된 따옴표가 있는 인라인 문자열
<a name="inline-string-quotes"></a>

다음 단계에서는 페이로드를 인라인으로 제공하고 중간 파일을 피하는 단계를 설명합니다.
+ JSON 문자열 내에 이스케이프 처리된 큰따옴표(`\"`)를 사용합니다.
+ 전체 `StringValue=..` 표현식을 큰따옴표로 묶습니다.

**Example 이스케이프된 작업 페이로드의 :**  

```
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)
<a name="start-training-cli"></a>

계산 모델을 생성하면 자산에 대해 모델을 훈련할 수 있습니다. 아래 단계에 따라 자산에 대한 모델을 훈련합니다.

1. 다음 명령을 실행하여 `AWS/ANOMALY_DETECTION_TRAINING` 작업의 `actionDefinitionId`를 찾습니다. 를 이전 단계에서 반환된 ID`computation-model-id`로 바꿉니다.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. 라는 파일을 생성하고 다음 값을 `anomaly-detection-training-payload.json` 추가합니다.
**참고**  
 페이로드는를 준수해야 합니다[옵션 1: 클린 페이로드 파일 사용](#clean-payload-file).

   1. `StartTime`은 에폭 초 단위로 제공되는 훈련 데이터의 시작과 함께 제공됩니다.

   1. `EndTime` 에폭 초 단위로 제공되는 훈련 데이터가 끝납니다.

   1. 선택적으로를 구성[고급 훈련 구성](adv-training-configs.md)하여 모델 성능을 개선할 수 있습니다.

      1. (선택 사항) 및 데이터의 `TargetSamplingRate` 샘플링 속도.

      1. (선택 사항) 향상된 모델 훈련`LabelInputConfiguration`을 위해 비정상적인 동작이 발생한 기간을 지정합니다.

      1. (선택 사항) 훈련`ModelEvaluationConfiguration`이 완료된 후 지정된 시간 범위에서 추론을 실행하여 모델 성능을 평가합니다.

      1. (선택 사항) 포괄적인 성능 데이터(정밀도, 재현율, 곡선 아래 영역)를 `ModelMetricsDestination` 수집합니다.

   ```
   {
     "trainingMode": "TRAIN_MODEL", 
     "exportDataStartTime": StartTime,
     "exportDataEndTime": EndTime
   }
   ```  
**Example 훈련 페이로드의 예:**  

   ```
   {
     "trainingMode": "TRAIN_MODEL",            
     "exportDataStartTime": 1717225200,
     "exportDataEndTime": 1722789360
   }
   ```

1. 다음 명령을 실행하여 훈련을 시작합니다. 명령에서 다음 파라미터를 교체합니다.

   1. `computation-model-id`를 대상 계산 모델의 ID로 바꿉니다.

   1. `asset-id` 모델을 훈련할 자산의 ID를 사용합니다.

   1. `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
   ```  
**Example 실행 작업의 :**  

   ```
   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
   ```

1. 다음 명령을 실행하여 모델 훈련 프로세스의 상태를 확인합니다. 최신 실행 요약에는 실행 상태(`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
   ```

1. 다음 명령을 실행하여 훈련된 최신 모델의 구성을 확인합니다. 이 명령은 하나 이상의 모델이 성공적으로 훈련된 경우에만 출력을 생성합니다.

   ```
   aws iotsitewise describe-computation-model-execution-summary \
       --computation-model-id computation-model-id \
       --resolve-to-resource-type ASSET \
       --resolve-to-resource-id asset-id
   ```

1. `ComputationModel`가 AssetModelProperty를 사용하는 경우 [ListComputationModelResolveToResources](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListComputationModelResolveToResources.html) API를 사용하여 실행된 작업이 있는 자산을 식별합니다.

   ```
   aws iotsitewise list-computation-model-resolve-to-resources \
       --computation-model-id computation-model-id
   ```

## 모델 재학습 시작 및 중지(AWS CLI)
<a name="start-stop-retraining-cli"></a>

초기 모델 훈련 후 데이터 드리프트를 해결하고 시간 경과에 따른 모델 정확도를 유지하도록 자동 재학습을 구성할 수 있습니다. 재훈련 스케줄러를 사용하면 구성 가능한 승격 모드를 사용하여 주기적 모델 업데이트를 설정할 수 있습니다.

### 재훈련 스케줄러 시작
<a name="start-retraining-scheduler"></a>

1. 다음 명령을 실행하여 `AWS/ANOMALY_DETECTION_TRAINING` 작업의 `actionDefinitionId`를 찾습니다. 를 계산 모델 생성에서 반환된 ID`computation-model-id`로 바꿉니다.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. 라는 파일을 생성하고 다음 코드를 `anomaly-detection-start-retraining-payload.json` 추가합니다. 파라미터를 설명된 값으로 바꿉니다.
**참고**  
 페이로드는를 준수해야 합니다[옵션 1: 클린 페이로드 파일 사용](#clean-payload-file).

   1. `lookbackWindow` 재학습(`P180D`//`P360D``P540D`/`P720D`)에 사용할 기록 데이터 창이 있는 .

   1. `retrainingFrequency` 모델을 재훈련하는 빈도(최소 `P30D`, 최대 `P1Y`).

   1. (선택 사항) `promotion` 및 모델 홍보 모드(`SERVICE_MANAGED` 또는 `CUSTOMER_MANAGED`). 기본값은 `SERVICE_MANAGED`입니다.

   1. (선택 사항) `retrainingStartDate` 에폭 초 단위로 제공되는 재훈련 일정의 시작 날짜. 시간을 가장 가까운 UTC 날짜로 자릅니다. 선택 사항, 기본값은 현재 날짜입니다.

   1. 선택적으로를 구성[고급 훈련 구성](adv-training-configs.md)하여 모델 성능을 개선할 수 있습니다.

      1. (선택 사항) 포괄적인 성능 데이터(정밀도, 재현율, 곡선 아래 영역)를 `ModelMetricsDestination` 가져옵니다.

   ```
   {
       "trainingMode": "START_RETRAINING_SCHEDULER",
       "retrainingConfiguration": {
           "lookbackWindow": "P180D",
           "promotion": "SERVICE_MANAGED",
           "retrainingFrequency": "P30D",
           "retrainingStartDate": "StartDate"
       }
   }
   ```

1. 다음 명령을 실행하여 재훈련 스케줄러를 시작합니다. 명령에서 다음 파라미터를 교체합니다.

   1. `computation-model-id`를 대상 계산 모델의 ID로 바꿉니다.

   1. `asset-id` 모델을 훈련할 자산의 ID를 사용합니다.

   1. `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-start-retraining-payload.json
   ```  
**Example 작업 실행 명령의 예**  

   ```
   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-start-retraining-payload.json
   ```

### 재훈련 스케줄러 중지
<a name="stop-retraining-scheduler"></a>

1. 다음 명령을 실행하여 `AWS/ANOMALY_DETECTION_TRAINING` 작업의 `actionDefinitionId`를 찾습니다. 를 이전에 생성한 계산 모델의 실제 ID`computation-model-id`로 바꿉니다.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. 파일을 생성하고 다음을 `anomaly-detection-stop-retraining-payload.json` 추가합니다.
**참고**  
 페이로드는를 준수해야 합니다[옵션 1: 클린 페이로드 파일 사용](#clean-payload-file).

   ```
   {
       "trainingMode": "STOP_RETRAINING_SCHEDULER"
   }
   ```

1. 다음 명령을 실행하여 재훈련 스케줄러를 중지합니다. 명령에서 다음 파라미터를 교체합니다.

   1. `computation-model-id`를 대상 계산 모델의 ID로 바꿉니다.

   1. `asset-id` 모델을 훈련할 자산의 ID를 사용합니다.

   1. `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-stop-retraining-payload.json
   ```

## 추론 시작 및 중지(AWS CLI)
<a name="start-stop-inference"></a>

모델을 훈련한 후 추론을 시작합니다. 이는가 산업 자산에 이상이 있는지 적극적으로 모니터링 AWS IoT SiteWise 하도록 지시합니다.

### 추론 시작
<a name="start-inference"></a>

1. 다음 명령을 실행하여 `AWS/ANOMALY_DETECTION_INFERENCE` 작업의 `actionDefinitionId`를 찾습니다. 를 이전에 생성한 계산 모델의 실제 ID`computation-model-id`로 바꿉니다.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. 파일을 생성하고 다음 값을 `anomaly-detection-start-inference-payload.json` 추가합니다.
**참고**  
 페이로드는를 준수해야 합니다[옵션 1: 클린 페이로드 파일 사용](#clean-payload-file).

   ```
   "inferenceMode": "START",
   "dataUploadFrequency": "DataUploadFrequency"
   ```

   1. `DataUploadFrequency`: 이상 탐지를 수행하기 위해 추론 일정이 실행되는 빈도를 구성합니다. 허용되는 값은 `PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D`입니다.

   1. (선택 사항) 지연 오프셋을 분 단위로 `DataDelayOffsetInMinutes` 표시합니다. 이 값을 0\$160분으로 설정합니다.

   1. (선택 사항)를 활성화할 모델 버전과 `TargetModelVersion` 함께 사용합니다.

   1. (선택 사항) 교대 근무 구성`weeklyOperatingWindow`으로를 구성합니다.

   1. 선택적으로를 구성할 수 있습니다[고급 추론 구성](advanced-inference-configurations.md).

      1. [고주파 추론(5분\$11시간)](advanced-inference-configurations.md#high-frequency-inferencing).

      1. [낮은 빈도의 추론(2시간\$11일)](advanced-inference-configurations.md#low-frequency-inferencing).

      1. [유연한 예약](advanced-inference-configurations.md#flexible-scheduling).

1. 다음 명령을 실행하여 추론을 시작합니다. 페이로드 파일에서 다음 파라미터를 바꿉니다.

   1. `computation-model-id`를 대상 계산 모델의 ID로 바꿉니다.

   1. `asset-id` 모델이 훈련된 자산의 ID를 사용합니다.

   1. `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
   ```

1. 다음 명령을 실행하여 추론이 아직 실행 중인지 확인합니다. 추론이 활성화`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
   ```

1. 다음 명령은 모든 추론 실행을 나열합니다.

   ```
   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
   ```

1. 다음 명령을 실행하여 개별 실행을 설명합니다. 를 이전 5단계의 ID`execution-id`로 바꿉니다.

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

### 추론 중지
<a name="stop-inference"></a>

1. 다음 명령을 실행하여 `AWS/ANOMALY_DETECTION_INFERENCE` 작업의 `actionDefinitionId`를 찾습니다. 를 이전에 생성한 계산 모델의 실제 ID`computation-model-id`로 바꿉니다.

   ```
   aws iotsitewise describe-computation-model \
       --computation-model-id computation-model-id
   ```

1. 파일을 생성하고 다음 코드를 `anomaly-detection-stop-inference-payload.json` 추가합니다.

   ```
   {
       "inferenceMode": "STOP"
   }
   ```
**참고**  
 페이로드는를 준수해야 합니다[옵션 1: 클린 페이로드 파일 사용](#clean-payload-file).

1. 다음 명령을 실행하여 추론을 중지합니다. 페이로드 파일에서 다음 파라미터를 바꿉니다.

   1. `computation-model-id`를 대상 계산 모델의 ID로 바꿉니다.

   1. `asset-id` 모델이 훈련된 자산의 ID를 사용합니다.

   1. `inference-action-definition-id`를 1단계의 `AWS/ANOMALY_DETECTION_INFERENCE` 작업 ID로 바꿉니다.  
**Example 추론 중지 명령의 :**  

   ```
   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
   ```

## 데이터 바인딩에서 지정된 리소스를 사용하는 계산 모델 찾기
<a name="find-computation-models-data-binding"></a>

지정된 리소스에 바인딩된 계산 모델을 나열하려면:
+ **자산 모델**(이 자산 모델의 속성이 바인딩되는 모든 계산 모델 가져오기).
+ **asset**(이 자산의 속성이 바인딩된 모든 계산 모델 가져오기)
+ **자산 모델 속성**(이 속성이 바인딩된 모든 계산 모델 가져오기)
+ **asset property**(이 속성이 바인딩된 모든 계산 모델을 가져옵니다. 이는 정보 제공용일 수도 있고, 사용자가이 속성을 다른 계산 모델에 바인딩하려고 하지만 이미 다른 곳에 바인딩되어 있는 경우에 필요할 수도 있습니다.)

[ ListComputationModelDataBindingUsages](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListComputationModelDataBindingUsages.html) API를 사용하여 자산(속성) 또는 자산 모델(속성)을 데이터 바인딩으로 `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
```