Sprachmodellierung. Diese Codebasis enthält die Implementierung von G-LSTM- und F-LSTM-Zellen aus [1]. Es kann auch einige laufende Experimente enthalten.
Dieser Code wurde von https://github.com/rafaljozefowicz/lm gegabelt und enthält "Biglstm" -Praktik -Basislinie aus [2].
Der aktuelle Code wird auf TensorFlow R1.5 ausgeführt und unterstützt die Parallelität von Multi-GPU-Daten unter Verwendung synchronisierter Gradientenaktualisierungen.
Bei einer Milliarde Wörtern Benchmark mit 8 GPUs in einem DGX-1 konnte Big G-LSTM G4 nach 2 Wochen Training und 23,36 nach 3 Wochen 24,29 erreichen.
Am 02.06.2018 fanden wir ein Problem mit unserem experimentellen Setup, das verwirrende Nummern in der Arbeit ungültig aufgeführt ist.
Siehe aktuelle Zahlen in der folgenden Tabelle.
Auf der DGX Station, nach 1 Woche Training mit allen 4 GPUs (Tesla V100) und einer Chargengröße von 256 pro GPU:
| Modell | Verwirrung | Schritte | WPS |
|---|---|---|---|
| Biglstm | 35.1 | ~ 0,99 m | ~ 33,8K |
| Big F-Lstm F512 | 36.3 | ~ 1,67 m | ~ 56,5K |
| Big G-Lstm G4 | 40.6 | ~ 1,65 m | ~ 56K |
| Big G-Lstm G2 | 36 | ~ 1,37 m | ~ 47,1k |
| Big G-Lstm G8 | 39.4 | ~ 1,7 m | ~ 58,5 |
Unter der Annahme, dass das Datenverzeichnis in: /raid/okuchaiev/Data/LM1B/1-billion-word-language-modeling-benchmark-r13output/ , ausführen: Ausführen:
export CUDA_VISIBLE_DEVICES=0,1,2,3
SECONDS=604800
LOGSUFFIX=FLSTM-F512-1week
python /home/okuchaiev/repos/f-lm/single_lm_train.py --logdir=/raid/okuchaiev/Workspace/LM/GLSTM-G4/$LOGSUFFIX --num_gpus=4 --datadir=/raid/okuchaiev/Data/LM/LM1B/1-billion-word-language-modeling-benchmark-r13output/ --hpconfig run_profiler=False,float16_rnn=False,max_time=$SECONDS,num_steps=20,num_shards=8,num_layers=2,learning_rate=0.2,max_grad_norm=1,keep_prob=0.9,emb_size=1024,projected_size=1024,state_size=8192,num_sampled=8192,batch_size=256,fact_size=512 >> train_$LOGSUFFIX.log 2>&1
python /home/okuchaiev/repos/f-lm/single_lm_train.py --logdir=/raid/okuchaiev/Workspace/LM/GLSTM-G4/$LOGSUFFIX --num_gpus=1 --mode=eval_full --datadir=/raid/okuchaiev/Data/LM/LM1B/1-billion-word-language-modeling-benchmark-r13output/ --hpconfig run_profiler=False,float16_rnn=False,max_time=$SECONDS,num_steps=20,num_shards=8,num_layers=2,learning_rate=0.2,max_grad_norm=1,keep_prob=0.9,emb_size=1024,projected_size=1024,state_size=8192,num_sampled=8192,batch_size=1,fact_size=512
num_of_groups an.fact_size an.Beachten Sie, dass der aktuelle Datenleser möglicherweise einige Token verpasst, wenn sie Mini-Stapel erstellen, die sich geringfügig auf die endgültige Verwirrung auswirken können.
Verwenden Sie für die genauen Ergebnisse batch_size = 1 und num_steps = 1 in der Bewertung. Vielen Dank an Ciprian für die bemerkte.
Der Befehl akzeptiert und zusätzliches Argument --hpconfig , mit dem verschiedene Hyper-Parameter überschrieben werden können, einschließlich:
Forked Code und Glstm/FLSTM -Zellen: [email protected]