ecom.tech تقارن بين التدريب التطوري لنموذج Qwen3-4B وكل من SFT وGRPO في توليد اختبارات Kotlin

جرّبت ecom.tech أسلوبًا غير تقليدي لضبط Qwen3-4B-Instruct على توليد اختبارات الوحدة (unit tests) بلغة Kotlin، إذ استخدمت Evolution Strategies بدلًا من SFT وGRPO الكلاسيكيين. وعلى مجموعة بيانات من 1500 مثال، حقق الأسلوب أعلى reward، ورفع CodeBLEU بنسبة 21,3% وCoverage بنسبة 18,6%. لكن هذا التحسن جاء بثمن: فقد أصبح أداء النموذج أضعف في مهام الاستدلال العامة.

معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
ecom.tech تقارن بين التدريب التطوري لنموذج Qwen3-4B وكل من SFT وGRPO في توليد اختبارات Kotlin
المصدر: Habr AI. كولاج: Hamidun News.
استمع للمقال

اختبر فريق ecom.tech ما إذا كان بالإمكان دفع نموذج صغير، هو Qwen3-4B-Instruct، إلى كتابة اختبارات وحدة مفيدة لخدمة خلفية (backend) مكتوبة بلغة Kotlin، لا عبر SFT المعتاد، بل عبر خوارزمية تطورية هي Evolution Strategies. جاءت النتيجة العملية قوية: ففي مهمة توليد الاختبارات تفوّق هذا النهج على كل من supervised fine-tuning وGRPO من حيث الـ reward النهائي والـ coverage. لكن الباحثين لاحظوا في المقابل الوجه الآخر للتخصص: فكلما ازداد تكييف النموذج مع المهمة الضيقة، فقد جزءًا أكبر من قدراته العامة.

كان دافع التجربة عمليًا بحتًا. ففي خدمة توليد الشيفرة داخل الشركة، واجه الفريق مشكلة شائعة: يُنتج الـ LLM أولًا شيفرة تعمل، ثم يكتب لها اختبارات تبدو معقولة لكنها لا تلتزم بالأعراف الداخلية، ولا تتحقق دائمًا من منطق الأعمال المهم فعلًا. ولتقييم إمكانية معالجة ذلك بإعادة التدريب، جمع الباحثون مجموعة بيانات من 1500 مثال: 1300 للتدريب و200 للاختبار. كان النموذج يتلقى في المدخلات الصنف المراد اختباره مع السياق الكامل المحيط به، الذي جمعه وكيل (agent) قائم على qwen-code، وعليه أن يولّد في المخرجات ملفًا جاهزًا من اختبارات الوحدة.

استُخدم مقياسان للتقييم. الأول هو Coverage، لكن لا بمعناه المعتاد المتمثل في تغطية الأسطر، بل بوصفه functional coverage: أي مدى وصول الاختبار المولَّد إلى الوظائف العامة نفسها التي يغطيها الاختبار المرجعي. والثاني هو CodeBLEU، وهو مقياس لا ينظر إلى تطابق الرموز (tokens) فحسب، بل إلى البنية النحوية وتدفق البيانات في الشيفرة. ولأن CodeBLEU القياسي لا يدعم Kotlin، اضطر الفريق إلى إضافة هذا الدعم بنفسه عبر tree-sitter-kotlin ومجموعة خاصة من الكلمات المفتاحية. وجاءت دالة الـ reward بسيطة: وزن 0,6 لـ CodeBLEU و0,4 لـ Coverage، لمراعاة شكل الشيفرة وفائدتها العملية في آن واحد.

وفي هذه التجربة، قامت فكرة Evolution Strategies على ما يلي: بدلًا من تحديث الأوزان بالتدرجات (gradients)، أُخذت نحو 30 نسخة مضطربة من النموذج الأساسي بإضافة ضوضاء غاوسية إلى الأوزان، ثم طُلب من كل نسخة توليد إجابة في وضع حتمي (deterministic)، وقُيّمت الإجابة بالـ reward. بعد ذلك أُزيحت الأوزان الأساسية نحو التغييرات التي أعطت أفضل نتيجة. ويسهل توزيع هذا النهج على عدة وحدات معالجة، ولا يتطلب تخزين تدرجات ثقيلة، ويرى المؤلفون أنه أقل عرضة لـ reward hacking.

واعتمد الفريق على المشروع المفتوح Evolution Strategies at Scale مع تسريع عبر vLLM، ودرّب النموذج على عنقود من 8 وحدات H100. ونظرًا إلى كلفة المرور على مجموعة البيانات كاملة في كل تكرار، أُدخل التجميع الدفعي (batching): إذ اختير عشوائيًا 32 مثالًا في كل مرة.

أظهرت التجربة تحسنًا ملحوظًا منذ 500 تكرار. وبنهاية التدريب ارتفع CodeBLEU بنسبة 21,3% مقارنة بالنموذج الأساسي، وارتفع Coverage بنسبة 18,6%. وسجّل أفضل نموذج من ES قيمة coverage بلغت 0,7381 وأعلى reward نهائي؛ وبحسب المقاييس المختارة، تفوّق لا على SFT وGRPO فحسب، بل حتى على نموذج Qwen3-Coder-480B الأكبر حجمًا. وكانت صورة الأساليب المنافسة لافتة: أنتج SFT اختبارات سليمة نحويًا، لكنها أخفقت في إصابة المنطق المطلوب، أما GRPO فتراجع في هذا الإعداد على كلا المقياسين. وبالنسبة إلى مهمة هندسية ضيقة، يبدو الاستنتاج مباشرًا: يمكن أن يكون التدريب التطوري أداة عملية فعلًا، حتى مع نموذج صغير نسبيًا.

لكن بعد ذلك جاء الجزء الأقل إرضاءً. ففي ضوء الأبحاث الحديثة عن catastrophic forgetting، فحص الفريق على حدة ما يحدث للمعرفة العامة لدى النموذج بعد التدريب. ولهذا مُرّرت نسخة ES من Qwen3-4B-Instruct على GPQA، وهو اختبار علمي صعب. وبلغ متوسط الانخفاض في الدقة (accuracy) 2,1% في zero-shot و5,3% في five-shot chain-of-thought. وتراجعت بوضوح خاص القدرة على الاستفادة من التلميحات السياقية: إذ انخفضت الفائدة من أمثلة few-shot بنسبة 41–72%. وتتفق الفرضية مع ما تُظهره أبحاث أخرى: يُدخل ES تغييرات كثيفة على جميع أوزان النموذج تقريبًا، فيحل المهمة المستهدفة بصورة أفضل، لكنه يبتعد أكثر عن حالته الأساسية وينسى جزءًا من مهاراته السابقة.

ما معنى ذلك عمليًا؟ لا تبدو Evolution Strategies بديلًا شاملًا لـ RL، بل أداة قوية متخصصة للشركات التي يهمها أكثر استخلاص أقصى أداء محلي من النموذج لخط معالجة (pipeline) بعينه. فإذا توافرت دالة reward واضحة وموارد حوسبة كافية، وكان التنازل في القدرات العامة مقبولًا، يمكن لـ ES أن يحقق مكسبًا ملموسًا منذ الآن. لكنه تذكير أيضًا لفرق المنتجات: تحسين الجودة في مهمة واحدة ليس مجانيًا، وستدور المنافسة لاحقًا لا حول مقاييس جديدة فحسب، بل حول طرق تدريب النماذج دون فقدان مرونتها الأساسية.

القصة
ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
ما رأيك؟
جارٍ تحميل التعليقات…