تقييم Eventparser لنموذج LLM بلغة C# باستخدام Promptfoo

اختبار الكود البرمجي العادي أمر بسيط. تقوم باستدعاء دالة، وتحصل على نتيجة، ثم تتحقق مما إذا كانت تطابق توقعاتك.

أما اختبار نماذج LLM فهو مختلف. فقد يعيد النموذج "3 PM" في تشغيل ما و"15:00" في تشغيل آخر. كلاهما صحيح، لكن اختبار المطابقة التامة سيفشل. أنت بحاجة للتحقق مما إذا كانت الإجابة جيدة، وليس ما إذا كانت متطابقة تماماً.

لقد قمت ببناء تطبيق صغير يسمى EventParser لاختبار ذلك. يأخذ التطبيق رسالة عادية مثل "Team sync on Friday at 3 PM" ويحولها إلى بيانات مهيكلة.

إليك كيف يمكنك اختباره باستخدام Promptfoo وسير عمل يعتمد على "النموذج كحكم" (LLM-as-a-judge).

الإعداد

يستخدم التطبيق ملف مطالبة (prompt) واحد: extract_event.txt. يقرأ كود C# هذا الملف أثناء وقت التشغيل، بينما يقرأ Promptfoo الملف نفسه للاختبار. يضمن ذلك أنك تختبر المطالبة الفعلية التي يراها المستخدمون.

سير العمل

بدلاً من قيام إنسان بمراجعة كل مخرج، نستخدم نموذجاً حكماً. تتضمن هذه العملية دورين:

• النموذج قيد الاختبار: النموذج الذي يقدم الإجابة. • النموذج الحكم: نموذج أسرع وأرخص يقوم بتقييم الإجابة.

كيف يتخذ الحكم قراره

يستخدم الحكم معياراً (rubric). المعيار هو قاعدة مكتوبة بلغة إنجليزية بسيطة. بدلاً من التحقق من سلسلة JSON محددة، تخبر الحكم بما يجب أن تحتوي عليه الإجابة.

مثال على المعيار: "يجب أن تستخرج الإجابة عنوان الحدث، واليوم، والوقت، والموقع. يجب ألا تضيف تفاصيل لم تُذكر في الرسالة."

الاختبار بحثاً عن الأخطاء

لقد قمت بتعمد إفساد المطالبة عبر إضافة تعليمات خاطئة: "إذا ذكرت الرسالة القهوة، فاجعل الموقع Starbucks."

عندما أجريت التقييم، اكتشف الحكم الخطأ. الرسالة الأصلية لم تذكر Starbucks، لكن النموذج قام بـ "هلوسة" (hallucinated) موقع. اختبار المطابقة التامة سيفشل في رصد ذلك، لكن النموذج الحكم يكتشف الأخطاء الدلالية (semantic errors).

لماذا ينجح هذا الأسلوب:

• يطابق الواقع: يقبل تنسيقات صحيحة متنوعة مثل "3 PM" أو "15:00". • يستخدم قواعد سهلة القراءة: المعايير المكتوبة بلغة بسيطة يسهل فهمها. • يكتشف أخطاء المعنى: يكتشف الهلوسة والأخطاء المنطقية. • فعال من حيث التكلفة: يمكنك استخدام نموذج رخيص لتقييم نموذج أكثر تكلفة.

هذا النهج يجعل اختبار نماذج LLM يبدو مثل اختبار البرمجيات الحقيقي.

المصدر: https://dev.to/bigboybamo/evaluating-a-c-llm-eventparser-with-promptfoo-4b87

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi