المستوى: متوسط
لو بتغيّر system prompt في تطبيق AI وبتختبره يدويًا على 4–5 أمثلة قبل الديبلوي، ده مش اختبار. ده تخمين بأسلوب علمي مزيّف. Evals هي اللي بتحوّل التخمين لرقم مقاس بتقدر تدافع عنه قدام مدير منتج أو فريق.
Evals: الفرق بين «الـ prompt حلو» و«الـ prompt accuracy 87%»
المشكلة باختصار
كل تعديل بتعمله على prompt، أو تغيير في الموديل من Sonnet لـ Opus، أو حتى رفع درجة الحرارة من 0 لـ 0.3، بيأثر على مخرجاتك بطرق مش متوقعة. لو ما عندكش طريقة منهجية تقيس الفرق، أنت بتنشر تغييرات بناءً على شعور. ده شغّال لما تطبيقك قاعدة 100 مستخدم. لما يبقى 10 آلاف، أي regression بيكلّفك دولارات وسمعة.
المثال البسيط: امتحان الرخصة
تخيّل إنك بتعلّم 50 شخص قيادة. كل اللي عندك إنك تحطهم ورا العجلة وتقول "أنا حاسس إنه مستعد". ده مش معيار. لما تيجي هيئة الترخيص، بيعملوا اختبار ثابت: 12 سؤال نظري + اختبار عملي بمسار محدد + درجة قطع 70%. النتيجة: رقم. كل شخص داخل بيمشي بنفس المسطرة، ومحدش بيعدّي بسبب «الفايب».
Evals لتطبيق AI بنفس الفكرة بالظبط. بدل ما تختبر prompt على ما يخطر ببالك، بتبني test set ثابت من أمثلة (مدخل + إجابة متوقعة)، وكل تغيير بيمر على نفس الست. النتيجة: رقم بتقدر تقارن بيه قبل وبعد. لو الرقم نزل بعد تعديل، التعديل سيء حتى لو حسّيته أحسن.
Evals: التعريف العلمي
الـ Eval هو اختبار مؤتمت بيقيس جودة مخرج نموذج لغوي على مجموعة معروفة من المدخلات بمعيار محدد سلفًا. بيتركّب من 3 مكوّنات أساسية:
- Test set: قائمة حالات (input، expected_output أو grading_criteria). بيتبني يدويًا أو من logs الإنتاج.
- Runner: السكربت اللي بيشغّل النموذج على كل حالة ويجمع المخرجات.
- Grader: اللي بيحكم. ممكن exact match، regex، similarity، أو LLM-as-judge.
المخرج النهائي: نسبة نجاح (accuracy)، أو متوسط درجة (mean score)، أو توزيع زي pass@k. الفكرة إن الرقم ده reproducible — لو شغّلت نفس الست مرتين على نفس الـ prompt بـ temperature=0، بتجيب نفس النتيجة تقريبًا.
أنواع Graders — اختر بناءً على المهمة
- Exact match أو Regex: لو المخرج المتوقع رقم، JSON بـ schema ثابت، أو enum محدود (yes/no، billing/technical/general). أرخص وأسرع، لكن بيفشل في النصوص المفتوحة.
- String similarity (BLEU، ROUGE، embedding similarity): للترجمة والتلخيص. بيقيس التشابه الشكلي، ضعيف في تقييم المحتوى الفعلي.
- LLM-as-judge: نموذج تاني بيقيّم المخرج. مرن جدًا لكن بيكلّف، وبيتأثر بـ position bias (بيفضّل أول إجابة في المقارنات) و verbosity bias (بيفضّل الإجابات الطويلة).
- Human eval: المرجع الذهبي. غالي وبطيء، استخدمه للقياس النهائي قبل ديبلوي كبير أو للمعايرة.