Transformações em lotes com pipelines de inferência - Amazon SageMaker

Transformações em lotes com pipelines de inferência

Para obter inferências em um conjunto de dados inteiro, execute uma transformação em lote em um modelo treinado. Para executar inferências em um conjunto de dados inteiro, é possível usar o mesmo modelo de pipeline de inferência criado e implantado em um endpoint para o processamento em tempo real de um trabalho de transformação em lote. Para executar um trabalho de transformação em lote em um pipeline, faça download dos dados de entrada do Amazon S3 e envie-os em uma ou mais solicitações HTTP para o modelo de pipeline de inferência. Para ver um exemplo que mostra como preparar dados para uma transformação em lote, consulte “Seção 2 - Pré-processar os dados brutos de alojamento usando o Scikit Learn” dos endpoints multimodelo do Amazon SageMaker usando o caderno de amostra Linear Learner . Para obter informações sobre transformações em lote do Amazon SageMaker, consulte Transformação em lote para inferência com o Amazon SageMaker.

nota

Quando você usa imagens de Docker personalizadas em um pipeline que inclui algoritmos internos do Amazon SageMaker, é preciso ter uma política do Amazon Elastic Container Registry (Amazon ECR). Seu repositório do Amazon ECR deve conceder permissão ao SageMaker para extrair a imagem. Para obter mais informações, consulte Solucionar problemas com permissões do Amazon ECR para pipelines de inferência.

O exemplo a seguir mostra como executar uma tarefa de transformação usando o Amazon SageMaker Python SDK. Neste exemplo, model_name é o pipeline de inferência que combina modelos SparkML e XGBoost (criado nos exemplos anteriores). O local do Amazon S3 especificado por input_data_path contém os dados de entrada, no formato CSV, a serem baixados e enviados ao modelo SparkML. Após a conclusão do trabalho de transformação, o local do Amazon S3 especificado por output_data_path conterá os dados de saída retornados pelo modelo do XGBoost no 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')