โมเดลภาษาขนาดใหญ่ของ Pytorch
โมเดลภาษา Pytorch ขนาดใหญ่ที่ผ่านการฝึกอบรมเกี่ยวกับชุดข้อมูล 1 พันล้านคำ (LM1B) / (GBW)
ผลลัพธ์ล่าสุด
- 39.98 Perplexity หลังจาก 5 ช่วงการฝึกอบรมโดยใช้โมเดลภาษา LSTM กับ Adam Optimizer
- ได้รับการฝึกฝนใน ~ 26 ชั่วโมงโดยใช้ 1 NVIDIA V100 GPU ( ~ 5.1 ชั่วโมงต่อ Epoch ) ด้วยขนาดแบทช์ 2048 ( ~ 10.7 GP Memory GPU )
ผลลัพธ์ก่อนหน้านี้
- 46.47 ความงุนงง หลังการฝึกอบรม 5 ครั้งใน 1 ชั้น, 2048-unit, 256-Projection Langual Model [3]
- ได้รับการฝึกฝนเป็นเวลา 3 วันโดยใช้ 1 Nvidia P100 GPU ( ~ 12.5 ชั่วโมงต่อยุค )
- ใช้งาน Softmax ตัวอย่างและฟังก์ชั่นตัวอย่างบันทึกการบันทึก
ความต้องการฮาร์ดแวร์ GPU
| พิมพ์ | ขนาดหน่วยความจำ LM | GPU |
|---|
| w/o น้ำหนักผูก | ~ 9 GB | NVIDIA 1080 TI, NVIDIA TITAN X |
| น้ำหนัก w/ ผูก [6] | ~ 7 GB | Nvidia 1070 หรือสูงกว่า |
- มีตัวเลือกในการผูกคำว่าการฝังและเมทริกซ์น้ำหนัก softmax เข้าด้วยกันเพื่อบันทึกหน่วยความจำ GPU
พารามิเตอร์ไฮเปอร์ [3]
| พารามิเตอร์ | ค่า |
|---|
| # ยุค | 5 |
| ขนาดชุดการฝึกอบรม | 128 |
| ขนาดแบทช์ประเมินผล | 1 |
| BPTT | 20 |
| ขนาดฝัง | 256 |
| ขนาดที่ซ่อน | 2048 |
| ขนาดฉาย | 256 |
| ผูกติดอยู่ + softmax | เท็จ |
| # เลเยอร์ | 1 |
| การเพิ่มประสิทธิภาพ | Adagrad |
| อัตราการเรียนรู้ | 0.10 |
| การตัดไล่ระดับสี | 1.00 |
| การออกกลางคัน | 0.01 |
| น้ำหนัก-ลดลง (การลงโทษ L2) | 1E-6 |
การตั้งค่า - รูปแบบข้อมูลไฟฉาย
- ดาวน์โหลดชุดข้อมูล Google Billion Word สำหรับ Torch - Link
- เรียกใช้ "process_gbw.py" บนไฟล์ "train_data.th7" เพื่อสร้างไฟล์ "train_data.sid"
- ติดตั้ง Cython Framework และสร้าง sampler log_uniform
- แปลง TORCH DATA TENSOR เป็นรูปแบบ Pytorch Tensor (ต้องใช้ Pytorch v0.4.1)
ฉันใช้ประโยชน์จากข้อมูล GBW ที่ประมวลผลล่วงหน้าสำหรับกรอบไฟฉาย (ดูคบเพลิง GBW) แต่ละข้อมูลเทนเซอร์มีคำทั้งหมดในพาร์ติชันข้อมูล ไฟล์ "train_data.sid" ทำเครื่องหมายตำแหน่งเริ่มต้นและจุดสิ้นสุดสำหรับแต่ละประโยคอิสระ ขั้นตอนการประมวลผลล่วงหน้าและไฟล์ "train_data.sid" เพิ่มความเร็วในการโหลดข้อมูลการฝึกอบรมขนาดใหญ่
- Data Tensors - (test_data, valid_data, train_data, train_small, train_tiny) - (#words x 2) เมทริกซ์ - (รหัสประโยค, รหัสคำ)
- SESTENCE ID TENSOR - (#SENTENCE X 2) MATRIX - (ตำแหน่งเริ่มต้นความยาวประโยค)
การตั้งค่า - รูปแบบข้อมูลดั้งเดิม
- ดาวน์โหลดชุดข้อมูล Word 1 พันล้าน - ลิงก์
รูปแบบข้อมูลคบเพลิงโหลดชุดข้อมูลทั้งหมดพร้อมกันดังนั้นจึงต้องใช้หน่วยความจำอย่างน้อย 32 GB พาร์ติชันรูปแบบดั้งเดิมชุดข้อมูลเป็นชิ้นเล็ก ๆ แต่ทำงานช้าลง
การอ้างอิง
- สำรวจขีด จำกัด ของการสร้างแบบจำลองภาษา GitHub
- เทคนิคการแยกตัวประกอบสำหรับเครือข่าย LSTM GitHub
- การประมาณ softmax ที่มีประสิทธิภาพสำหรับ GPUs github
- การสุ่มตัวอย่างผู้สมัคร
- คบเพลิง GBW
- การผูกเวคเตอร์คำและตัวแยกประเภทคำ: กรอบการสูญเสียสำหรับการสร้างแบบจำลองภาษา