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á.
Algoritmo Sequence-to-Sequence
O algoritmo de sequência para sequência (seq2seq) do Amazon SageMaker AI é um algoritmo de aprendizado supervisionado em que a entrada é uma sequência de tokens (por exemplo, texto e áudio) e a saída gerada é outra sequência de tokens. As aplicações de exemplo incluem: tradução de máquina (entrada de uma frase em um idioma e previsão de como ela seria em outro idioma), resumo de texto (entrada de uma string de palavras longa e previsão de um string mais curta, como resumo), fala para texto (clipes de áudio convertidos em frases, em tokens). Recentemente, problemas nesse domínio foram modelados com êxito com redes neurais profundas, que mostram um aumento significativo do desempenho sobre as metodologias anteriores. O seq2seq do Amazon SageMaker AI usa modelos de redes neurais recorrentes (RNNs) e rede neural convolucional (CNN) cujas arquiteturas de codificador e decodificador são de mecanismo de atenção.
Tópicos
Interface de entrada/saída para o algoritmo seq2seq
Treinamento
O seq2seq do SageMaker AI espera dados no formato RecordIO-Protobuf. No entanto, os tokens são esperados como números inteiros, e não como pontos flutuantes, como é geralmente o caso.
Um script para converter dados de arquivos de texto indexados para o formato protobuf acompanha o caderno de exemplo
Após o pré-processamento, o algoritmo pode ser invocado para treinamento. O algoritmo espera três canais:
-
train: deve conter os dados de treinamento (por exemplo, o arquivotrain.recgerado pelo script de pré-processamento). -
validation: deve conter os dados de validação (por exemplo, o arquivoval.recgerado pelo script de pré-processamento). -
vocab: deve conter os dois arquivos de vocabulário (vocab.src.jsonevocab.trg.json)
Se o algoritmo não encontrar dados em nenhum desses três canais, o treinamento resultará em um erro.
Inferência
Para endpoints hospedados, a inferência oferece apoio para dois formatos de dados. Para executar inferência usando tokens de texto separados por espaço, use o formato application/json. Caso contrário, use o formato recordio-protobuf para trabalhar com os dados codificados por inteiros. Os dois modos são oferecem apoio ao agrupamento de dados de entrada em lotes. O formato application/json também permite que você visualize a matriz de atenção.
-
application/json: espera a entrada no formato JSON e retorna a saída no mesmo formato. Os dois cabeçalhos Accept e Content-Type devem serapplication/json. Cada sequência deve ser uma string com tokens separados por espaço em branco. Esse formato é recomendado quando o número de sequências de origem no lote é pequeno. Também é compatível com as seguintes opções de configuração adicionais:configuration: {attention_matrix:true}: retorna a matriz de atenção para a sequência de entrada específica. -
application/x-recordio-protobuf: espera a entrada no formatorecordio-protobufe retorna a saída no formatorecordio-protobuf format. Os dois cabeçalhos Accept e Content-Type devem serapplications/x-recordio-protobuf. Para esse formato, as sequências de origem devem ser convertidas em uma lista de inteiros para codificação protobuf subsequente. Esse formato é recomendado para inferência em massa.
Para transformação em lote, a inferência oferece apoio para o formato de linhas JSON. A transformação em lote espera a entrada no formato JSON Lines e retorna a saída no formato de linhas JSON. Os dois cabeçalhos Accept e Content-Type devem ser application/jsonlines. O formato da entrada é o seguinte:
content-type: application/jsonlines {"source": "source_sequence_0"} {"source": "source_sequence_1"}
O formato da resposta é o seguinte:
accept: application/jsonlines {"target": "predicted_sequence_0"} {"target": "predicted_sequence_1"}
Para obter detalhes adicionais sobre como serializar e desserializar as entradas e as saídas para formatos específicos de inferência, consulte os Cadernos de exemplo Sequence-to-Sequence.
Recomendações de instâncias do EC2 para o algoritmo Sequence-to-Sequence
O algoritmo seq2seq do Amazon SageMaker AI só permite tipos de instância de GPU e só pode ser treinado em uma única máquina. No entanto, você pode utilizar instâncias com várias GPUs. O algoritmo seq2seq oferece apoio para famílias de instâncias de GPU P2, P3, G4dn e G5.
Cadernos de exemplo Sequence-to-Sequence
Para ver um exemplo de caderno que mostra como usar o algoritmo de sequência para sequência do SageMaker AI para treinar um modelo de tradução do inglês para o alemão, consulte Machine Translation English-German Example Using SageMaker AI Seq2Seq