Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Acquisizione di dati per inferenza su HyperPod
Amazon SageMaker HyperPod Inference Data Capture ti consente di registrare i dati di richiesta e risposta di inferenza per il monitoraggio, il debug e il miglioramento del modello. Le richieste di inferenza fluiscono dall'endpoint SageMaker AI all'Application Load Balancer e quindi al pod del modello. Puoi abilitare l'acquisizione in modo indipendente a ogni livello, dal livello più esterno (Tier 1, endpoint SageMaker AI) al livello più profondo (Tier 3, model pod):
| Livello | Punto di acquisizione | Cosa viene catturato | Percorso Amazon S3 |
|---|---|---|---|
| Livello 1 | SageMaker Endpoint AI | Payload di input e output, campionamento, crittografia AWS KMS | {s3Uri}/{hash}/sme/ |
| Livello 2 | Application Load Balancer | Registri di accesso (percorsi di richiesta, IP client, latenze) | {s3Uri}/{hash}/alb/ |
| Livello 3 | Modello pod | Payload di input e output di inferenza con limiti configurabili di campionamento, buffering e dimensione del carico utile. Supporta la AWS KMS crittografia quando si fornisce una chiave. Acquisisce i dati più vicini al modello per la massima visibilità. | {s3Uri}/{hash}/pod/ |
Il livello 1 acquisisce i payload completi al confine dell'API SageMaker AI Runtime e richiede la registrazione degli endpoint. Usa Tier 1 quando hai bisogno di compatibilità con SageMaker AI Model Monitor. Il livello 3 acquisisce i payload completi nel contenitore di inferenza con limiti configurabili di buffering, campionamento e payload e funziona senza la registrazione degli endpoint AI. SageMaker Usa Tier 3 quando hai bisogno della visibilità più profonda e più vicina al modello. Abilita qualsiasi combinazione: ogni livello esegue l'acquisizione in un punto diverso del flusso di richieste.
Tutti i livelli scrivono nel tuo bucket Amazon S3. Se non ne specifichi unos3Uri, per impostazione predefinita, i dati vengono archiviati nel bucket del certificato TLS con un prefisso. /data-capture/ All'interno del bucket, ogni implementazione ottiene un percorso univoco basato su un hash derivato dall'ARN del cluster, dallo spazio dei nomi, dal tipo CRD e dal nome della distribuzione. La stessa distribuzione genera sempre lo stesso prefisso, quindi gli artefatti di acquisizione dei dati da più invii CRD destinati alla stessa distribuzione fluiscono nella stessa sottocartella Amazon S3.
Per disabilitare l'acquisizione dei dati per un livello, imposta il relativo enabled campo su false o rimuovi la sezione relativa al livello dal tuo CRD. Per disabilitare l'acquisizione di tutti i dati, rimuovete completamente la dataCapture sezione.
Configurazione dell'acquisizione dei dati
Abilita l'acquisizione dei dati aggiungendo una dataCapture sezione al tuo InferenceEndpointConfig o JumpStartModel CRD. Il dataCapture blocco contiene una configurazione a livello singolo s3Uri (opzionale) e uno o più livelli. L'esempio seguente mostra la struttura generale con tutti e tre i livelli abilitati:
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(Facoltativo, String)-
L'URI di Amazon S3 in cui vengono archiviati i dati acquisiti. Se non specificato, il bucket di certificati TLS viene utilizzato con un prefisso.
/data-capture/Lunghezza massima: 512 caratteri. Il bucket deve trovarsi nello stesso account del cluster.
Livello 1: acquisizione degli endpoint SageMaker AI
Il livello 1 utilizza l' SageMaker intelligenza artificiale nativa DataCaptureConfig per acquisire i payload di input e output di inferenza a livello di endpoint. Questo è il punto di acquisizione più esterno ed è compatibile con SageMaker AI Model Monitor per il monitoraggio automatizzato della qualità dei dati. Per ulteriori informazioni sull'acquisizione dei dati SageMaker AI, consulta Acquisire dati da endpoint in tempo reale.
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(Obbligatorio, booleano)Impostato per
trueabilitare l'acquisizione di livello 1.sagemakerEndpoint.initialSamplingPercentage(Facoltativo, numero intero, 0—100)Percentuale di richieste di inferenza da acquisire. Impostazione predefinita:
100(tutte le richieste vengono acquisite).sagemakerEndpoint.captureOptions(Facoltativo, elenco)Speciifica se acquisire il payload della richiesta di inferenza (
Input), il payload della risposta di inferenza (Output) o entrambi. Ogni elemento ha un campo impostato su ocaptureMode.InputOutputImpostazione predefinita:[Input, Output](vengono acquisite sia la richiesta che la risposta). Massimo: 32 articoli.sagemakerEndpoint.kmsKeyId(Opzionale, String)ARN, ID chiave, nome alias o alias ARN di una AWS KMS chiave per crittografare i dati acquisiti a riposo. Quando specificato, i dati acquisiti vengono crittografati con questa chiave. Se omessi, i dati vengono crittografati con le impostazioni di crittografia dei bucket Amazon S3 predefinite. Lunghezza massima: 2048 caratteri.
sagemakerEndpoint.captureContentTypeHeader(facoltativo).Specifica come interpretare il tipo di contenuto dei payload acquisiti. Supporti
jsonContentTypese matrici.csvContentTypesMassimo: 10 articoli ciascuno.
Livello 2: acquisizione del sistema di bilanciamento del carico
Il livello 2 abilita i log di accesso ALB, acquisendo i metadati delle richieste come gli IP dei client, i percorsi delle richieste e le latenze.
loadBalancer: enabled: true
loadBalancer.enabled(Obbligatorio, booleano)Impostato per
trueabilitare l'acquisizione di livello 2.
Nota
I registri di accesso ALB acquisiscono i metadati delle richieste, inclusi URL e parametri di query. Utilizzate i corpi delle richieste POST anziché i parametri di interrogazione per gli input sensibili. I log ALB non supportano la AWS KMS crittografia e utilizzano solo la crittografia predefinita di Amazon S3.
Livello 3: acquisizione del modello pod
Il livello 3 acquisisce i payload di input e output di inferenza a livello di pod del modello, fornendo la massima visibilità sul traffico di inferenza. Utilizzate questo livello quando avete bisogno di un controllo preciso sul buffering, sui limiti delle dimensioni del payload e sull'acquisizione più vicina al modello.
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(Obbligatorio, booleano)Impostato per
trueabilitare l'acquisizione di livello 3.modelPod.initialSamplingPercentage(Facoltativo, numero intero, 0—100)Percentuale di richieste di inferenza da acquisire. Impostazione predefinita:
100(tutte le richieste vengono acquisite).modelPod.captureOptions(Facoltativo, elenco)Speciifica se acquisire il payload della richiesta di inferenza (
Input), il payload della risposta di inferenza (Output) o entrambi. Ogni elemento ha un campo impostato su ocaptureMode.InputOutputImpostazione predefinita:[Input, Output](vengono acquisite sia la richiesta che la risposta). Massimo: 32 articoli.modelPod.kmsKeyId(Opzionale, String)ARN, ID chiave, nome alias o alias ARN di una AWS KMS chiave per crittografare i dati acquisiti a riposo. Quando specificato, i dati acquisiti vengono crittografati con questa chiave. Se omessi, i dati vengono crittografati con le impostazioni di crittografia dei bucket Amazon S3 predefinite. Lunghezza massima: 2048 caratteri.
modelPod.bufferConfig.batchSize(Facoltativo, numero intero, 1—1000)Numero di richieste di inferenza da raggruppare prima del flushing. Default:
10.modelPod.bufferConfig.flushIntervalSeconds(Facoltativo, numero intero, 10—300)Tempo massimo in secondi di conservazione di un lotto prima di essere svuotato, indipendentemente dal fatto che sia stata raggiunta la dimensione del lotto. Default:
60.modelPod.payloadConfig.maxPayloadSizeKB(Facoltativo, Numero intero)Dimensione massima del payload in KB per richiesta. I payload che superano questo limite vengono troncati. Se non è impostato, viene acquisito l'intero payload.
Aggiorna Addon
Prerequisiti: autentica e connettiti al tuo cluster EKS
Effettua l'autenticazione sul tuo account. AWS Prima di connetterti, raccogli il nome del cluster EKS, la regione e l' HyperPod ARN del cluster:
CLUSTER=EKS_CLUSTER_NAMEREGION=REGIONHP_ARN=HYPERPOD_CLUSTER_ARN
Connect al cluster EKS:
aws eks update-kubeconfig --regionREGION--nameEKS_CLUSTER_NAME
Aggiorna la configurazione del componente aggiuntivo:
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
Attendi che l'addon sia attivo, quindi distribuisci i modelli
Aggiornamento delle autorizzazioni per i cluster esistenti
Per abilitare l'acquisizione dei dati sulle tue distribuzioni HyperPod Inference, configura le seguenti autorizzazioni IAM.
-
Ruolo di esecuzione dell'operatore di inferenza
Aggiungi la seguente autorizzazione S3:
{ "Sid": "DataCaptureS3Access", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }Aggiungi il nome del tuo bucket se desideri utilizzare un bucket S3 personalizzato.
Se utilizzi una chiave KMS gestita dal cliente, aggiungi anche:
{ "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}" } } } -
Ruolo del driver S3 CSI
Aggiungi la seguente autorizzazione S3:
{ "Sid": "DataCaptureWriteAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }Se utilizzi una chiave KMS gestita dal cliente, aggiungi anche:
{ "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}" } } } -
Politica S3 Bucket
Aggiungi questa policy bucket solo se abiliti l'acquisizione dei dati del sistema di bilanciamento del carico (Tier 2) per consentire ad ALB di scrivere i log di accesso. Sostituiscilo
$ACCOUNT_IDcon l'ID del tuo account. AWS{ "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 practice
-
initialSamplingPercentageUtilizzalo per controllare il volume dei dati acquisiti. Iniziate con una percentuale di produzione inferiore e aumentatela secondo necessità. -
Utilizza
payloadConfig.maxPayloadSizeKB(Tier 3) per limitare le dimensioni dei payload acquisiti e controllare i costi di storage. -
Specificate a
kmsKeyIdper Tier 1 e Tier 3 se il carico di lavoro richiede la crittografia a riposo con la vostra chiave. AWS KMS