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
Um Prognosen zu erhalten, stellen Sie Ihr Modell mithilfe von Amazon AI in Amazon EC2 bereit. SageMaker
Themen
Stellen Sie das Modell für die SageMaker AI-Hostingdienste bereit
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 dem Sie trainiert haben.
Verwenden Sie die ModelBuilder Klasse, um Ihr Modell zu erstellen und bereitzustellen. ModelBuilderunterstü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 trainierteModelTrainerObjekt.ModelBuilderverknü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
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.
(Optional) Verwenden Sie einen vorhandenen Endpunkt erneut oder rufen Sie ihn auf
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
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
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')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)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()Wenn der Batch-Transformationsauftrag abgeschlossen ist, erstellt SageMaker AI die im
batch_outputPfad gespeichertentest.csv.outPrognosedaten, 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} ./ --recursiveDadurch sollte die
test.csv.outDatei im aktuellen Arbeitsverzeichnis erstellt werden. Sie können die Float-Werte sehen, die auf der Grundlage der logistischen Regression des XGBoost-Trainingsauftrags vorhergesagt wurden.