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 können Sie mit der Verarbeitung von Jobs beginnen, um die während eines bestimmten Zeitraums gesammelten Daten zu analysieren. SageMaker Vergleicht im Verarbeitungsjob den Datensatz für die aktuelle Analyse mit den von Ihnen bereitgestellten Basisstatistiken und Einschränkungen. SageMaker Generieren Sie anschließend einen Bericht über Verstöße. Darüber hinaus werden CloudWatch Metriken für jedes zu analysierende Merkmal ausgegeben.

SageMaker bietet einen vorgefertigten Container für die Durchführung von Analysen 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 Trainingsdatensatz, der zum Trainieren 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']))