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.
Après avoir affiné un modèle de langage étendu (LLM), vous pouvez déployer le modèle pour générer du texte en temps réel en configurant un point de terminaison pour obtenir des prédictions interactives.
Note
Nous vous recommandons d'exécuter des tâches d'inférence en temps réel ml.g5.12xlarge
pour de meilleures performances. Les ml.g5.8xlarge
instances conviennent également aux tâches de génération de texte Falcon-7B-Instruct et MPT-7B-Instruct.
Vous trouverez les spécificités de ces instances dans la catégorie Accelerated Computing
Génération de texte en temps réel
Vous pouvez l'utiliser SageMaker APIs pour déployer manuellement votre modèle affiné sur un point de terminaison d'inférence en temps réel d' SageMaker AI Hosting, puis commencer à faire des prédictions en invoquant le point de terminaison comme suit.
Note
Vous pouvez également choisir l'option de déploiement automatique lors de la création de votre expérience de réglage précis dans Autopilot. Pour en savoir plus sur la configuration du déploiement automatique des modèles, consultez Comment activer le déploiement automatique.
Vous pouvez également utiliser le SDK SageMaker Python et la JumpStartModel
classe pour effectuer des inférences avec des modèles affinés par Autopilot. Cela peut être fait en spécifiant un emplacement personnalisé pour l'artefact du modèle dans Amazon S3. Pour plus d'informations sur la définition de votre modèle en tant que JumpStart modèle et sur le déploiement de votre modèle à des fins d'inférence, consultez la section Déploiement à faible code avec la JumpStartModel classe
-
Obtenir les définitions des conteneurs d'inférence candidats
Vous pouvez le trouver
InferenceContainerDefinitions
dans l'BestCandidate
objet extrait de la réponse à l'appel d'API DescribeAutoMLJobV2. Une définition de conteneur pour l'inférence fait référence à l'environnement conteneurisé conçu pour déployer et exécuter votre modèle entraîné afin de faire des prédictions.L'exemple de AWS CLI commande suivant utilise l'API DescribeAutoMLJobV2 pour obtenir les définitions de conteneur recommandées pour le nom de votre tâche.
aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name
job-name
--regionregion
-
Création d'un modèle d' SageMaker IA
Utilisez les définitions de conteneur de l'étape précédente pour créer un modèle d' SageMaker IA à l'aide de l'CreateModelAPI. Consultez la AWS CLI commande suivante à titre d'exemple. Utilisez le
CandidateName
pour le nom de votre modèle.aws sagemaker create-model --model-name '
<your-candidate-name>
' \ --primary-container '<container-definition
' \ --execution-role-arn '<execution-role-arn>
' --region '<region>
-
Créer une configuration de point de terminaison
L'exemple de AWS CLI commande suivant utilise l'CreateEndpointConfigAPI pour créer une configuration de point de terminaison.
Note
Pour éviter que la création du point de terminaison n'expire en raison d'un long téléchargement du modèle, nous vous recommandons de configurer
ModelDataDownloadTimeoutInSeconds = 3600
etContainerStartupHealthCheckTimeoutInSeconds = 3600
.aws sagemaker create-endpoint-config --endpoint-config-name '
<your-endpoint-config-name>
' \ --production-variants '<list-of-production-variants>
' ModelDataDownloadTimeoutInSeconds=3600 ContainerStartupHealthCheckTimeoutInSeconds=3600 \ --region '<region>
' -
Créer le point de terminaison
L' AWS CLI exemple suivant utilise l'CreateEndpointAPI pour créer le point de terminaison.
aws sagemaker create-endpoint --endpoint-name '
<your-endpoint-name>
' \ --endpoint-config-name '<endpoint-config-name-you-just-created>
' \ --region '<region>
'Vérifiez la progression du déploiement de votre terminal à l'aide de l'DescribeEndpointAPI. Consultez la AWS CLI commande suivante à titre d'exemple.
aws sagemaker describe-endpoint —endpoint-name '
<endpoint-name>
' —region<region>
Lorsque
EndpointStatus
devientInService
, le point de terminaison est prêt à être utilisé pour l'inférence en temps réel. -
Appeler le point de terminaison
La commande suivante appelle le point de terminaison pour une inférence en temps réel. Votre message doit être codé en octets.
Note
Le format de votre invite de saisie dépend du modèle de langue. Pour plus d'informations sur le format des invites de génération de texte, consultezFormat de demande pour les modèles de génération de texte, inférence en temps réel.
aws sagemaker invoke-endpoint --endpoint-name '
<endpoint-name>
' \ --region '<region>
' --body '<your-promt-in-bytes>
' [--content-type] 'application/json'<outfile>
Format de demande pour les modèles de génération de texte, inférence en temps réel
Différents grands modèles de langage (LLMs) peuvent avoir des dépendances logicielles, des environnements d'exécution et des exigences matérielles spécifiques qui influencent le conteneur recommandé par Autopilot pour héberger le modèle à des fins d'inférence. De plus, chaque modèle dicte le format de données d'entrée requis et le format attendu pour les prédictions et les sorties.
Voici des exemples d'entrées pour certains modèles et des conteneurs recommandés.
-
Pour les modèles Falçon avec le contenant
huggingface-pytorch-tgi-inference:2.0.1-tgi1.0.3-gpu-py39-cu118-ubuntu20.04
recommandé :payload = { "inputs": "Large language model fine-tuning is defined as", "parameters": { "do_sample": false, "top_p": 0.9, "temperature": 0.1, "max_new_tokens": 128, "stop": ["<|endoftext|>", "</s>"] } }
-
Pour tous les autres modèles avec le contenant recommandé
djl-inference:0.22.1-fastertransformer5.3.0-cu118
:payload= { "text_inputs": "Large language model fine-tuning is defined as" }