Imposta le Policy di dimensionamento automatico per le implementazioni di endpoint a più modelli - 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à.

Imposta le Policy di dimensionamento automatico per le implementazioni di endpoint a più modelli

SageMaker Gli endpoint multimodello supportano completamente la scalabilità automatica, che gestisce le repliche dei modelli per garantire la scalabilità dei modelli in base ai modelli di traffico. Ti consigliamo di configurare il tuo endpoint a più modelli e le dimensioni delle istanze in base a Raccomandazioni sulle istanze per le distribuzioni di endpoint a più modelli e di impostare il dimensionamento automatico dell'endpoint in base all'istanza. Le frequenze di invocazione utilizzate per attivare un evento di dimensionamento automatico si basano sul set aggregato di previsioni per l'intero set di modelli serviti dall'endpoint. Per ulteriori dettagli sulla configurazione della scalabilità automatica degli endpoint, consulta Automally Scale Amazon SageMaker Models.

Puoi configurare policy di auto scaling con parametri predefiniti e personalizzati su endpoint a più modelli supportati da CPU e GPU.

Nota

SageMaker Le metriche degli endpoint multimodello sono disponibili con una granularità di un minuto.

Definizione di una policy di dimensionamento

Per specificare i parametri e i valori di target per una policy di dimensionamento, puoi configurare una policy di dimensionamento di monitoraggio dei target. Puoi utilizzare un parametro personalizzato o predefinito.

La configurazione di policy di dimensionamento è rappresentata da un blocco JSON. Salvi la tua configurazione di policy di dimensionamento come un blocco JSON in un file di testo. Si utilizza quel file di testo quando si richiama l'API AWS CLI Application Auto Scaling. Per ulteriori informazioni sulla sintassi della configurazione della policy, consulta TargetTrackingScalingPolicyConfiguration in Application Auto Scaling API Reference.

Le seguenti opzioni sono disponibili per definire una configurazione di una policy di dimensionamento di monitoraggio dei target.

Utilizzo di un parametro predefinito

Per definire rapidamente una policy di dimensionamento con monitoraggio delle destinazioni per una variante, utilizza il parametro predefinito SageMakerVariantInvocationsPerInstance. SageMakerVariantInvocationsPerInstance è il numero medio di volte al minuto in cui ogni istanza per una variante viene richiamata. Consigliamo fortemente di utilizzare questo parametro.

Per utilizzare un parametro predefinito in una policy di dimensionamento, crea una configurazione di monitoraggio dei target per la tua policy. Nella configurazione di monitoraggio dei target, includi un PredefinedMetricSpecification per il parametro predefinito e un TargetValue per il valore target del parametro.

L'esempio seguente è una tipica configurazione di policy per il dimensionamento di monitoraggio dei target per una variante. In questa configurazione, utilizziamo il parametro predefinito SageMakerVariantInvocationsPerInstance per regolare il numero di istanze di variante in modo che ogni istanza abbia un parametro InvocationsPerInstance di 70.

{"TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "InvocationsPerInstance" } }
Nota

È consigliabile utilizzarlo InvocationsPerInstance durante l'utilizzo di endpoint a più modelli. Il TargetValue di questo parametro dipende dai requisiti di latenza dell'applicazione. Ti consigliamo inoltre di testare il carico degli endpoint per impostare valori dei parametri di dimensionamento. Per ulteriori informazioni sui test di carico e sulla configurazione della scalabilità automatica per gli endpoint, consulta il blog Configurazione degli endpoint di inferenza con scalabilità automatica in Amazon. SageMaker

Utilizzo di un parametro personalizzato

Se hai bisogno di definire una policy di dimensionamento di monitoraggio dei target che soddisfi i tuoi requisiti personalizzati, definisci un parametro personalizzato. Puoi definire un parametro personalizzato in base a qualsiasi parametro di variante di produzione metrica che si modifica in proporzione al dimensionamento.

SageMaker Non tutte le metriche funzionano per il tracciamento degli obiettivi. Il parametro deve essere un parametro di utilizzo valido e deve descrivere quanto impegnata è un'istanza. Il valore del parametro deve aumentare o diminuire in proporzione inversa al numero di istanze di variante. Ciò significa che il valore del parametro deve diminuire quando il numero di istanze aumenta.

Importante

Prima di distribuire la scalabilità automatica nella produzione, devi testare la scalabilità automatica con il tuo parametro personalizzato.

Esempio di parametro personalizzato per un endpoint a più modelli supportato da CPU

L'esempio seguente è una configurazione di monitoraggio dei target per una policy di dimensionamento. In questa configurazione, per un modello chiamato my-model, un parametro personalizzato di CPUUtilization regola il conteggio delle istanze sull'endpoint in base a un utilizzo medio della CPU del 50% in tutte le istanze.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Esempio di parametro personalizzato per un endpoint a più modelli supportato da GPU

L'esempio seguente è una configurazione di monitoraggio dei target per una policy di dimensionamento. In questa configurazione, per un modello chiamato my-model, un parametro personalizzato di GPUUtilization regola il conteggio delle istanze sull'endpoint in base a un utilizzo medio della GPU del 50% in tutte le istanze.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "GPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Aggiunta di un periodo di attesa

Per aggiungere un periodo di attesa per il dimensionamento dell'endpoint, specifica un valore, in secondi, per ScaleOutCooldown. In maniera simile, per aggiungere un periodo di attesa per la riduzione del modello, aggiungi un valore, in secondi, per ScaleInCooldown. Per ulteriori informazioni su ScaleInCooldown e ScaleOutCooldown, consulta TargetTrackingScalingPolicyConfiguration in Application Auto Scaling API Reference.

Di seguito è riportato un esempio di una configurazione di monitoraggio dei target per una policy di dimensionamento. In questa configurazione, il parametro predefinito SageMakerVariantInvocationsPerInstance viene utilizzato per regolare il dimensionamento in base a una media di 70 in tutte le istanze di tale variante. La configurazione fornisce un tempo di raffreddamento di riduzione orizzontale di 10 minuti e un tempo di raffreddamento di aumento di 5 minuti.

{"TargetValue": 70.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }