

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 SageMaker AI in Amazon EC2 bereit.

**Topics**
+ [Stellen Sie das Modell für SageMaker AI Hosting Services bereit](#ex1-deploy-model)
+ [(Optional) Verwenden Sie SageMaker AI Predictor, um den gehosteten Endpunkt wiederzuverwenden](#ex1-deploy-model-sdk-use-endpoint)
+ [(Optional) Vorhersagen mit Batch-Transformation treffen](#ex1-batch-transform)

## Stellen Sie das Modell für SageMaker AI Hosting Services 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 dem Sie trainiert haben, [Erstellen und Ausführen eines Trainingsauftrags](ex1-train-model.md#ex1-train-model-sdk) indem Sie die `deploy` Methode des `xgb_model` Schätzers aufrufen. Wenn Sie die `deploy`-Methode aufrufen, geben Sie die Anzahl und den Typ der EC2-ML-Instances an, die Sie zum Hosten des Endpunkts verwenden möchten.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count` (int) – Die Anzahl der Instances, für die das Modell bereitgestellt werden soll.
+ `instance_type` (str) – Der Instance-Typ, mit dem Sie Ihr bereitgestelltes Modell betreiben möchten.
+ `serializer`(int) — Serialisiert Eingabedaten verschiedener Formate (ein NumPy Array, eine Liste, eine Datei oder ein Puffer) in eine CSV-formatierte Zeichenfolge. Wir verwenden dies, weil der XGBoost Algorithmus Eingabedateien im CSV-Format akzeptiert.

Die `deploy` Methode erstellt ein bereitstellbares Modell, konfiguriert den Endpunkt der SageMaker KI-Hostingdienste und startet den Endpunkt, um das Modell zu hosten. Weitere Informationen finden Sie in der [Deploy-Klassenmethode des generischen SageMaker KI-Estimators](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable). Um den Namen des Endpunkts abzurufen, der von der `deploy` Methode generiert wurde, führen Sie den folgenden Code aus:

```
xgb_predictor.endpoint_name
```

Dies sollte den Endpunktnamen von `xgb_predictor` zurückgeben. Das Format des Endpunktnamens ist `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. 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 Vorhersagen in Echtzeit 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 SageMaker AI Predictor, um den gehosteten Endpunkt wiederzuverwenden
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Nachdem Sie das Modell auf einem Endpunkt bereitgestellt haben, können Sie einen neuen SageMaker KI-Prädiktor einrichten, indem Sie den Endpunkt koppeln und in allen anderen Notebooks kontinuierlich Vorhersagen in Echtzeit treffen. Der folgende Beispielcode zeigt, wie Sie die SageMaker AI Predictor-Klasse verwenden, um ein neues Prädiktorobjekt unter Verwendung desselben Endpunkts einzurichten. Verwenden Sie erneut den Endpunktnamen, den Sie für den `xgb_predictor` verwendet haben.

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="{{sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS}}",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

Der `xgb_predictor_reuse` Prädiktor verhält sich genauso wie das Original `xgb_predictor`. Weitere Informationen finden Sie in der [SageMaker AI Predictor-Klasse](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

## (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-Inferenzjob ausführen, um mithilfe der SageMaker AI-Batch-Transformation Vorhersagen für einen Testdatensatz zu treffen. Nach Abschluss Ihres Modelltrainings können Sie den Schätzer auf ein `transformer` Objekt erweitern, das auf der [SageMaker AI Transformer-Klasse](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html) basiert. Der Batch-Transformer liest Eingabedaten aus einem bestimmten S3-Bucket ein und trifft Vorhersagen.

**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 den S3-Bucket URIs für Eingabe und Ausgabe für den Batch-Transformationsjob 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 ein Transformer-Objekt, das die Mindestanzahl von Parametern angibt: die Parameter `instance_count` und `instance_type`, um den Batch-Transformationsauftrag auszuführen, und die `output_path` um Prognosedaten zu speichern, wie im Folgenden dargestellt: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Initiieren Sie den Batch-Transformationsauftrag, indem Sie die `transform()` Methode des `transformer` Objekts wie folgt ausführen:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Wenn der Batch-Transformationsauftrag abgeschlossen ist, erstellt SageMaker AI die im `batch_output` Pfad gespeicherten `test.csv.out` Vorhersagedaten, 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-Transformationsjobs herunterzuladen:

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

   Dadurch sollte die `test.csv.out` Datei im aktuellen Arbeitsverzeichnis erstellt werden. Sie können sich die Gleitkommawerte ansehen, die auf der Grundlage der logistischen Regression des XGBoost Trainingsjobs vorhergesagt wurden.