Déployer 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éployer un modèle personnalisé

Une fois la formation terminée, 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 SDK.

Localisez les 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/model.tar.gz \ --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://tls-bucket-inf1-beta2 \ --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. Il fait --model-location référence au parcours de l'artefact issu de la tâche de formation.

Déploiement à l'aide du 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/model.tar.gz", 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://tls-bucket-inf1-beta2") 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’ CLI

Testez le point final 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 à votre script Python :

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

Gérez le point de terminaison

Utilisation de l’ 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 à votre script Python :

logs = custom_endpoint.get_logs() print(logs)

Nettoyage des ressources

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

Utilisation de l’ 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 désormais utiliser ce point de terminaison pour l'inférence dans vos applications.