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á.
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.
-
Associar registros de entrada com inferências para auxiliar na interpretação de 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 prediçã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.
Tópicos
Uso da transformação em lote para obter inferências de conjuntos de dados grandes
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, a SageMaker IA 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. As outras 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 A IA 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 SplitType
parâmetro como. Line
SageMaker A IA usa todo o arquivo de entrada em uma única solicitação quando:
-
SplitType
está definido comoNone
. -
Um arquivo de entrada não pode ser dividido em minilotes.
Observe que a Transformação em Lote não é compatível com entrada em formato CSV que contenha 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 o trabalho de transformação em lote processar com êxito todos os registros em um arquivo de entrada, ele cria um arquivo de saída. O arquivo de saída tem o mesmo nome e a extensão do arquivo .out
. 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 prediçõ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 parâmetro AssembleWith
, 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 HTTP em blocos, para transmitir os dados para o algoritmo, defina MaxPayloadInMB
como 0
. Os algoritmos integrados do Amazon SageMaker AI não oferecem suporte a esse recurso.
Para obter mais informações sobre como usar a API para criar um trabalho de transformação em lotes, consulte a API CreateTransformJob
. Para obter mais informações sobre a relação entre os objetos de entrada e de saída da transformação em lote, consulte OutputDataConfig
. Para obter um exemplo de como usar a transformação em lotes, consulte (Opcional) Faça predições com o Transformador de Lotes.
Aceleração de um trabalho de transformação em lote
Se você estiver usando a API CreateTransformJob
, poderá reduzir o tempo necessário para a conclusão de trabalhos de transformação de lote usando valores ideais para parâmetros. Isso inclui parâmetros como MaxPayloadInMB
, MaxConcurrentTransforms
ou BatchStrategy
. O valor ideal para MaxConcurrentTransforms
é igual ao número de operadores de computação na tarefa de transformação em lote.
Se você estiver usando o console do SageMaker AI, especifique esses valores ideais de parâmetros na seção Configuração adicional da página de configuração do trabalho de transformação em lote. SageMaker A IA 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.
Uso da transformação em lote para testar as variantes de produção
Para testar modelos diferentes ou várias configurações de hiperparâmetro, crie um trabalho de transformação separado para cada nova variante do 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.
Cadernos de amostra de transformação em lote
Para ver um caderno de exemplo de transformação em lote, consulte Transformação em lote com clusters de filme PCA e DBSCAN
Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo em SageMaker IA, 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 exemplos de SageMaker IA. Os cadernos de exemplo de modelagem do tópico que usam os algoritmos NTM estão localizados na seção Funcionalidade avançada. Para abrir um caderno, escolha a guia Uso e depois escolha Criar cópia.