كيفية قراءة معايير البرمجة بالذكاء الاصطناعي وتجنب اختيار الفائز على الورق
Markdownما الذي يقيسه HumanEval وSWE-bench، وكيفية مراعاة غلاف الوكيل والظروف وحداثة المهام والتباين والتكلفة عند قراءة تصنيفات البرمجة بالذكاء الاصطناعي.
قراءة المقال كاملًا
باختصار: رقم «يحل 76 بالمئة من المهام» لا يقول شيئًا تقريبًا بمفرده. المهم هو مجموعة المهام التي أنتجت هذا الرقم، والنموذج وغلاف الوكيل اللذان جرى تقييمهما معًا، وما إذا كانت المهام حديثة أم قديمة، ومقدار التكلفة. من دون هذه الشروط، تصلح النسبة لشعار إعلاني، لكنها لا تصلح لاختيار أداة.
سأشرح الآن بلغة بسيطة ما الذي يقيسه معيارا البرمجة الرئيسيان، وأين يكمن الفخ في الجداول، وكيف تتحقق من أي تصنيف في دقيقة قبل الاعتماد عليه. يناقش المقال تعريفات المعايير التاريخية. لا يعرض لقطة ترتيب حية مزدوجة؛ وتحتاج مقارنة درجات أو تكلفة حالية إلى جدول مرتبط وتاريخ وإعداد مستقلين.
اقرأ المزيد عن العمل مع النماذج في وثائق Ailoot.
ماذا تُظهر نسبة المعيار فعلًا؟
النقطة الأساسية
نسبة المعيار هي حصة المهام من مجموعة محددة التي أنجزتها أداة بنتيجة فعالة في ظل شروط محددة. تُفحص المهام باستخدام اختبارات آلية: إما أن يجتاز الرمز البرمجي الاختبار أو لا يجتازه؛ والتقييم موضوعي ولا وجود لحالة «إلى حد ما». لكن مجموعة المهام تظل دائمًا محدودة ومعروفة مسبقًا، وتختلف شروط القياس من أداة إلى أخرى. لذا تجيب النسبة عن السؤال: «كم مهمة من هذه المهام حلّت هذه الأداة بهذه الطريقة؟» ولا تجيب عن السؤال: «هل ستتعامل مع عملي؟»
يعمل المعيار ببساطة. توجد قائمة جاهزة بمهام برمجية. تُعطى الأداة كل مهمة، فترسل رمزًا برمجيًا، ثم يشغّل النظام اختبارات آلية للتحقق مما إذا كان الحل يعمل. وحصة المهام التي اجتازت الاختبارات هي النسبة الظاهرة في الجدول.
تكمن القوة هنا في موضوعية التقييم. فالاختبار إما ناجح أو فاشل؛ ولا يمنح أحد درجة «بالتخمين». ومن هذه الناحية، تكون المعايير أكثر صدقًا من أي مراجعات أو شهادات.
أما نقطة الضعف فهي الجانب نفسه تمامًا. مجموعة المهام محدودة ومعروفة مسبقًا للجميع، بمن فيهم من يدرّبون النماذج. ولكل قياس شروطه الخاصة. ومن شبه المؤكد أيضًا أن مهام المجموعة لا تشبه ما تفعله. وهذا ما يقود إلى جميع الفخاخ التي أناقشها أدناه. تصف النسبة سلوك أداة على قائمة مغلقة من المهام تخص جهة أخرى، ولا تنتقل مباشرةً إلى مشروعك.
ماذا يقيس HumanEval، ولماذا لم يعد بإمكانك الاختيار بناءً عليه؟
النقطة الأساسية
HumanEval مجموعة قديمة تضم 164 مهمة صغيرة بلغة Python: تُعطى النماذج وصفًا لدالة، فتكتب الرمز البرمجي، ثم تتحقق الاختبارات الآلية من المهمة. عندما نُشرت المجموعة عام 2021، حلّ أول Codex نسبة 28.8 بالمئة من المهام في محاولة واحدة. أما اليوم، فتنجز النماذج القوية معظمها، لذا لم يعد المعيار قادرًا على التمييز بينها. فضلًا عن ذلك، فالمهام مسائل تجريبية بسيطة: كتابة دالة واحدة انطلاقًا من وصف بعيد كل البعد عن العمل على مشروع كبير وقائم. في عام 2026، تكاد النتيجة المرتفعة في HumanEval لا تعني شيئًا.
أنشأت OpenAI معيار HumanEval ونشرته عام 2021 مع نموذج Codex. ويضم 164 مهمة صغيرة بلغة Python: تُعطى النماذج وصفًا نصيًا لدالة، فتكتب جسمها، ثم تتحقق مجموعة من الاختبارات الآلية مما إذا كانت تعمل على النحو الصحيح.
في ذلك الوقت، كان المعيار وسيلة جيدة للتمييز. ويذكر المؤلفون في ورقتهم هذه النتيجة: حلّ أول Codex نسبة 28.8 بالمئة من المهام في محاولة واحدة، في حين لم يحلّ GPT-3 العادي أيًّا منها.
في HumanEval، يحل نموذجنا 28.8 بالمئة من المسائل، بينما يحل GPT-3 نسبة 0 بالمئة وGPT-J نسبة 11.4 بالمئة.
منذ ذلك الحين، تطورت النماذج، واليوم تنجز النماذج القوية معظم مهام HumanEval. عندما يحصل الجميع على نتيجة تقارب 100 بالمئة، يتوقف الجدول عن إظهار أي فروق: فتضيع الفروق بين الأدوات. يُسمى هذا تشبّع المعيار، وقد ظل HumanEval في هذه الحالة مدة طويلة.
أما العيب الثاني فهو أخطر. المهام صغيرة جدًا: اكتب دالة واحدة انطلاقًا من وصف. يختلف العمل الفعلي عن ذلك؛ إذ يتضمن مشروعًا كبيرًا له تاريخ، تحتاج فيه إلى فهم شيفرة شخص آخر، والعثور على خلل، وتجنب إفساد الشيفرة المجاورة. توجد هوة بين «كتابة دالة من الصفر» و«إصلاح خطأ في مشروع قائم». لذلك، لم تعد النتيجة المرتفعة في HumanEval اليوم سببًا لاختيار أداة؛ بل هي أقرب إلى علامة تفيد بأن «الأساسيات متوفرة».
ماذا يقيس SWE-bench، وكيف يقترب أكثر من العمل الفعلي؟
النقطة الأساسية
بُني SWE-bench من عيوب فعلية في مشاريع GitHub شائعة: 2,294 مهمة من 12 مستودعًا بلغة Python. تُعطى الأداة وصفًا للمشكلة، ثم تعدّل الشيفرة، ويشغّل النظام الاختبارات التي فشلت قبل التغيير وينبغي أن تنجح بعد الإصلاح. وهذا أقرب كثيرًا إلى العمل الفعلي من HumanEval، ولهذا يُستخدم لمقارنة الأدوات الجادة. وتتضح صعوبته من تاريخه: لم يحل النهج البسيط الأول سوى أقل من اثنين بالمئة من المهام.
يختلف SWE-bench اختلافًا جوهريًا، ولذلك فهو أكثر إثارة للاهتمام. بُني من مشكلات وطلبات سحب فعلية في مشاريع GitHub شائعة. ووفقًا لمؤلفيه، يضم 2,294 مهمة من 12 مستودعًا كبيرًا بلغة Python، ونُشر في أكتوبر 2023.
منطق التقييم موضوعي. يأخذ القائمون نقطة في مشروع وقع فيها عيب فعلي ومجموعة اختبارات كانت تفشل حينها. تُعطى الأداة وصف المشكلة وتعدّل الشيفرة. ثم تُشغّل الاختبارات نفسها: فإذا أصبحت ناجحة، تكون المهمة قد حُلّت فعلًا؛ فلا يعتمد أحد هنا على الوعود الشفهية.
جمعنا 2,294 مهمة بمراجعة طلبات السحب والمشكلات في 12 مستودعًا شائعًا بلغة Python. تستند كل مهمة إلى طلب سحب مرتبط بمشكلة ويغيّر ملفًا واحدًا على الأقل متعلقًا بالاختبارات.
تُظهر الأرقام الأولية مدى صعوبة هذه المهام مقارنةً بالمسائل التجريبية البسيطة. لم يسجل نهج خط الأساس الأول سوى 1.96 بالمئة في SWE-bench، وسجل أول وكيل نسبة 12.47 بالمئة. بعبارة أخرى، كان الاقتراب من العمل البرمجي الفعلي صعبًا، ثم ارتفعت النسب لاحقًا، لكنها بدأت بالقرب من الصفر.
لذلك، عندما ترى اليوم أرقامًا كبيرة في تصنيف وكلاء البرمجة بالذكاء الاصطناعي، فإنها تأتي في الغالب من SWE-bench أو من مجموعته الفرعية التي تضم 500 مهمة تحقّق منها البشر، وتُسمى SWE-bench Verified. إنه معيار معقول، لكن له أيضًا شروطًا تصبح النسبة مضللة من دونها، وهذا ما سأناقشه بعد قليل.
حتى أصدق معيار في جدول لا يمثل بعدُ نتيجةً على مشروعك. تعتمد النتيجة على طريقة عملك مع الأداة، ولا يحدد السطر الأول في التصنيف إلا القليل. وللعمل الموثوق، المهم هو الجمع بين Clone الذكاء الاصطناعي وSecond Brain وهندسة السياق. يرفع السياق النظيف معدل نجاحك الشخصي بوضوح أكبر بكثير من اختيار نموذج من جدول.
لماذا يُظهر النموذج نفسه نسبًا مختلفة؟
النقطة الأساسية
لأن النتيجة تعتمد على أكثر من النموذج. يشارك في أي قياس ثلاثة عناصر على الأقل: النموذج نفسه، وغلاف الوكيل المحيط به، ومستوى الاستدلال المفعّل. قد ينتج تغيير إعداد الاستدلال صفوفًا مختلفة للنموذج والغلاف نفسيهما. دون اسم إطار التشغيل وإصداره وإعداداته ومصدر مؤرخ، لا تدعم الصفوف مقارنة رقمية. لذا عليك مقارنة التركيبات الكاملة؛ فعلامة النموذج التجارية وحدها لا تحدد الكثير.
هنا يكمن الخطأ الأكثر شيوعًا عند قراءة المعايير. يقرأ الناس الجدول بوصفه تصنيفًا للنماذج: هذا النموذج أذكى من ذاك بنسبة اثنين بالمئة. لكن هناك ثلاثة عوامل تؤثر في النسبة، والنموذج واحد منها فقط.
أولًا، النموذج نفسه. ثانيًا، غلاف الوكيل المحيط به: وهو برنامج يتيح للنموذج استكشاف الملفات وتشغيل الأوامر وقراءة الأخطاء وإعادة كتابة الشيفرة. سيُظهر النموذج نفسه نتائج مختلفة عند استخدام غلاف ذكي وغلاف بسيط، لأن الغلاف يحدد طريقة عمل النموذج على المشروع. ثالثًا، مستوى الاستدلال، أي مدى تعمق النموذج في التفكير في كل خطوة. كلما طال تفكيره، ارتفعت النسبة عادةً، وازدادت التكلفة.
ينبغي أن تحفظ مقارنة قابلة لإعادة الإنتاج الإعداد كاملًا. استخدم التالي قالب تقرير، وليس ترتيبًا مقاسًا:
| الحقل | التشغيل A | التشغيل B |
|---|---|---|
| النموذج وإصداره الدقيق | سجّل الإصدار المختبر | الإصدار نفسه للمقارنة المضبوطة |
| إطار الوكيل وإصداره | سجّل المستودع وcommit | الإطار وcommit نفسيهما |
| مجموعة المهام والتقييم | سجّل المجموعة الفرعية وإصدار التقييم | المهام والتقييم نفسيهما |
| إعداد الاستدلال | سجّل الإعداد A | سجّل الإعداد B |
| النتيجة والدليل | العدد المحلول والمقام والسجلات والتاريخ | العدد المحلول والمقام والسجلات والتاريخ |
يبين ذلك ما تغير وهل عزلت المقارنة إعداد الاستدلال فعلًا. لا يُعامل المثال الرقمي السابق بلا رابط كنتيجة مقاسة.
القاعدة هي: يذكر التصنيف الجيد دائمًا النموذج والغلاف ومستوى الاستدلال المستخدم. إذا لم يتضمن الجدول سوى اسم النموذج ونسبة مئوية من دون تحديد الغلاف، فمن الصعب الوثوق به: فأنت لا تعرف ما الذي جرى قياسه فعلًا. يشرح المقال عن تصنيف وكلاء البرمجة بالذكاء الاصطناعي بمزيد من التفصيل مكونات تركيبة «النموذج مع الغلاف».
وهذا يفسر أيضًا سبب تعثر أداة صاحبة أعلى نتيجة أحيانًا في التعامل مع عملك. يقيس المعيار نموذجًا داخل غلاف صقله شخص آخر، وعلى مهام تخص شخصًا آخر. يختلف غلافك ومشروعك والسياق الذي تقدمه للنموذج. وفي مشروعك، تعتمد النتيجة على السياق؛ أما صف الجدول فثانوي.
لماذا «تنتهي صلاحية» المهام، وما تسرّب بيانات التدريب؟
النقطة الأساسية
تُدرَّب النماذج على كميات هائلة من النصوص والشيفرات من الإنترنت، والمعايير الشائعة متاحة للعامة. إذا دخلت المهام وحلولها ضمن بيانات التدريب، فقد يكون النموذج قد حفظها، ثم يكتفي بإعادة ما حفظه أثناء التقييم بدلًا من حلها. يُسمى هذا تسرّب المهام إلى بيانات التدريب. وكلما كانت المجموعة أقدم وأكثر شهرة، زاد الخطر: فمن المرجح أن يُظهر المعيار القديم ذاكرة النموذج أكثر من قدرته على الاستدلال. مجموعات المهام الحديثة والمغلقة أكثر موثوقية من المجموعات القديمة والعامة.
إليك الفخ الذي لا يظهر في الرقم نفسه لكنه يقوّضه أكثر من أي شيء آخر. تُدرّب النماذج على كميات هائلة من النصوص والشيفرات التي جُمعت من الإنترنت. وجميع معايير البرمجة تقريبًا متاحة للعامة: المهام والاختبارات والحلول المرجعية.
الآلية بسيطة. إذا دخلت مهمة وحلها الصحيح ضمن بيانات التدريب، فقد يكون النموذج قد حفظهما. وعند التقييم، لا يحل المهمة بقدر ما يسترجع إجابة مألوفة من ذاكرته. يبدو الأمر كأنه حل، لكنه مجرد تذكّر. يُسمى هذا تسرّب التدريب أو تلوّث البيانات.
كلما كانت مجموعة المهام أقدم وأكثر شيوعًا، زاد الخطر. HumanEval متاح على الإنترنت منذ 2021؛ وأُعيدت كتابة مهامه وتحليلها وأُدرجت مرات كثيرة في مجموعات بيانات لا حصر لها. ومن الغريب أن نتوقع أن نموذجًا حديثًا لم «يرها» من قبل. لهذا تُعد حداثة المهام مؤشر جودة مستقلًا للمعيار. فالمجموعة الجيدة إما أن تُحدَّث بانتظام، أو أن تُبقي بعض المهام مغلقة حتى لا يمكن تعلمها مسبقًا.
ماذا عليك أن تفعل عند قراءة التصنيف؟ تحقق من تاريخ المهام وما إذا كانت المجموعة تُحدَّث. يستحق المعيار المبني على عيوب حديثة من الأشهر القليلة الماضية ثقة أكبر. أما إذا كان يستخدم مجموعة عمرها خمس سنوات، فالنسبة المرتفعة تعكس ذاكرة النموذج الجيدة أكثر مما تعكس قدرته على حل مهمتك الجديدة. يظهر هذا الأثر تحديدًا بمثال عملي في المقال عن معيار FrontierCode الحديث، الذي أُعدّت مهامه لتكون جديدة عمدًا.
لماذا لا تعني الفروق بين نقطة ونقطتين مئويتين شيئًا في كثير من الأحيان؟
النقطة الأساسية
للمعايير تباين: يعطي تشغيل الأداة نفسها على المهام نفسها نتائج مختلفة قليلًا في كل مرة، لأن النموذج لا يجيب بالطريقة نفسها دائمًا. لذلك، غالبًا ما يضيع الفرق بين صفين متجاورين في التصنيف، إذا كان نقطة أو نقطتين، وسط الضوضاء ولا يدل على تفوق حقيقي. افحص السعر أيضًا بشكل منفصل: فقد تتشابه النسب بينما تختلف التكلفة أضعافًا. قارن التكلفة فقط عند تحديد الإعدادين كاملين ونسب النجاح وافتراضات الفوترة ومقام مقياس التكلفة.
ثمة عامل آخر يجعل المركز الأول في الجدول مضللًا: فالنموذج لا يجيب بالطريقة نفسها في كل مرة. وقد يسلك مسار استدلال مختلفًا قليلًا عند استخدام الموجّه نفسه. لذلك، إذا شغّلت الأداة نفسها عدة مرات على مجموعة المهام نفسها، فستتذبذب النسبة قليلًا من تشغيل إلى آخر، ويُسمى هذا التذبذب تباينًا.
الخلاصة العملية بسيطة. عندما يختلف صفان في التصنيف بنسبة نقطة أو نقطتين، فقد يكون الفرق مجرد ضوضاء. ومن الحماقة ملاحقة أداة «أعلى بنسبة اثنين بالمئة»، إذ يمكن أن يتبادل الصفان موقعيهما بسهولة في التشغيل التالي. يستحق الفرق اعتبارًا ذا دلالة عندما يكون ملحوظًا ويستمر على مجموعة كبيرة من المهام؛ أما بضع نقاط فلا تحقق هذا الشرط.
والعامل الأخير، وهو أهم من النسبة نفسها في معظم الأحيان، هو السعر. قد تكلف النتائج المتشابهة مبالغ مختلفة جدًا. تحتاج مقارنة التكلفة إلى تكويني النموذج وإطار التشغيل، وإجمالي الإنفاق على مجموعة المهام المقيمة، بما فيها المحاولات الفاشلة. اقسم على المهام المجربة لتكلفة المحاولة أو المحلولة لتكلفة المهمة المحلولة، وسم المقام المستخدم. لا يقدم المقال قياس تكلفة مزدوجًا مسندًا. لذا اقرأ دائمًا صف التصنيف مع سعره، لأن النسبة وحدها لا تعني الكثير. يشرح المقال عن تكلفة المهمة المحلولة الواحدة كيفية مقارنة الأدوات من حيث التكلفة بعدل.
كيف تقرأ أي جدول للمعايير في دقيقة؟
النقطة الأساسية
قبل الاعتماد على تصنيف، اطرح عليه سبعة أسئلة: ما مجموعة المهام؟ هل المهام حديثة أم قديمة؟ ما النموذج؟ ما غلاف الوكيل؟ ما مستوى الاستدلال؟ ما تكلفة المهمة الواحدة؟ وما حجم التباين؟ إذا لم يجب الجدول عن نصف هذه الأسئلة على الأقل، فلا يمكنك الوثوق به؛ فمن المرجح أنه إعلان. وتحقق بشكل منفصل مما إذا كانت مهام المجموعة تشبه عملك الفعلي، لأن النسبة الصادقة على مهام تخص شخصًا آخر لا تنتقل إلى مشروعك.
دعني أختصر كل ذلك في قائمة تحقق قصيرة. افتح أي جدول تصنيف وراجع هذه النقاط السبع بالترتيب.
- ما مجموعة المهام؟ لم يعد HumanEval قويًا اليوم؛ أما SWE-bench فهو أقرب إلى العمل الفعلي. إذا لم تُسمَّ المجموعة إطلاقًا، فلا داعي لمتابعة القراءة.
- هل المهام حديثة أم قديمة؟ المجموعة الحديثة أو المغلقة جزئيًا أكثر موثوقية من مجموعة قديمة وعامة ربما تعلّمها النموذج.
- ما النموذج الذي جرى تقييمه؟ الاسم والإصدار المحددان، لا عبارة مبهمة مثل «ذكاء اصطناعي» أو اسم عائلة نماذج.
- ما غلاف الوكيل؟ النسبة تخص تركيبة «النموذج مع الغلاف». إذا لم يُذكر الغلاف، فلن تعرف ما الذي جرى قياسه.
- ما مستوى الاستدلال؟ يعطي النموذج نفسه نسبًا وتكاليف مختلفة عند مستويات مختلفة.
- ما تكلفة المهمة؟ قد تختلف الأسعار أضعافًا رغم تشابه النتائج. اقرأ النسبة مع التكلفة.
- ما مقدار التباين؟ غالبًا ما يكون الفرق بين الصفوف، إذا كان نقطة أو نقطتين، مجرد ضوضاء.
وهناك سؤال ثامن يخصك أنت: هل تشبه مهام المجموعة عملك؟ لا يقول معيار لمهام Python الكثير لمن يبني موقعًا إلكترونيًا أو روبوتًا باستخدام مجموعة أدوات مختلفة. وحتى النتيجة الصادقة على مهام تخص شخصًا آخر لا تضمن نتيجة لمشروعك. لا توجد سوى طريقة واحدة موثوقة للتحقق: شغّل بعض مهامك المعتادة على الأداة واطّلع على النتيجة بنفسك. يشرح المقال عن كيفية التحقق من الشيفرة التي ينشئها الذكاء الاصطناعي كيف تتأكد من أن الشيفرة تعمل إذا لم تكن مبرمجًا.
إذن، ما الذي ينبغي أن تنظر إليه في النهاية؟
النقطة الأساسية
انظر إلى الشروط وراء السطر الأول، لا إلى السطر الأول وحده: مجموعة المهام ومدى حداثتها، وتركيبة «النموذج مع الغلاف»، ومستوى الاستدلال، وتكلفة المهمة، ومقدار التباين. الرقم المجرد من هذه الشروط لا يثبت شيئًا. وتذكّر أن النسبة الصادقة على مهام تخص شخصًا آخر لا تنتقل إلى مشروعك: الكلمة الفصل دائمًا للاختبار بمهامك الفعلية، وتعتمد نتيجتك فيها على طريقة عملك مع الأداة أكثر من اعتمادها على ترتيبها في التصنيف.
الفكرة الرئيسية للمقال كله قصيرة: الترتيب في التصنيف سبب يدعوك إلى إلقاء نظرة أقرب على أداة، لكن عليك أن تبحث بنفسك بعد ذلك. فالرقم الكبير لا يقول سوى إن الأداة أدت أداءً جيدًا على قائمة مغلقة محددة من المهام في ظل شروط محددة. ولا تُظهر النسبة ما إذا كانت تلك الشروط تناسبك.
لذا اقرأ ما هو وارد أسفل صف التصنيف: ما المهام، ومدى حداثتها، وتركيبة النموذج والغلاف، ومستوى الاستدلال، والتكلفة، وما إذا كان الفرق يضيع وسط الضوضاء. الجدول الذي لا يجيب عن هذه الأسئلة مكانه لافتة إعلانية. وتشرح المراجعة أي أداة تستخدم للبرمجة في 2026 الأداة التي ينبغي اختيارها لمهامك أساسًا.
وهذا ما يهم أكثر من أي معيار. حتى أفضل أداة في التصنيف تتعثر مع السياق الفوضوي وتعمل جيدًا مع السياق النظيف. يعتمد معدل نجاحك الشخصي على ما تقدمه للنموذج وكيف تصوغ المهمة؛ أما صف الجدول فثانوي. يساعد التصنيف على استبعاد الخيارات الضعيفة بوضوح، لكنك أنت من يحقق النتيجة.
المصادر
- HumanEval - dataset openai/openai_humaneval (huggingface.co) - مجموعة من 164 مهمة بلغة Python، تُفحص باستخدام اختبارات آلية
يساعد الترتيب في التصنيف على استبعاد الخيارات الضعيفة، لكن النتائج في مشروعك تعتمد على المنهج: Clone الذكاء الاصطناعي مع Second Brain مع هندسة السياق.
للمتابعة، تفضل بزيارة Ailoot.
المزيد من التفاصيل
أسئلة شائعة
ماذا أسجل قبل مقارنة صفين في معيار؟
سجّل النموذج الدقيق وإطار الوكيل وإصداره وإعدادات الاستدلال ومجموعة المهام وطريقة التقييم والتاريخ والمصدر المباشر للنتيجة. دونها، لا يمكن إسناد فرق الدرجة إلى إعداد واحد تغير.
هل تكلفة المهمة المجربة هي تكلفة المهمة المحلولة؟
لا. اقسم إنفاق التقييم الكامل على كل المهام المجربة للأولى أو على المهام المحلولة للثانية. أدرج إنفاق المحاولات الفاشلة وحدد المقام قبل مقارنة الأسعار.