نموذج لغة Pytorch على نطاق واسع
نموذج بيانات لغة Pytorch على نطاق واسع مدرب على مجموعة بيانات 1 مليار (LM1B) / (GBW)
أحدث النتائج
- 39.98 الحيرة بعد 5 عصر تدريب باستخدام نموذج لغة LSTM مع Optimizer
- تم تدريبه في ~ 26 ساعة باستخدام 1 NVIDIA V100 GPU ( ~ 5.1 ساعة لكل فترة ) مع حجم الدفعة 2048 ( حوالي 10.7 جيجابايت ذاكرة GPU )
النتائج السابقة
- 46.47 الحيرة بعد 5 عصر تدريب على طبقة واحدة ، 2048-الوحدة ، 256-Projection LSTM نموذج [3]
- تدرب لمدة 3 أيام باستخدام 1 NVIDIA P100 GPU ( ~ 12.5 ساعة لكل فترة )
- تم تنفيذ وظائف softmax softmax و log-uniform
متطلبات أجهزة GPU
| يكتب | حجم الذاكرة LM | GPU |
|---|
| ث/س أوزان | ~ 9 جيجابايت | NVIDIA 1080 TI ، NVIDIA TITAN X |
| ث/ أوزان مربوطة [6] | ~ 7 جيجابايت | 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 مليار Word for Torch - Link
- قم بتشغيل "process_gbw.py" على ملف "Train_Data.th7" لإنشاء ملف "Train_Data.sid"
- تثبيت Cython Framework وقم ببناء sampler log_uniform
- قم بتحويل موترات بيانات الشعلة إلى تنسيق Pytorch Tensor (يتطلب Pytorch v0.4.1)
أنا الاستفادة من بيانات GBW معالجة مسبقًا لإطار Torch. (انظر Torch GBW) يحتوي كل موتر بيانات على جميع الكلمات في قسم البيانات. يمثل ملف "Train_Data.sid" مواقع البداية والنهاية لكل جملة مستقلة. تسرع خطوة المعالجة المسبقة وملف "Train_Data.sid" لتحميل بيانات التدريب الضخمة.
- Tensors - (test_data ، alval_data ، train_data ، train_small ، train_tiny) - (#words x 2) matrix - (معرف الجملة ، معرف الكلمات)
- Tensor معرف الجملة - (#Sentences x 2) المصفوفة - (موضع البدء ، طول الجملة)
الإعداد - تنسيق البيانات الأصلي
- قم بتنزيل مجموعة بيانات الكلمات 1 مليار - الرابط
يقوم تنسيق بيانات Torch بتحميل مجموعة البيانات بأكملها في وقت واحد ، لذلك يتطلب ما لا يقل عن 32 جيجابايت من الذاكرة. أقسام التنسيق الأصلي مجموعة البيانات في قطع أصغر ، لكنها تعمل أبطأ.
مراجع
- استكشاف حدود نمذجة اللغة github
- حيل العوامل لشبكات LSTM Github
- تقريب softmax فعال ل GPUS Github
- أخذ عينات المرشح
- شعلة GBW
- ربط ناقلات الكلمات ومصنفات الكلمات: إطار خسارة لنمذجة اللغة