Configurazione e monitoraggio del rollback automatico - Amazon SageMaker AI

Configurazione e monitoraggio del rollback automatico

Gli allarmi di Amazon CloudWatch sono un prerequisito per utilizzare i periodi di baking nei guardrail di implementazione. Puoi utilizzare la funzionalità di rollback automatico nei guardrail di implementazione solo se configuri allarmi CloudWatch in grado di monitorare un endpoint. Se uno qualsiasi degli allarmi scatta durante il periodo di monitoraggio specificato, SageMaker AI avvia un rollback completo sull’endpoint precedente per proteggere l’applicazione. Se non hai alcun allarme CloudWatch configurato per monitorare l'endpoint, la funzionalità di rollback automatico non funziona durante l'implementazione.

Per ulteriori informazioni su Amazon CloudWatch, consulta Che cos'è Amazon CloudWatch? nella Guida per l'utente di Amazon CloudWatch.

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 allarmi CloudWatch. 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 vedere altre metriche e dimensioni SageMaker AI che puoi aggiungere ai tuoi allarmi, consulta Metriche di Amazon SageMaker AI in Amazon CloudWatch.

Monitora gli errori di invocazione sui parchi istanze vecchi e nuovi

Il seguente allarme CloudWatch 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 AI avvia un rollback del parco precedente.

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 il parco precedente attiva l’allarme durante l’implementazione, SageMaker AI termina l’implementazione. 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 allarme CloudWatch monitora la latenza del modello del nuovo parco istanze 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 monitoraggio completo e completo del nuovo parco istanze e avvia un ripristino del vecchio parco istanze se il nuovo parco istanze presenta problemi nei tempi di risposta.

CloudWatch pubblica i parametri con la dimensione EndpointConfigName:{New-Ep-Config} dopo che il nuovo parco istanze inizia a ricevere traffico e questi parametri rimangono validi 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.