View a markdown version of this page

Datenerfassung als Rückschluss auf HyperPod - Amazon SageMaker KI

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

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 angebens3Uri, 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

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

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.

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

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

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

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

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}" } } }
  2. 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}" } } }
  3. 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

  • initialSamplingPercentageDient 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.