إطار عمل تدريب GPT خفيف الوزن، تدريب نموذج لغوي صغير بمعلمات 26 مليون بالكامل من الصفر في ساعتين
MiniMind - إطار عمل تدريب GPT خفيف الوزن للغاية
نظرة عامة على المشروع
MiniMind هو إطار عمل تدريب نماذج لغوية كبيرة خفيف الوزن للغاية، حيث يبلغ حجم أصغر إصدار منه 1/7000 فقط من حجم GPT-3، ويمكن تدريبه بسرعة على وحدات معالجة الرسومات الشخصية العادية. يمكن لهذا المشروع تدريب نموذج GPT صغير المعلمات بـ 26 مليون معلمة بالكامل من الصفر في غضون ساعتين.
الميزات الأساسية
🚀 تصميم خفيف الوزن للغاية
- عدد قليل جدًا من المعلمات: يتطلب أصغر نموذج 26 مليون معلمة (0.02 مليار) فقط لتحقيق قدرات محادثة سلسة
- تدريب فعال: يدعم التدريب الكامل في غضون ساعتين على بطاقة رسومات 3090 واحدة
- صديق للموارد: يمكن تشغيله على وحدات معالجة الرسومات الشخصية العادية، مما يقلل بشكل كبير من عتبة التدريب
🧠 نظام بيئي تدريبي كامل
يفتح المشروع بنية مبسطة للنماذج الكبيرة، بما في ذلك الوظائف الأساسية التالية:
- التدريب المسبق (Pretraining) - تدريب نموذج لغوي أساسي من الصفر
- الضبط الدقيق الخاضع للإشراف (SFT) - الضبط الدقيق الموجه بأوامر خاضعة للإشراف
- الضبط الدقيق LoRA - تقنية الضبط الدقيق للتكيف منخفض الرتبة
- خوارزمية DPO - خوارزمية التحسين المباشر للتفضيل
- تقطير النموذج - خوارزمية تقطير المعرفة
- توسيع MoE - دعم نموذج الخبراء المختلطين
🎯 البنية التقنية
دعم الإطار
- PyTorch الأصلي: مبني على إطار PyTorch الأصلي، يدعم تسريع وحدات معالجة الرسومات المتعددة
- توافق قوي: متوافق مع الأطر السائدة مثل transformers و accelerate و trl و peft
- نشر مرن: يدعم إعدادات التدريب على وحدة معالجة رسومات واحدة ومتعددة (DDP، DeepSpeed)
ميزات التدريب
- استئناف التدريب: يدعم عملية التدريب التوقف والاستئناف في أي وقت
- التدريب متعدد البطاقات: يدعم التدريب الموزع DDP، ويمكن توسيعه إلى مجموعات متعددة الآلات ومتعددة البطاقات
- تكامل المراقبة: يدعم تسجيل وتصور عملية التدريب wandb
🌟 توسيع متعدد الوسائط
إصدار MiniMind-V المرئي متعدد الوسائط
- الفهم البصري: تم التوسع إلى VLM متعدد الوسائط المرئية: MiniMind-V
- بنية موحدة: استنادًا إلى نموذج اللغة MiniMind كأساس، تتم إضافة قدرات الترميز المرئي
📊 قدرات النموذج
يمكن لـ MiniMind تنفيذ مهام متعددة، بما في ذلك إنشاء النصوص والتفاعل الحواري واسترجاع المعرفة. يمكنه إنشاء نصوص بناءً على المطالبات أو السياقات المحددة، وإجراء تفاعلات حوارية، واسترجاع المعرفة حول مواضيع مختلفة.
الوظائف الرئيسية
- إنشاء النصوص: إنشاء محتوى نصي متماسك بناءً على المطالبات
- التفاعل الحواري: يدعم الحوارات متعددة الأدوار والأسئلة والأجوبة
- استرجاع المعرفة: لديه قدرة معينة على الإجابة على أسئلة المعرفة
- فهم التعليمات البرمجية: يدعم إنشاء وفهم التعليمات البرمجية الأساسية
🎓 القيمة التعليمية
يهدف هذا المشروع إلى تقليل عتبة تعلم LLM، بحيث يمكن للجميع تدريب نموذج لغوي صغير جدًا بدءًا من فهم كل سطر من التعليمات البرمجية. يتبنى المشروع مفهوم "بناء طائرة باستخدام مكعبات البناء"، مما يسمح للمستخدمين بفهم التنفيذ الأساسي لـ LLM بعمق، بدلاً من عزله بواسطة التغليف المتقدم.
💻 طريقة الاستخدام
متطلبات البيئة
- PyTorch 2.1.2+
- CUDA 12.2+
- Flash Attention 2
- RTX 3090 أو وحدة معالجة رسومات ذات أداء أعلى (موصى بها)
بداية سريعة
# استنساخ المشروع
git clone https://github.com/jingyaogong/minimind.git
cd minimind
# تثبيت التبعيات
pip install -r requirements.txt
# تدريب وحدة معالجة رسومات واحدة
python train.py
# تدريب وحدات معالجة رسومات متعددة (N>1)
torchrun --nproc_per_node N train.py
تكوين التدريب
# تمكين مراقبة wandb
wandb login
python train.py --use_wandb
# تحديد اسم المشروع
python train.py --wandb_project "my_minimind" --wandb_run_name "experiment_1"
🔄 عملية التدريب
- إعداد البيانات: تنظيف البيانات ومعالجتها المسبقة
- التدريب المسبق: إجراء تدريب غير خاضع للإشراف على بيانات نصية واسعة النطاق
- الضبط الدقيق للأوامر: إجراء ضبط دقيق خاضع للإشراف باستخدام بيانات الأوامر
- تحسين التفضيل: تحسين تفضيلات إخراج النموذج من خلال خوارزمية DPO
- تقييم النموذج: اختبار الأداء على مجموعات بيانات قياسية مثل Ceval
📈 أداء الأداء
- سرعة التدريب: تم الاختبار على RTX 3090 GPU، باستخدام Torch 2.1.2 و CUDA 12.2 و Flash Attention 2
- جودة المحادثة: يمكن تحقيق محادثة سلسة بـ 26 مليون معلمة
- استهلاك الموارد: يشغل ذاكرة فيديو منخفضة، ومناسب للمطورين الأفراد
🌍 النظام البيئي للمجتمع
- مفتوح المصدر ومجاني: مفتوح المصدر بالكامل، وجميع التعليمات البرمجية للخوارزمية الأساسية متاحة للجمهور
- وثائق كاملة: يوفر وثائق مفصلة باللغتين الصينية والإنجليزية
- تحديث مستمر: مجتمع تطوير نشط، وتكرار مستمر للميزات
- صديق للتعليم: مناسب للاستخدام في التعلم والتدريس
🔗 المشاريع ذات الصلة
- المشروع الرئيسي: minimind
- الإصدار متعدد الوسائط: minimind-v
- إصدار MoE: minimind-v1-moe
ملخص
MiniMind هو إطار عمل تدريب LLM خفيف الوزن للغاية، وهو يثبت أنه يمكن تدريب نماذج لغوية ذات قدرات محادثة عملية في ظل موارد حسابية محدودة. لا يوفر هذا المشروع سلسلة أدوات تدريب كاملة فحسب، بل الأهم من ذلك أنه يوفر منصة ممتازة لمتعلمي وباحثي الذكاء الاصطناعي لفهم الآليات الداخلية لـ LLM. من خلال مفهوم "البدء من الصفر وفهم كل سطر من التعليمات البرمجية"، تعمل MiniMind على إضفاء الطابع الديمقراطي على تقنية الذكاء الاصطناعي، مما يسمح لمزيد من الأشخاص بالمشاركة في تطوير وبحث النماذج الكبيرة.