Arquivos de manifesto aumentados para trabalhos de treinamento - 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á.

Arquivos de manifesto aumentados para trabalhos de treinamento

Para incluir metadados com seu conjunto de dados em um trabalho de treinamento, use um arquivo manifesto aumentado. Quando usar um arquivo manifesto aumentado, seu conjunto de dados deve ser armazenado no Amazon Simple Storage Service (Amazon S3) e você deve configurar seu trabalho de treinamento para usar o conjunto de dados armazenado nele. Especifique a localização e o formato desse conjunto de dados para um ou mais Channel. Os manifestos aumentados só oferecem suporte ao modo de entrada Pipe. Consulte a seção, InputModeem Channelpara saber mais sobre o modo de entrada de tubulação.

Ao especificar os parâmetros de um canal, você especifica um caminho para o arquivo, denominado S3Uri. A Amazon SageMaker interpreta isso URI com base no especificado S3DataType em S3DataSource. A opção AugmentedManifestFile define um formato de manifesto que inclui metadados com os dados de entrada. Usar um arquivo manifesto aumentado é uma alternativa ao pré-processamento quando você rotula dados. Para treinar trabalhos usando dados rotulados, você normalmente precisa pré-processar o conjunto de dados para combinar dados de entrada com metadados antes do treinamento. Se o conjunto de dados de treinamento for grande, o pré-processamento poderá ser demorado e caro.

Formato de arquivo manifesto aumentado

Um arquivo de manifesto aumentado deve ser formatado no formato JSONLinhas. No formato JSON Linhas, cada linha no arquivo é um JSON objeto completo seguido por um separador de nova linha.

Durante o treinamento, SageMaker analisa cada JSON linha e envia alguns ou todos os seus atributos para o algoritmo de treinamento. Você especifica quais conteúdos de atributos devem ser transmitidos e a ordem em que devem ser transmitidos com o AttributeNames parâmetro do CreateTrainingJobAPI. O AttributeNames parâmetro é uma lista ordenada de nomes de atributos que SageMaker procura no JSON objeto para usar como entrada de treinamento.

Por exemplo, se você listar ["line", "book"] para AttributeNames, os dados de entrada deverão incluir os nomes de atributos line e book na ordem especificada. Para este exemplo, o seguinte conteúdo do arquivo manifesto aumentado é válido:

{"author": "Herman Melville", "line": "Call me Ishmael", "book": "Moby Dick"} {"line": "It was love at first sight.", "author": "Joseph Heller", "book": "Catch-22"}

SageMaker ignora nomes de atributos não listados, mesmo que eles precedam, sigam ou estejam entre os atributos listados.

Ao usar arquivos manifestos aumentados, observe as seguintes diretrizes:

  • A ordem dos atributos listados no parâmetro AttributeNames determina a ordem dos atributos transmitidos ao algoritmo no trabalho de treinamento.

  • A lista AttributeNames pode ser um subconjunto de todos os atributos na JSON linha. SageMaker ignora atributos não listados no arquivo.

  • Você pode especificar qualquer tipo de dado permitido pelo JSON formatoAttributeNames, incluindo texto, números, matrizes de dados ou objetos.

  • Para incluir um S3 URI como nome de atributo, adicione o sufixo -ref a ele.

Se o nome de um atributo contiver o sufixo-ref, o valor do atributo deverá ser um S3 URI para um arquivo de dados acessível ao trabalho de treinamento. Por exemplo, se AttributeNames contiver ["image-ref", "is-a-cat"], o exemplo a seguir mostra um arquivo de manifesto aumentado válido:

{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "is-a-cat": 0}

No caso da primeira JSON linha desse arquivo de manifesto, SageMaker recupera o image1.jpg arquivo s3://amzn-s3-demo-bucket/sample01/ e a representação em cadeia de caracteres do is-a-cat atributo "1" para classificação da imagem.

dica

Para criar um arquivo de manifesto aumentado, use o Amazon SageMaker Ground Truth e crie um trabalho de rotulagem. Para obter mais informações sobre o resultado de um trabalho de rotulagem, consulte Rotulando dados de saída do trabalho.

Use um arquivo de manifesto aumentado

As seções a seguir mostram como usar arquivos de manifesto aumentados em seus trabalhos de SageMaker treinamento da Amazon, seja com o SageMaker console ou programaticamente usando o Python. SageMaker SDK

Usar um arquivo de manifesto aumentado (console)

Para concluir este procedimento, você precisa:

  • O URL do bucket do S3 em que você armazenou o arquivo de manifesto aumentado.

  • Armazenar os dados listados no arquivo manifesto aumentado em um bucket do S3.

  • O URL do bucket do S3 em que você deseja armazenar a saída do trabalho.

Usar um arquivo manifesto aumentado em um trabalho de treinamento (console)
  1. Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação, escolha Treinamento e Trabalhos de treinamento.

  3. Escolha Criar trabalho de treinamento.

  4. Forneça um nome para o trabalho de treinamento. O nome deve ser exclusivo dentro de uma AWS região em uma AWS conta. Ele pode ter de 1 a 63 caracteres. Caracteres válidos: a-z, A-Z, 0-9 e . : + = @ _ % - (hífen).

  5. Escolha o algoritmo que você deseja usar. Para obter informações sobre algoritmos integrados com suporte, consulte Algoritmos integrados e modelos pré-treinados na Amazon SageMaker. Se quiser usar um algoritmo personalizado, verifique se ele é compatível com o modo Pipe.

  6. (Opcional) Em Configuração de recursos, aceite os valores padrão ou, para reduzir o tempo de computação, aumente o consumo de recursos.

    1. (Opcional) Em Tipo de instância, escolha o tipo de instância de computação de ML que você deseja usar. Na maioria dos casos, ml.m4.xlarge é suficiente.

    2. Para Contagem de instâncias, use o padrão, 1.

    3. (Opcional) Em Volume adicional por instância (GB), escolha o tamanho do volume de armazenamento de ML que você deseja provisionar. Na maioria dos casos, você pode usar o padrão, 1. Se estiver usando um conjunto de dados grande, use um tamanho maior.

  7. Forneça informações sobre os dados de entrada para o conjunto de dados de treinamento.

    1. Em Nome do canal, aceite o padrão (train) ou insira um nome mais significativo, como training-augmented-manifest-file.

    2. Para InputMode, escolha Pipe.

    3. Para o tipo de distribuição de dados S3, escolha FullyReplicated. Quando o treinamento é incremental, a replicação completa faz com que cada instância de computação de ML use uma cópia completa do conjunto de dados expandido. Para algoritmos baseados em neural, como Algoritmo Neural Topic Model (NTM), escolha ShardedByS3Key.

    4. Se os dados especificados no arquivo manifesto aumentado estiverem descompactados, defina o Tipo de compressão como Nenhum. Se os dados estiverem compactados usando gzip, defina-os como Gzip.

    5. (Opcional) Para Tipo de conteúdo, especifique o MIME tipo apropriado. O tipo de conteúdo é o tipo de extensão de correio eletrônico multiuso (MIME) dos dados.

    6. Para Wrapper de registro, se o conjunto de dados especificado no arquivo manifesto aumentado for salvo no formato RecordIO, escolha RecordIO. Se o seu conjunto de dados não estiver salvo como um arquivo formatado com RecordIO, escolha Nenhum.

    7. Para o tipo de dados S3, escolha AugmentedManifestFile.

    8. Para Localização do S3, forneça o caminho para o bucket onde você armazenou o arquivo manifesto aumentado.

    9. Para nomes de AugmentedManifestFile atributos, especifique o nome de um atributo que você deseja usar. O nome do atributo deve estar presente no arquivo manifesto aumentado e faz distinção entre maiúsculas e minúsculas.

    10. (Opcional) Para adicionar mais nomes de atributos, escolha Adicionar linha e especifique outro nome de atributo para cada atributo.

    11. (Opcional) Para ajustar a ordem dos nomes de atributos, escolha os botões para cima ou para baixo ao lado dos nomes. Ao usar um arquivo manifesto aumentado, a ordem dos nomes de atributos especificados é importante.

    12. Escolha Concluído.

  8. Para Configuração dos dados de saída, forneça as seguintes informações:

    1. Para Localização do S3, digite o caminho para o bucket do S3 no qual você deseja armazenar os dados de saída.

    2. (Opcional) Você pode usar sua chave de criptografia AWS Key Management Service (AWS KMS) para criptografar os dados de saída em repouso. Para a chave de criptografia, forneça o ID da chave ou seu Amazon Resource Number (ARN). Para obter mais informações, consulte KMS-Chaves de criptografia gerenciadas.

  9. (Opcional) Para Tags, adicione uma ou mais tags ao trabalho de treinamento. Uma tag é um metadado que você pode definir e atribuir a recursos AWS . Nesse caso, você pode usar tags para ajudá-lo a gerenciar seus trabalhos de treinamento. Uma tag consiste em uma chave e um valor que você define. Por exemplo, você pode querer criar uma tag com Project como uma chave e um valor que faça referência a um projeto relacionado ao trabalho de treinamento, como Home value forecasts.

  10. Escolha Criar trabalho de treinamento. SageMaker cria e executa o trabalho de treinamento.

Após a conclusão do trabalho de treinamento, SageMaker armazena os artefatos do modelo no bucket cujo caminho você forneceu para o caminho de saída do S3 no campo Configuração de dados de saída. Para implantar o modelo e obter previsões, consulte Implante o modelo na Amazon EC2.

Use um arquivo de manifesto aumentado () API

Veja a seguir como treinar um modelo com um arquivo de manifesto aumentado usando a biblioteca SageMaker Python de alto nível:

import sagemaker # Create a model object set to using "Pipe" mode. model = sagemaker.estimator.Estimator( training_image, role, instance_count=1, instance_type='ml.p3.2xlarge', volume_size = 50, max_run = 360000, input_mode = 'Pipe', output_path=s3_output_location, sagemaker_session=session ) # Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names. train_data = sagemaker.inputs.TrainingInput( your_augmented_manifest_file, distribution='FullyReplicated', content_type='application/x-recordio', s3_data_type='AugmentedManifestFile', attribute_names=['source-ref', 'annotations'], input_mode='Pipe', record_wrapping='RecordIO' ) data_channels = {'train': train_data} # Train a model. model.fit(inputs=data_channels, logs=True)

Após a conclusão do trabalho de treinamento, SageMaker armazena os artefatos do modelo no bucket cujo caminho você forneceu para o caminho de saída do S3 no campo Configuração de dados de saída. Para implantar o modelo e obter previsões, consulte Implante o modelo na Amazon EC2.