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 kann SageMaker KI mit der Verarbeitung von Jobs beginnen, um die in einem bestimmten Zeitraum gesammelten Daten zu analysieren. Im Verarbeitungsjob vergleicht SageMaker KI den Datensatz für die aktuelle Analyse mit den von Ihnen bereitgestellten Basisstatistiken und Einschränkungen. Anschließend generiert SageMaker KI einen Bericht über Verstöße. Darüber hinaus werden CloudWatch Metriken für jedes zu analysierende Merkmal ausgegeben.
SageMaker AI bietet einen vorgefertigten Container für die Durchführung von Analysen von tabellarischen Datensätzen. Alternativ können Sie, wie im Thema Support für Ihre eigenen Container mit Amazon SageMaker Model Monitor 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']))