Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Invoquer un point de terminaison multimodèle
Pour appeler un point de terminaison multimodèle, utilisez le point de terminaison invoke_endpoint
TargetModel
qui spécifie le modèle au point de terminaison à cibler. La InvokeEndpoint
demande SageMaker AI Runtime est prise en charge X-Amzn-SageMaker-Target-Model
sous la forme d'un nouvel en-tête qui prend le chemin relatif du modèle spécifié pour l'invocation. Le système d' SageMaker IA construit le chemin absolu du modèle en combinant le préfixe fourni dans le cadre de l'CreateModel
APIappel avec le chemin relatif du modèle.
Les procédures suivantes sont les mêmes pour les points de terminaison multimodèles GPU soutenus par CPU et -back.
Le point de terminaison multimodèle charge dynamiquement les modèles cibles selon les besoins. Vous pouvez observer cela lorsque vous exécutez le MMESample Notebook
Note
Pour les instances GPU sauvegardées, le code de HTTP réponse 507 provenant du GPU conteneur indique un manque de mémoire ou d'autres ressources. Cela entraîne le déchargement des modèles non utilisés du conteneur afin de charger les modèles les plus fréquemment utilisés.
Réessayer les demandes en cas d'erreur ModelNotReadyException
La première fois que vous appelez invoke_endpoint
pour un modèle, le modèle est téléchargé depuis Amazon Simple Storage Service et chargé dans le conteneur d'inférence. Le renvoi du premier appel est donc plus long. Les appels suivants au même modèle se terminent plus rapidement, car le modèle est déjà chargé.
SageMaker L'IA renvoie une réponse à un appel invoke_endpoint
dans les 60 secondes. Certains modèles sont trop volumineux pour être téléchargés en 60 secondes. Si le chargement du modèle ne se termine pas dans les 60 secondes prévues, la demande de invoke_endpoint
revient avec le code d'erreur ModelNotReadyException
, et le téléchargement et le chargement du modèle dans le conteneur d'inférence se poursuivent pendant une durée maximale de 360 secondes. Si vous obtenez un code d'erreur ModelNotReadyException
pour une demande invoke_endpoint
, relancez la demande. Par défaut, les invoke_endpoint
demandes de nouvelle tentative AWS SDKs pour Python (Boto 3) (utilisant le mode de nouvelle tentative LegacyModelNotReadyException
Vous pouvez configurer la stratégie de relance pour continuer de relancer la demande pendant une durée maximale de 360 secondes. Si vous pensez que le téléchargement et le chargement de votre modèle dans le conteneur prendront plus de 60 secondes, réglez le délai d'expiration du SDK socket sur 70 secondes. Pour plus d'informations sur la configuration de la stratégie de relance pour le AWS SDK for Python (Boto3), consultez Configuring a retry modeinvoke_endpoint
pendant 180 secondes maximum.
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)