Salta al contenuto

Come posso risolvere i problemi relativi agli endpoint multi-modello SageMaker AI?

3 minuti di lettura
0

Desidero risolvere i problemi che si verificano quando distribuisco un endpoint multi-modello Amazon SageMaker AI.

Risoluzione

Avvii a freddo o problemi di latenza a causa dei quali un endpoint impiega più tempo per fare previsioni possono influire sulle prestazioni degli endpoint multi-modello. Anche le eccezioni interne del server possono incidere sulle prestazioni.

Avvii a freddo e problemi di latenza

Se un endpoint multi-modello invoca modelli in rapida successione, SageMaker AI rimuove i modelli dalla memoria e dal disco dell'endpoint. Quando la volta successiva l'endpoint invoca il modello, si verifica un avvio a freddo, ossia il caricamento del modello nella memoria dell'istanza.

Per evitare problemi di avvio a freddo o latenza, intraprendi le seguenti azioni:

  • Se il modello è sensibile al fattore tempo, utilizza l'inferenza in tempo reale con un solo modello.

  • Se il modello non è sensibile al fattore tempo, seleziona un tipo di istanza con memoria sufficiente per contenere molti modelli, come ad esempio un'istanza r5. Oppure implementa un dimensionamento automatico che scali in base al fattore MemoryUtilization.
    Esempio:

    response = client.put_scaling_policy(
        PolicyName='MemoryUtilisation-ScalingPolicy',
        ServiceNamespace='sagemaker',
        ResourceId=resource_id,
        ScalableDimension='sagemaker:variant:DesiredInstanceCount',
        PolicyType='TargetTrackingScaling',
        TargetTrackingScalingPolicyConfiguration={
            'TargetValue': 80.0,
            'CustomizedMetricSpecification':
            {
                'MetricName': 'MemoryUtilization',
                'Namespace': '/aws/sagemaker/Endpoints',
                'Dimensions': [
                    {'Name': 'EndpointName', 'Value': endpoint_name },
                    {'Name': 'VariantName','Value': 'AllTraffic'}
                ],
                'Statistic': 'Average',
                'Unit': 'Percent'
            },
            'ScaleInCooldown': 600,
            'ScaleOutCooldown': 300
        }
    )
  • Prima di distribuire la configurazione dell'endpoint, assicurati di specificare una dimensione VolumeSizeInGB sufficientemente grande da contenere tutti i modelli a cui accedi di frequente.

  • Invia richieste di test al modello di destinazione in modo che alcuni modelli rimangano nella memoria dell'endpoint a tempo indeterminato.

  • Per ottimizzare le prestazioni degli endpoint multi-modello, è consigliabile selezionare artefatti del modello con efficienza e tempi di latenza simili. Per massimizzare l'efficacia e l'affidabilità complessive del sistema, distribuisci uniformemente il traffico tra i modelli.

  • Per ottenere prestazioni dell'endpoint ottimali, monitora le principali metriche di Amazon CloudWatch, come ModelCacheHit e ModelLoadingWaitTime. Quando il valore ModelCacheHit è elevato e il valore ModelLoadingWaitTime è basso, l'endpoint sta gestendo le invocazioni in modo efficiente.

Eccezioni interne del server

Se un endpoint multi-modello non è in grado di caricare i modelli perché la memoria non è insufficiente, potresti ricevere un'eccezione interna del server. Ad esempio, quando distribuisci un modello da 14 GB su un'istanza ml.t3.medium con soli 4 GB di memoria CPU, si verifica un errore. Per evitare errori, seleziona istanze dell'endpoint che abbiano una memoria sufficiente per ospitare più modelli durante il runtime.

AWS UFFICIALEAggiornata un anno fa