Déploiement d’un modèle personnalisé - Amazon SageMaker AI

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éploiement d’un modèle personnalisé

Une fois l’entraînement terminé, déployez votre modèle à des fins d’inférence. Vous pouvez déployer un modèle personnalisé à l’aide de la CLI ou du kit SDK.

Localisation des artefacts de votre modèle

  • Vérifiez votre compartiment S3 : vérifiez que les artefacts du modèle sont enregistrés dans s3://my-bucket/model-artifacts/.

  • Notez le chemin exact : vous aurez besoin du chemin complet (par exemple, s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz).

Déploiement à l’aide de la CLI

Exécutez la commande suivante pour déployer votre modèle personnalisé :

hyp create hyp-custom-endpoint \ --version 1.0 \ --env '{"HF_MODEL_ID":"/opt/ml/model", "SAGEMAKER_PROGRAM":"inference.py", }' \ --model-source-type s3 \ --model-location test-pytorch-job \ --s3-bucket-name my-bucket \ --s3-region us-east-2 \ --prefetch-enabled true \ --image-uri 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:latest \ --model-volume-mount-name model-weights \ --container-port 8080 \ --resources-requests '{"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}' \ --resources-limits '{"nvidia.com/gpu": 1}' \ --tls-output-s3-uri s3://<bucket_name> \ --instance-type ml.g5.8xlarge \ --endpoint-name endpoint-custom-pytorch \ --model-name pytorch-custom-model

Cette commande déploie le modèle entraîné en tant que point de terminaison nommé endpoint-custom-pytorch. L’élément --model-location référence le chemin de l’artefact à partir de la tâche d’entraînement.

Déploiement à l’aide du kit SDK Python

Créez un script Python avec le contenu suivant :

from sagemaker.hyperpod.inference.config.hp_custom_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig, EnvironmentVariables from sagemaker.hyperpod.inference.hp_custom_endpoint import HPCustomEndpoint model = Model( model_source_type="s3", model_location="test-pytorch-job", s3_bucket_name="my-bucket", s3_region="us-east-2", prefetch_enabled=True ) server = Server( instance_type="ml.g5.8xlarge", image_uri="763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0", container_port=8080, model_volume_mount_name="model-weights" ) resources = { "requests": {"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}, "limits": {"nvidia.com/gpu": 1} } env = EnvironmentVariables( HF_MODEL_ID="/opt/ml/model", SAGEMAKER_PROGRAM="inference.py", SAGEMAKER_SUBMIT_DIRECTORY="/opt/ml/model/code", MODEL_CACHE_ROOT="/opt/ml/model", SAGEMAKER_ENV="1" ) endpoint_name = SageMakerEndpoint(name="endpoint-custom-pytorch") tls_config = TlsConfig(tls_certificate_output_s3_uri="s3://<bucket_name>") custom_endpoint = HPCustomEndpoint( model=model, server=server, resources=resources, environment=env, sage_maker_endpoint=endpoint_name, tls_config=tls_config ) custom_endpoint.create()

Appeler le point de terminaison

Utilisation de l’interface de ligne de commande (CLI)

Testez le point de terminaison avec un échantillon d’entrée :

hyp invoke hyp-custom-endpoint \ --endpoint-name endpoint-custom-pytorch \ --body '{"inputs":"What is the capital of USA?"}'

Cela renvoie la réponse du modèle, telle que « La capitale des États-Unis est Washington, D.C. »

Utilisation de l’SDK

Ajoutez le code suivant dans votre script Python :

data = '{"inputs":"What is the capital of USA?"}' response = custom_endpoint.invoke(body=data).body.read() print(response)

Gestion du point de terminaison

Utilisation de l’interface de ligne de commande (CLI)

Répertoriez et inspectez le point de terminaison :

hyp list hyp-custom-endpoint hyp get hyp-custom-endpoint --name endpoint-custom-pytorch

Utilisation de l’SDK

Ajoutez le code suivant dans votre script Python :

logs = custom_endpoint.get_logs() print(logs)

nettoyer des ressources ;

Lorsque vous avez terminé, supprimez le point de terminaison pour éviter des coûts inutiles.

Utilisation de l’interface de ligne de commande (CLI)

hyp delete hyp-custom-endpoint --name endpoint-custom-pytorch

Utilisation de l’SDK

custom_endpoint.delete()

Étapes suivantes

Vous avez déployé et testé avec succès un modèle personnalisé à l'aide de SageMaker HyperPod. Vous pouvez maintenant utiliser ce point de terminaison pour l’inférence dans vos applications.