Model bahasa skala besar Pytorch
Model bahasa Pytorch skala besar yang dilatih pada dataset 1 miliar kata (LM1B) / (GBW)
Hasil terbaru
- 39,98 Kebingungan Setelah 5 Epok Pelatihan Menggunakan Model Bahasa LSTM dengan Adam Optimizer
- Dilatih dalam ~ 26 jam menggunakan 1 NVIDIA V100 GPU ( ~ 5,1 jam per zaman ) dengan ukuran 2048 batch ( ~ 10,7 GB GPU memori )
Hasil sebelumnya
- 46.47 Kebingungan Setelah 5 zaman pelatihan pada model bahasa LSTM 1-lapis, 2048-unit, 256-proyeksi [3]
- Dilatih selama 3 hari menggunakan 1 NVIDIA P100 GPU ( ~ 12,5 jam per zaman )
- Diimplementasikan Fungsi Softmax dan Log-Uniformed Sampler yang diimplementasikan
Persyaratan perangkat keras GPU
| Jenis | Ukuran memori LM | GPU |
|---|
| bobot yang terikat | ~ 9 GB | Nvidia 1080 ti, nvidia titan x |
| bobot terikat [6] | ~ 7 GB | Nvidia 1070 atau lebih tinggi |
- Ada opsi untuk mengikat kata embedding dan matriks bobot softmax untuk menyimpan memori GPU.
Hyper-parameter [3]
| Parameter | Nilai |
|---|
| # Zaman | 5 |
| Ukuran Batch Pelatihan | 128 |
| Ukuran Batch Evaluasi | 1 |
| BPTT | 20 |
| Ukuran embedding | 256 |
| Ukuran tersembunyi | 2048 |
| Ukuran proyeksi | 256 |
| Tied Estulding + Softmax | PALSU |
| # Lapisan | 1 |
| Pengoptimal | Adagrad |
| Tingkat pembelajaran | 0.10 |
| Kliping gradien | 1.00 |
| Putus sekolah | 0,01 |
| Pembatasan berat (penalti L2) | 1E-6 |
Pengaturan - Format Data Obor
- Unduh Dataset Google Billion Word untuk Torch - Link
- Jalankan "process_gbw.py" pada file "train_data.th7" untuk membuat file "train_data.sid"
- Instal Cython Framework dan Bangun Log_uniform Sampler
- Konversi tensor data obor ke format tentorch tensor (membutuhkan Pytorch V0.4.1)
Saya memanfaatkan data GBW yang diproses untuk kerangka kerja obor. (Lihat Torch GBW) Setiap tensor data berisi semua kata dalam partisi data. File "train_data.sid" menandai posisi awal dan akhir untuk setiap kalimat independen. Langkah preprocessing dan file "train_data.sid" mempercepat memuat data pelatihan besar -besaran.
- Data Tensors - (test_data, valid_data, train_data, train_small, train_tiny) - (#words x 2) matriks - (ID kalimat, id kata)
- Tensor ID Kalimat - (#Sentences x 2) Matrix - (Posisi Mulai, Panjang Kalimat)
Pengaturan - Format Data Asli
- Unduh 1 -miliar Word Dataset - Tautan
Format data obor memuat seluruh dataset sekaligus, sehingga membutuhkan setidaknya 32 GB memori. Format asli mempartisi dataset menjadi potongan yang lebih kecil, tetapi berjalan lebih lambat.
Referensi
- Menjelajahi Batas Pemodelan Bahasa GitHub
- Trik faktorisasi untuk jaringan LSTM GitHub
- Perkiraan softmax yang efisien untuk GPUS GitHub
- Calon Pengambilan Sampel
- Obor GBW
- Mengikat kata -kata vektor dan pengklasifikasi kata: kerangka kerugian untuk pemodelan bahasa