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.
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 un cronograma de monitoreo con. CreateMonitoringSchedule
API
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.
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.
ejemplo 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)
ejemplo 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,
)
ejemplo 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 valorCronExpressionGenerator.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 ISO el formato de duración 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.
ejemplo 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']))