Zeitplan für Überwachungsaufgaben - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zeitplan für Überwachungsaufgaben

Amazon SageMaker Model Monitor bietet Ihnen die Möglichkeit, die von Ihren Echtzeit-Endpunkten gesammelten Daten zu überwachen. Sie können Ihre Daten nach einem wiederkehrenden Zeitplan oder einmalig sofort überwachen. Sie können mit der CreateMonitoringSchedule API einen Überwachungsplan erstellen.

Mit einem Überwachungsplan SageMaker kann mit der Verarbeitung von Aufträgen beginnen, um die während eines bestimmten Zeitraums gesammelten Daten zu analysieren. Im Verarbeitungsauftrag SageMaker wird der Datensatz für die aktuelle Analyse mit den von Ihnen angegebenen Basisstatistiken und Einschränkungen verglichen. SageMaker Generieren Sie dann einen Bericht über Verstöße. Darüber hinaus werden für jedes zu analysierende Feature CloudWatch Metriken ausgegeben.

SageMaker bietet einen vorgefertigten Container für die Analyse von tabellarischen Datensätzen. Alternativ können Sie, wie im Thema Verwendung Ihrer eigenen Container beschrieben, Ihren eigenen Container bereitstellen.

Sie können einen Zeitplan für die Modellüberwachung für Ihren Echtzeit-Endpunkt- oder Batch-Transformationsauftrag erstellen. Verwenden Sie die Basisressourcen (Beschränkungen und Statistiken) zum Vergleich mit dem Echtzeitverkehr oder den Batch-Auftrag-Eingaben.

Beispiel Basiszuweisungen

Im folgenden Beispiel wurde der Schulungsdatensatz, der zum Schulen des Modells verwendet wurde, auf Amazon S3 hochgeladen. Wenn es bereits in Amazon S3 vorhanden ist, können Sie direkt darauf verweisen.

# 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)
Beispiel Zeitplan für wiederkehrende Analysen

Wenn Sie einen Modellmonitor für einen Echtzeit-Endpunkt planen, verwenden Sie die Baseline-Beschränkungen und -Statistiken zum Vergleich mit dem Echtzeitverkehr. Der folgende Codeausschnitt zeigt das allgemeine Format, das Sie verwenden, um einen Modellmonitor für einen Echtzeit-Endpunkt zu planen. In diesem Beispiel wird der Modellmonitor so geplant, dass er stündlich ausgeführt wird.

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, )
Beispiel Zeitplan für eine einmalige Analyse

Sie können die Analyse auch so planen, dass sie einmal ohne Wiederholung ausgeführt wird, indem Sie Argumente wie die folgenden an die create_monitoring_schedule Methode übergeben:

schedule_cron_expression=CronExpressionGenerator.now(), data_analysis_start_time="-PT1H", data_analysis_end_time="-PT0H",

In diesen Argumenten plant der schedule_cron_expression Parameter, dass die Analyse einmal und sofort mit dem Wert CronExpressionGenerator.now() ausgeführt wird. Für jeden Zeitplan mit dieser Einstellung sind data_analysis_start_time und data_analysis_end_time Parameter erforderlich. Diese Parameter legen die Start- und Endzeit eines Analysefensters fest. Definieren Sie diese Zeiten als Offsets, die sich auf die aktuelle Uhrzeit beziehen, und verwenden Sie das ISO 8601-Dauerformat. In diesem Beispiel werden die Zeiten -PT1H und -PT0H angegeben, in Fenster zwischen einer Stunde in der Vergangenheit und der aktuellen Uhrzeit definiert. Bei diesem Zeitplan werden bei der Analyse nur die Daten ausgewertet, die während des angegebenen Zeitfensters gesammelt wurden.

Beispiel Zeitplan für einen Batch-Transformationsauftrag

Der folgende Codeausschnitt zeigt das allgemeine Format, das Sie verwenden, um einen Modellmonitor für einen Batch-Transformationsauftrag zu planen.

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']))