Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Sequence-to-Sequence Algorithme
Amazon SageMaker AI Sequence to Sequence est un algorithme d'apprentissage supervisé dans lequel l'entrée est une séquence de jetons (par exemple, du texte, du son) et la sortie générée est une autre séquence de jetons. Parmi les applications, citons : la traduction automatique (saisissez une phrase d'une langue et prédisez ce que sera cette phrase dans une autre langue), la synthèse de texte (entrez une chaîne de mots plus longue et prédisez une chaîne de mots plus courte qui constitue un résumé), speech-to-text (clips audio convertis en phrases de sortie sous forme de jetons). Récemment, les problèmes dans ce domaine ont été modélisés avec succès grâce aux réseaux neuronaux profonds qui offrent une amélioration significative des performances par rapport aux méthodologies précédentes. Amazon SageMaker AI seq2seq utilise des modèles de réseaux neuronaux récurrents (RNNs) et de réseaux neuronaux convolutifs (CNN) en accordant une attention particulière aux architectures d'encodeurs-décodeurs.
Rubriques
Interface d'entrée/sortie pour l'algorithme Sequence-to-Sequence
Entrainement
SageMaker AI seq2seq attend des données au format Recordio-ProtoBuf. Cependant, les jetons doivent être des nombres entiers, et non des nombres flottants, comme c'est habituellement le cas.
L'exemple de bloc-notes seq2seq
Une fois le prétraitement terminé, l'algorithme peut être appelée pour la formation. L'algorithme attend trois canaux :
-
train
: ce canal doit contenir les données de formation (le fichiertrain.rec
généré par le script de prétraitement, par exemple). -
validation
: ce canal doit contenir les données de validation (le fichierval.rec
généré par le script de prétraitement, par exemple). -
vocab
: doit contenir deux fichiers de vocabulaire (vocab.src.json
etvocab.trg.json
)
Si l'algorithme ne trouve pas les données dans l'un de ces trois canaux, la formation se traduit par une erreur.
Inférence
Pour les points de terminaison hébergés, l'inférence prend en charge deux formats de données. Pour effectuer l'inférence en utilisant les jetons de texte séparés par un espace, utilisez le format application/json
. Sinon, choisissez le format recordio-protobuf
pour utiliser les données codées en nombres entiers. Les deux modes prennent en charge le traitement par lots des données d'entrée. Le format application/json
vous permet également de visualiser la matrice d'attention.
-
application/json
: attend l'entrée au format JSON et renvoie la sortie au format JSON. Les types du contenu et de l'acceptation doivent être tous les deux au formatapplication/json
. Chaque séquence doit se présenter sous forme d'une chaîne avec des jetons séparés par un espace. Ce format est recommandé lorsque le nombre de séquences source du lot est réduit. Il prend également en charge les options de configuration supplémentaires suivantes :configuration
: {attention_matrix
:true
} : renvoie la matrice d'attention de la séquence d'entrée. -
application/x-recordio-protobuf
: attend l'entrée au formatrecordio-protobuf
et renvoie la sortie au formatrecordio-protobuf format
. Les types du contenu et de l'acceptation doivent être tous les deux au formatapplications/x-recordio-protobuf
. En ce qui concerne ce format, les séquences source doivent être converties en une liste d'entiers pour les codages protobuf ultérieurs. Ce format est recommandé pour les inférences en bloc.
Pour les transformations par lots, l'inférence prend en charge le format JSON Lines. La transformation par lots attend l'entrée au format JSON Lines et renvoie la sortie au format JSON Lines. Les types du contenu et de l'acceptation doivent être tous les deux au format application/jsonlines
. Le format d'entrée est le suivant :
content-type: application/jsonlines {"source": "source_sequence_0"} {"source": "source_sequence_1"}
Le format de la réponse est le suivant :
accept: application/jsonlines {"target": "predicted_sequence_0"} {"target": "predicted_sequence_1"}
Pour plus d'informations sur la sérialisation et la désérialisation des entrées et des sorties en formats spécifiques pour l'inférence, consultez Sequence-to-Sequence Exemples de carnets.
EC2 Recommandation d'instance pour l' Sequence-to-Sequencealgorithme
L'algorithme Amazon SageMaker AI seq2seq ne prend en charge que les types d'instances GPU et ne peut s'entraîner que sur une seule machine. Cependant, vous pouvez utiliser des instances avec plusieurs GPUs. L'algorithme seq2seq prend en charge les familles d'instances de GPU P2, P3, G4dn et G5.
Sequence-to-Sequence Exemples de carnets
Pour un exemple de bloc-notes expliquant comment utiliser l'algorithme SageMaker AI Sequence to Sequence pour entraîner un modèle de traduction anglais-allemand, voir Exemple de traduction automatique anglais-allemand à l'aide d' SageMaker AI