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à.
Invocare un endpoint a più modelli
Per richiamare un endpoint multimodello, usa il invoke_endpoint
TargetModel
che specifica i modelli di destinazione nell'endpoint. La InvokeEndpoint
richiesta SageMaker Runtime supporta X-Amzn-SageMaker-Target-Model
una nuova intestazione che segue il percorso relativo del modello specificato per la chiamata. Il SageMaker sistema costruisce il percorso assoluto del modello combinando il prefisso fornito come parte della CreateModel
API chiamata con il percorso relativo del modello.
Le procedure seguenti sono le stesse per entrambi gli endpoint CPU multimodello GPU supportati.
L'endpoint a più modelli carica dinamicamente i modelli di destinazione in base alle esigenze. Puoi osservarlo quando esegui MMESample Notebook
Nota
Per le istanze GPU supportate, il codice di HTTP risposta con 507 dal GPU contenitore indica una mancanza di memoria o di altre risorse. Ciò fa sì che i modelli non utilizzati vengano scaricati dal container per caricare i modelli utilizzati più di frequente.
Riprova le richieste in caso di errori ModelNotReadyException
La prima volta che chiami un modello invoke_endpoint
, questo viene scaricato da Amazon Simple Storage Service e caricato nel container di inferenza. In questo modo la risposta alla prima chiamata impiega più tempo. Le chiamate successive allo stesso modello terminano più velocemente, perché il modello è già caricato.
SageMaker restituisce una risposta per una chiamata invoke_endpoint
entro 60 secondi. Alcuni modelli sono troppo grandi per essere scaricati entro 60 secondi. Se il caricamento del modello non termina prima del limite di timeout di 60 secondi, la richiesta di invoke_endpoint
restituisce il codice di errore ModelNotReadyException
e il modello continua a essere scaricato e caricato nel container di inferenza per un massimo di 360 secondi. Se ricevi un codice di errore ModelNotReadyException
per una richiesta di invoke_endpoint
, riprova la richiesta. Per impostazione predefinita, le invoke_endpoint
richieste di ripetizione AWS SDKs per Python (Boto 3) (utilizzando la modalità Legacy retryModelNotReadyException
Puoi configurare la strategie di ripetizione. per continuare a ripetere la richiesta per un massimo di 360 secondi. Se prevedi che il download e il caricamento del modello nel contenitore richieda più di 60 secondi, imposta il timeout del SDK socket su 70 secondi. Per ulteriori informazioni sulla configurazione della strategia di ripetizione di AWS SDK for Python (Boto3), consulta Configurazione di una modalità di ripetizioneinvoke_endpoint
per un massimo di 180 secondi.
import boto3 from botocore.config import Config # This example retry strategy sets the retry attempts to 2. # With this setting, the request can attempt to download and/or load the model # for upto 180 seconds: 1 orginal request (60 seconds) + 2 retries (120 seconds) config = Config( read_timeout=70, retries={ 'max_attempts': 2 # This value can be adjusted to 5 to go up to the 360s max timeout } ) runtime_sagemaker_client = boto3.client('sagemaker-runtime', config=config)