Transformaciones por lotes con canalizaciones de inferencia
Para obtener inferencias sobre un conjunto de datos completo, ejecute una transformación por lotes en un modelo entrenado. Para ejecutar inferencias en un conjunto de datos completo, puede utilizar el mismo modelo de canalización de inferencias que se creó e implementó en un punto de conexión con el procesamiento en tiempo real de trabajos de transformación por lotes. Para ejecutar un trabajo de transformación por lotes en una canalización, descargue los datos de entrada desde Amazon S3 y envíelos en una o varias solicitudes HTTP al modelo de canalización de inferencia. Para ver un ejemplo que muestra cómo preparar los datos para una transformación por lotes, consulte la “Sección 2: Preprocesamiento de los datos de alojamiento sin procesar con Scikit Learn” del Puntos de conexión multimodelo de Amazon SageMaker con el cuaderno de muestra de aprendizaje lineal
nota
Para usar imágenes de Docker personalizadas en una canalización que incluye algoritmos integrados de Amazon SageMaker AI, necesita una política de Amazon Elastic Container Registry (Amazon ECR). Su repositorio de Amazon ECR debe conceder permiso a SageMaker AI para extraer la imagen. Para obtener más información, consulte Solución de problemas de permisos de Amazon ECR para canalizaciones de inferencia.
El ejemplo siguiente muestra cómo ejecutar un trabajo de transformación que usa el Amazon SageMaker Python SDKmodel_name es la canalización de inferencia que combina modelos SparkML y XGBoost (creada en ejemplos anteriores). La ubicación de Amazon S3 especificada por input_data_path contiene los datos de entrada, en formato CSV, que se van a descargar y envíar al modelo de Spark ML. Una vez finalizado el trabajo de transformación, la ubicación de Amazon S3 especificada por output_data_path contiene los datos de salida devueltos por el modelo de XGBoost en formato CSV.
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')