باختصار
pass@k (النجاح في k محاولات) مقياس لجودة الكود اللي بيولّده نموذج لغوي: بيقولك احتمال إن واحد على الأقل من k أكواد مولّدة يعدّي كل اختبارات الوحدة.
بالتفصيل
حسب مسرد Google، النماذج اللغوية كتير بتتعثّر في مسائل البرمجة المعقّدة، فالمهندسين بيطلبوا منها كذا حلّ (k حلول) لنفس المسألة، ويختبروا كل حلّ. لو حلّ واحد أو أكتر نجح، يبقى النموذج «نجح» في المسألة. ولو مفيش ولا حلّ، يبقى «فشل».
المعادلة: pass@k = عدد المسائل اللي نجح فيها ÷ إجمالي المسائل. وبشكل عام، كل ما k زاد، النتيجة بتعلى، لكن ده بيحتاج حوسبة واختبارات أكتر.
وهنا فيه نقطة مهمّة جدًا مع الوكلاء: pass@k بيقيس «هل يقدر؟» مش «هل هيعمل كل مرّة؟». اختبار ThinkingBox من Microsoft بيفرّق بين تلات أرقام: pass@1 (نسبة نجاح المحاولة الواحدة، يعني «عادةً بيعمل إيه؟»)، وpass@20 (المهام اللي نجح فيها ولو مرّة في 20 محاولة، يعني «هل يقدر أصلًا؟»)، و«20 من 20» (المهام اللي نجح فيها كل المرّات، يعني «هل دايمًا صح؟»). ولقوا إن نماذج كتير بتحتفظ بنسبة صغيرة جدًا من نجاحها لما تطلب منها النجاح كل مرّة.
مثال عملي
من مثال المسرد: طلبت من نموذج k=10 حلول لـ50 مسألة برمجة صعبة. في 30 مسألة كان فيه حلّ واحد على الأقل صحيح، وفي 20 مفيش. يبقى pass@10 = 30 ÷ 50 = 0.6. لكن لو هتشغّل النموذج ده في منتج حقيقي ومش هتقدر تختبر 10 حلول كل مرّة، الرقم اللي يهمّك أكتر هو pass@1.
مصطلحات مرتبطة
- Benchmark — اختبار قياس الأداء.
- Unit Test — اختبار الوحدة.
- Rejection Sampling Fine-Tuning — الضبط الدقيق بأخذ العيّنات والرفض.
المصادر: Google ML Glossary، Hugging Face — ThinkingBox — 2026-10-03


