

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 in una lingua e previsione della relativa traduzione in un'altra lingua), riepilogo del testo (immissione di una stringa di parole e previsione di un riepilogo della stessa), riconoscimento vocale (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 modelli di reti neurali ricorrenti (RNN) e reti neurali convoluzionali (CNN) con attenzione come architetture codificatore-decodificatore. 

**Topics**
+ [Input/Output Sequence-to-Sequence Interfaccia per l'algoritmo](#s2s-inputoutput)
+ [Raccomandazione dell'istanza EC2 per l'algoritmo Sequence-to-Sequence](#s2s-instances)
+ [Sequence-to-Sequence Notebook di esempio](#seq-2-seq-sample-notebooks)
+ [Come Sequence-to-Sequence funziona](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)

## Input/Output Sequence-to-Sequence Interfaccia 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`: {`attention_matrix`: `true`}: 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 per l'algoritmo Sequence-to-Sequence
<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ù GPU. 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, vedi [ English-German Esempio di English-German traduzione automatica con SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html) AI Seq2Seq. 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)**.