يعرض هذا المستودع العمل المنجز خلال أطروحة ماجستير من خلال عنوان "تحسين الترجمة الآلية العصبية منخفضة الموارد للغات ذات الصلة عن طريق التعلم النقل" الذي نصحه ألكسندرا بيرش وراشيل باودن من جامعة إدنبرة. تم تقديمه في أغسطس 2020. لقد حقق بعض أساليب التعلم النقل لأنظمة الترجمة الآلية العصبية (NMT) من خلال استخدام نماذج اللغة المقنعة مثل XLM-Roberta (XLM-R) [1]. تم بناء هذا المشروع بشكل أساسي على الانصهار القائم على الانتباه لتمثيلات الكلمات السياقية من نماذج اللغة المقنعة (MLM) مع نظام NMT المستند إلى المحول [2]. كما تتبع تجريبياً نقل المعرفة النحوية من خلال تحليل لرؤوس الانتباه في هذا النظام بناءً على عمل المرجع [3]. يقدم هذا الدليل تعليمات التثبيت اللازمة إلى جانب مثال عمل صغير باستخدام مجموعة فرعية صغيرة من مجموعة بيانات IIT Bombay English-Hindi الموازية [4]. يمكن الوصول إلى جميع المقاييس الفائقة المستخدمة في هذا العمل من الأطروحة.
جدول المحتويات
- نظرة عامة على الانصهار القائم على الانتباه
- تثبيت
- المعالجة المسبقة
- خط الأساس NMT
- نظام NMT XLM-R
- Finetuning XLM-R
- تحويل النص
- التحليل النحوي
- معلومات إضافية
- مراجع
1. نظرة عامة على الانصهار القائم على الانتباه
- قمنا بتوصيل XLM-R بنظام NMT المستند إلى المحول باستخدام الانصهار المستند إلى الانتباه بعد العمل [2].
- نحن نسميها نظام NMT XLM-R الذي يتكون من وحدة XLM-R إضافية بخلاف NMT-Encoder القياسي و NMT-Decoder.
- يتم تمرير جملة الإدخال إلى كل من XLM-R و NMT-Encoder ، والذي يعطي تمثيلين مختلفين للجملة. يتم دمج تمثيل الكلمات السياقية من XLM-R مع تمثيل NMT-Encoder باستخدام اندماج قائم على الانتباه. وبالمثل ، يتم دمج تمثيل XLM-R مع وحدة فك الترميز.
2. التثبيت
2.1. متطلبات
- بيثون> = 3.5
- Pytorch> = 1.5.0
- TensorFlow == 1.13.1
- محولات Huggingface == 2.11.0
- Matplotlib
- بحر
- Scikit-Learn
- Sacrebleu> = 1.4.10
- الحكيم> = 0.1.91
- مؤشر مكتبة NLP> = 0.6
- موسى
2.2 التثبيت في دليل الحزم
- قم بتنزيل واستخراج وتثبيت MosesDecoder في هذا الموقع.
- قم بتنزيل واستخراج وتثبيت مكتبة Indic NLP في هذا الموقع. أيضا ، استخراج موارد NLP في هذا الموقع. يمكننا تخطي هذه الخطوة إذا كنا لا نعمل مع لغات Indic.
- قم بتنزيل مكتبة Huggingface Transformers واستخراجها وتثبيتها في هذا الموقع.
2.3 تثبيت فيرسيك
- استنساخ هذا المستودع. سيكون دليل الوالدين بمثابة الدليل الرئيسي لجميع البرامج النصية للتدريب والتدريب والتقييم في هذا العمل.
- قم بتشغيل الأوامر التالية من الدليل المنزلي.
cd 'work/systems/baseline-NMT/fairseq'
pip install --editable ./
- سيقوم بتثبيت نظام NMT الأساسي استنادًا إلى مكتبة Fairseq جنبًا إلى جنب مع تبعياتها. لاحظ أننا استخدمنا إصدارات متعددة من أنظمة FairSeq الموجودة في هذا الموقع. لذلك ، استخدمنا دائمًا المسارات الدقيقة لملفات التدريب والتقييم لتجنب النزاعات.
2.4 تنزيل واستخراج XLM-R
- قم بتنزيل جميع الملفات المرتبطة بـ XLM-R من Huggingface Hub. استخدم خيار "قائمة جميع الملفات في النموذج" لعرض وتنزيل الملفات وهي config.json و pytorch_model.bin و sentencepiece.bpe.model و tokenizer.json .
- ضع هذه الملفات في هذا الدليل.
3. المعالجة المسبقة
- يرجى زيارة مكتبات Fairseq و Bert-NMT للتعرف على خطوات المعالجة والتدريب والتقييم الأساسية ، حيث تم بناء عملنا عليها.
- استخدمنا MosesDecoder للمعالجة المسبقة لمجموعات البيانات الإنجليزية ، ولكننا انتقلنا إلى مكتبة Cond NLP للغات المؤهلة مثل الهندية ، غوجاراتية ، البنغالية ، والارجثى.
- استخدمنا SentencePiece BPE لتجزئة الكلمات. عندما تشارك اللغات المصدر والهدف أحرفًا كبيرة ، قمنا بمعالجة مجموعات البيانات باستخدام BPE المشترك باستخدام هذا البرنامج النصي. خلاف ذلك ، تم استخدام نص مختلف.
- بالنسبة لمجموعة بيانات اللغة الإنجليزية-هيندي المستخدمة لإظهار هذا العمل ، استخدمنا البرنامج النصي الأخير.
- اضبط Home_dir على الدليل الأصل لهذا المستودع.
- لقد وضعنا بالفعل ملفات القطار والاختبار و dev في RAW_DATA_DIR . يمكنك تغييرها بملفاتك بنفس اتفاقيات التسمية.
- قمنا بدمج بيانات التدريب مع مجموعات البيانات الأحادية الضخمة لمعرفة تجزئة BPE بشكل أفضل. ضع مجموعات البيانات هذه على RAW_MONOLINGUAL_DATA_DIR . استخدمنا مجموعة أوسكار ضخمة في عملنا ، ولكن لهذا العرض التوضيحي ، استخدمنا فقط ملفات القطار.
- قم بالتبديل بين مكتبة INTER NLP أو MOSES استنادًا إلى اللغات من خلال التعليق على وظيفة clean_norm_tok ، كما هو موضح في البرنامج النصي.
- قم بتشغيل هذا البرنامج النصي الذي يسرد جميع الملفات ويحفظه في المعالجة المسبقة _data_dir . يحتوي دليل Tokenized-BPE على جميع الملفات الوسيطة بعد التطبيع ، والرمز ، وما إلى ذلك ، وكذلك جميع الملفات النهائية.
- بعد ذلك ، يقوم هذا البرنامج النصي بتثبيط البيانات المراد استخدامها من قبل الأنظمة المستندة إلى FairSeq ، ويحفظ في الدليل الثنائي . يستخدم Fairseq Binariser من نظام XLM-R الذي يتوافق معه لإثارة الملفات لخط الأساس ، وكذلك الأنظمة XLM-R. إنه يستخدم -اسم النماذج النمطية للوصول إلى XLM-R Tokenizer لتكرار الملفات المصدر ، حيث تم استخدامها أيضًا من قبل مكون XLM-R جنبًا إلى جنب مع NMT-Encoder القياسي في أنظمة XLM-R.
- (اختياري) لاحظ أن هذا النظام يعتمد بشكل أساسي على XLM-R ، ولكن يمكننا أيضًا استخدام نماذج لغة مقنعة أخرى توفرها مكتبة Huggingface Transformers. نحن بحاجة إلى إجراء بعض التغييرات على النحو التالي:
- قم بتنزيل واستخراج نموذج اللغة الجديد كما هو مذكور في الخطوة 2.4.
- استيراد الرمز المميز والنموذج المقابل من مكتبة Luggingface Transformers في نظام XLM-R الذي ينص على النموذج الافتراضي كما هو مذكور أدناه:
from transformers import XLMRobertaModel
BertModel = XLMRobertaModel
from transformers import XLMRobertaTokenizer
BertTokenizer = XLMRobertaTokenizer
- نحتاج إلى استيرادها في الملفات التالية:
- العمل/الأنظمة/XLM-R-Used/Bert-NMT/Preprocess.py
- العمل/الأنظمة/XLM-R-upused/Bert-NMT/Interactive.py
- Work/Systems/XLM-R-Used/BERT-NMT/FAIRSEQ_CLI/preprocess.py
- Work/Systems/XLM-R-Used/BERT-NMT/FAIRSEQ_CLI/Interactive.py
- Work/Systems/XLM-R-Used/Bert-NMT/FairSeq/Tasks/Translation.py
- العمل/الأنظمة/XLM-R-upused/Bert-NMT/FairSeq/Models/Transformer.py
- العمل/الأنظمة/XLM-R-upused/Bert-NMT/FairSeq/Binarizer.py
- علاوة على ذلك ، نحتاج إلى تغيير الرموز المميزة
(<s>) وإنهاء (</s>) في هذه الملفات وفقًا لنموذج اللغة الجديد.
4. نظام NMT الأساسي
4.1 تدريب نظام NMT خط الأساس
- تدريب نظام خط الأساس القائم على المحول مع هذا البرنامج النصي.
- سوف يتراكم التدرجات لتشكيل حجم دفعة فعالة أكبر. حجم الدُفعة = (عدد وحدات معالجة الرسومات) * ( --max-tokens ) * ( -فأت-فريتش ).
- يستخدم استراتيجية التحقق من صحة التوقف المبكر مع -تحديد الحد الأقصى لعدد نقاط التفتيش مع انخفاض درجات Bleu.
- يستخدم عملنا بنية المحولات: Transformer_iwslt_de_en على أنها افتراضية. تقوم أنظمة XLM-R التي تنتهي باستعادة المعلمات من أنظمة خط الأساس ، لذلك يجب أن تتطابق بنياتها. يمكننا أيضًا استخدام بنية أكبر أخرى لنظام خط الأساس ، لكننا نحتاج إلى إعطاء نفس الهندسة المعمارية الأساسية لنظام XLM-R أيضًا. تحقق من هذا الملف للحصول على بنيات إضافية تنفذ الاندماج القائم على الانتباه.
- يحفظ نقاط التفتيش في الأساس _nmt_checkpoints_dir .
4.2 تقييم نظام NMT الأساسي
- تقييم نظام خط الأساس مع هذا البرنامج النصي.
- نحن بحاجة إلى تقييم ملف اختبار BPED مع أفضل نقطة تفتيش. استخدم- Remove-BPE = SentencePiece لإزالة تجزئة BPE من ملف الإخراج.
- استخدم إما INGN NLP أو MOSES لكشف ملف الإخراج كما هو موضح في البرنامج النصي.
- يحسب هذا البرنامج النصي درجات Bleu النهائية باستخدام Sacrebleu باستخدام ملف الاختبار الذي لم يمسه اللغة المستهدفة.
5.
5.1 تدريب نظام NMT الذي ينص على XLM-R
- قم بتدريب أنظمة XLM-R التي تم تنصحها باستخدام هذا البرنامج النصي الذي سيستخدم النظام في هذا الموقع.
- يقوم Bert_Name بتخزين المسار إلى متغير XLM-R المستخدم مع هذا النظام. يمكننا استخدام المتغيرات التي تم تدريبها مسبقًا أو متدربًا هنا.
- يقوم هذا البرنامج النصي بنسخ أفضل نقطة تفتيش من نظام خط الأساس ويعيد المعلمات لمزيد من التدريب مع نظام XLM-R.
- تم بناء هذا النظام على إصدار سابق من FairSeq والذي لم يوفر التوقف المبكر ، لذلك يحفظ هذا البرنامج النصي جميع نقاط التفتيش ل -خطوات التدريب على تحديث الفاصلة ، والتي يتم تقييمها بعد ذلك لاحقًا.
- للانتباه في كل من جانب التشفير و decoder ، استخدم- ARCH as transformer_s2_iwslt_de_en ، بينما بالنسبة للانصهار فقط ، استخدم Transformer_iwslt_de_en .
- تأكد من استخدام معدل التعلم الصغير ، حيث أن المعلمات تقترب بالفعل من المستويات المثلى.
5.2 تقييم نظام NMT الذي ينوب XLM-R
- قم بتقييم أنظمة XLM-R التي تنويها مع هذا البرنامج النصي ، وهو مشابه للنص المستخدم في نظام خط الأساس.
- يستخدم هذا البرنامج النصي نقطة تفتيش معينة لحساب درجة Bleu ، بينما يمتد برنامج نصي آخر لحساب الدرجات لجميع نقاط التفتيش.
- كما تم ذكره من قبل ، لا توجد ميزة توقف مبكرة مع هذا النظام. لذلك ، أنقذنا جميع نقاط التفتيش كل عدد قليل من الحقائب وتقييمها بمجموعة التحقق من الصحة. بعد ذلك ، يمكن تعيين أفضل نقطة تفتيش باستخدام Best_CheckPoint في البرنامج النصي السابق لتقييم مجموعة الاختبار.
- يستخدم المسارات إلى ملفين اختبار مختلفان يتم استخدامهما بواسطة مكونات مختلفة من أنظمة NMT XLM-R. يشير Test_SRC_BPED إلى الملف الذي يستخدمه NMT-ENCODER القياسي ، بينما يشير Test_SRC_RAW إلى ملف مصدر RAW الذي يستخدمه مكون XLM-R. هناك حاجة إلى ملف RAW بواسطة XLM-R لأنه يستخدم الرمز المميز الداخلي الخاص به باستخدام الرمز المميز الذي توفره مكتبة Huggingface Transformers. تأكد من أن Bert_Name يشير إلى دليل XLM-R المتغير المقابل ، بحيث يمكنه الوصول إلى الرمز المميز المقابل.
6
6.1 المتغيرات متعددة اللغات وحيدة
- قمنا بتكوين نماذج XLM-R لإنشاء المتغيرات متعددة اللغات وحيدة النماذج من النماذج الأصلية التي تم تدريبها مسبقًا.
- Indo-Aryan-XLM-R-Base هو البديل متعدد اللغات ، والذي تم إنشاؤه بواسطة قاعدة XLM-R Finetuning مع اللغات ذات الصلة-الهندية ، غوجاراتي ، ماراثي ، والبنغالية. إنه يستغل أوجه التشابه النحوية والمورفولوجية والهجائية والمعجمية.
- Gujarati-xlm-r-base و gujarati-xlm-r-large هما المتغيرات أحادية اللغة مع مجموعة بيانات غوجاراتية واحدة. علاوة على ذلك ، يتم إنشاء Gujarati-Dev-XLM-R-base مع لغة غوجاراتية تم تحويلها إلى نص Devanagari. تم إصدار هذه النماذج في Huggingface Hub المتوفرة هنا.
- استخدمنا متغيرات Pytorch من XLM-R المتاحة هنا كنماذج تم تدريبها مسبقًا.
6.2 إعداد البيانات
- لقد اتبعنا هذا البرنامج التعليمي في المقام الأول ، وهو ما نشجعك على زيارته قبل المتابعة بعد ذلك.
- استخدم هذا البرنامج النصي لإعداد البيانات. إنه يعد ملفات التدريب والتحقق من صحة مجموعة بيانات أحادية اللغة يتم تعيين مسارها باستخدام RAW_MONO_SOURCE . بعد ذلك ، يتم معالجتها مسبقًا باستخدام مكتبة INTER NLP ، كما حدث في ملفات التدريب أعلاه.
- في هذا البرنامج النصي ، يشير Bert_Name إلى نموذج XLM-R الأصلي الذي يتم استخدامه للوصول إلى قاموسه.
- بعد ذلك ، يتم تنقيحه باستخدام متغير آخر من مكتبة Fairseq المتاحة هنا. يستخدم Tokenizer XLM-R ، والذي يضمن أن بياناتنا رمزية بنفس الطريقة التي تم بها إجراء البيانات الأصلية لتدريب XLM-R.
- (اختياري) إذا كنت ترغب في فني أي نموذج لغة مقنعة أخرى ، فأنت بحاجة إلى استيراد نموذج اللغة هذا في هذا الملف. قم بإجراء التغييرات التالية:
- استيراد الرمز المميز المقابل بدلاً من XLMrobertatokenizer الافتراضي لدينا
from transformers import XLMRobertaTokenizer
BertTokenizer = XLMRobertaTokenizer
- استبدل اسم النموذج هنا
dict = BertTokenizer.from_pretrained("xlm-roberta-base")
- استبدل الرموز المميزة للبدء والنهاية مماثلة للاقتراح في المعالجة المسبقة.
- وبالمثل ، قم بإعداد البيانات للغات الأخرى إذا كنت ترغب في إنشاء نموذج متعدد اللغات.
6.3 تدريب وتقييم النموذج
- استخدم هذا البرنامج النصي لتحفيز المتغير أحادي اللغة.
- يستخدم نفس نظام NMT الأساسي الذي يتم استخدامه في الخطوة 4.1 لتحديد النموذج. هنا ، يشير Restore_point إلى نقطة تفتيش النموذج التي تم تدريبها مسبقًا. استخدم - -TASK كـ Masked_LM للبديل أحادي اللغة.
- Similalrly ، استخدم هذا البرنامج النصي لإنشاء البديل متعدد اللغات. يستخدم المهام كما multilingual_masked_lm الذي يدمج البيانات من لغات مختلفة.
- كما أنه يعيد ترتيبها لتقليل تأثير خلل البيانات حيث تغلبت مجموعات البيانات الكبيرة على مجموعات أصغر. استخدم- multilang-sampling-alpha لضبط نسبة أخذ العينات. انظر ورقة XLM-R الأصلية [1] للحصول على التفاصيل.
- لقد أنقذنا نقاط التفتيش على فترات منتظمة واخترنا النموذج مع الحد الأدنى لخسارة التحقق من الصحة.
6.4 جعل نقطة تفتيش Pytorch متوافقة مع محولات Huggingface
- نحتاج إلى تحويل نقطة تفتيش Pytorch المحفوظة إلى إصدار مختلف متوافق مع مكتبة Huggingface Transformers.
- نحن نفترض أنك قمت بتثبيت مكتبة Transformers في دليل الحزم. ثم ، استخدم الأمر التالي.
python packages/transformers/src/transformers/convert_roberta_original_pytorch_checkpoint_to_pytorch.py --roberta_checkpoint_path best_ck_dir/ --pytorch_dump_folder_path ./
- هنا ، يحتوي Best_CK_DIR على نقطة تفتيش XLM-R المسمى على أنها Model.pt و Dict.txt و SentencePiece.bpe.model . الملفان الأخيران متماثلان لكل من النماذج التي تم تدريبها مسبقًا وذاتها ، والتي يمكن الوصول إليها هنا. يشير Pytorch_dump_folder_path إلى الدليل حيث يجب حفظ إصدار Pytorch المتوافق مع المحولات.
- لاحظ أن مكتبة Transformers واجهت بعض المشكلات مع الملف convert_roberta_original_pytorch_checkpoint_to_pytorch.py ، الذي إصلاحه وإضافته إلى دليل UTILS. استبدل هذا الملف وإعادة بناء المكتبة.
- (اختياري) يمكننا استخدام أدلة HuggingFace مباشرة إلى Finetune النموذج دون استخدام مكتبة Fairseq أولاً. لقد وجدنا هذا النهج بطيئًا للغاية بسبب ضعف دعم GPU المتعدد المقدم من Luggingface. قاموا بتنفيذ MultiTreading على المعالجة المتعددة مما يسبب استخدام GPU غير متوازن. قام Fairseq بتنفيذ الوحدة النمطية الخاصة بهم للتعامل مع هذا ، والذي تمت مناقشته هنا.
- بعد Finetuning ، ما عليك سوى استخدام إصدار Pytorch النهائي لاستبدال النماذج الأصلية التي تم تدريبها مسبقًا للتدريب وتقييم أنظمة XLM-R التي تم تخفيفها.
7. تحويل النص
- استخدمنا بعض استراتيجيات تحويل البرنامج النصي ، حيث حاولنا استغلال أوجه التشابه المعجمية بين اللغات ذات الصلة باستخدام برنامج نصي مشترك. استخدمنا مكتبة INTER NLP لتحويلها.
- نظرًا لأن نظام XLM-R الذي يتوافق مع جمل الإدخال نفسها في XLM-R ، وكذلك ، NMT-Encoder ، جربنا مجموعات مختلفة من البرامج النصية لهذه الوحدات. على سبيل المثال ، بالنسبة لزوج غوجاراتي-هيندي ، مررنا جملات نصية غوجاراتية إلى وحدة XLM-R ، ولكن غوجاراتي في البرنامج النصي Devanagari إلى NMT-Encoder لزيادة التداخل المعجمي مع اللغة المستهدفة.
- الجمل في البرامج النصية المختلفة لها نفس المعنى الدلالي ، لذلك كان الانصهار القائم على انتباههم ممكنًا. تحقق من الأطروحة لمزيد من التفاصيل.
- يمكن استخدام هذه الوظيفة مع نظام XLM-R الذي تم إنتاجه عن طريق تغيير الملفات المصدر ليكون ثنائيًا لـ XLM-R. يمكن القيام به باستخدام هذا البرنامج النصي ، الذي يحول هذه الملفات إلى البرنامج النصي الهدف.
- وبالمثل ، يمكن استخدام البرنامج النصي لتحويل البرنامج النصي للملفات المصدر ليتم نقله إلى XLM-R ، وكذلك NMT-Encoder القياسي.
- بعد ذلك ، قم بتدريب أنظمة NMT الأساسية وأنظمة XLM-R كما كان من قبل باستخدام البرامج النصية للتدريب الأولية.
- تقييم هذه الأنظمة كما كان قبل استخدام البرامج النصية للتقييم الأولية. إذا تم تحويل اللغة المستهدفة إلى البرنامج النصي للغة المصدر ، فيجب تحويلها إلى البرنامج النصي الأولي كخطوة لما بعد المعالجة. يمكن القيام بذلك عن طريق استخدام البرامج النصية للتقييم الموجودة في دليل البرامج النصية "البرامج النصية" للأنظمة الأساسية و XLM-R-dused.
8. تحليل النحوية
يرجى التعرف على عمل [3] ، الذي يتوفر رمزه هنا. يمتد عملنا لتتبع نقل المعرفة النحوية في أنظمة XLM-R.
8.1 إعداد البيانات
- معالجة مجموعة بيانات التبعيات العالمية (UD)
- استخدمنا مجموعة بيانات UD الهندية [5] [6] للتحليل النحوي.
- استخدم هذا البرنامج النصي لمعالجة ملفات القطار والاختبار الخام. سوف يستخرج الرأس النحوي والعلاقات النحوية المقابلة من ملفات UD.
- ثم ، استخدم هذا البرنامج النصي لتحويل الملفات أعلاه إلى تنسيق JSON باستخدام التعليمات هنا.
- أخيرًا ، استخرج الجمل الخام من الملفات أعلاه باستخدام هذا البرنامج النصي.
- معالجة ملفات المصدر لاستدلال فيرسيك
- استخدم الملفات أعلاه مع جمل RAW كملفات اختبار المصدر. نقوم بتقييم أفضل نقاط تفتيش النظام الأساسي ونظام XLM-R مع هذه الملفات.
- المعالجة المسبقة لهذه الملفات كما هو مذكور في الخطوة 3 (المعالجة المسبقة) وإعداد الملفات ذات الأضوان إلى FairSeq. نظرًا لأننا لا نملك أي بيانات جانبية مستهدفة هنا ، فإننا نستخدم البرنامج النصي قبل المعالجة المسبقة لمعالجة الملفات الجانبية المصدر فقط.
8.2 استخراج خرائط الانتباه من الأنظمة الأساسية وأنظمة XLM-R التي تنصح
- استخدم البيانات الثنائية المذكورة أعلاه لاستخراج خرائط الانتباه من نظام XLM-R الذي يتوافق مع البرنامج النصي للتقييم. وبالمثل ، استخدم هذا البرنامج النصي لاستخراج الخرائط من نظام خط الأساس.
- تستخدم هذه البرامج النصية نظامين مختلفين تم إنشاؤهما عبر نظام NMT الأساسي ونظام NMT الذي ينقذ XLM-R ، والذي يمكن الوصول إليه هنا وهنا ، على التوالي.
- تستخلص هذه الأنظمة من خرائط الاهتمام الذاتي لجميع رؤوس الاهتمام الموجودة في جميع طبقات تشفير المحولات. علاوة على ذلك ، فإن النظام الذي تم بناؤه عبر XLM-R يخرج أيضًا من خرائط الاهتمام Bert الناتجة عن الانصهار القائم على الانتباه لتمثيلات XLM-R وتمثيل NMT-Encoder.
- استخدم المعلمة الإضافية -save_attn_maps لإعطاء المسار لتوفير خرائط الانتباه. قم بإنشاء المجلدات - الذات ، و Bert ، و Batch_sentences بداخلها لتخزين الخرائط المعنية. تقوم Batch_sentences بتخزين الجمل المقابلة بالترتيب ، يتم استخراج خرائط الانتباه. يمكن استخدام هذا الملف للتحقق من ترتيب الجمل التي تمت معالجتها.
- سيتم حفظ هذه الخرائط في المصفوفات numpy حيث يحتوي ملف واحد على عدد الجمل مثل حجم الدُفعة.
- استخدم هذا البرنامج النصي لمزيد من معالجة خرائط الانتباه.
- ينشئ كائنات المخلل باستخدام خرائط الانتباه وملفات JSON.
- بعد ذلك ، يحول خرائط الانتباه لرموز مستوى BPE إلى مستوى الكلمة. تحقق من الأطروحة لمزيد من التفاصيل.
- لاختبار التعليمات البرمجية الخاصة بنا ، يمكنك استخدام ملفات المخلل الخاصة بنا لكل من الأنظمة الأساسية وأنظمة XLM-R المتوفرة هنا. قم بتنزيل واستخراج الملف المضغوط في هذا الموقع. ستعمل ملفات المخلل هذه مع البيانات الهندية التي تم تجهيزها مسبقًا موجودة بالفعل في الموقع المذكور.
8.3 تصور خرائط الانتباه ومصنف التحقيق القائم على الانتباه
- تشغيل دفتر التحليل النحوي المتاح هنا. Point Train_Path و Dev_Path إلى ملفات القطار واختبار المخلل أعلاه. هنا ، فإن ملفات DEV واختبارنا هي نفسها ، لأننا لا نستخدم أي مقياس فرطمي.
- تم استخدام الأوزان التي تم الحصول عليها من أنظمة خط الأساس وأنظمة XLM-R لتحديد الرأس النحوي الصحيح في طبقات مختلفة ورؤوس الانتباه.
- لديها بعض الأمثلة النوعية حيث تم التنبؤ بنجاح الرأس النحوي.
- أخيرًا ، يعطي درجة UAS النهائية عن طريق التدريب وتقييم مصنف التحقيق القائم على الانتباه. يتطلب الأمر مزيجًا مرجحًا من أوزان الاهتمام الذاتي التي قدمتها جميع الطبقات ورؤوس الانتباه لإعطاء مقياس شامل للمعرفة النحوية.
9. معلومات إضافية
- التراخيص: يرجى ملاحظة أن عملنا مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. لكننا نستخدم بعض الأعمال الأخرى ومجموعات البيانات التي لها تراخيص خاصة بها. على وجه التحديد ، جميع الأنظمة التي تستند إلى مكتبة فيرسيك لديها تراخيص المقابلة الخاصة بها في الدلائل الخاصة بها. علاوة على ذلك ، يرجى التحقق من التراخيص الخاصة بمجموعة البيانات الموازية لـ English-Hindi IIT Bombay ومجموعة بيانات Hindi Universal التبعية باستخدام الروابط المحددة في ملف README. وبالمثل ، تحقق من ترخيص مكتبة Huggingface Transformers ، حيث قمنا بتعديل أحد ملفاتها كما هو مذكور في ReadMe.
- إثارة مشكلة إذا كنت بحاجة إلى أي مساعدة. إذا وجدت هذا العمل مفيدًا ، فلا تتردد في استخدامه ويرجى الاستشهاد بأطروحتي أيضًا.
10. المراجع
[1] كونو ، ألكسيس ، وآخرون. "التمثيل عبر اللغات غير الخاضع للرقابة التعلم على نطاق واسع." Arxiv preprint Arxiv: 1911.02116 (2019)
[2] تشو ، جينهوا ، وآخرون. "دمج بيرت في الترجمة الآلية العصبية." المؤتمر الدولي حول تمثيلات التعلم. 2019
[3] Clark ، K. ، Khandelwal ، U. ، Levy ، O. ، & Manning ، CD (2019 ، August). ماذا ينظر بيرت؟ تحليل انتباه بيرت. في وقائع ورشة عمل ACL لعام 2019 BlackBoxNLP: تحليل وتفسير الشبكات العصبية لـ NLP (ص 276-286).
[4] Anoop Kunchukuttan ، Pratik Mehta ، Pushpak Bhattacharyya. IIT Bombay English-Hindi Corpus. موارد اللغة ومؤتمر التقييم. 2018.
[5] رياز أحمد بهات ، راجيش بهات ، أناهيتا فارودي ، بريسكوت كلاسن ، بهوفانا ناراسيمهان ، مارثا بالمر ، أوين رامبو ، ديبتي ميسرا شارما ، آشويني فايديا ، سري راماجوروميورثي فيشنو. مشروع Hindi/Urdu TreeBank. في كتيب التعليقات التوضيحية اللغوية (التي حررها نانسي إيدي وجيمس بوستجوفسكي) ، مطبعة سبرينغر. 2015.
[6] مارثا بالمر ، راجيش بهات ، بهوفانا ناراسيمهان ، أوين رامبو ، ديبتي ميسرا شارما ، فاي شيا. بناء الجملة الهندية: توضيح التبعية ، هيكل الأثرية المعجمية ، وهيكل العبارة. في وقائع المؤتمر الدولي السابع حول معالجة اللغة الطبيعية ، ICON-2009 ، حيدر أباد ، الهند ، 14-17 ديسمبر 2009.