Trasformazioni in batch con pipeline di inferenza - Amazon SageMaker AI

Trasformazioni in batch con pipeline di inferenza

Per ottenere inferenze su un intero set di dati esegui una trasformazione in batch su un modello addestrato. Lo stesso modello di pipeline di inferenza creato e distribuito in un endpoint per l'elaborazione in tempo reale può essere utilizzato in un processo di trasformazione in batch. Per eseguire un processo di trasformazione in batch in una pipeline, scarica i dati di input da Amazon S3 e inviali in una o più richieste HTTP al modello di pipeline di inferenza. Per un esempio che mostra come preparare i dati per una trasformazione in batch, consulta "Section 2 - Preprocess the raw housing data using Scikit Learn” nel notebook di esempio Amazon SageMaker Multi-Model Endpoints using Linear Learner. Per informazioni sulle trasformazioni in batch di Amazon SageMaker AI, consulta Trasformazione in batch per l’inferenza con Amazon SageMaker AI.

Nota

Quando utilizzi immagini Docker personalizzate in una pipeline che include algoritmi integrati di Amazon SageMaker AI, è necessaria una policy di Amazon Elastic Container Registry (ECR). Il repository Amazon ECR deve concedere a SageMaker AI l’autorizzazione a estrarre l’immagine. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi alle autorizzazioni Amazon ECR per le pipeline di inferenza.

L'esempio seguente mostra come eseguire un processo di trasformazione utilizzando Amazon SageMaker Python SDK. In questo esempio, model_name è la pipeline di inferenza che combina i modelli SparkML e XGBoost (creati negli esempi precedenti). La posizione Amazon S3 specificata da input_data_path contiene i dati di input, in formato CSV, che devono essere scaricati e inviati al modello Spark ML. Al termine del processo di trasformazione, la posizione Amazon S3 specificata da output_data_path contiene i dati di output restituiti dal modello XGBoost in formato CVS.

import sagemaker input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name') output_data_path = 's3://{}/{}'.format(default_bucket, 'key') transform_job = sagemaker.transformer.Transformer( model_name = model_name, instance_count = 1, instance_type = 'ml.m4.xlarge', strategy = 'SingleRecord', assemble_with = 'Line', output_path = output_data_path, base_transform_job_name='inference-pipelines-batch', sagemaker_session=sagemaker.Session(), accept = CONTENT_TYPE_CSV) transform_job.transform(data = input_data_path, content_type = CONTENT_TYPE_CSV, split_type = 'Line')