Dieser Code trainiert ein Sprachmodell auf Charakterebene unter Verwendung einer Variante einer Faltungs-neuronalen Netzwerkarchitektur namens Hyänen. Das trainierte Modell kann verwendet werden, um zufälligen Text bei einer Samenzeichenfolge zu generieren.
Um diesen Code auszuführen, müssen Sie Python 3 und die folgenden Pakete installieren lassen:
Sie können diese Pakete installieren, indem Sie pip install -r requirements.txt ausführen.
Um das Modell zu trainieren, rennen Sie train_hyena_model() mit den folgenden Parametern:
text_file : Pfad zu einer Textdatei, die zum Training des Modells verwendet wird.input_dim : Die Anzahl der Zeichen, die gleichzeitig in das Modell einfließen können.output_dim : Die Anzahl der Ausgabeklassen (Zeichen) des Modells.filter_size : Die Größe der im Modell verwendeten Faltungsfilter.depth : Die Anzahl der Faltungsfilter im Modell.positional_dim : Die Dimensionalität der Ausgabe der Faltungsschicht.lr : Die während der Optimierung verwendete Lernrate.num_epochs : Die Anzahl der Epochen zum Training des Modells.Die Funktion gibt das trainierte Modell, eine Liste von Zeichen im Wortschatz zurück und ein Wörterbuch, das Charaktere im Wortschatz auf ihre Indizes ordnet.
Um zufälliges Text mit dem trainierten Modell zu generieren, run generate_text() mit den folgenden Parametern:
model : Das ausgebildete Modell.seed_text : Die Samenzeichenfolge, die zum Starten der Textgenerierung verwendet wird.length : Die zu erzeugende Länge des Textes.char_to_idx : Das Wörterbuch, das Zeichen im Wortschatz auf ihre Indizes ordnet.idx_to_char : Das Wörterbuch, das Indizes im Wortschatz zu Zeichen ordnet.vocab : Die Anzahl der Zeichen im Wortschatz. Sie können den Beispielcode in main() ausführen, um das Modell auf einem zufällig generierten Text zu trainieren und zufällige Text bei einer Saatgutzeichenfolge zu generieren.
text und seq_len .
text (Zeichenfolge): Text eingeben.seq_len (int): Sequenzlänge. __len__() : Gibt die Länge des Datensatzes zurück.
__getitem__(index) : Gibt den Tensor der Sequenz und das Ziel auf den angegebenen index zurück.
index (int): Index der Sequenz.input_dim (int): Eingabemaßnahmen.output_dim (int): Ausgangsdimension.filter_size (int): Filtergröße für die Faltung.depth (int): Tiefe des Modells.positional_dim (int): Positionsdimension des Modells. forward(x) : Berechnet den Vorwärtspass des Hyänenmodells mit dem angegebenen Eingangstensor x .
x (Tensor): Eingabezensor.train_hyena_model(text_file, input_dim, filter_size, depth, positional_dim, lr, num_epochs, batch_size=128) : trainiert das Hyena-Modell mit den angegebenen Parametern und gibt das ausgebildete Modell, die Charakterliste und das Charakter-zu-Index-Dingungsmodell zurück.text_file (Zeichenfolge): Textdateipfad eingeben.input_dim (int): Eingabemaßnahmen.filter_size (int): Filtergröße für die Faltung.depth (int): Tiefe des Modells.positional_dim (int): Positionsdimension des Modells.lr (Float): Lernrate.num_epochs (int): Anzahl der Epochen.batch_size (int): Stapelgrößegenerate_text(model, seed_text, length, char_to_idx, idx_to_char, vocab) : Erzeugt Text mit dem trainierten Hyänenmodell mit den angegebenen Parametern.model (Hyänen): ausgebildetes Hyänenmodell.seed_text (String): Saatguttext.length (int): Länge des generierten Textes.char_to_idx (dikt): charakter-zu-index-Wörterbuch.idx_to_char (dikt): Index-zu-Charakter-Wörterbuch.vocab (int): Vokabulargröße.input_dim (int): Eingangsdimensionmain() : führt die Hauptfunktion aus, die zufälligen Text erzeugt, das Hyena -Modell trainiert und Text mit dem trainierten Modell generiert.Dieser Code ist von den Papieren inspiriert
von Nal Kalchbrenner, Edward Grefenstette und Phil Blunsom.
Von: Michael Poli, Stefano Massaroli, Eric Nguyen, Daniel Y. Fu, Tri Dao, Stephen Baccus, Yoshua Bengio, Stefano Ermon, Christopher Ré
Zugehörigkeiten: