Configurazione e monitoraggio del rollback automatico - Amazon SageMaker

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à.

Configurazione e monitoraggio del rollback automatico

Gli CloudWatch allarmi Amazon sono un prerequisito per utilizzare i periodi di cottura nei guardrail di implementazione. È possibile utilizzare la funzionalità di rollback automatico nei guardrail di distribuzione solo se si configurano CloudWatch allarmi in grado di monitorare un endpoint. Se uno qualsiasi degli allarmi scatta durante il periodo di monitoraggio specificato, SageMaker avvia un rollback completo sul vecchio endpoint per proteggere l'applicazione. Se non hai impostato alcun CloudWatch allarme per monitorare l'endpoint, la funzionalità di rollback automatico non funziona durante la distribuzione.

Per ulteriori informazioni su Amazon CloudWatch, consulta What is Amazon CloudWatch? nella Amazon CloudWatch User Guide.

Nota

Assicurati che il tuo ruolo di esecuzione IAM sia autorizzato a eseguire l'azione cloudwatch:DescribeAlarms sugli allarmi di rollback automatico che hai specificato.

Esempi di allarme

Per aiutarti a iniziare, forniamo i seguenti esempi per dimostrare le funzionalità degli CloudWatch allarmi. Oltre a utilizzare o modificare i seguenti esempi, puoi creare allarmi personalizzati e configurarli per monitorare vari parametri sui parchi istanze specificati per un determinato periodo di tempo. Per visualizzare altre SageMaker metriche e dimensioni che puoi aggiungere ai tuoi allarmi, consulta. Monitora Amazon SageMaker con Amazon CloudWatch

Monitora gli errori di invocazione sui parchi istanze vecchi e nuovi

Il seguente CloudWatch allarme monitora il tasso di errore medio di un endpoint. È possibile utilizzare questo allarme con qualsiasi tipo di sistema di distribuzione, guardrail, spostamento del traffico, per fornire un monitoraggio generale sia sul vecchio che sul nuovo parco istanze. Se scatta l'allarme, SageMaker avvia un ripristino della vecchia flotta.

Gli errori di invocazione provenienti sia dal vecchio che dal nuovo parco istanze contribuiscono al tasso di errore medio. Se il tasso di errore medio supera la soglia specificata, scatta l'allarme. Questo esempio particolare monitora gli errori 4xx (errori del client) sia sul vecchi che sul nuovo parco istanze per tutta la durata di una distribuzione. Puoi anche monitorare gli errori 5xx (errori del server) utilizzando il parametro Invocation5XXErrors.

Nota

Per questo tipo di allarme, se la vecchia flotta attiva l'allarme durante l'implementazione, SageMaker interrompe l'installazione. Pertanto, se l’attuale parco istanze di produzione causa già errori, prendi in considerazione l'utilizzo o la modifica di uno dei seguenti esempi, che monitora solo il nuovo parco istanze per rilevare eventuali errori.

#Applied deployment type: all types { "AlarmName": "EndToEndDeploymentHighErrorRateAlarm", "AlarmDescription": "Monitors the error rate of 4xx errors", "MetricName": "Invocation4XXErrors", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" } ], "Period": 600, "EvaluationPeriods": 2, "Threshold": 1, "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

Nell'esempio precedente, nota i valori per i campi seguenti:

  • Per AlarmName e AlarmDescription, inserisci un nome e una descrizione scelti per l’allarme.

  • Per MetricName, utilizza il valore Invocation4XXErrors per monitorare 4xx errori sull'endpoint

  • Per Namespace, utilizza il valore AWS/SageMaker. Puoi anche specificare un parametro personalizzato, se applicabile.

  • Per Statistic, utilizza Average. Ciò significa che l'allarme prende in considerazione il tasso di errore medio nei periodi di valutazione per calcolare se il tasso di errore ha superato la soglia.

  • Per la dimensione EndpointName, usa il nome dell'endpoint che stai aggiornando come valore.

  • Per la dimensione VariantName, usa il valore AllTraffic per specificare tutto il traffico dell'endpoint.

  • Per Period, utilizza 600. Ciò imposta i periodi di valutazione dell'allarme su una durata di 10 minuti.

  • Per EvaluationPeriods, utilizza 2. Questo valore indica all'allarme di considerare i due periodi di valutazione più recenti nel determinare lo stato dell'allarme.

Monitora la latenza del modello sul nuovo parco istanze

Il seguente esempio di CloudWatch allarme monitora la latenza del modello del nuovo parco veicoli durante l'implementazione. Puoi utilizzare questo allarme per monitorare solo il nuovo parco istanze ed escludere quello vecchio. L'allarme dura per l'intera implementazione. Questo esempio offre un end-to-end monitoraggio completo della nuova flotta e avvia un ripristino della vecchia flotta se la nuova flotta presenta problemi nei tempi di risposta.

CloudWatch pubblica le metriche con la dimensione EndpointConfigName:{New-Ep-Config} dopo che la nuova flotta inizia a ricevere traffico e queste metriche rimangono valide anche dopo il completamento dell'implementazione.

Puoi utilizzare il seguente esempio di allarme con qualsiasi tipo di implementazione.

#Applied deployment type: all types { "AlarmName": "NewEndpointConfigVersionHighModelLatencyAlarm", "AlarmDescription": "Monitors the model latency on new fleet", "MetricName": "ModelLatency", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" }, { "Name": "EndpointConfigName", "Value": <your-config-name> ], "Period": 300, "EvaluationPeriods": 2, "Threshold": 100000, # 100ms "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

Nell'esempio precedente, nota i valori per i campi seguenti:

  • Per MetricName, utilizza il valore ModelLatency per monitorare il tempo di risposta del modello.

  • Per Namespace, utilizza il valore AWS/SageMaker. Puoi anche specificare un parametro personalizzato, se applicabile.

  • Per la dimensione EndpointName, usa il nome dell'endpoint che stai aggiornando come valore.

  • Per la dimensione VariantName, usa il valore AllTraffic per specificare tutto il traffico dell'endpoint.

  • Per la dimensione EndpointConfigName, il valore deve fare riferimento al nome di configurazione dell'endpoint per l'endpoint nuovo o aggiornato.

Nota

Se desideri monitorare il vecchio parco istanze anziché quello nuovo, puoi modificare la dimensione EndpointConfigName per specificare il nome della configurazione del vecchio parco istanze.