

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 des Modells auf Amazon EC2
<a name="ex1-model-deployment"></a>

Um Prognosen zu erhalten, stellen Sie Ihr Modell mithilfe von Amazon AI in Amazon EC2 bereit. SageMaker 

**Topics**
+ [Stellen Sie das Modell für die SageMaker AI-Hostingdienste bereit](#ex1-deploy-model)
+ [(Optional) Verwenden Sie einen vorhandenen Endpunkt erneut oder rufen Sie ihn auf](#ex1-deploy-model-sdk-use-endpoint)
+ [(Optional) Vorhersagen mit Batch-Transformation treffen](#ex1-batch-transform)

## Stellen Sie das Modell für die SageMaker AI-Hostingdienste bereit
<a name="ex1-deploy-model"></a>

Um ein Modell mithilfe von Amazon SageMaker AI über Amazon EC2 zu hosten, stellen Sie das Modell bereit, in [Erstellen und Ausführen eines Trainingsauftrags](ex1-train-model.md#ex1-train-model-sdk) dem Sie trainiert haben.

Verwenden Sie die `ModelBuilder` Klasse, um Ihr Modell zu erstellen und bereitzustellen. `ModelBuilder`unterstützt die Verkettung von Ressourcen, sodass Sie das Training `ModelTrainer` direkt zum Erstellen und Bereitstellen Ihres Modells weitergeben können.

```
from sagemaker.serve import ModelBuilder

# Build and deploy using resource chaining from the trained model
model_builder = ModelBuilder(
    model=xgb_model_trainer,
    role_arn=role,
    instance_type='ml.t2.medium'
)

# Build creates a SageMaker Model resource
model = model_builder.build()

# Deploy creates a SageMaker Endpoint resource
endpoint = model_builder.deploy(endpoint_name="xgboost-endpoint")
```
+ `model`— Das trainierte `ModelTrainer` Objekt. `ModelBuilder`verknüpft die Trainingsausgabe automatisch mit dem Einsatz.
+ `instance_type` (str) – Der Instance-Typ, mit dem Sie Ihr bereitgestelltes Modell betreiben möchten.

Die `build()` Methode erstellt eine SageMaker KI-Modellressource und `deploy()` erstellt eine SageMaker KI-Endpunktressource. Weitere Informationen finden Sie unter der [ SageMaker KI ModelBuilder ](https://sagemaker.readthedocs.io/en/stable/) im [ Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable). Führen Sie den folgenden Code aus, um den Namen des Endpunkts abzurufen:

```
endpoint.endpoint_name
```

Dieser Endpunkt bleibt in der ML-Instance aktiv, und Sie können jederzeit sofortige Vorhersagen treffen, sofern Sie ihn nicht später herunterfahren. Kopieren Sie diesen Endpunktnamen und speichern Sie ihn, um ihn wiederzuverwenden und Echtzeitvorhersagen an anderer Stelle in SageMaker Studio- oder SageMaker AI-Notebook-Instances zu treffen.

**Tipp**  
Weitere Informationen zur Kompilierung und Optimierung Ihres Modells für die Bereitstellung auf Amazon-EC2-Instances oder Edge-Geräten finden Sie unter [Modelle mit Neo kompilieren und bereitstellen](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Optional) Verwenden Sie einen vorhandenen Endpunkt erneut oder rufen Sie ihn auf
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Nachdem Sie das Modell auf einem Endpunkt bereitgestellt haben, können Sie es von jedem anderen Notebook oder jeder anderen Anwendung aus aufrufen, indem Sie die `Endpoint` Klasse von sagemaker-core verwenden. Der folgende Beispielcode zeigt, wie Sie einen vorhandenen Endpunkt abrufen und Vorhersagen treffen. Re-use der Endpunktname aus dem obigen Bereitstellungsschritt.

```
from sagemaker.core.resources import Endpoint

endpoint = Endpoint.get(endpoint_name="{{xgboost-endpoint}}")

# Make a prediction
response = endpoint.invoke(
    body=test_data,
    content_type="text/csv"
)
result = response.body.read().decode('utf-8')
```

## (Optional) Vorhersagen mit Batch-Transformation treffen
<a name="ex1-batch-transform"></a>

Anstatt einen Endpunkt in der Produktion zu hosten, können Sie einen einmaligen Batch-Inferenz-Job ausführen, um mithilfe der SageMaker AI-Batch-Transformation Vorhersagen für einen Testdatensatz zu treffen. Nach Abschluss des Modelltrainings können Sie den Batch-Transformator verwenden, um Eingabedaten aus einem bestimmten S3-Bucket zu lesen und Vorhersagen zu treffen.

**So erstellen Sie einen Batch-Transformationsauftrag**

1. Führen Sie den folgenden Code aus, um die Feature-Spalten des Testdatensatzes in eine CSV-Datei zu konvertieren und in den S3-Bucket hochzuladen:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Geben Sie die S3-Bucket-URIs für Eingabe und Ausgabe für den Batch-Transformationsauftrag wie folgt an:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Erstellen Sie einen Batch-Transformationsauftrag und führen Sie ihn aus.

   ```
   # Build a model from the trained ModelTrainer
   model_builder = ModelBuilder(model=xgb_model_trainer, role_arn=role)
   model = model_builder.build(model_name="xgboost-batch-model")
   
   # Create and run the batch transform job
   from sagemaker.core.resources import TransformJob
   
   transform_job = TransformJob.create(
       model_name=model.model_name,
       transform_input={
           "data_source": {
               "s3_data_source": {
                   "s3_data_type": "S3Prefix",
                   "s3_uri": batch_input
               }
           },
           "content_type": "text/csv",
           "split_type": "Line"
       },
       transform_output={
           "s3_output_path": batch_output
       },
       transform_resources={
           "instance_type": "ml.m4.xlarge",
           "instance_count": 1
       }
   )
   
   transform_job.wait()
   ```

1. Wenn der Batch-Transformationsauftrag abgeschlossen ist, erstellt SageMaker AI die im `batch_output` Pfad gespeicherten `test.csv.out` Prognosedaten, die das folgende Format haben sollten:`s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction`. Führen Sie Folgendes aus AWS CLI , um die Ausgabedaten des Batch-Transformationsauftrags herunterzuladen:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Dadurch sollte die `test.csv.out` Datei im aktuellen Arbeitsverzeichnis erstellt werden. Sie können die Float-Werte sehen, die auf der Grundlage der logistischen Regression des XGBoost-Trainingsauftrags vorhergesagt wurden.