

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 für Rückschlüsse auf HyperPod
<a name="sagemaker-hyperpod-model-deployment-data-capture"></a>

Mit der SageMaker HyperPod Amazon-Inferenzdatenerfassung können Sie Inferenzanforderungs- und Antwortdaten für die Modellüberwachung, das Debugging und die Modellverbesserung aufzeichnen. Inferenzanfragen werden vom SageMaker KI-Endpunkt an den Application Load Balancer und dann an den Modell-Pod weitergeleitet. 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):


**Ebenen der Datenerfassung**  

| Stufe | Erfassungspunkt | Was wird erfasst | Amazon 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 | Pod modellieren | Inferenzieren Sie Eingabe- und Ausgabe-Payloads mit konfigurierbaren Sampling-, Puffer- und Nutzlast-Größenbeschränkungen. Unterstützt AWS KMS Verschlüsselung, wenn Sie einen Schlüssel angeben. Erfasst Daten, die dem Modell am nächsten sind, um die größtmögliche Sichtbarkeit zu gewährleisten. | {s3Uri}/{hash}/pod/ | 

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

Alle Stufen schreiben in Ihren Amazon S3-Bucket. Wenn Sie kein angeben`s3Uri`, werden Daten standardmäßig im TLS-Zertifikat-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, sodass Datenerfassungsartefakte aus mehreren CRD-Übermittlungen, die auf dieselbe Bereitstellung abzielen, in denselben Amazon S3-Unterordner fließen.

Um die Datenerfassung für eine Ebene 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 `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, bei der alle drei Ebenen aktiviert sind:

```
  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-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 im selben Konto wie der Cluster befinden.

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

Stufe 1 verwendet die native SageMaker KI`DataCaptureConfig`, um Inferenz-Eingabe- und Ausgabe-Payloads auf Endpunktebene zu erfassen. Dies ist der äußerste Erfassungspunkt und ist mit SageMaker AI Model Monitor für die automatische Überwachung der Datenqualität kompatibel. Weitere Informationen zur SageMaker KI-Datenerfassung finden Sie unter [ Erfassen von Daten von einem Echtzeit-Endpunkt. ](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, boolesch)  
Auf setzen, `true` um Tier 1-Capture 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 für die Inferenzanforderung (`Input`), die Nutzlast der Inferenzantwort (`Output`) oder beides erfasst werden soll. Jedes Element hat ein `captureMode` Feld, das auf oder gesetzt ist. `Input` `Output` Standard: `[Input, Output]` (Sowohl Anfrage als auch Antwort werden erfasst). Maximum: 32 Artikel.

`sagemakerEndpoint.kmsKeyId`(Optional, Zeichenfolge)  
ARN, Schlüssel-ID, Aliasname oder Alias-ARN eines AWS KMS Schlüssels zum Verschlüsseln erfasster Daten im Ruhezustand. Wenn angegeben, werden die erfassten Daten mit diesem Schlüssel verschlüsselt. Wenn dieser Wert weggelassen wird, werden die Daten mit den standardmäßigen Amazon 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 und erfasst Anforderungsmetadaten wie Client-IPs, Anforderungspfade und Latenzen.

```
    loadBalancer:
      enabled: true
```

`loadBalancer.enabled`(Erforderlich, boolesch)  
Auf setzen, `true` um Tier 2-Capture 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-Standardverschlüsselung.

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

Stufe 3 erfasst die Nutzlasten der Inferenzeingabe und -ausgabe auf der Ebene des Modell-Pods und bietet so den umfassendsten Einblick in den Inferenzverkehr. Verwenden Sie diese Ebene, wenn Sie eine detaillierte 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, boolesch)  
Auf setzen, `true` um Tier 3-Capture 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 für die Inferenzanforderung (`Input`), die Nutzlast der Inferenzantwort (`Output`) oder beides erfasst werden soll. Jedes Element hat ein `captureMode` Feld, das auf oder gesetzt ist. `Input` `Output` Standard: `[Input, Output]` (Sowohl Anfrage als auch Antwort werden erfasst). Maximum: 32 Artikel.

`modelPod.kmsKeyId`(Optional, Zeichenfolge)  
ARN, Schlüssel-ID, Aliasname oder Alias-ARN eines AWS KMS Schlüssels zum Verschlüsseln erfasster Daten im Ruhezustand. Wenn angegeben, werden die erfassten Daten mit diesem Schlüssel verschlüsselt. Wenn dieser Wert weggelassen wird, werden die Daten mit den standardmäßigen Amazon 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 stapelweise ausgeführt werden müssen. Standard: `10`.

`modelPod.bufferConfig.flushIntervalSeconds`(Optional, Integer, 10—300)  
Maximale Zeit 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 Nutzdatengröße in KB pro Anfrage. Nutzlasten, die dieses Limit ü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 bei Ihrem AWS Konto. Bevor Sie eine Verbindung herstellen, erfassen Sie den Namen, die Region und den HyperPod Cluster-ARN des EKS-Clusters:

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

Stellen Sie eine Verbindung 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. **Rolle „Ausführung 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 (Tier 2) aktivieren, damit ALB Zugriffsprotokolle schreiben kann. Ersetzen Sie `$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"
           }
       }
   }
   ```

## Bewährte Methoden
<a name="sagemaker-hyperpod-model-deployment-data-capture-perf"></a>
+ Wird verwendet`initialSamplingPercentage`, um das Volumen der erfassten Daten zu kontrollieren. Beginnen Sie mit einem niedrigeren Prozentsatz der Produktion und erhöhen Sie ihn nach Bedarf.
+ Verwenden Sie `payloadConfig.maxPayloadSizeKB` (Tier 3), um die Größe der erfassten Nutzlasten zu begrenzen und die Speicherkosten zu kontrollieren.
+ Geben Sie einen `kmsKeyId` für Tier 1 und Tier 3 an, wenn Ihr Workload eine Verschlüsselung im Ruhezustand mit Ihrem eigenen AWS KMS Schlüssel erfordert.