

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.

# Programe trabajos de supervisión
<a name="model-monitor-scheduling"></a>

Amazon SageMaker Model Monitor le permite supervisar los datos recopilados en sus puntos de conexión en tiempo real. Puede supervisar sus datos de forma periódica o puede supervisarlos una vez, de forma inmediata. Puede crear una programación de supervisión con la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html).

Con un cronograma de monitoreo, la SageMaker IA puede comenzar a procesar trabajos para analizar los datos recopilados durante un período determinado. En el trabajo de procesamiento, la SageMaker IA compara el conjunto de datos del análisis actual con las estadísticas y restricciones de referencia que usted proporciona. A continuación, la SageMaker IA genera un informe de infracciones. Además, se emiten CloudWatch métricas para cada función que se analiza.

SageMaker La IA proporciona un contenedor prediseñado para realizar análisis en conjuntos de datos tabulares. Como alternativa, puede elegir utilizar su propio contenedor como se describe en el tema [Support para sus propios contenedores con Amazon SageMaker Model Monitor](model-monitor-byoc-containers.md).

Puede crear una programación de supervisión modelo para su trabajo de transformación por lotes o de punto de conexión en tiempo real. Utilice los recursos de referencia (restricciones y estadísticas) para comparar con las entradas del trabajo por lotes o el tráfico en tiempo real. 

**Example asignaciones de referencia**  
En el siguiente ejemplo, el conjunto de datos de entrenamiento utilizado para entrenar el modelo se cargó en Amazon S3. Si ya lo tiene en Amazon S3, puede apuntar a él directamente.  

```
# copy over the training dataset to Amazon S3 (if you already have it in Amazon S3, you could reuse it)
baseline_prefix = prefix + '/baselining'
baseline_data_prefix = baseline_prefix + '/data'
baseline_results_prefix = baseline_prefix + '/results'

baseline_data_uri = 's3://{}/{}'.format(bucket,baseline_data_prefix)
baseline_results_uri = 's3://{}/{}'.format(bucket, baseline_results_prefix)
print('Baseline data uri: {}'.format(baseline_data_uri))
print('Baseline results uri: {}'.format(baseline_results_uri))
```

```
training_data_file = open("test_data/training-dataset-with-header.csv", 'rb')
s3_key = os.path.join(baseline_prefix, 'data', 'training-dataset-with-header.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(s3_key).upload_fileobj(training_data_file)
```

**Example programación de análisis periódico**  
Si va a programar un monitor de modelos para un punto de conexión en tiempo real, utilice las restricciones y las estadísticas de referencia para comparar con el tráfico en tiempo real. El siguiente fragmento de código muestra el formato general que se utiliza para programar un monitor de modelos para un punto de conexión en tiempo real. En este ejemplo, se programa el monitor de modelos para que se ejecute cada hora.  

```
from sagemaker.model_monitor import CronExpressionGenerator
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    endpoint_input=EndpointInput(
        endpoint_name=endpoint_name,
        destination="/opt/ml/processing/input/endpoint"
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

**Example programación de un análisis único**  
También puede programar el análisis para que se ejecute una vez sin que se repita pasando argumentos como los siguientes al método `create_monitoring_schedule`:  

```
    schedule_cron_expression=CronExpressionGenerator.now(),
    data_analysis_start_time="-PT1H",
    data_analysis_end_time="-PT0H",
```
En estos argumentos, el parámetro `schedule_cron_expression` programa el análisis para que se ejecute una vez, inmediatamente, con el valor`CronExpressionGenerator.now()`. Para cualquier programación con esta configuración, se requieren los parámetros `data_analysis_start_time` y `data_analysis_end_time`. Estos parámetros establecen la hora de inicio y la hora de finalización de una ventana de análisis. Defina estos tiempos como desplazamientos relativos a la hora actual y utilice el formato de duración ISO 8601. En este ejemplo, las horas `-PT1H` y `-PT0H` defina un intervalo entre una hora pasada y la hora actual. Con esta programación, el análisis evalúa solo los datos que se recopilaron durante el período especificado.

**Example programación de un trabajo de transformación por lotes**  
El siguiente fragmento de código muestra el formato general que se utiliza para programar un monitor de modelos para un trabajo de transformación por lotes.  

```
from sagemaker.model_monitor import (
    CronExpressionGenerator,
    BatchTransformInput, 
    MonitoringDatasetFormat, 
)
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    batch_transform_input=BatchTransformInput(
        destination="opt/ml/processing/input",
        data_captured_destination_s3_uri=s3_capture_upload_path,
        dataset_format=MonitoringDatasetFormat.csv(header=False),
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

```
desc_schedule_result = my_default_monitor.describe_schedule()
print('Schedule status: {}'.format(desc_schedule_result['MonitoringScheduleStatus']))
```

# Expresión cron para la programación de supervisión
<a name="model-monitor-schedule-expression"></a>

Para proporcionar detalles de la programación de monitorización, utilice [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html), que es una expresión `cron` que describe detalles sobre la programación de monitorización.

Amazon SageMaker Model Monitor admite las siguientes `cron` expresiones:
+ Para configurar el trabajo para que comience cada hora, utilice lo siguiente:

  `Hourly: cron(0 * ? * * *)`
+ Para ejecutar el trabajo a diario, utilice lo siguiente:

  `cron(0 [00-23] ? * * *)`
+ Para ejecutar el trabajo una vez, inmediatamente, utilice la siguiente palabra clave:

  `NOW`

Por ejemplo, las siguientes expresiones `cron` son válidas:
+ Todos los días a las 12 PM UTC: `cron(0 12 ? * * *)`
+ Todos los días a las 12 AM UTC: `cron(0 0 ? * * *)`

Para admitir la ejecución cada 6, 12 horas, el monitor de modelos admite la siguiente expresión:

`cron(0 [00-23]/[01-24] ? * * *)`

Por ejemplo, las siguientes expresiones `cron` son válidas:
+ Cada 12 horas, a partir de las 5 PM UTC: `cron(0 17/12 ? * * *)`
+ Cada dos horas, a partir de las 12 AM UTC: `cron(0 0/2 ? * * *)`

**Notas**  
Aunque la expresión `cron` está configurada para comenzar a las 5 PM UTC, tenga en cuenta que podría haber un retraso de 0 a 20 minutos respecto a la hora solicitada real para ejecutar la ejecución.
Si desea ejecutar en un horario diario, no proporcione este parámetro. SageMaker La IA elige una hora para correr todos los días.
Actualmente, la SageMaker IA solo admite tasas de enteros por hora entre 1 y 24 horas.

# Configuración de políticas de control de servicio para programaciones de supervisión
<a name="model-monitor-scp-rules"></a>

 Debe especificar los parámetros de un trabajo de monitoreo al crear o actualizar su programación con la [CreateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html)API o la [UpdateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateMonitoringSchedule.html)API, respectivamente. En función de su caso de uso, puede hacer esto de una de las siguientes formas: 
+  Puede especificar el [MonitoringJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringJobDefinition.html)campo de [MonitoringScheduleConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringScheduleConfig.html), al invocar `CreateMonitoringSchedule` o`UpdateMonitoringSchedule`. Puede usar esto solo para crear o actualizar una programación para un trabajo de supervisión de la calidad de los datos. 
+  Puede especificar el nombre de una definición de trabajo de supervisión, que ya haya creado, para el campo `MonitoringJobDefinitionName` de `MonitoringScheduleConfig` cuando invoca `CreateMonitoringSchedule` o `UpdateMonitoringSchedule`. Puede usarlo para cualquier definición de trabajo que cree con una de las siguientes opciones: APIs 
  +  [CreateDataQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDataQualityJobDefinition.html) 
  +  [CreateModelQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelQualityJobDefinition.html) 
  +  [CreateModelBiasJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelBiasJobDefinition.html) 
  +  [CreateModelExplainabilityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelExplainabilityJobDefinition.html) 

   Si quieres usar el SDK de SageMaker Python para crear o actualizar planificaciones, debes usar este proceso. 

 Los procesos antes mencionados se excluyen mutuamente, es decir, puede especificar el campo `MonitoringJobDefinition` o el campo `MonitoringJobDefinitionName` al crear o actualizar las programaciones de supervisión. 

 Al crear una definición de trabajo de supervisión o al especificar una en el campo `MonitoringJobDefinition`, puede establecer parámetros de seguridad, como `NetworkConfig` y `VolumeKmsKeyId`. Como administrador, es posible que desee que estos parámetros estén siempre establecidos en determinados valores, de modo que los trabajos de supervisión se ejecuten siempre en un entorno seguro. Para garantizar esto, configure [las políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) adecuadas (SCPs). SCPs son un tipo de política organizacional que puede usar para administrar los permisos en su organización. 

 El siguiente ejemplo muestra una SCP que puede utilizar para asegurarse de que los parámetros de la infraestructura estén configurados correctamente al crear o actualizar los programas de supervisión de los trabajos. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Null": {
                    "sagemaker:VolumeKmsKey":"true",
                    "sagemaker:VpcSubnets": "true",
                    "sagemaker:VpcSecurityGroupIds": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Bool": {
                    "sagemaker:InterContainerTrafficEncryption": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateMonitoringSchedule",
                "sagemaker:UpdateMonitoringSchedule"
            ],
            "Resource": "arn:*:sagemaker:*:*:monitoring-schedule/*",
            "Condition": {
                "Null": {
                    "sagemaker:ModelMonitorJobDefinitionName": "true"
                }
            }
        }
    ]
}
```

------

 Las dos primeras reglas del ejemplo garantizan que los parámetros de seguridad estén siempre configurados para supervisar las definiciones de los trabajos. La regla final exige que cualquier persona de su organización que cree o actualice una programación tenga que especificar siempre el campo `MonitoringJobDefinitionName`. Esto garantiza que nadie de su organización pueda establecer valores inseguros para los parámetros de seguridad al especificar el campo `MonitoringJobDefinition` al crear o actualizar las programaciones. 