انتقل إلى المحتوى

شروحات

درّب نموذجًا بـ 350 مليون معامل على مخرجات JSON منضبطة باستخدام GRPO

دليل عملي متوسط المستوى يشرح كيف رفع تدريب تعزيزي من 100 خطوة فقط التزام نموذج صغير بمخططات JSON من 18% إلى 31.9%، على بطاقة مجانية بذاكرة 16 جيجابايت.

درّب نموذجًا بـ 350 مليون معامل على مخرجات JSON منضبطة باستخدام GRPO

المستوى: متوسط — تحتاج معرفة أساسية ببايثون ومكتبة Transformers. وقت التنفيذ: ساعة تقريبًا على بطاقة مجانية.

المشكلة مألوفة لأي حد بنى تطبيقًا فوق نموذج صغير: تطلب منه JSON مطابقًا لمخطط محدد، فيرجّع نصًا شبه صحيح أو يضيف شرحًا خارج الأقواس. الدرس ده — المنشور على مدونة Hugging Face — يوضح إن تدريبًا تعزيزيًا قصيرًا يقدر يقلّص الفجوة دي.

الخطوات

1. اختر النموذج الأساس. الدرس يستخدم LiquidAI/LFM2.5-350M، وهو نموذج بـ 350 مليون معامل بمعمارية هجينة تجمع الانتباه والالتفاف.

2. جهّز البيانات. مجموعة nvidia/Nemotron-RL-instruction_following-structured_outputs بنحو 500 عينة، مع توسيع: 40٪ من العينات تُضاف لها تعليمة بإرجاع المخرجات داخل كتلة كود مسوّرة، و 20٪ تُحوَّل إلى مهام مصفوفة في المستوى الأعلى لتدريب النموذج على القوائم المجردة.

3. اكتب دوال المكافأة. ثلاث دوال بأوزان 1.0 و 0.5 و 2.0 بالترتيب: الأولى تتحقق من قابلية التحليل والالتزام بالصيغة، والثانية تتحقق من عدد الحقول المتوقع بتناقص خطي، والثالثة تتحقق من مطابقة مخطط JSON مع عدّ القيود.

4. اضبط GRPO. إعدادات الدرس: معدل تعلم 5e-5، و 100 خطوة كحد أقصى، و 8 توليدات لكل مجموعة موجّهات، وحجم دفعة 4 لكل جهاز، و 8 خطوات تراكم تدرّج، وطول إكمال أقصى 1024 رمزًا، ودرجة حرارة 1.1، ومعامل عقوبة KL يساوي 0.01.

5. استخدم LoRA بدل التدريب الكامل. برتبة 16 وألفا 32 على الوحدات q_proj و k_proj و v_proj و out_proj و in_proj و w1 و w2 و w3. المدرَّب فعليًا نحو 6 ملايين معامل، أي 1.66٪ من النموذج.

6. شغّل وقيّم. التدريب يعمل على بطاقة مجانية بذاكرة 16 جيجابايت على Colab أو Kaggle، بعشر خطوات إحماء. التقييم في الدرس تم عبر llama.cpp.

النتائج

الالتزام الإجمالي ارتفع من 22.6٪ إلى 29.7٪. والقفزة الأكبر في JSON تحديدًا: من 18.0٪ إلى 31.9٪، وفي القوائم المجردة من 16.6٪ إلى 29.7٪. أما YAML فبقي شبه ثابت: من 27.2٪ إلى 27.5٪ — إشارة واضحة إلى أن دوال المكافأة كانت مصمّمة لـ JSON لا لـ YAML.

جرّب بنفسك

الدفتر الكامل متاح في مستودع Liquid4All/cookbook تحت مسار finetuning/notebooks، ومعيار IFStruct في مستودع Liquid4All/ifstruct. ابدأ بتشغيل الدفتر كما هو للتأكد من البيئة، ثم استبدل مجموعة البيانات بمخططاتك أنت — أهم تعديل هو كتابة دالة مكافأة تعكس المخطط الحقيقي في تطبيقك، لأن النموذج يتعلم ما تكافئه عليه بالضبط.

المصادر: Hugging Face — 2026-09-03