المشروع هو وحدة بيثون التي تسهل bert pretring. الحل الحالي مفتوح المصدر الحالي لتدريب هذا النموذج المحدد معقد. لقد قمنا بتبسيط الإجراء. هدف المشروع هو فتح الكود على مجتمع التعلم الآلي الأوسع لمساعدة ممارسي ML على تدريب نماذج BERT الخاصة بهم باستخدام بياناتهم. تم إنشاء الرمز لتدريب أحدث تكرار لنموذج BERT الخاص بـ VMware (VBERT) للمساعدة في التعلم الآلي ومعالجة اللغة الطبيعية في برنامج VMWARE.
يقع دفتر الملاحظات التجريبي داخل المجلد التجريبي
قم بإعداد Python 3.7 أو 3.8 Virtual Env وتثبيت المتطلبات باستخدام
pip install . من داخل المجلد الجذر
أو
pip install git+https://github.com/vmware-labs/bert-pretraining
قم بإنشاء بيانات pretRaining باستخدام create_pretraining_data.py من https://github.com/google-research/bert.
يمكنك إنشاء ملف Eval منفصل إذا كنت ترغب في تقييم دقة MLM و NSP الخاصة بنموذجك على مجموعة تقييم منفصلة أثناء التدريب.
يمكنك أيضًا تقسيم ملف واحد إلى متجهات التدريب والتثبيت باستخدام معلمة split_ratio في كائن التكوين.
تتم معالجة المعلمات المسبقة من خلال فئة pretRaining_Config. يرجى اتباع demo.ipynb لتشغيل عينة bert pretring.
pretRaining_Config params
| المعلمة | القيمة الافتراضية | وصف |
|---|---|---|
| model_name | Demobert | اسم النموذج |
| is_base | حقيقي | منطقية للاختيار بين Bert-Base و Bert-Large |
| max_seq_length | 128 | MSL ، يجب أن تكون متسقة مع ملف tfrecord (قم بإنشاء ملفين منفصلان إذا كنت ترغب في pretrain bert مع MSLS مختلفة على سبيل المثال: 128 ، 512) |
| max_predutions_per_seq | 20 | يجب أن يكون عدد الرموز المميزة المقنعة لـ MLM ، متسقة مع ملف tfrecord |
| num_train_steps | 1000 | عدد الخطوات لتدريب النموذج له ، ينتهي إذا وصلنا إلى نهاية ملف tfrecord (يتطلب التدريب المريح المزيد من خطوات التدريب) |
| num_warmup_steps | 10 | عدد خطوات الاحماء ، يستخدم Bert 1 ٪ من خطوات التدريب كخطوات الاحماء |
| التعلم | 1E-05 | معدل التعلم النموذج |
| Train_batch_size | 32 | حجم دفعة التدريب (تقسيم عبر وحدات معالجة الرسومات) |
| save_intermediate_checkpoints | حقيقي | احفظ نقاط التفتيش لكل خطوات تدريب "X" التي تقررها Save_CheckPoint_Steps. سيتم دائمًا حفظ نقطة التفتيش في نهاية التدريب |
| save_intermediate_checkpoint_steps | 25000 | يحفظ نقطة التفتيش بعد كل خطوات تدريب "X" (لا تشمل خطوات الاحماء) |
| eval_batch_size | 32 | حجم دفعة التقييم (تقسيم عبر وحدات معالجة الرسومات) |
| max_eval_steps | 1000 | عدد الخطوات لإجراء التقييم على عدم وجود ملف تقييم منفصل. إذا تم توفير ملف تقييم منفصل أو إذا تم توفير SPLIT_RATIO ، فسيتم استخدام مجموعة بيانات EVAL بالكامل للتقييم |
| eval_point | 1000 | يؤدي التقييم لكل خطوات تدريب "X" |
| split_ratio | لا أحد | النسبة المئوية من مجموعة بيانات التدريب لاستخدامها في التقييم إذا كنت ترغب في تقسيم تدريب Tfrecord إلى مجموعات بيانات القطار. إذا لم يتم توفير نسبة تقسيم ، فسيتم استخدام ملف التدريب في EVAULITY (يتم التحكم |
| init_checkpoint | لا أحد | إذا كنت تستأنف التدريب ، فوفر الطريق إلى نقطة التفتيش السابقة. إذا كنت تقوم بتهيئة التدريب من نقطة تفتيش غير افتراضية (Bert-Base ، Bert-Large) ، فوفر اسم/مسار نقطة التفتيش). |
| input_file | ./input/demo_msl128.tfrecord | إدخال ملف tfrecord تم إنشاؤه باستخدام Create_Pretraining_Data.py من https://github.com/google-research/bert |
| eval_file | لا أحد | إذا كنت ترغب في استخدام مجموعة بيانات Eval Seperate ، فقم بتوفير ملف tfrecord الإدخال الذي تم إنشاؤه باستخدام create_pretraining_data.py من https://github.com/google-research/bert |
| log_csv | ./EVAL_RESULTS.CSV | الملف الذي يخزن نتائج التقييم ** |
| output_dir | ./ckpts | دليل لتخزين نقاط التفتيش |
| num_gpu | 3 | عدد وحدات معالجة الرسومات التي يجب استخدامها للتدريب |
** يسجل ملف الإخراج log_csv المقاييس المفرطة ونتائج التقييم
تم إنشاء ملف demo.tfrecord من مجموعة بيانات Wikicorpus.
يرحب فريق مشروع Bert الذي يحتوي على مساهمات من المجتمع. قبل البدء في العمل مع هذا المشروع ، يرجى قراءة وتوقيع اتفاقية ترخيص المساهم (https://cla.vmware.com/cla/1/preview). إذا كنت ترغب في المساهمة في رمز ولم تقم بتوقيع اتفاقية ترخيص المساهم (CLA) ، فسيطلب منك روبوتنا القيام بذلك عند فتح طلب سحب. للحصول على أي أسئلة حول عملية CLA ، يرجى الرجوع إلى المساهمة.
Apache-2.0