

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
<a name="seq-2-seq"></a>

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. 

**Topics**
+ [Interface d'entrée/sortie pour l'algorithme Sequence-to-Sequence](#s2s-inputoutput)
+ [Recommandation d'instance EC2 pour l'algorithme Sequence-to-Sequence](#s2s-instances)
+ [Sequence-to-Sequence Exemples de carnets](#seq-2-seq-sample-notebooks)
+ [Fonctionnement de Sequence-to-Sequence](seq-2-seq-howitworks.md)
+ [Sequence-to-Sequence Hyperparamètres](seq-2-seq-hyperparameters.md)
+ [Régler un Sequence-to-Sequence modèle](seq-2-seq-tuning.md)

## Interface d'entrée/sortie pour l'algorithme Sequence-to-Sequence
<a name="s2s-inputoutput"></a>

**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](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html) contient un script permettant de convertir les fichiers texte tokenisés au format protobuf. En règle générale, l'algorithme empaquette les données au sein de tenseurs (entiers 32 bits) et génère les fichiers de vocabulaire nécessaires, requis pour le calcul des métriques et pour les inférences.

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 fichier `train.rec` généré par le script de prétraitement, par exemple).
+ `validation` : ce canal doit contenir les données de validation (le fichier `val.rec` généré par le script de prétraitement, par exemple).
+ `vocab` : doit contenir deux fichiers de vocabulaire (`vocab.src.json` et `vocab.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 format `application/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` : \$1`attention_matrix` : `true`\$1 : renvoie la matrice d'attention de la séquence d'entrée.
+ `application/x-recordio-protobuf` : attend l'entrée au format `recordio-protobuf` et renvoie la sortie au format `recordio-protobuf format`. Les types du contenu et de l'acceptation doivent être tous les deux au format `applications/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](#seq-2-seq-sample-notebooks).

## Recommandation d'instance EC2 pour l'algorithme Sequence-to-Sequence
<a name="s2s-instances"></a>

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
<a name="seq-2-seq-sample-notebooks"></a>

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](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html) Seq2Seq. Pour savoir comment créer et accéder à des instances de bloc-notes Jupyter que vous pouvez utiliser pour exécuter l'exemple dans SageMaker AI, consultez. [Instances de SageMaker blocs-notes Amazon](nbi.md) Une fois que vous avez créé une instance de bloc-notes et que vous l'avez ouverte, sélectionnez l'onglet **Exemples d'SageMaker IA** pour voir la liste de tous les exemples d' SageMaker IA. Les exemples de blocs-notes de modélisation de rubrique utilisant les algorithmes NTM se trouvent dans la section **Introduction to Amazon algorithms** (Présentation des algorithmes Amazon). Pour ouvrir un bloc-notes, cliquez sur son onglet **Use (Utiliser)** et sélectionnez **Create copy (Créer une copie)**.