Transformação em lote para inferência com a Amazon SageMaker - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Transformação em lote para inferência com a Amazon SageMaker

Use a transformação em lote quando precisar fazer o seguinte:

  • Pré-processar os conjuntos de dados para remover ruído ou desvio que interfira no treinamento ou na inferência do conjunto de dados.

  • Obter inferências de conjuntos de dados grandes.

  • Executar inferência quando não for necessário um endpoint persistente.

  • Associe registros de entrada a inferências para ajudar na interpretação dos resultados.

Para filtrar dados de entrada antes de executar inferências ou para associar registros de entrada à inferências sobre esses registros, consulte Associar resultados de previsão a registros de entrada. Por exemplo, é possível filtrar dados de entrada a fim de fornecer contexto para criar e interpretar relatórios sobre os dados de saída.

Use a transformação em lote para obter inferências de grandes conjuntos de dados

A transformação em lotes gerencia automaticamente o processamento de grandes conjuntos de dados nos limites de parâmetros especificados. Por exemplo, ter um arquivo de conjunto de dados,input1.csv, armazenado em um bucket do S3. O conteúdo do arquivo de entrada pode ser semelhante ao seguinte exemplo.

Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM

Quando um trabalho de transformação em lote é iniciado, SageMaker inicia as instâncias de computação e distribui a carga de trabalho de inferência ou pré-processamento entre elas. A transformação em lote particiona objetos do Amazon S3 na entrada por chave e mapeia objetos do Amazon S3 para as instâncias. Quando você tiver vários arquivos, uma instância pode processar input1.csv, e a outra instância pode processar o arquivo chamado input2.csv. Se você tiver um arquivo de entrada, mas inicializar várias instâncias de computação, somente uma instância processará o arquivo de entrada. O resto das instâncias estão inativas.

Você também pode dividir os arquivos de entrada em minilotes. Por exemplo, é possível criar um minilote de input1.csv incluindo somente dois dos registros.

Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
nota

SageMaker processa cada arquivo de entrada separadamente. Ele não combina minilotes de diferentes arquivos de entrada para cumprir o limite MaxPayloadInMB .

Para dividir os arquivos de entrada em minilotes ao criar um trabalho de transformação em lote, defina o valor do SplitTypeparâmetro como. Line SageMaker usa todo o arquivo de entrada em uma única solicitação quando:

  • SplitType está definido como None.

  • Um arquivo de entrada não pode ser dividido em minilotes.

. Observe que o Batch Transform não suporta entradas CSV formatadas que contenham caracteres de nova linha incorporados. Você pode controlar o tamanho dos minilotes usando os parâmetros BatchStrategy e MaxPayloadInMB. MaxPayloadInMB não deve ser maior que 100 MB. Se você especificar o parâmetro opcional MaxConcurrentTransforms, o valor de (MaxConcurrentTransforms * MaxPayloadInMB) também não deverá exceder 100 MB.

Se a tarefa de transformação em lote processar com êxito todos os registros em um arquivo de entrada, ela criará um arquivo de saída. O arquivo de saída tem o mesmo nome e a extensão .out do arquivo. Em vários arquivos de entrada, como input1.csv e input2.csv, os arquivos de saída são denominados input1.csv.out e input2.csv.out. O trabalho de transformação em lotes armazena os arquivos de saída no local especificado no Amazon S3, como s3://amzn-s3-demo-bucket/output/.

As previsões em um arquivo de saída são listadas na mesma ordem dos registros correspondentes no arquivo de entrada. O arquivo de saída input1.csv.out, com base no arquivo de entrada mostrado anteriormente, seria parecido com o seguinte:

Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM

Se você definir SplitType como Line, poderá definir o parâmetro AssembleWith para Line concatenar os registros de saída com um delimitador de linha. Isso não altera o número de arquivos de saída. O número de arquivos de saída é igual ao número de arquivos de entrada, e o uso de AssembleWith não mescla arquivos. Se você não especificar o AssembleWith parâmetro, os registros de saída serão concatenados em formato binário por padrão.

Quando os dados de entrada são muito grandes e são transmitidos usando codificação em HTTP partes, para transmitir os dados para o algoritmo, defina como. MaxPayloadInMB0 Os algoritmos SageMaker integrados da Amazon não oferecem suporte a esse recurso.

Para obter informações sobre como usar o API para criar um trabalho de transformação em lote, consulte CreateTransformJobAPIo. Para obter mais informações sobre a relação entre objetos de entrada e saída de transformação em lote, consulte OutputDataConfig. Para obter um exemplo de como usar a transformação em lotes, consulte (Opcional) Faça previsões com o Transformador de Lotes.

Acelere um trabalho de transformação em lote

Se você estiver usando o CreateTransformJobAPI, poderá reduzir o tempo necessário para concluir os trabalhos de transformação em lote usando valores ideais para os parâmetros. Isso inclui parâmetros como MaxPayloadInMBMaxConcurrentTransforms, ou BatchStrategy. O valor ideal para MaxConcurrentTransforms é igual ao número de trabalhadores de computação na tarefa de transformação em lote.

Se você estiver usando o SageMaker console, especifique esses valores de parâmetros ideais na seção Configuração adicional da página de configuração do trabalho de transformação em lote. SageMaker encontra automaticamente as configurações de parâmetros ideais para algoritmos integrados. Para obter algoritmos personalizados, forneça esses valores por meio de um endpoint execution-parameters.

Use a transformação em lote para testar variantes de produção

Para testar diferentes modelos ou configurações de hiperparâmetros, crie um trabalho de transformação separado para cada nova variante de modelo e use um conjunto de dados de validação. Para cada trabalho de transformação, especifique um nome de modelo exclusivo e um local no Amazon S3 para o arquivo de saída. Para analisar os resultados, use Logs e métricas de pipeline de inferência.

Notebooks de amostra de transformação em lote

Para ver um exemplo de notebook que usa transformação em lote, consulte Batch Transform with PCA and DBSCAN Movie Clusters. Esse notebook usa transformação em lote com um modelo de análise de componentes principais (PCA) para reduzir os dados em uma matriz de revisão de itens do usuário. Em seguida, mostra a aplicação de um agrupamento espacial baseado em densidade de aplicativos com o algoritmo noise (DBSCAN) para agrupar filmes.

Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo SageMaker, consulte. Instâncias do Amazon SageMaker Notebook Depois de criar e abrir uma instância do notebook, escolha a guia SageMakerExemplos para ver uma lista de todos os SageMaker exemplos. Os notebooks de exemplo de modelagem de tópicos que usam os NTM algoritmos estão localizados na seção Funcionalidade avançada. Para abrir um caderno, escolha sua aba Uso e depois escolha Criar cópia.