

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.

# Support für Ihre eigenen Container mit Amazon SageMaker Model Monitor
<a name="model-monitor-byoc-containers"></a>

Amazon SageMaker Model Monitor bietet einen vorgefertigten Container mit der Möglichkeit, die von Endpunkten erfassten Daten oder Batch-Transformationsjobs für tabellarische Datensätze zu analysieren. Wenn Sie Ihren eigenen Container bereitstellen möchten, bietet Model Monitor Erweiterungspunkte, die Sie nutzen können.

Wenn Sie einen `MonitoringSchedule` erstellen, startet letztendlich Verarbeitungsaufträge hinter den Kulissen. Daher muss der Container über den im [So erstellen Sie einen eigenen Verarbeitungscontainer (erweitertes Szenario)](build-your-own-processing-container.md) Thema dokumentierten Verarbeitungsauftragsvertrag informiert sein. Beachten Sie, dass Model Monitor den Verarbeitungsauftrag in Ihrem Namen gemäß dem Zeitplan startet. Beim Aufrufen richtet Model Monitor zusätzliche Umgebungsvariablen für Sie ein, damit Ihr Container über genügend Kontext verfügt, um die Daten für die bestimmte Ausführung der geplanten Überwachung zu verarbeiten. Weitere Informationen zu Container-Eingaben finden Sie im [Container-Vertragseingaben](model-monitor-byoc-contract-inputs.md).

Im Container können Sie nun mithilfe der obigen Umgebungsvariablen/des obigen Kontexts den Datensatz für den aktuellen Zeitraum in Ihrem benutzerdefinierten Code analysieren. Sobald diese Analyse abgeschlossen ist, haben Sie die Möglichkeit, Ihre Berichte auszugeben, die zu S3-Bucket hochgeladen werden sollen. Die Berichte, die der vorgefertigte Container generiert, werden in [Container-Vertragsausgaben](model-monitor-byoc-contract-outputs.md) dokumentiert. Wenn Sie möchten, dass die Visualisierung der Berichte in SageMaker Studio funktioniert, sollten Sie dasselbe Format verwenden. Sie können auch reine benutzerdefinierte Berichte ausgeben.

Sie geben auch CloudWatch Metriken aus dem Container aus, indem Sie den Anweisungen unter folgen[CloudWatch Metriken für Bring Your Own Containers](model-monitor-byoc-cloudwatch.md).

**Topics**
+ [Container-Vertragseingaben](model-monitor-byoc-contract-inputs.md)
+ [Container-Vertragsausgaben](model-monitor-byoc-contract-outputs.md)
+ [CloudWatch Metriken für Bring Your Own Containers](model-monitor-byoc-cloudwatch.md)

# Container-Vertragseingaben
<a name="model-monitor-byoc-contract-inputs"></a>

Die Amazon SageMaker Model Monitor-Plattform ruft Ihren Containercode gemäß einem bestimmten Zeitplan auf. Wenn Sie Ihren eigenen Container-Code schreiben möchten, stehen Ihnen die folgenden Umgebungsvariablen zur Verfügung. In diesem Zusammenhang können Sie den aktuellen Datensatz analysieren oder die Constraints auswerten und gegebenenfalls Metriken ausgeben.

Die verfügbaren Umgebungsvariablen sind für Echtzeit-Endpunkte und Batch-Transformationsaufträge identisch, mit Ausnahme der `dataset_format` Variablen. Wenn Sie einen Echtzeit-Endpunkt verwenden, unterstützt die `dataset_format` Variable die folgenden Optionen:

```
{\"sagemakerCaptureJson\": {\"captureIndexNames\": [\"endpointInput\",\"endpointOutput\"]}}
```

Wenn Sie einen Batch-Transformationsauftrag verwenden, `dataset_format` unterstützt der die folgenden Optionen:

```
{\"csv\": {\"header\": [\"true\",\"false\"]}}
```

```
{\"json\": {\"line\": [\"true\",\"false\"]}}
```

```
{\"parquet\": {}}
```

Das folgende Codebeispiel zeigt den vollständigen Satz von Umgebungsvariablen, die für Ihren Container-Code verfügbar sind (und verwendet das `dataset_format` Format für einen Echtzeit-Endpunkt).

```
"Environment": {
 "dataset_format": "{\"sagemakerCaptureJson\": {\"captureIndexNames\": [\"endpointInput\",\"endpointOutput\"]}}",
 "dataset_source": "/opt/ml/processing/endpointdata",
 "end_time": "2019-12-01T16: 20: 00Z",
 "output_path": "/opt/ml/processing/resultdata",
 "publish_cloudwatch_metrics": "Disabled",
 "sagemaker_endpoint_name": "endpoint-name",
 "sagemaker_monitoring_schedule_name": "schedule-name",
 "start_time": "2019-12-01T15: 20: 00Z"
}
```

Parameters 


| Name des Parameters | Description | 
| --- | --- | 
| dataset\$1format |  Bei einem Auftrag, der von einem `MonitoringSchedule`, unterstützt von einem `Endpoint`, gestartet wurde, handelt es sich um `sageMakerCaptureJson` mit den Erfassungsindizes `endpointInput` oder `endpointOutput` oder beides. Für einen Batch-Transformationsjob gibt dies das Datenformat an, ob CSV, JSON oder Parquet.  | 
| dataset\$1source |  Wenn Sie einen Echtzeit-Endpunkt verwenden, den lokalen Pfad, in dem die Daten, die dem durch `start_time` und `end_time` angegebenen Überwachungszeitraum entsprechen, verfügbar sind. In diesem Pfad sind die Daten in ` /{endpoint-name}/{variant-name}/yyyy/mm/dd/hh` verfügbar. Manchmal laden wir mehr als das herunter, was durch die Start- und Endzeiten angegeben wird. Es liegt an dem Containercode, die Daten nach Bedarf zu analysieren.  | 
| output\$1path |  Der lokale Pfad zum Schreiben von Ausgabeberichten und anderen Dateien. Sie müssen diesen Parameter in der Anforderung `CreateMonitoringSchedule` als `MonitoringOutputConfig.MonitoringOutput[0].LocalPath` angeben. Es wird in den in `MonitoringOutputConfig.MonitoringOutput[0].S3Uri` angegebenen Pfad `S3Uri` hochgeladen.  | 
| publish\$1cloudwatch\$1metrics |  Für einen von `CreateMonitoringSchedule` gestarteten Auftrag, ist dieser Parameter auf `Enabled` eingestellt. Der Container kann wählen, unter welcher Adresse die CloudWatch Amazon-Ausgabedatei geschrieben werden soll`[filepath]`.  | 
| sagemaker\$1endpoint\$1name |  Wenn Sie einen Echtzeit-Endpunkt verwenden, den Namen des `Endpoint`, für den dieser geplante Auftrag gestartet wurde.  | 
| sagemaker\$1monitoring\$1schedule\$1name |  Der Name des `MonitoringSchedule`, der diesen Auftrag gestartet hat.  | 
| \$1sagemaker\$1endpoint\$1datacapture\$1prefix\$1 |  Wenn Sie einen Echtzeit-Endpunkt verwenden, muss das Präfix, das im `DataCaptureConfig` Parameter des `Endpoint`. Der Container kann dies verwenden, wenn er direkt auf mehr Daten zugreifen muss, als die SageMaker KI bereits am `dataset_source` Pfad heruntergeladen hat.  | 
| start\$1time, end\$1time |  Das Zeitfenster für diesen Analyselauf. Beispiel: Bei einem Auftrag, dessen Ausführung um 05:00 UTC geplant ist, und einem Auftrag, der am 20/02/2020 ausgeführt wird, ist `start_time`: 2020-02-19T06:00:00Z und `end_time`: ist 2020-02-20T05:00:00Z  | 
| baseline\$1constraints: |  Der lokale Pfad der in ` BaselineConfig.ConstraintResource.S3Uri` angegebenen Baseline-Einschränkungsdatei. Dies ist nur verfügbar, wenn dieser Parameter in der `CreateMonitoringSchedule`-Anforderung angegeben wurde.  | 
| baseline\$1statistics |  Der lokale Pfad zur Baseline-Statistikdatei, die in `BaselineConfig.StatisticsResource.S3Uri` angegeben wird. Dies ist nur verfügbar, wenn dieser Parameter in der `CreateMonitoringSchedule`-Anforderung angegeben wurde.   | 

# Container-Vertragsausgaben
<a name="model-monitor-byoc-contract-outputs"></a>

Der Container kann die im Pfad `*dataset_source*` verfügbaren Daten analysieren und Berichte in den Pfad `*output_path*.` schreiben. Der Containercode kann beliebige Berichte schreiben, die Ihren Anforderungen entsprechen.

Wenn Sie die folgende Struktur und den folgenden Vertrag verwenden, werden bestimmte Ausgabedateien von SageMaker KI in der Visualisierung und API speziell behandelt. Dies gilt nur für Tabellendatensätze.

Ausgabedateien für Tabellendatensätze


| Dateiname | Description | 
| --- | --- | 
| statistics.json |  Für diese Datei wird erwartet, dass für jede Funktion im Datensatz, die analysiert wird, spaltenförmige Statistiken vorhanden sind. Das Schema für diese Datei finden Sie im nächsten Abschnitt.  | 
| constraints.json |  Von dieser Datei wird erwartet, dass die Beschränkungen für Funktionen beachtet werden. Das Schema für diese Datei finden Sie im nächsten Abschnitt.  | 
| constraints\$1violations.json |  Es wird erwartet, dass diese Datei die Liste der Verstöße enthält, die in diesem aktuellen Datensatz gefunden wurden, verglichen mit der Datei der Baseline-Statistik und -Einschränkungen, die im Pfad `baseline_constaints` und `baseline_statistics` angegeben ist.  | 

Wenn der `publish_cloudwatch_metrics` Wert ein `"Enabled"` Containercode ist, kann er außerdem CloudWatch Amazon-Metriken an diesem Standort ausgeben:`/opt/ml/output/metrics/cloudwatch`. Das Schema für diese Dateien wird in den folgenden Abschnitten beschrieben.

**Topics**
+ [Schema für Statistiken (Datei statistics.json)](model-monitor-byoc-statistics.md)
+ [Schema für Einschränkungen (Datei constraints.json)](model-monitor-byoc-constraints.md)

# Schema für Statistiken (Datei statistics.json)
<a name="model-monitor-byoc-statistics"></a>

Das in der Datei `statistics.json` definierte Schema gibt die statistischen Parameter an, die für die Baseline und die erfassten Daten berechnet werden sollen. Es konfiguriert auch den Bucket, der von [KLL](https://datasketches.apache.org/docs/KLL/KLLSketch.html) verwendet werden soll, einer sehr kompakten Quantil-Skizze mit verzögertem Komprimierungsschema.

```
{
    "version": 0,
    # dataset level stats
    "dataset": {
        "item_count": number
    },
    # feature level stats
    "features": [
        {
            "name": "feature-name",
            "inferred_type": "Fractional" | "Integral",
            "numerical_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "mean": number,
                "sum": number,
                "std_dev": number,
                "min": number,
                "max": number,
                "distribution": {
                    "kll": {
                        "buckets": [
                            {
                                "lower_bound": number,
                                "upper_bound": number,
                                "count": number
                            }
                        ],
                        "sketch": {
                            "parameters": {
                                "c": number,
                                "k": number
                            },
                            "data": [
                                [
                                    num,
                                    num,
                                    num,
                                    num
                                ],
                                [
                                    num,
                                    num
                                ][
                                    num,
                                    num
                                ]
                            ]
                        }#sketch
                    }#KLL
                }#distribution
            }#num_stats
        },
        {
            "name": "feature-name",
            "inferred_type": "String",
            "string_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "distinct_count": number,
                "distribution": {
                    "categorical": {
                         "buckets": [
                                {
                                    "value": "string",
                                    "count": number
                                }
                          ]
                     }
                }
            },
            #provision for custom stats
        }
    ]
}
```

**Hinweise**  
Die angegebenen Metriken werden von der SageMaker KI bei späteren Visualisierungsänderungen erkannt. Der Container kann bei Bedarf weitere Metriken ausgeben.
[KLL-Skizze](https://datasketches.apache.org/docs/KLL/KLLSketch.html) ist die erkannte Skizze. Benutzerdefinierte Container können ihre eigene Darstellung schreiben, diese wird jedoch von der SageMaker KI in Visualisierungen nicht erkannt.
Standardmäßig wird die Verteilung in 10 Buckets materialisiert. Sie können diesen Wert nicht ändern.

# Schema für Einschränkungen (Datei constraints.json)
<a name="model-monitor-byoc-constraints"></a>

Eine constraints.json-Datei wird verwendet, um die Einschränkungen auszudrücken, die ein Datensatz erfüllen muss. Amazon SageMaker Model Monitor-Container können die Datei constraints.json verwenden, um Datensätze anhand dieser Daten auszuwerten. Vorgefertigte Container bieten die Möglichkeit, die Datei constraints.json automatisch für einen Baseline-Datensatz zu generieren. Wenn Sie Ihren eigenen Container mit ähnlichen Fähigkeiten bereitstellen oder Sie können die Datei constraints.json auf andere Weise erstellen. Hier ist das Schema für die Einschränkungsdatei, die der vorgefertigte Container verwendet. Beim Bereitstellen eigener Container kann das gleiche Format übernommen oder bei Bedarf erweitert werden.

```
{
    "version": 0,
    "features":
    [
        {
            "name": "string",
            "inferred_type": "Integral" | "Fractional" | 
                    | "String" | "Unknown",
            "completeness": number,
            "num_constraints":
            {
                "is_non_negative": boolean
            },
            "string_constraints":
            {
                "domains":
                [
                    "list of",
                    "observed values",
                    "for small cardinality"
                ]
            },
            "monitoringConfigOverrides":
            {}
        }
    ],
    "monitoring_config":
    {
        "evaluate_constraints": "Enabled",
        "emit_metrics": "Enabled",
        "datatype_check_threshold": 0.1,
        "domain_content_threshold": 0.1,
        "distribution_constraints":
        {
            "perform_comparison": "Enabled",
            "comparison_threshold": 0.1,
            "comparison_method": "Simple"||"Robust",
            "categorical_comparison_threshold": 0.1,
            "categorical_drift_method": "LInfinity"||"ChiSquared"
        }
    }
}
```

Das `monitoring_config` Objekt enthält Optionen für die Überwachung des Auftrages für die Funktion. In der folgenden Tabelle werden die einzelnen Optionen beschrieben.

Überwachung von Beschränkungen

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/model-monitor-byoc-constraints.html)

# CloudWatch Metriken für Bring Your Own Containers
<a name="model-monitor-byoc-cloudwatch"></a>

Wenn der `publish_cloudwatch_metrics` Wert `Enabled` in der `Environment` Map in der `/opt/ml/processing/processingjobconfig.json` Datei enthalten ist, gibt der Container-Code CloudWatch Amazon-Metriken an diesem Speicherort aus:`/opt/ml/output/metrics/cloudwatch`. 

Das Schema für diese Datei basiert eng auf der CloudWatch `PutMetrics` API. Der Namespace ist hier nicht angegeben. Standardmäßig ist Folgendes:
+ `For real-time endpoints: /aws/sagemaker/Endpoint/data-metrics`
+ `For batch transform jobs: /aws/sagemaker/ModelMonitoring/data-metrics`

Sie können jedoch Dimensionen angeben. Wir empfehlen Ihnen, mindestens die folgenden Abmessungen hinzuzufügen:
+ `Endpoint` und `MonitoringSchedule` für Echtzeit-Endpunkte
+ `MonitoringSchedule` für Batch-Transformationsaufträge

Die folgenden JSON-Snippets zeigen, wie Sie Ihre Dimensionen festlegen.

Einen Echtzeit-Endpunkt finden Sie im folgenden JSON-Snippet, das die Dimensionen `Endpoint` und `MonitoringSchedule` enthält.

```
{ 
    "MetricName": "", # Required
    "Timestamp": "2019-11-26T03:00:00Z", # Required
    "Dimensions" : [{"Name":"Endpoint","Value":"endpoint_0"},{"Name":"MonitoringSchedule","Value":"schedule_0"}]
    "Value": Float,
    # Either the Value or the StatisticValues field can be populated and not both.
    "StatisticValues": {
        "SampleCount": Float,
        "Sum": Float,
        "Minimum": Float,
        "Maximum": Float
    },
    "Unit": "Count", # Optional
}
```

Für einen Batch-Transformationsauftrag sehen Sie sich den folgenden JSON-Snippet an, der die Dimension `MonitoringSchedule` enthält:

```
{ 
    "MetricName": "", # Required
    "Timestamp": "2019-11-26T03:00:00Z", # Required
    "Dimensions" : [{"Name":"MonitoringSchedule","Value":"schedule_0"}]
    "Value": Float,
    # Either the Value or the StatisticValues field can be populated and not both.
    "StatisticValues": {
        "SampleCount": Float,
        "Sum": Float,
        "Minimum": Float,
        "Maximum": Float
    },
    "Unit": "Count", # Optional
}
```