

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
<a name="deploy-trained-model"></a>

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
<a name="locate-model-artifacts"></a>
+ **Ü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 Beispiel`s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`)

## Bereitstellen mit der CLI
<a name="deploy-using-cli"></a>

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
<a name="deploy-using-sdk"></a>

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
<a name="invoke-endpoint"></a>

### Verwenden der -CLI
<a name="invoke-using-cli"></a>

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?"}'
```

Dies gibt die Antwort des Modells zurück, beispielsweise „Die Hauptstadt der USA ist Washington, D.C.“

### Verwenden der SDK
<a name="invoke-using-sdk"></a>

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
<a name="manage-endpoint"></a>

### Verwenden der -CLI
<a name="manage-using-cli"></a>

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
<a name="manage-using-sdk"></a>

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

```
logs = custom_endpoint.get_logs()
print(logs)
```

## Bereinigen von Ressourcen
<a name="cleanup-resources"></a>

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

### Verwenden der -CLI
<a name="cleanup-using-cli"></a>

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

### Verwenden der SDK
<a name="cleanup-using-sdk"></a>

```
custom_endpoint.delete()
```

## Nächste Schritte
<a name="next-steps"></a>

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.