Bereitstellen eines benutzerdefinierten Modells - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellen eines benutzerdefinierten Modells

Stellen Sie nach Abschluss des Trainings Ihr Modell für Inferenzzwecke bereit. Sie können ein benutzerdefiniertes Modell entweder mit der CLI oder dem SDK bereitstellen.

Lokalisieren der Modellartefakte

  • Überprüfen Sie Ihren S3-Bucket: Stellen Sie sicher, dass Modellartefakte unter gespeichert sind s3://my-bucket/model-artifacts/

  • Notieren Sie sich den genauen Pfad: Sie benötigen den vollständigen Pfad (zum Beispiels3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz)

Bereitstellen mit der CLI

Führen Sie den folgenden Befehl aus, um Ihr benutzerdefiniertes Modell bereitzustellen:

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

Dieser Befehl stellt das trainierte Modell als Endpunkt mit dem Namen endpoint-custom-pytorch bereit. Der --model-location verweist auf den Artefaktpfad aus dem Trainingsjob.

Bereitstellung mit dem Python SDK

Erstellen Sie ein Python-Skript mit dem folgenden Inhalt:

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

Rufen Sie den Endpunkt auf

Verwenden der -CLI

Testen Sie den Endpunkt mit einer Beispieleingabe:

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

Dadurch wird die Antwort des Modells zurückgegeben, z. B. „Die Hauptstadt der USA ist Washington, D.C.“

Verwenden der SDK

Fügen Sie den folgenden Code in Ihr Python-Skript ein:

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

Verwalten der Endpunkte

Verwenden der -CLI

Listen Sie den Endpunkt auf und überprüfen Sie ihn:

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

Verwenden der SDK

Fügen Sie den folgenden Code in Ihr Python-Skript ein:

logs = custom_endpoint.get_logs() print(logs)

Bereinigen von Ressourcen

Wenn Sie fertig sind, löschen Sie den Endpunkt, um unnötige Kosten zu vermeiden.

Verwenden der -CLI

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

Verwenden der SDK

custom_endpoint.delete()

Nächste Schritte

Sie haben erfolgreich ein benutzerdefiniertes Modell bereitgestellt und getestet mit SageMaker HyperPod. Sie können diesen Endpunkt nun für Inferenzen in Ihren Anwendungen verwenden.