Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Sequence-to-Sequence Algorithmus
Amazon SageMaker Sequence to Sequence ist ein überwachter Lernalgorithmus, bei dem die Eingabe eine Sequenz von Tokens (z. B. Text, Audio) und die generierte Ausgabe eine weitere Token-Sequenz ist. Zu den Beispielanwendungen gehören: maschinelle Übersetzung (Eingabe eines Satzes aus einer Sprache und Vorhersage, wie dieser Satz in einer anderen Sprache lauten würde), Textzusammenfassung (Eingabe einer längeren Wortfolge und Vorhersage einer kürzeren Wortfolge, die eine Zusammenfassung darstellt) speech-to-text (Audioclips, die in Ausgabesätze in Tokens umgewandelt werden). Kürzlich konnten Probleme in diesem Bereich erfolgreich mit tiefen neuronalen Netzwerken modelliert werden, die eine erhebliche Leistungssteigerung im Vergleich zu früheren Methoden bieten. Amazon SageMaker seq2seq verwendet die Modelle Recurrent Neural Networks (RNNs) und Convolutional Neural Network (CNN) mit besonderer Aufmerksamkeit als Encoder-Decoder-Architekturen.
Themen
Sequence-to-SequenceEingabe-/Ausgabeschnittstelle für den Algorithmus
Training
SageMaker seq2seq erwartet Daten im Recordio-ProtoBUF-Format. Die Token werden jedoch als Ganzzahlen und nicht als Gleitkommazahlen erwartet, wie es normalerweise der Fall ist.
Ein Skript zum Konvertieren von Daten aus Token-Textdateien in das "protobuf"-Format ist im Beispiel-Notebook für seq2seq
Nachdem die Vorverarbeitung abgeschlossen ist, kann der Algorithmus für Trainings aufgerufen werden. Der Algorithmus erwartet drei Kanäle:
-
train
: Dieser Kanal enthält das Trainingsdaten (z. B. die vom Vorverarbeitungsskript generiertetrain.rec
-Datei). -
validation
: Dieser Kanal enthält die Validierungsdaten (z. B. die vom Vorverarbeitungsskript generierteval.rec
-Datei). -
vocab
: Dieser Kanal enthält die beiden Vokabeldateien (vocab.src.json
undvocab.trg.json
).
Falls der Algorithmus in einem dieser drei Kanäle keine Daten findet, verläuft das Training fehlerhaft.
Inferenz
Für gehostete Endpunkte werden für die Inferenz zwei Datenformate unterstützt. Für die Inferenzausführung mit durch Leerzeichen getrennte Text-Token verwenden Sie das Format application/json
. Andernfalls verwenden Sie das Format recordio-protobuf
, um die codierten Ganzzahldaten zu nutzen. Beide Modi unterstützen ein Batching der Eingabedaten. Das application/json
-Format ermöglicht außerdem eine Visualisierung der Attention-Matrix.
-
application/json
: Erwartet die Eingabe im Format und gibt die Ausgabe im Format zurück. JSON JSON Sowohl die Inhalts- als auch die Annahmetypen sollten das Formatapplication/json
aufweisen. Jede Sequenz muss eine Zeichenfolge mit durch Leerzeichen getrennte Token sein. Dieses Format wird empfohlen, wenn im Stapel nur eine geringe Anzahl an Quellsequenzen vorhanden ist. Außerdem werden folgende zusätzliche Konfigurationsoptionen unterstützt:configuration
: {attention_matrix
:true
}: Gibt die Attention-Matrix für eine bestimmte Eingabesequenz zurück. -
application/x-recordio-protobuf
: Die Eingabe muss imrecordio-protobuf
-Format erfolgen, für die Ausgabe wird ebenfalls dasrecordio-protobuf format
-Format verwendet. Sowohl die Inhalts- als auch die Annahmetypen sollten das Formatapplications/x-recordio-protobuf
aufweisen. Bei diesem Format müssen die Quellsequenzen für die nachfolgende "protobuf"-Codierung in eine Liste mit Ganzzahlen konvertiert werden. Dieses Format wird für die Masseninferenz empfohlen.
Bei der Batch-Transformation unterstützt die Inferenz das JSON Lines-Format. Die Batch-Transformation erwartet die Eingabe im JSON Lines-Format und gibt die Ausgabe im JSON Lines-Format zurück. Sowohl die Inhalts- als auch die Annahmetypen sollten das Format application/jsonlines
aufweisen. Das Format für die Eingabe lautet folgendermaßen:
content-type: application/jsonlines {"source": "source_sequence_0"} {"source": "source_sequence_1"}
Das Format für die Antwort lautet folgendermaßen:
accept: application/jsonlines {"target": "predicted_sequence_0"} {"target": "predicted_sequence_1"}
Weitere Informationen zur Serialisierung und Deserialisierung der Ein- und Ausgaben in bestimmte Formate für Inferenzzwecke finden Sie unter Sequence-to-Sequence Beispiel-Notizbücher.
EC2Instanzempfehlung für den Sequence-to-Sequence Algorithmus
Der Amazon SageMaker seq2seq-Algorithmus unterstützt nur GPU Instance-Typen und kann nur auf einem einzigen Computer trainiert werden. Sie können jedoch Instances mit mehreren verwenden. GPUs Der seq2seq-Algorithmus unterstützt die Instance-Familien P2, P3, G4dn und G5. GPU
Sequence-to-Sequence Beispiel-Notizbücher
Ein Beispielnotizbuch, das zeigt, wie der SageMaker Sequence-to-Sequence-Algorithmus verwendet wird, um ein Englisch-Deutsch-Übersetzungsmodell zu trainieren, finden Sie unter Beispiel für maschinelle Übersetzung Englisch-Deutsch