การสร้างแบบจำลองภาษา codebase นี้มีการใช้งานเซลล์ G-LSTM และ F-LSTM จาก [1] นอกจากนี้ยังอาจมีการทดลองอย่างต่อเนื่อง
รหัสนี้ถูกแยกจาก https://github.com/rafaljozefowicz/lm และมีพื้นฐานภาษา "biglstm" พื้นฐานจาก [2]
รหัสปัจจุบันทำงานบน TensorFlow R1.5 และรองรับการขนานข้อมูลหลาย GPU โดยใช้การอัปเดตการไล่ระดับสีแบบซิงโครไนซ์
ด้วยมาตรฐานหนึ่งพันล้านคำที่ใช้ 8 GPU ในหนึ่ง DGX-1, Big G-LSTM G4 สามารถบรรลุ 24.29 หลังจากการฝึกอบรม 2 สัปดาห์และ 23.36 หลังจาก 3 สัปดาห์
เมื่อวันที่ 02/06/2018 เราพบปัญหาเกี่ยวกับการตั้งค่าการทดลองของเราซึ่งทำให้หมายเลข perplexity ที่ระบุไว้ในกระดาษไม่ถูกต้อง
ดูหมายเลขปัจจุบันในตารางด้านล่าง
บนสถานี DGX หลังจากฝึกอบรม 1 สัปดาห์โดยใช้ GPU ทั้งหมด 4 ตัว (Tesla V100) และขนาดแบทช์ 256 ต่อ GPU:
| แบบอย่าง | ความงุนงง | ขั้นตอน | WPS |
|---|---|---|---|
| Biglstm | 35.1 | ~ 0.99m | ~ 33.8K |
| Big F-LSTM F512 | 36.3 | ~ 1.67m | ~ 56.5K |
| Big G-LSTM G4 | 40.6 | ~ 1.65m | ~ 56K |
| Big G-LSTM G2 | 36 | ~ 1.37m | ~ 47.1k |
| G-LSTM G8 ขนาดใหญ่ | 39.4 | ~ 1.7m | ~ 58.5 |
สมมติว่าไดเรกทอรีข้อมูลอยู่ใน: /raid/okuchaiev/Data/LM1B/1-billion-word-language-modeling-benchmark-r13output/ , EXECUTE:
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_groupsfact_sizeโปรดทราบว่าเครื่องอ่านข้อมูลปัจจุบันอาจพลาดโทเค็นบางตัวเมื่อสร้างมินิแบทช์ซึ่งอาจมีผลเล็กน้อยต่อความงุนงงขั้นสุดท้าย
สำหรับผลลัพธ์ที่แม่นยำที่สุด ให้ใช้ batch_size = 1 และ num_steps = 1 ในการประเมินผล ขอบคุณ Ciprian ที่สังเกตเห็นสิ่งนี้
คำสั่งยอมรับและอาร์กิวเมนต์เพิ่มเติม --hpconfig ซึ่งอนุญาตให้แทนที่พารามิเตอร์ไฮเปอร์ไฮเปอร์ต่างๆรวมถึง:
Forked Code และ GlSTM/FLSTM เซลล์: [email protected]