GPT "المحول المسبق قبل التدريب" هو الإصدار الأول من سلسلة GPT من النماذج ، التي أحدثت ثورة في معالجة اللغة الطبيعية مع قدرات نمذجة اللغة التلقائية المبنية على بنية المحولات.
هذا المشروع هو تطبيق لنموذج GPT (المحول المسبق قبل التدريب) من نقطة الصفر باستخدام TensorFlow. ويشمل جميع مكونات النموذج ، مثل التضمين الموضعي ، وآلية الانتباه ، وطبقات التغذية ، والمزيد.
ملاحظة مهمة: الهدف من هذا المشروع هو توفير فهم عميق لهندسة GPT وأعماله الداخلية. لذلك ، هو أساسا للأغراض التعليمية. يمكنك فهم البنية وآلية العمل لهذا النموذج هنا تمامًا ، واستخدام المكونات التي قمت بتطبيقها في مشاريعك. بشكل عام ، إذا كنت ترغب في استخدام المشروع لتدريب نموذج لغتك بالبيانات الكبيرة ، فقد تحتاج إلى تعديل ملف مجموعة البيانات لتتمكن من معالجة البيانات الكبيرة بشكل أكثر كفاءة. لقد صممت ملف مجموعة البيانات بشكل أساسي للتعامل مع البيانات البسيطة ، وليس كبيرة ، لأنني لست في هذا الصدد الآن.
هناك عدة إصدارات من GPT. يركز هذا التنفيذ بشكل أساسي على تنفيذ "تحسين فهم اللغة من خلال التدريب قبل التدريب".
config.py : ملف التكوين للنموذج hyperparameters.decoder.py : فك تشفير GPT.positional_embeddings.py : توليد التضمين الموضعي.embeddings.py .attention.py .: آلية الاهتمام الذاتي.feed_forward.py : الشبكة العصبية التغذية.lr_schedule.py : جدولة معدل التعلم.utils.py : وظائف الأداة المساعدة للتدريب والاستدلال.loss_functions.py : وظائف الخسارة المخصصة.metrics.py : مقاييس التقييم المخصصة.streamer.py : دفق البيانات للتدريب الفعال.gpt_model.py : تنفيذ نموذج GPT الرئيسي.bpe_tokenizer.py : Tokenizer لـ BPE (ترميز زوج البايت) الرمز المميز.tokenizer.py : Tokenizer GPT المدربين مسبقًا.prepare_dataset.py : ملف نقوم من خلاله بإجراء بعض العمليات على مجموعة البيانات (إنشاء مجلد خاص لبيانات التحقق من الصحة).inferance.py : ملف ضروري لإنشاء جمل من النموذج بناءً على موجه الإدخال.tmp/ : دليل لتخزين نقاط التفتيش النموذج.demo/ : وثائق المشروع.tokenizer/ : دليل لتوفير الرمز المميز.dummy_data/ : دليل نضع فيه بعض البيانات لاختبار اللافتة. يمكن العثور على وثائق المشروع التفصيلية في demo/ الدليل. ويشمل تفسيرات لعمارة GPT ، وإجراءات التدريب ، وكيفية استخدام النموذج لمهام معالجة اللغة الطبيعية المختلفة.
استنساخ المستودع:
git clone https://github.com/AliHaiderAhmad001/GPT-from-Scratch-with-Tensorflow.git
cd GPT-from-Scratch-with-Tensorflowإنشاء بيئة افتراضية (اختياري ولكن موصى بها):
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivateتثبيت تبعيات المشروع:
pip install -r requirements.txtقم بتنزيل مجموعة البيانات وإعدادها: يمكنك الذهاب ومراجعة العرض التجريبي. يمكنك العمل على نفس مجموعة البيانات ، أو تغييرها أو ضبط تفضيلاتك. ومع ذلك ، يمكنك تنزيل مجموعة البيانات مباشرة من هنا. يمكنك أن تأخذ جزءًا منه للتحقق من الرمز التالي:
python prepare_dataset.py aclImdb/test aclImdb/valid --num_files_to_move 2500يتطلب محمل البيانات الذي أستخدمه مجموعة التحقق من الصحة في مجلد منفصل.
python bpe_tokenizer.py aclImdb --batch_size 1000 --vocab_size 50357 --save --save_fp tokenizer/adapted-tokenizerpython train.pypython train.py --resumepython inferance.py " input_text_prompt " --sampler " greedy " # For greedy samplingpython inferance.py " input_text_prompt " --sampler " beam " --beam_width 5 # For beam search sampling with a beam width of 5 هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.