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.
Déployer le modèle sur Amazon EC2
Pour obtenir des prévisions, déployez votre modèle sur Amazon à EC2 l'aide d'Amazon SageMaker AI.
Rubriques
Déployer le modèle sur les services d'hébergement SageMaker AI
Pour héberger un modèle via Amazon à EC2 l'aide d'Amazon SageMaker AI, déployez le modèle que vous avez utilisé Créer et exécuter une tâche d'entraînement en appelant la deploy
méthode de l'xgb_model
estimateur. Lorsque vous appelez la deploy
méthode, vous devez spécifier le nombre et le type d'instances EC2 ML que vous souhaitez utiliser pour héberger un point de terminaison.
import sagemaker from sagemaker.serializers import CSVSerializer xgb_predictor=xgb_model.deploy( initial_instance_count=1, instance_type='ml.t2.medium', serializer=CSVSerializer() )
-
initial_instance_count
(int) – Nombre d'instances pour déployer le modèle. -
instance_type
(str) – Type d'instances que vous souhaitez pour utiliser votre modèle déployé. -
serializer
(int) — Sérialise les données d'entrée de différents formats ( NumPy tableau, liste, fichier ou tampon) dans une chaîne CSV formatée. Nous l'utilisons parce que l'XGBoostalgorithme accepte les fichiers d'entrée au CSV format.
Le deploy
procédé crée un modèle déployable, configure le point de terminaison des services d'hébergement SageMaker AI et lance le point de terminaison pour héberger le modèle. Pour plus d'informations, consultez la méthode de classe de déploiement de l'estimateur générique SageMaker AIdeploy
, exécutez le code suivant :
xgb_predictor.endpoint_name
Cela doit renvoyer le nom du point de terminaison du xgb_predictor
. Le format du nom du point de terminaison est "sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"
. Ce point de terminaison reste actif dans l'instance de ML et vous pouvez effectuer des prédictions instantanées à tout moment, sauf si vous l'arrêtez ultérieurement. Copiez le nom de ce point de terminaison et enregistrez-le pour le réutiliser et effectuer des prédictions en temps réel ailleurs dans les instances de SageMaker Studio ou SageMaker AI Notebook.
Astuce
Pour en savoir plus sur la compilation et l'optimisation de votre modèle pour le déploiement sur des EC2 instances Amazon ou des appareils périphériques, consultez Compiler et déployer des modèles avec Neo.
(Facultatif) Utiliser SageMaker AI Predictor pour réutiliser le point de terminaison hébergé
Après avoir déployé le modèle sur un terminal, vous pouvez configurer un nouveau prédicteur d' SageMaker intelligence artificielle en associant le point de terminaison et en effectuant des prédictions en temps réel en continu sur tous les autres blocs-notes. L'exemple de code suivant montre comment utiliser la classe SageMaker AI Predictor pour configurer un nouvel objet prédicteur en utilisant le même point de terminaison. Réutilisez le nom du point de terminaison que vous avez utilisé pour le xgb_predictor
.
import sagemaker xgb_predictor_reuse=sagemaker.predictor.Predictor( endpoint_name="
sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS
", sagemaker_session=sagemaker.Session(), serializer=sagemaker.serializers.CSVSerializer() )
Le prédicteur xgb_predictor_reuse
se comporte exactement comme le xgb_predictor
d'origine. Pour plus d'informations, consultez la classe SageMaker AI Predictor
(Facultatif) Faire une prédiction avec la transformation par lots
Au lieu d'héberger un terminal en production, vous pouvez exécuter une tâche d'inférence par lots unique pour établir des prédictions sur un ensemble de données de test à l'aide de la transformation par lots basée sur l' SageMaker IA. Une fois la formation de votre modèle terminée, vous pouvez étendre l'estimateur à un transformer
objet, basé sur la classe SageMaker AI Transformer
Pour exécuter une tâche de transformation par lots
Exécutez le code suivant pour convertir les colonnes d'entités du jeu de données de test en CSV fichier et les uploader dans le compartiment S3 :
X_test.to_csv('test.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
Spécifiez le compartiment S3 URIs d'entrée et de sortie pour la tâche de transformation par lots, comme indiqué ci-dessous :
# The location of the test dataset batch_input = 's3://{}/{}/test'.format(bucket, prefix) # The location to store the results of the batch transform job batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
Créez un objet de transformateur en spécifiant le nombre minimal de paramètres : les paramètres
instance_count
etinstance_type
pour exécuter la tâche de transformation par lots, etoutput_path
pour enregistrer les données de prédiction comme indiqué ci-dessous :transformer = xgb_model.transformer( instance_count=1, instance_type='ml.m4.xlarge', output_path=batch_output )
Lancez la tâche de transformation par lots en exécutant la méthode
transform()
de l'objettransformer
comme illustré ci-dessous :transformer.transform( data=batch_input, data_type='S3Prefix', content_type='text/csv', split_type='Line' ) transformer.wait()
Lorsque le travail de transformation par lots est terminé, SageMaker AI crée les données de
test.csv.out
prédiction enregistrées dans lebatch_output
chemin, qui doivent être au format suivant :s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction
. Exécutez ce qui suit AWS CLI pour télécharger les données de sortie de la tâche de transformation par lots :! aws s3 cp {batch_output} ./ --recursive
Cela doit créer le fichier
test.csv.out
dans le répertoire de travail actuel. Vous pourrez voir les valeurs flottantes prédites sur la base de la régression logistique du poste de XGBoost formation.