تحسين أداء نموذج اللغة من خلال المفردات الذكية
تم تصميم هذا المشروع لاستكشاف استخدام المعالجة المسبقة لمجموعة المليار كلمة مع تسميات أجزاء الكلام والكيانات المسماة من أجل إنشاء مفردات "أكثر ذكاءً". باستخدام هذه التقنيات، من الممكن الحصول على درجات حيرة أفضل من استخدام الكلمات ذات التصنيف N الأعلى في المجموعة وحدها.
للحصول على شرح كامل للمعالجة وتأثيرها على درجات الحيرة التي يمكن الحصول عليها، راجع تحسين أداء نموذج اللغة باستخدام مفردات أكثر ذكاءً.
يتضمن المشروع نصوصًا لـ
المشروع مصمم للاستخدام في المكان ولا يوجد تركيب نقاط له. ما عليك سوى تنزيل المصدر من GitHub، وتعيين خيارات التكوين، وتشغيل البرامج النصية المرقمة بالترتيب. لاحظ أن هذا الكود مصمم للباحث لذا توقع أن تحتاج إلى مراجعة الكود في البرامج النصية التي يتم تشغيلها وتعديل الخيارات حسب الحاجة للحصول على نتائج محددة.
تكون البرامج النصية للدليل الرئيسي مسبوقة برقم للإشارة إلى ترتيب تشغيلها. معظم البرامج النصية في الدليل الرئيسي عبارة عن سلسلة قصيرة نسبيًا من استدعاءات وظائف المكتبة المرتبطة. قبل تشغيل كل برنامج نصي، تأكد من فتحه وتعيين أي من معلمات التكوين للحصول على النتائج التي تريدها.
يتم تعيين خيارات التكوين العامة التي تستخدمها البرامج النصية المتعددة في ./configs/config.py. تأكد من الدخول إلى هذا الملف وتعديل المسارات إلى بياناتك قبل تشغيل أي من البرامج النصية أدناه.
00_StanfordCoreNLPServer.py : يبدأ محلل Stanford Core NLP باستخدام ملف التكوين ./configs/snlp_server.py. يتم حظر البرنامج النصي أثناء تشغيل الخادم. إذا كنت تفضل ذلك، يمكن بدء تشغيل الخادم يدويًا. هذا البرنامج النصي هو للراحة فقط.
10_ExtractUniqueSents.py : يستخرج الجمل الفريدة من مجموعة المليار كلمة قبل التحليل. توجد بالقرب من أعلى الملف بعض الإرشادات حول كيفية تنزيل المجموعة الأولية وإعدادها.
12_STParseBWCorpus.py : تشغيل جميع الجمل الفريدة من خلال محلل ستانفورد. لاحظ أن هذه الخطوة تستغرق وقتًا طويلاً (ربما يومًا كاملاً) وتستفيد كثيرًا من المعالج متعدد النواة. راجع الملاحظات الموجودة في الملف حول أوقات التشغيل.
14_RemoveDuplicates.py : هل يمر ثانية عبر البيانات لإزالة الجمل المكررة التي تحدث بعد التحليل/التطبيع.
20_CreateEnglishDictionary.py : مطلوب لإنشاء المفردات الذكية.
22_CreateVocab.py : يقوم هذا البرنامج بإنشاء أنواع مختلفة من المفردات. توجد كتلة if/elif كبيرة في الملف ليتمكن المستخدم من اختيار نوع المفردات المراد إنشاؤه.
24_IndexVocab.py : يقوم بإنشاء بيانات المجموعة المفهرسة المستخدمة لتدريب نموذج اللغة. مرة أخرى، هناك كتلة if/elif كبيرة هنا والتي يجب على المستخدم تعيينها لتحديد نوع المفردات المراد استخدامه.
30_TrainBasicLM.py : يقوم بإعداد وتشغيل تدريب النموذج. مرة أخرى، توجد مجموعة من البيانات هنا تسمح للمستخدم باختيار المفردات التي يتدرب عليها. بالإضافة إلى ذلك، يحتاج المستخدم إلى اختيار الملف باستخدام معلمات تكوين النموذج. يتم تخزين معلمات تكوين النموذج في دليل التكوين تحت أسماء ملفات مثل L1_2048_512.py.
32_TestPerplexity : يقوم بإجراء اختبار الحيرة على النموذج المدرب. اختر النموذج الذي تريد اختباره في أسفل البرنامج النصي.
34_NextWordPrediction.py : يسمح للمستخدم بإدخال الجزء الأول من الجملة واستدعاء النموذج للتنبؤ بالكلمة التالية. قم بتكوين النموذج الذي سيتم استخدامه في الجزء الرئيسي من البرنامج النصي.
تم تعديل أجزاء من الكود من مجموعة أدوات نموذج اللغة بجامعة سارلاند. انظر TF-NNLM-TK.
كان هذا الكود يعتمد جزئيًا على نموذج نموذج TensorflowPTB-LM.