

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Sequence-to-Sequence Algoritmo
<a name="seq-2-seq"></a>

Amazon SageMaker AI Sequence to Sequence è un algoritmo di apprendimento supervisionato in cui l'input è una sequenza di token (ad esempio testo, audio) e l'output generato è un'altra sequenza di token. Le applicazioni di esempio includono: traduzione automatica (immissione di una frase da una lingua e previsione di quale frase sarebbe in un'altra lingua), riepilogo del testo (immissione di una stringa di parole più lunga e previsione di una stringa di parole più breve, ovvero un riepilogo), speech-to-text (clip audio convertite in frasi di output in token). Recentemente, i problemi in questo dominio sono stati risolti con modelli di rete neurale profonda che hanno ottimizzato le prestazioni rispetto alle precedenti metodologie. Amazon SageMaker AI seq2seq utilizza i modelli Recurrent Neural Networks (RNNs) e Convolutional Neural Network (CNN) con attenzione come architetture codificatore-decodificatore. 

**Topics**
+ [Interfaccia di Sequence-to-Sequence input/output per l'algoritmo](#s2s-inputoutput)
+ [Raccomandazione dell'istanza EC2 Sequence-to-Sequence per l'algoritmo](#s2s-instances)
+ [Sequence-to-Sequence Notebook di esempio](#seq-2-seq-sample-notebooks)
+ [Funzionamento di Sequence-to-Sequence](seq-2-seq-howitworks.md)
+ [Sequence-to-Sequence Iperparametri](seq-2-seq-hyperparameters.md)
+ [Ottimizza un Sequence-to-Sequence modello](seq-2-seq-tuning.md)

## Interfaccia di Sequence-to-Sequence input/output per l'algoritmo
<a name="s2s-inputoutput"></a>

**Addestramento**

SageMaker AI seq2seq prevede dati in formato recordio-protobuf. Tuttavia, i token sono previsti come numeri interi, non come valori in virgola mobile, come si fa di solito.

Nel [notebook di esempio seq2seq](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html) è incluso uno script per la conversione dei dati da file di testo tokenizzati al formato protobuf. In generale, raggruppa i dati in tensori interi a 32 bit e genera i file di vocabolario richiesti, necessari per interferenza e calcolo dei parametri.

Una volta completata la preelaborazione, l'algoritmo può essere richiamato per l’addestramento. L'algoritmo prevede tre canali:
+ `train`: deve contenere i dati di addestramento (ad esempio, il file `train.rec` generato dallo script di preelaborazione).
+ `validation`: deve contenere i dati di convalida (ad esempio, il file `val.rec` generato dallo script di preelaborazione).
+ `vocab`: deve contenere i due file di vocabolario (`vocab.src.json` e `vocab.trg.json`). 

Se l'algoritmo non rileva alcun dato in questi tre canali, si verifica un errore nell’addestramento.

**Inferenza**

Per gli endpoint ospitati, l'inferenza supporta due formati di dati. Per eseguire l'inferenza utilizzando token di testo separati da spazio, utilizza il formato `application/json`. In alternativa, utilizza il formato `recordio-protobuf` per lavorare con i dati codificati come numeri interi. Entrambe le modalità supportano la ripartizione in batch dei dati di input. Il formato `application/json` consente inoltre di visualizzare la matrice di attenzione.
+ `application/json`: si aspetta l'input in formato JSON e restituisce l'output in formato JSON. I tipi di contenuto e accettazione devono essere `application/json`. Ogni sequenza deve essere una stringa con token separati da spazi vuoti. Questo formato è consigliato quando il numero di sequenze di origine nel batch è esiguo. Inoltre, supporta le seguenti opzioni di configurazione aggiuntive:

  `configuration`: \$1`attention_matrix`: `true`\$1: restituisce la matrice di attenzione per la specifica sequenza di input.
+ `application/x-recordio-protobuf`: si aspetta l'input nel formato `recordio-protobuf` e restituisce l'output in `recordio-protobuf format`. I tipi di contenuto e accettazione devono essere `applications/x-recordio-protobuf`. Per questo formato, le sequenze di origine devono essere convertite in un elenco di numeri interi per la successiva codifica di protobuf. Questo formato è consigliato per l'inferenza in blocco.

Per la trasformazione in batch, l'inferenza supporta il formato JSON Lines. La trasformazione in batch prevede l'input in formato JSON Lines e restituisce l'output in formato JSON Lines. I tipi di contenuto e accettazione devono essere `application/jsonlines`. Il formato dell'input è il seguente:

```
content-type: application/jsonlines

{"source": "source_sequence_0"}
{"source": "source_sequence_1"}
```

Il formato della risposta è il seguente:

```
accept: application/jsonlines

{"target": "predicted_sequence_0"}
{"target": "predicted_sequence_1"}
```

Per ulteriori informazioni su come serializzare e deserializzare gli input e gli output in formati specifici per l'interferenza, consulta [Sequence-to-Sequence Notebook di esempio](#seq-2-seq-sample-notebooks).

## Raccomandazione dell'istanza EC2 Sequence-to-Sequence per l'algoritmo
<a name="s2s-instances"></a>

L'algoritmo Amazon SageMaker AI seq2seq supporta solo tipi di istanze GPU e può essere addestrato solo su una singola macchina. Tuttavia, puoi utilizzare istanze con più istanze. GPUs L'algoritmo seq2seq supporta le famiglie di istanze GPU P2, P3, G4dn e G5.

## Sequence-to-Sequence Notebook di esempio
<a name="seq-2-seq-sample-notebooks"></a>

Per un taccuino di esempio che mostra come utilizzare l'algoritmo SageMaker AI Sequence to Sequence per addestrare un modello di traduzione inglese-tedesco, vedi Esempio di traduzione automatica inglese-tedesco utilizzando AI [Seq2Seq](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html). SageMaker Per istruzioni su come creare e accedere alle istanze di notebook Jupyter da utilizzare per eseguire l'esempio in AI, consulta. SageMaker [Istanze SageMaker per notebook Amazon](nbi.md) Dopo aver creato un'istanza di notebook e averla aperta, seleziona la scheda **Esempi di SageMaker AI** per visualizzare un elenco di tutti gli esempi di IA. SageMaker I notebook di esempio di modellazione dell'argomento che utilizzano gli algoritmi NTM sono disponibili nella sezione con l'**introduzione agli algoritmi di Amazon**. Per aprire un notebook, fai clic sulla relativa scheda **Use (Utilizza)** e seleziona **Create copy (Crea copia)**.