

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Habilite la detección de anomalías en los sensores de todos los activos
<a name="anom-detection-sensors-across-asset"></a>

## Crear un modelo de cálculo ()AWS CLI
<a name="create-computation-model-across-assets"></a>

Para crear un modelo de cálculo, utilice la interfaz de línea de AWS comandos ()AWS CLI. Tras definir el modelo de cálculo, entrénelo y programe la inferencia para detectar anomalías en todos los activos. AWS IoT SiteWise

Los siguientes pasos explican este proceso:

1. Para configurar la detección de anomalías, utilice [UpdateAssetModel(AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/update-asset-model.html) y cumpla los siguientes requisitos:

   1. Al menos una propiedad de entrada que sea de uno `DOUBLE` o varios tipos de `INTEGER` datos. Se trata de una propiedad de medición o de transformación y se utiliza para entrenar el modelo.

   1. Una propiedad de resultado del tipo de `STRING` datos. Debe ser una propiedad de medición y almacena los resultados de la detección de anomalías.

1. Cree un archivo `anomaly-detection-computation-model-payload.json` con el siguiente contenido:
**nota**  
Cree un modelo de cálculo proporcionándolo directamente `assetProperty` como fuente de datos.

   ```
   {
       "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"
               }
           }
       }
   }
   ```

1. Ejecute el siguiente comando para crear un modelo de cálculo:

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

## ExecuteAction Preparación de la carga útil de la API
<a name="create-action-payload-across-assets"></a>

 Los siguientes pasos para ejecutar la formación y la inferencia se realizan con la [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html)API. Tanto el entrenamiento como la inferencia se configuran con una configuración de carga útil de acciones de JSON. Al invocar la [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html)API, la carga útil de la acción debe proporcionarse como un valor junto con una carga útil. `stringValue` 

 La carga útil debe cumplir estrictamente los requisitos de la API. En concreto, el valor debe ser una **cadena plana** sin **caracteres de control** (por ejemplo, líneas nuevas, tabulaciones o devoluciones). Las siguientes opciones proporcionan dos formas fiables de proporcionar una carga útil de acción válida. 

### Opción 1: utilice un archivo de carga limpio
<a name="clean-payload-file-across-assets"></a>

El siguiente procedimiento describe los pasos para limpiar un archivo de carga útil:

1. Limpie el archivo para eliminar los caracteres de control.

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

1. Ejecute la acción con el archivo`@=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
   ```

### Opción 2: cadena en línea con comillas de escape
<a name="inline-string-quotes-across-assets"></a>

En los siguientes pasos se describen los pasos para suministrar la carga útil en línea y evitar los archivos intermediarios:
+ Usa comillas dobles escapadas (`\"`) dentro de la cadena JSON.
+ Envuelve la `StringValue=..` expresión completa entre comillas dobles.

**Example de una carga útil de acción que se ha escapado:**  

```
aws iotsitewise execute-action \
    --target-resource computationModelId=<MODEL_ID> \
    --action-definition-id <ACTION_DEFINITION_ID> \
    --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"
```

## Entrena al modelo ()AWS CLI
<a name="start-training-cli-across-assets"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_TRAINING`. `computation-model-id`Sustitúyalo por el identificador devuelto en el paso anterior.

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

1. Cree un archivo llamado `anomaly-detection-training-payload.json` y añada los siguientes valores:
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file-across-assets). 

   1. `StartTime`con el inicio de los datos de entrenamiento, proporcionados en segundos por época.

   1. `EndTime`con el final de los datos de entrenamiento, proporcionados en segundos de época.

   1. Puede [Configuraciones de inferencia avanzadas](advanced-inference-configurations.md) configurarlo de forma opcional.

      1. (Opcional) `TargetSamplingRate` con la frecuencia de muestreo de los datos.

      1. (Opcional) `LabelInputConfiguration` para especificar los períodos de tiempo en los que se produjo un comportamiento anómalo para mejorar el entrenamiento del modelo.

      1. (Opcional) `ModelEvaluationConfiguration` para evaluar el rendimiento del modelo mediante la ejecución de la inferencia en un intervalo de tiempo específico una vez finalizado el entrenamiento.

   ```
   {
     "exportDataStartTime": StartTime,
     "exportDataEndTime": EndTime
   }
   ```  
**Example de un ejemplo de carga útil de entrenamiento:**  

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

1. Ejecute el siguiente comando para iniciar el entrenamiento (sin proporcionar un activo como recurso de destino). Sustituya los siguientes parámetros del comando:

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

1. Ejecute el siguiente comando para comprobar el estado del proceso de entrenamiento del modelo. El resumen de ejecución más reciente muestra el estado de la ejecución (`RUNNING``COMPLETED`//`FAILED`).

   ```
   aws iotsitewise list-executions \
       --target-resource-type COMPUTATION_MODEL \
       --target-resource-id computation-model-id
   ```

1. Ejecute el siguiente comando para comprobar la configuración del último modelo entrenado. Este comando produce un resultado solo si al menos un modelo ha completado el entrenamiento correctamente.

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

## Inicie y detenga el reentrenamiento del modelo ()AWS CLI
<a name="start-stop-retraining-cli-model"></a>

 Tras el entrenamiento inicial del modelo, puede configurar el reentrenamiento automático para abordar la desviación de los datos y mantener la precisión del modelo a lo largo del tiempo. El programador de reentrenamiento le permite configurar actualizaciones periódicas del modelo con modos de promoción configurables. 

### Inicie el programador de reentrenamiento
<a name="start-retraining-scheduler-model"></a>

1. Prepare la misma carga útil que se menciona en. [Inicie el programador de reentrenamiento](anom-detection-sensors-asset.md#start-retraining-scheduler)

1. Ejecute la acción de entrenamiento (sin proporcionar un activo como recurso objetivo). Sustituya los siguientes parámetros del comando:

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `training-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_TRAINING` acción.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --action-definition-id training-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-start-retraining-payload.json
   ```

1. Ejecute el siguiente comando para comprobar el estado del proceso del programador de inicio de reentrenamiento. El resumen de ejecución más reciente muestra el estado de la ejecución (`RUNNING`/`COMPLETED`/`FAILED`).

   ```
   aws iotsitewise list-executions \
       --target-resource-type COMPUTATION_MODEL \
       --target-resource-id computation-model-id
   ```

### Detenga el programador de reentrenamiento
<a name="stop-retraining-scheduler-model"></a>

1. Prepare la misma carga útil que se menciona en. [Detenga el programador de reentrenamiento](anom-detection-sensors-asset.md#stop-retraining-scheduler)

1. Ejecute la acción de entrenamiento (sin proporcionar un activo como recurso objetivo). Sustituya los siguientes parámetros del comando:

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `training-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_TRAINING` acción.

   ```
   aws iotsitewise execute-action \
       --target-resource computationModelId=computation-model-id \
       --action-definition-id training-action-definition-id \
       --action-payload stringValue@=file://anomaly-detection-stop-retraining-payload.json
   ```

1. Ejecute el siguiente comando para comprobar el estado del proceso de detener el programador de reentrenamiento. El resumen de ejecución más reciente muestra el estado de la ejecución (`RUNNING`/`COMPLETED`/`FAILED`).

   ```
   aws iotsitewise list-executions \
       --target-resource-type COMPUTATION_MODEL \
       --target-resource-id computation-model-id
   ```

## Iniciar y detener la inferencia ()AWS CLI
<a name="start-stop-inference-across-assets"></a>

Después de entrenar el modelo, inicie la inferencia, que indica que debe comenzar AWS IoT SiteWise a monitorear sus activos industriales para detectar anomalías.

### Inicie la inferencia
<a name="start-inference-across-assets"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_INFERENCE`. `computation-model-id`Sustitúyalo por el identificador real del modelo de cálculo creado anteriormente.

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

1. Cree un archivo `anomaly-detection-start-inference-payload.json` y añada el siguiente código. Sustituya los siguientes parámetros tal y como se describe:
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](#clean-payload-file-across-assets). 

   1. `DataUploadFrequency`: Configure la frecuencia con la que se ejecuta el programa de inferencias para realizar la detección de anomalías. Los valores permitidos son: `PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D`.

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

   1. (Opcional) `DataDelayOffsetInMinutes` con el retardo compensado en minutos. Establezca este valor entre 0 y 60 minutos.

   1. (Opcional) `TargetModelVersion` con la versión del modelo que se va a activar.

   1. (Opcional) Configure la configuración `weeklyOperatingWindow` con una configuración de turnos.

   1. Opcionalmente, puede configurarlo[Configuraciones de inferencia avanzadas](advanced-inference-configurations.md).

      1. [Inferencia de alta frecuencia (de 5 minutos a 1 hora)](advanced-inference-configurations.md#high-frequency-inferencing).

      1. [Inferencia de baja frecuencia (2 horas — 1 día)](advanced-inference-configurations.md#low-frequency-inferencing).

      1. [Programación flexible](advanced-inference-configurations.md#flexible-scheduling).

1. Ejecute el siguiente comando para iniciar la inferencia. Sustituya los siguientes parámetros en el archivo de carga útil.

   1. `computation-model-id`con el ID del modelo de cálculo objetivo.

   1. `inference-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_INFERENCE` acción del paso 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
   ```

1. Ejecute el siguiente comando para comprobar si la inferencia sigue ejecutándose. El `inferenceTimerActive` campo se establece `TRUE` cuando la inferencia está activa.

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

1. El siguiente comando muestra todas las ejecuciones de inferencias:

   ```
   aws iotsitewise list-executions \
       --target-resource-type COMPUTATION_MODEL \
       --target-resource-id computation-model-id
   ```

1. Ejecute el siguiente comando para describir una ejecución individual. `execution-id`Sustitúyalo por el identificador del paso 5 anterior.

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

### Detenga la inferencia
<a name="stop-inference-across-assets"></a>

1. Ejecute el siguiente comando para buscar el `actionDefinitionId` de la acción `AWS/ANOMALY_DETECTION_INFERENCE`. `computation-model-id`Sustitúyalo por el identificador real del modelo de cálculo creado anteriormente.

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

1. Cree un archivo `anomaly-detection-stop-inference-payload.json` y añada el siguiente código.

   ```
   {
       "inferenceMode": "STOP"
   }
   ```
**nota**  
 La carga útil debe ajustarse a[Opción 1: utilice un archivo de carga limpio](anom-detection-sensors-asset.md#clean-payload-file). 

1. Ejecute el siguiente comando para detener la inferencia. Sustituya el siguiente parámetro en el archivo de carga útil:

   1. `computation-model-id`con el ID del modelo de cálculo de destino.

   1. `inference-action-definition-id`con el ID de la `AWS/ANOMALY_DETECTION_INFERENCE` acción del paso 1.  
**Example del comando stop inference:**  

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