

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.

# Datenerfassung als Rückschluss auf HyperPod
<a name="sagemaker-hyperpod-model-deployment-data-capture"></a>

Mit Amazon SageMaker HyperPod Inference Data Capture können Sie Inferenzanforderungs- und Antwortdaten für die Modellüberwachung, das Debugging und die Modellverbesserung aufzeichnen. Inferenzanfragen fließen vom SageMaker KI-Endpunkt zum Application Load Balancer und dann zum Modell-Pod. Sie können die Erfassung auf jeder Ebene unabhängig aktivieren, von der äußersten Ebene (Tier 1, SageMaker KI-Endpunkt) bis zur tiefsten Ebene (Tier 3, Modell-Pod):


**Stufen der Datenerfassung**  

| Stufe | Erfassungspunkt | Was wird gefangen | Amazon S3 S3-Pfad | 
| --- | --- | --- | --- | 
| Stufe 1 | SageMaker KI-Endpunkt | Eingabe- und Ausgabe-Payloads, Sampling, Verschlüsselung AWS KMS  | {s3Uri}/{hash}/sme/ | 
| Stufe 2 | Application Load Balancer | Zugriffsprotokolle (Anforderungspfade, Client-IPs, Latenzen) | {s3Uri}/{hash}/alb/ | 
| Stufe 3 | Modell Pod | Inferenzeingabe- und Ausgabe-Payloads mit konfigurierbaren Sampling-, Pufferungs- und Payload-Größenbeschränkungen. Unterstützt AWS KMS Verschlüsselung, wenn Sie einen Schlüssel angeben. Erfasst Daten, die dem Modell am nächsten kommen, um die größtmögliche Transparenz zu gewährleisten. | {s3Uri}/{hash}/pod/ | 

Tier 1 erfasst vollständige Payloads an der Grenze der SageMaker AI Runtime API und erfordert eine Endpunktregistrierung. Verwenden Sie Tier 1, wenn Sie Kompatibilität mit SageMaker AI Model Monitor benötigen. Tier 3 erfasst vollständige Nutzlasten im Inferenzcontainer mit konfigurierbaren Puffer-, Sampling- und Nutzlastgrenzen und funktioniert ohne SageMaker KI-Endpunktregistrierung. Verwenden Sie Tier 3, wenn Sie die tiefste Transparenz benötigen, die dem Modell am nächsten kommt. Aktivieren Sie eine beliebige Kombination — jede Stufe erfasst an einem anderen Punkt im Anforderungsablauf.

Alle Stufen schreiben in Ihren Amazon S3 S3-Bucket. Wenn Sie kein angeben`s3Uri`, werden Daten standardmäßig im TLS-Zertifikats-Bucket unter einem `/data-capture/` Präfix gespeichert. Innerhalb des Buckets erhält jede Bereitstellung einen eindeutigen Pfad, der auf einem Hash basiert, der aus dem Cluster-ARN, dem Namespace, dem CRD-Typ und dem Bereitstellungsnamen abgeleitet wird. Dieselbe Bereitstellung generiert immer dasselbe Präfix, d. h. Datenerfassungsartefakte aus mehreren CRD-Einsendungen, die auf denselben Bereitstellungsablauf in denselben Amazon S3 S3-Unterordner abzielen.

Um die Datenerfassung für eine Stufe zu deaktivieren, setzen Sie das entsprechende `enabled` Feld auf `false` oder entfernen Sie den Abschnitt Stufe aus Ihrer CRD. Um die gesamte Datenerfassung zu deaktivieren, entfernen Sie den `dataCapture` Abschnitt vollständig.

## Konfiguration der Datenerfassung
<a name="sagemaker-hyperpod-model-deployment-data-capture-config"></a>

Aktivieren Sie die Datenerfassung, indem Sie Ihrer `InferenceEndpointConfig` oder Ihrer `JumpStartModel` CRD einen `dataCapture` Abschnitt hinzufügen. Der `dataCapture` Block enthält eine einzelne `s3Uri` (optionale) und eine oder mehrere Ebenenkonfigurationen. Das folgende Beispiel zeigt die Gesamtstruktur mit aktivierten drei Stufen:

```
  dataCapture:
    s3Uri: s3://my-capture-bucket/captures/   # Optional. Defaults to TLS bucket.
    sagemakerEndpoint:
      enabled: true
      # Tier 1 fields...
    loadBalancer:
      enabled: true
    modelPod:
      enabled: true
      # Tier 3 fields...
```

`dataCapture.s3Uri`(Optional, Zeichenfolge)  
Die Amazon S3 S3-URI, in der die erfassten Daten gespeichert werden. Wenn nicht angegeben, wird der TLS-Zertifikat-Bucket mit einem `/data-capture/` Präfix verwendet. Maximale Länge: 512 Zeichen. Der Bucket muss sich in demselben Konto wie der Cluster befinden.

### Stufe 1: SageMaker KI-Endpunkterfassung
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier1"></a>

Tier 1 verwendet native SageMaker KI, `DataCaptureConfig` um Inferenzeingabe- und Output-Payloads auf Endpunktebene zu erfassen. Dies ist der äußerste Erfassungspunkt und mit SageMaker AI Model Monitor zur automatisierten Überwachung der Datenqualität kompatibel. Weitere Informationen zur SageMaker KI-Datenerfassung finden Sie unter Erfassen [von Daten vom Echtzeit-Endpunkt aus](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html).

```
    sagemakerEndpoint:
      enabled: true
      initialSamplingPercentage: 100
      kmsKeyId: arn:aws:kms:us-east-2:123456789012:key/my-key-id
      captureOptions:
        - captureMode: Input
        - captureMode: Output
      captureContentTypeHeader:
        jsonContentTypes:
          - application/json
```

`sagemakerEndpoint.enabled`(Erforderlich, Boolean)  
Auf einstellen, `true` um Tier 1-Erfassung zu aktivieren.

`sagemakerEndpoint.initialSamplingPercentage`(Optional, Ganzzahl, 0—100)  
Prozentsatz der zu erfassenden Inferenzanfragen. Standard: `100` (alle Anfragen werden erfasst).

`sagemakerEndpoint.captureOptions`(Optional, Liste)  
Gibt an, ob die Nutzlast der Inferenzanforderung (`Input`), die Nutzlast der Inferenzantwort (`Output`) oder beide erfasst werden sollen. Für jedes Element ist ein `captureMode` Feld auf oder gesetzt. `Input` `Output` Standard: `[Input, Output]` (Sowohl Anfrage als auch Antwort werden erfasst). Maximal: 32 Artikel.

`sagemakerEndpoint.kmsKeyId`(Optional, Zeichenfolge)  
ARN, Schlüssel-ID, Aliasname oder Alias-ARN eines AWS KMS Schlüssels zur Verschlüsselung erfasster Daten im Ruhezustand. Wenn angegeben, werden die erfassten Daten mit diesem Schlüssel verschlüsselt. Wenn nicht angegeben, werden Daten mit den standardmäßigen Amazon S3 S3-Bucket-Verschlüsselungseinstellungen verschlüsselt. Maximale Länge: 2048 Zeichen.

`sagemakerEndpoint.captureContentTypeHeader` (Optional)  
Gibt an, wie der Inhaltstyp der erfassten Payloads interpretiert werden soll. Unterstützungen `jsonContentTypes` und `csvContentTypes` Arrays. Maximal: jeweils 10 Artikel.

### Stufe 2: Erfassung durch den Load Balancer
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier2"></a>

Tier 2 ermöglicht ALB-Zugriffsprotokolle, die Anforderungsmetadaten wie Client-IPs, Anforderungspfade und Latenzen erfassen.

```
    loadBalancer:
      enabled: true
```

`loadBalancer.enabled`(Erforderlich, Boolean)  
Auf einstellen, `true` um Tier 2-Erfassung zu aktivieren.

**Anmerkung**  
ALB-Zugriffsprotokolle erfassen Anforderungsmetadaten, einschließlich URLs und Abfrageparameter. Verwenden Sie POST-Anforderungstexte anstelle von Abfrageparametern für vertrauliche Eingaben. ALB-Protokolle unterstützen keine AWS KMS Verschlüsselung und verwenden nur die Amazon S3 S3-Standardverschlüsselung.

### Stufe 3: Erfassung von Modell-Pods
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier3"></a>

Stufe 3 erfasst Nutzlasten für Inferenzeingabe und -ausgabe auf Modell-Pod-Ebene und bietet so den umfassendsten Einblick in den Inferenzdatenverkehr. Verwenden Sie diese Stufe, wenn Sie eine genaue Kontrolle über die Pufferung, die Größenbeschränkungen für die Nutzlast und die Erfassung benötigen, die dem Modell am nächsten kommt.

```
    modelPod:
      enabled: true
      initialSamplingPercentage: 100
      kmsKeyId: arn:aws:kms:us-east-2:123456789012:key/my-key-id
      captureOptions:
        - captureMode: Input
        - captureMode: Output
      bufferConfig:
        batchSize: 100
        flushIntervalSeconds: 60
      payloadConfig:
        maxPayloadSizeKB: 1024
```

`modelPod.enabled`(Erforderlich, Boolean)  
Auf einstellen, `true` um die Tier-3-Erfassung zu aktivieren.

`modelPod.initialSamplingPercentage`(Optional, Ganzzahl, 0—100)  
Prozentsatz der zu erfassenden Inferenzanfragen. Standard: `100` (alle Anfragen werden erfasst).

`modelPod.captureOptions`(Optional, Liste)  
Gibt an, ob die Nutzlast der Inferenzanforderung (`Input`), die Nutzlast der Inferenzantwort (`Output`) oder beide erfasst werden sollen. Für jedes Element ist ein `captureMode` Feld auf oder gesetzt. `Input` `Output` Standard: `[Input, Output]` (Sowohl Anfrage als auch Antwort werden erfasst). Maximal: 32 Artikel.

`modelPod.kmsKeyId`(Optional, Zeichenfolge)  
ARN, Schlüssel-ID, Aliasname oder Alias-ARN eines AWS KMS Schlüssels zur Verschlüsselung erfasster Daten im Ruhezustand. Wenn angegeben, werden die erfassten Daten mit diesem Schlüssel verschlüsselt. Wenn nicht angegeben, werden Daten mit den standardmäßigen Amazon S3 S3-Bucket-Verschlüsselungseinstellungen verschlüsselt. Maximale Länge: 2048 Zeichen.

`modelPod.bufferConfig.batchSize`(Optional, Ganzzahl, 1—1000)  
Anzahl der Inferenzanforderungen, die vor dem Leeren gebacken werden müssen. Standard: `10`.

`modelPod.bufferConfig.flushIntervalSeconds`(Optional, Ganzzahl, 10—300)  
Höchstdauer in Sekunden, für die ein Stapel aufbewahrt wird, bevor er geleert wird, unabhängig davon, ob die Batchgröße erreicht wurde. Standard: `60`.

`modelPod.payloadConfig.maxPayloadSizeKB` (Optional, Ganzzahl)  
Maximale Payload-Größe in KB pro Anfrage. Payloads, die diesen Grenzwert überschreiten, werden gekürzt. Wenn nicht gesetzt, wird die gesamte Nutzlast erfasst.

## Addon aktualisieren
<a name="sagemaker-hyperpod-model-deployment-update-addon"></a>

**Voraussetzungen: Authentifizieren Sie sich und stellen Sie eine Verbindung zu Ihrem EKS-Cluster her**

Authentifizieren Sie sich mit Ihrem AWS Konto. Erfassen Sie vor dem Herstellen der Verbindung den Namen, die Region und den HyperPod Cluster-ARN des EKS-Clusters:

```
CLUSTER={{EKS_CLUSTER_NAME}}
REGION={{REGION}}
HP_ARN={{HYPERPOD_CLUSTER_ARN}}
```

Connect zu Ihrem EKS-Cluster her:

```
aws eks update-kubeconfig --region {{REGION}} --name {{EKS_CLUSTER_NAME}}
```

Aktualisieren Sie die Addon-Konfiguration:

```
VERSION=$(aws eks describe-addon --cluster-name $CLUSTER --addon-name amazon-sagemaker-hyperpod-inference --region $REGION --query 'addon.addonVersion' --output text)
CURRENT_CONFIG=$(aws eks describe-addon --cluster-name $CLUSTER --addon-name amazon-sagemaker-hyperpod-inference --region $REGION --query 'addon.configurationValues' --output text)
NEW_CONFIG=$(echo "$CURRENT_CONFIG" | jq --arg arn "$HP_ARN" '. + {hyperpodClusterArn: $arn}')

aws eks update-addon \
--cluster-name $CLUSTER \
--addon-name amazon-sagemaker-hyperpod-inference \
--addon-version "$VERSION" \
--configuration-values "$NEW_CONFIG" \
--resolve-conflicts OVERWRITE \
--region $REGION
```

**Warten Sie, bis das Addon aktiv ist, und stellen Sie dann die Modelle bereit**

## Aktualisierung der Berechtigungen für bestehende Cluster
<a name="sagemaker-hyperpod-model-deployment-data-capture-iam"></a>

Um die Datenerfassung HyperPod in Ihren Inference-Bereitstellungen zu aktivieren, konfigurieren Sie die folgenden IAM-Berechtigungen.

1. **Ausführungsrolle des Inferenz-Operators**

   Fügen Sie die folgende S3-Berechtigung hinzu:

   ```
   {
       "Sid": "DataCaptureS3Access",
       "Effect": "Allow",
       "Action": "s3:PutObject",
       "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*",
       "Condition": {
           "StringEquals": {
               "aws:ResourceAccount": "${aws:PrincipalAccount}"
           }
       }
   }
   ```

   Fügen Sie Ihren Bucket-Namen hinzu, wenn Sie einen benutzerdefinierten S3-Bucket verwenden möchten.

   Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel verwenden, fügen Sie außerdem Folgendes hinzu:

   ```
   {
       "Sid": "DataCaptureKmsAccess",
       "Effect": "Allow",
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey"
       ],
       "Resource": "arn:aws:kms:*:*:key/*",
       "Condition": {
           "StringLike": {
               "kms:ViaService": "s3.*.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::hyperpod-tls*"
           },
           "StringEquals": {
               "aws:ResourceAccount": "${aws:PrincipalAccount}"
           }
       }
   }
   ```

1. **Rolle des S3 CSI-Treibers**

   Fügen Sie die folgende S3-Berechtigung hinzu:

   ```
   {
       "Sid": "DataCaptureWriteAccess",
       "Effect": "Allow",
       "Action": [
           "s3:PutObject",
           "s3:AbortMultipartUpload"
       ],
       "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*",
       "Condition": {
           "StringEquals": {
               "aws:ResourceAccount": "${aws:PrincipalAccount}"
           }
       }
   }
   ```

   Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel verwenden, fügen Sie außerdem Folgendes hinzu:

   ```
   {
       "Sid": "DataCaptureKmsAccess",
       "Effect": "Allow",
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey"
       ],
       "Resource": "arn:aws:kms:*:*:key/*",
       "Condition": {
           "StringLike": {
               "kms:ViaService": "s3.*.amazonaws.com"
           },
           "StringEquals": {
               "aws:ResourceAccount": "${aws:PrincipalAccount}"
           }
       }
   }
   ```

1. **S3-Bucket-Richtlinie**

   Fügen Sie diese Bucket-Richtlinie nur hinzu, wenn Sie die Load Balancer-Datenerfassung (Stufe 2) aktivieren, damit ALB Zugriffsprotokolle schreiben kann. Ersetzen Sie es `$ACCOUNT_ID` durch Ihre AWS Konto-ID.

   ```
   {
       "Sid": "AllowALBAccessLogDelivery",
       "Effect": "Allow",
       "Principal": {
           "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
       },
       "Action": "s3:PutObject",
       "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": "$ACCOUNT_ID"
           }
       }
   }
   ```

## Best Practices
<a name="sagemaker-hyperpod-model-deployment-data-capture-perf"></a>
+ `initialSamplingPercentage`Dient zur Steuerung des Volumens der erfassten Daten. Beginnen Sie mit einem niedrigeren Produktionsanteil und erhöhen Sie ihn nach Bedarf.
+ Verwenden Sie `payloadConfig.maxPayloadSizeKB` (Stufe 3), um die Größe der erfassten Nutzlasten zu begrenzen und die Speicherkosten zu kontrollieren.
+ Geben Sie a `kmsKeyId` für Tier 1 und Tier 3 an, wenn Ihr Workload Verschlüsselung im Ruhezustand mit Ihrem eigenen AWS KMS Schlüssel erfordert.