Implementar un modelo personalizado - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implementar un modelo personalizado

Cuando finalice el entrenamiento, implemente el modelo para la inferencia. Puede implementar un modelo personalizado mediante la CLI o el SDK.

Localización de los artefactos del modelo

  • Compruebe su bucket de S3: verifique que los artefactos del modelo se hayan guardado en s3://my-bucket/model-artifacts/.

  • Anote la ruta exacta: necesitará la ruta completa (por ejemplo, s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz).

Implementación mediante la CLI

Ejecute el siguiente comando para implementar su modelo personalizado:

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

Este comando implementa el modelo entrenado como un punto de conexión denominado endpoint-custom-pytorch. --model-location hace referencia a la ruta del artefacto del trabajo de entrenamiento.

Implementación mediante el Python SDK

Cree un script de Python con el siguiente contenido:

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()

Invocar al punto de conexión

Uso de la CLI

Pruebe el punto de conexión con una entrada de muestra:

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

Esto devuelve la respuesta del modelo, por ejemplo: “La capital de EE. UU. es Washington, D.C.”.

Uso del SDK

Incluya el siguiente código en el script de Python:

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

Administración del punto de conexión

Uso de la CLI

Enumere e inspeccione el punto de conexión:

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

Uso del SDK

Incluya el siguiente código en el script de Python:

logs = custom_endpoint.get_logs() print(logs)

Eliminar recursos

Cuando haya terminado, elimine el punto de conexión para evitar costos innecesarios.

Uso de la CLI

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

Uso del SDK

custom_endpoint.delete()

Siguientes pasos

Ha implementado y probado satisfactoriamente un modelo personalizado utilizando SageMaker HyperPod. Ahora puede utilizar este punto de conexión para la inferencia en sus aplicaciones.