Was wäre der Zieleingang für den Transformer Decoder während der Testphase?
Der Transformer Decoder nimmt zwei Eingänge auf, den Ausgang des Encoders und die Zielsequenz. In dieser Antwort wurde angegeben, wie das Ziel in den Decoder eingespeist wird
Ich habe Verwirrung darüber, wie die Zielsequenz aussehen wird, wenn das trainierte Modell bewertet wird.
Beginnen wir mit einem <SOS>Tag für den ersten Zeitschritt und durchlaufen den Transformatordecoder für jeden Zeitschritt wie in RNNs?
Es wäre hilfreich, wenn jemand dies für mich klären könnte.
Antworten
Zur Trainingszeit ist die Eingabe in den Decoder die Zielsatz-Token, die zum Testzeitpunkt tatsächlich unbekannt sind. Was Sie als zweiten Eingang bezeichnen, sind die gewünschten Ausgänge, die normalerweise nicht als Eingang für den Decoder bezeichnet werden. 1. Aus Gründen der Übersichtlichkeit. 2. Sie werden technisch in die Verlustfunktion eingegeben.
Zur Testzeit benötigen wir die Verlustfunktion nicht, müssen aber dennoch einige Eingaben an den Decoder übergeben. Die Decodierung erfolgt autoregressiv, dh bei jedem Decodierungsschritt führen wir die Decodierschichten aus und erhalten eine Wahrscheinlichkeitsverteilung über die Ziel-Token. Wir wählen einen Token aus (normalerweise den mit der besten Punktzahl, aber bei der Strahlensuche wird es schwieriger) und hängen ihn an den Eingang des Decoders an. Dies bedeutet, dass die Eingabe in den Decodierer nacheinander schrittweise generiert wird, wenn der Satz decodiert wird.