GPT-basierte Decodierungsstruktur für die Darstellung latenter Variablen

Manchmal möchten wir (einen Teil) von GPT als vorab trainierten Latentvariablendecoder verwenden. Was sollen wir tun? Ich habe kürzlich einen Artikel gelesen und drei Methoden zur Injektion versteckter Variablen (Code-Injektion) zusammengefasst.

1. Cheng X, Xu W, Wang T, et al. Variationale halbüberwachte Aspekt-Term-Stimmungsanalyse über Transformer[C]// Tagungsband der 23. Konferenz zum rechnergestützten Lernen natürlicher Sprachen (CoNLL). 2019.

Die in diesem Artikel verwendete Methode besteht darin, jedem Eingabetoken latente Variablen hinzuzufügen. Der Originaltext stellt jedes Token als Summe latenter Variablen und ursprünglicher Einbettungen dar und verwendet dann die Rekonstruktionsaufgabe zur Feinabstimmung des Decoders.

2. Ziegler ZM, Melas-Kyriazi L, Gehrmann S, et al. Encoder-agnostische Anpassung für die bedingte Sprachgenerierung[J]. 2019.

In diesem Artikel werden Möglichkeiten untersucht, vorab trainierte Sprachmodelle in natürlicher Sprache an beliebige bedingte Eingaben anzupassen. Die Autoren stellten fest, dass vorab trainierte Transformatormodelle während der Feinabstimmung sehr empfindlich auf große Parameteränderungen reagieren. Daher wird eine Anpassungsmethode vorgeschlagen, die willkürliche Konditionierung direkt in die Selbstaufmerksamkeit einfügt und als Pseudo-Selbstaufmerksamkeit bezeichnet wird. Die Hauptidee besteht darin, latente Variablen schichtweise einzufügen. Der Unterschied zu mehreren anderen Injektionsstrukturen ist wie folgt:

a hat einen neuen Transformatordecoder trainiert; b hat eine neue Kontextaufmerksamkeitsschicht trainiert; Pseudo-Selbstaufmerksamkeit hat nur einen Teil der Selbstaufmerksamkeitsschicht geändert (grün in der Abbildung zeigt an, dass nur vorab trainierte Gewichte für die Initialisierung verwendet werden, grau zeigt Training von an Kratzer und Rot. Der Vektor stellt die Zielaktivierung jeder Ebene dar, und der blaue Vektor stellt die vom Encoder ausgegebene Quellfunktion dar.)

Insbesondere z\in R^dprojiziert der Autor die latente Variable durch eine lineare Schicht z_l\in R^{d\times L}, sodass sie in L Vektoren aufgeteilt werden kann [z_1,......,z_l]. Was an den Selbstaufmerksamkeitsblock z_lgesendet wird . lWie nachfolgend dargestellt:

Hellrot ist der Schlüssel und Wert der versteckten Variablen

Hellrot ist der Schlüssel und Wert der versteckten Variablen

Pseudo-Selbstaufmerksamkeit kann latente Variablen auf folgende Weise in die vorab trainierte GPT2-Selbstaufmerksamkeitsstruktur absorbieren. Für jede Selbstaufmerksamkeitsschicht gibt es:

PSA(Q,K',V')=softmax(\frac{Q{K'}^T}{\sqrt{d_k}})V'

Der Einfachheit halber bezieht sich z hier auf z_l(Zeilenvektor). Wo Q,K,V\in R^{l\times d}ist die ursprüngliche Eingabeeinbettung? K'=\begin{pmatrix} z_k \\ K \end{pmatrix} \in R^{(1+l)\times d}und sind erweiterte Schlüssel und Werte V'=\begin{pmatrix} z_v \\ V \end{pmatrix} \in R^{(1+l)\times d}mit projizierten latenten Variablensummen z_k( z_vaus der ersten Zeile von z (d. h. ) Auffüllung?). Stellt die Verkettung nach Zeile dar.z_l\begin{pmatrix} .  \\ .  \end{pmatrix}

3. Wang T., Wan X. T-CVAE: Transformer-basierter konditionierter Variations-Autoencoder für die Story-Vervollständigung[C]// Achtundzwanzigste internationale gemeinsame Konferenz über künstliche Intelligenz (IJCAI-19). 2019.

Die in diesem Artikel verwendete Methode wird auf der letzten Ebene injiziert. Die Modellstruktur des Artikels ist wie folgt:

Im ursprünglichen GPT2 werden die Einbettungsvektoren aus der letzten Aufmerksamkeitsschicht über einen linearen Kopf (V ist die Vokabulargröße) h \in R^dauf Logit-Vektoren vor Softmax projiziert . p\in R^VWenn Sie zu diesem Zeitpunkt latente Variablen injizieren möchten, müssen Sie einen neuen gemeinsam genutzten linearen Kopf erlernen, auf den z\in R^dprojiziert werden soll p_z\in R^V. Schließlich wird es p+p_zan Softmax gesendet. Der spezifische Prozess im Originalartikel ist:

C_t=tanh([z,D_{out,t}^{L}]W_c)

O_t=C_tW_o+b_o

P_t=softmax(O_t)

Dabei ist D die Decoder-Ausgabe, Toilettedie Parametermatrix C_tund die Ausgabe der kombinierten Schicht, die z und den Decoder-Zustand zum Zeitpunkt t zusammenführt. Und weiter an Linear Head und Softmax weitergeleitet, um eine Wahrscheinlichkeitsverteilung zu erhalten.

Erweiterte Lektüre: Ein Überblick über die Forschung zur Textgenerierung basierend auf vorab trainierten Sprachmodellen_zenRRans Blog-CSDN-Blog  Abschnitt 5, gängige Feinabstimmungsstrategien für die Textgenerierung unter Verwendung vorab trainierter Sprachmodelle_3As Strange and Strange Holy Land-CSDN-Blog

Supongo que te gusta

Origin blog.csdn.net/FYZDMMCpp/article/details/121581969
Recomendado
Clasificación