مكتبة الأوامر

نُشر في ٢٢ سبتمبر ٢٠٢٦

كيفية اختبار برومبت الذكاء الاصطناعي: منهج عملي متقدم من V1 إلى V2

لا يكفي أن يعطيك البرومبت نتيجة جيدة لمرة واحدة. تعلّم كيف تختبر الأوامر، تفحص مطابقة الـ Schema وصحة البيانات، وتطور النسخة V2 بطريقة منهجية قابلة للتكرار.

البرومبتاتStructured OutputJSON PromptingPrompt Testing
كيفية اختبار برومبت الذكاء الاصطناعي: منهج عملي متقدم من V1 إلى V2
محتويات المقال

كتابة Prompt احترافي ليست نهاية المطاف في هندسة الأوامر؛ بل هي نقطة البداية الحقيقية للاختبار والقياس. قد يمنحك البرومبت نتيجة ممتازة مع مثال واحد، ثم يتراجع أداؤه فور تغير المدخلات أو ظهور حالات غير متوقعة. لذلك، فإن السؤال الأهم ليس «هل أعطاني الذكاء الاصطناعي إجابة جيدة؟»، بل «هل يحافظ هذا البرومبت على السلوك المتوقع والدقة عبر مختلف حالات الاستخدام؟». من خلال هذا الدليل الشامل، سنأخذك في رحلة منهجية لتحويل اختبار الأوامر إلى عملية ذكية وقابلة للتكرار وفق الآتي: V1 ← تحديد معايير النجاح ← حالات الاختبار ← تحليل الأخطاء ← V2 ← إعادة الاختبار ← المقارنة.

ما هو اختبار البرومبت؟

يُعرف اختبار البرومبت بأنه عملية منهجية لتشغيل أمر ذكاء اصطناعي (Prompt) عبر مجموعة متنوعة من المدخلات تُعرف بـ (Test Dataset)، ومقارنة المخرجات الفعلية بمعايير نجاح موضوعية مسبقًا. الهدف الجوهري ليس الحصول على مخرج مذهل لمرة واحدة، بل ضمان أداء موثوق ومستقر يتعامل بكفاءة مع الحالات الطبيعية، المعقدة، والحدية على حد سواء.

الاعتماد على محادثة واحدة ناجحة لا يعد اختبارًا حقيقيًا. فالنتائج الفردية تعجز غالبًا عن كشف مشكلات الاتساق، أو الثغرات في التنسيق، أو العجز في الالتزام بالتعليمات عند إدخال بيانات جديدة أو مختلفة.

لماذا لا تكفي نتيجة واحدة جيدة؟

قد تُخفي المدخلات البسيطة عيوبًا خفية في تصميم التعليمات. فقد ينجح البرومبت مع النصوص القصيرة ويفشل مع الطويلة، أو يتصرف بشكل صحيح عند اكتمال البيانات وينهار عند غياب قيمة أساسية. علاوة على ذلك، فإن تعديل أي جزء لإصلاح خطأ معين قد يتسبب في كسر سلوك آخر سليم؛ ولهذا تصبح عملية تحسين الأوامر مرهونة بالاختبار التكراري الموثق لا بالانطباعات الشخصية العابرة.

منهج V1 → الاختبار → V2 لاختبار البرومبت

يمكنك التعامل مع هندسة الأوامر كدورة حياة تطوير برمجيات مصغرة. ابدأ بنسخة أولية (V1)، ضع معايير دقيقة للنجاح، ابنِ حزمة اختبار شاملة (Test Dataset)، نفّذ التشغيل وسجّل النتائج، ثم حلل الأخطاء الكامنة وراء الفشل لتصميم النسخة (V2) التي تعالج تلك الثغرات، وأخيرًا أعد تشغيل نفس الاختبارات لمقارنة الأداء بدقة.

V1 ← تحديد معايير النجاح ← بناء Test Dataset ← تشغيل الاختبارات ← تسجيل النتائج ← تحليل الأخطاء ← تطوير V2 ← إعادة الاختبار ← المقارنة النهائية

الخطوة 1: ابدأ بالنسخة V1

تجنب إضاعة الوقت في محاولة صياغة «البرومبت المثالي» قبل الشروع في أي اختبار. الهدف الأساسي من النسخة الأولى (V1) هو إرساء خط أساس مرجعي يمكن قياسه وتطويره. إذا أعدت كتابة البرومبت عشوائيًا دون توثيق الأداء، فلن تتمكن أبدًا من معرفة التعديل الحقيقي الذي جلب التحسن.

🟣 البرومبت
استخرج اسم المنتج، السعر، الفئة، وحالة التوفر من النص التالي.

هذا النموذج أولي وقابل للاستخدام، لكنه يعاني من ضبابية في المعايير؛ فهو لا يحدد طريقة التعامل مع الحقول المفقودة، أو معالجة المنتجات المتعددة، أو هيكل الإخراج المطلوب. (تعريف أساسي: حالة الاختبار (Test Case) هي سيناريو فردي يحتوي على مدخل وسلوك متوقع، بينما مجموعة الاختبار (Test Dataset) هي مجموعة منظمة وشاملة من حالات الاختبار).

الخطوة 2: حدّد شكل النتيجة الناجحة (معايير الجودة التقنية)

عند تقييم المخرجات، خصوصاً في البرومبتات المتقدمة أو عند التعامل مع المخرجات المهيكلة، يجب أن نميز بدقة بين معايير الجودة التقنية التالية:

المعيارالسؤال الذي نختبره
صحة الصيغة (Syntax)هل النص الناتج صالح برمجياً (مثل كود JSON خالي من الأخطاء الإملائية أو الأقواس الناقصة)؟
توافق الـ Schemaهل تلتزم المخرجات بالحقول والأنواع المحددة في المخطط البرمجي دون زيادة أو نقصان؟
الارتباط بالمصدر (Source-groundedness)هل المخرج مدعوم بالكامل من النص المدخل دون اختلاق أو هلوسة معلومات خارجية؟
الصحة الدلالية والواقعيةالدلالية (Semantic): هل يعكس المخرج المعنى المطلوب؟ الواقعية (Factual): هل المعلومات صحيحة وفق مصادر خارجية عند الحاجة؟
الاتساق (Consistency)هل يعطي البرومبت نتائج متقاربة عند تكرار التجربة تحت نفس بيئة العمل والتحكم في إعدادات النموذج؟

الخطوة 3: بناء Test Dataset لاختبار البرومبت

تختلف حالات الاختبار المناسبة باختلاف طبيعة المهمة، سواء كانت استخراج بيانات، أو تلخيصاً، أو تصنيفاً، أو توليد كود. لضمان تغطية شاملة، نبدأ عادة بخمس فئات أساسية من الحالات ضمن الـ Test Dataset:

فئة حالة الاختبارالغرض
حالة عادية (Normal)تمثل الاستخدام الشائع والمتوقع للبرومبت.
حالة بسيطة (Simple)تتحقق من أن البرومبت يتعامل مع الحد الأدنى من البيانات دون تعقيد.
حالة معقدة (Complex)تختبر أداء البرومبت عند وجود تفاصيل متشعبة أو متداخلة.
حالة حدية (Edge Case)تختبر مدخلات غير معتادة ولكنها ما تزال ضمن الحالات التي يجب أن يتعامل معها النظام.
حالة معرضة للفشل (Failure-prone)تستهدف عمداً نقاط ضعف معروفة أو ثغرات محتملة (مثل غياب حقل أساسي).

مثال عملي متماسك: استخراج معلومات المنتجات بـ JSON Schema

لنفترض أننا نطلب مخرجات مهيكلة تطابق المخطط البرمجي (JSON Schema) التالي: json { "type": "object", "properties": { "products": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": ["string", "null"] }, "category": { "type": ["string", "null"] }, "availability": { "type": ["string", "null"] } }, "required": ["name", "price", "category", "availability"], "additionalProperties": false } } }, "required": ["products"], "additionalProperties": false } (ملاحظة هامة: تم اختيار نوع string لحقل السعر والبيانات النصية بدلاً من number، لكي يتحمل النموذج رموز العملات مثل $699، أو النطاقات السعرية، أو القيم النصية المرنة عند اللزوم، بينما استخدام null عند غياب القيمة هو الخيار الأنظف دلالياً في Structured Outputs). سنطبق الآن حالات الاختبار الخمسة لتقييم النسخة V1:

الاختبارالمدخل في Test Datasetالسلوك المتوقع
T1 - عاديApple iPhone 15، فئة الهواتف الذكية، سعة 128GB، بسعر $699. متوفر الآن.استخراج الحقول الأربعة بدقة مطابقة للنص ودون تغيير الحقائق.
T2 - قيمة مفقودةApple iPhone 15، فئة الهواتف الذكية، سعة 128GB. متوفر حاليًا.إرجاع null لحقل السعر وعدم اختلاق أي سعر غير موجود.
T3 - منتجات متعددةiPhone 15 بسعر $699. Samsung Galaxy S25 بسعر $799.التعامل مع المنتجين وإرجاعهما كعنصرين منفصلين داخل مصفوفة products.
T4 - توفر غامضiPhone 15 مدرج حاليًا، لكن معلومات المخزون غير مؤكدة.إرجاع availability: null لعدم وجود تأكيد صريح لحالة التوفر.
T5 - إدخال غير مناسبللمزيد من المعلومات عن أحدث الهواتف، تواصل مع قسم المبيعات.عدم اختراع منتج أو تسعير غير موجود في المدخل.

الخطوة 4: تسجيل النتائج وتصنيف الأخطاء

بعد تشغيل V1، نسجل النتائج ونحدد أنواع الأخطاء بدقة. الجدول التالي يوضح مثالاً توضيحياً لنتائج V1 والخطأ المرصود في كل حالة:

الاختبارمثال على نتيجة V1 (توضيحي)الحالةنوع الخطأ الرئيسي
T1استخراج البيانات الأساسية بنجاحناجح
T2اختلق سعراً غير موجود في النصفاشلفقدان الارتباط بالمصدر (Source-groundedness)
T3دمج المنتجين في عنصر واحد وتجاهل الـ Schemaفاشلخطأ في هيكلة الـ Schema (Multiple Products)
T4فسر الغموض على أنه متاح مؤكداًفاشلخطأ دلالي (Semantic error)
T5اخترع منتجاً وهمياً من نص المبيعاتفاشلهلوسة وخروج عن السياق

الخطوة 5: تطوير النسخة V2 وعلاج الأسباب الجذرية

بناءً على الأخطاء المرصودة، نقوم بتعديل الأوامر لاستهداف السبب الجذري بدلاً من الاعتماد على توجيهات فضفاضة مثل «كن دقيقاً». إليك صياغة النسخة المحسنة (V2):

🟣 البرومبت
استخرج اسم المنتج، السعر، الفئة، وحالة التوفر من النص المقدم حصرياً بصيغة JSON تطابق الـ Schema المحددة بدقة.

القواعد الصارمة:
- استخدم فقط المعلومات المذكورة صراحة في الإدخال (Source-groundedness).
- إذا كانت أي قيمة مفقودة أو غير مؤكدة، ضع القيمة null تماماً ولا تخمن شيئاً.
- في حال وجود عدة منتجات، أنشئ عنصراً مستقلاً لكل منتج داخل مصفوفة products.
- لا تضف أي حقول أو مفاتيح خارج الـ Schema المحددة نهائياً (additionalProperties: false).
- لا تعتبر المنتج متاحاً إلا إذا نص المدخل على ذلك صراحة.

الخطوة 6: إعادة الاختبار، قياس التحسن، واختبار الانحدار

لتقييم تحسن الأداء بشكل كمي، نستخدم مقاييس رياضية واضحة: - **Pass Rate** = (عدد الحالات الناجحة ÷ إجمالي حالات الاختبار) × 100 - **Schema Compliance Rate** = (المخرجات المطابقة للـ Schema ÷ إجمالي المخرجات) × 100 (ملاحظة هامة: النتائج الرقمية التالية هي محاكاة تعليمية وتوضيحية لشرح منهجية القياس ضمن هذا الـ Test Dataset فقط، وليست تقييماً معيارياً لنموذج تجاري محدد): $$\text{Pass Rate} = \frac{\text{Passed Test Cases}}{\text{Total Test Cases}} \times 100$$

مقياس الأداء (Metric)النسخة V1 (توضيحي)النسخة V2 (توضيحي)
معدل النجاح الإجمالي (Pass Rate)20% (1/5 حالات ناجحة)100% (5/5 حالات ناجحة)
توافق الـ Schema (Schema Compliance)60% (3/5 مخرجات تطابق الهيكل)100% (5/5 مخرجات تطابق الهيكل)
معدل هلوسة البيانات ضمن الـ Test Datasetمرتفع (4 أخطاء في الـ Dataset)صفر (0/5 حالات ضمن الـ Dataset)

**كيف تجعل عملية الاختبار قابلة للتكرار (Reproducible)؟** 1. ثبّت إصدار النموذج وإعدادات التوليد (مثل التحكم بدرجة الحرارة قدر الإمكان مع إدراك أن النتائج لا تكون حتمية بنسبة 100%). 2. استخدم نفس الـ Test Dataset دائماً عند المقارنة بين الإصدارات. 3. وثّق نسخة البرومبت بدقة. 4. **اختبار الانحدار (Regression Testing):** قد يؤدي تعديل البرومبت لإصلاح حالة معينة (مثل T2) إلى إفساد حالة أخرى كانت تعمل بنجاح مسبقاً (مثل T1). لتجنب هذا التخصيص الزائد أو الـ (Prompt Overfitting)، احرص دائماً على إعادة تشغيل الـ Test Dataset بالكامل بعد كل تعديل جوهري.

الخلاصة: نحو أتمتة تقييم الـ LLM

البرومبت الجيد ليس الذي ينجح في حالة واحدة، بل الذي يمكنك قياس سلوكه، اكتشاف نقاط ضعفه، تحسينه، ثم إعادة اختباره بثقة. ومع نمو تطبيقاتك وزيادة حجم حالات الاختبار، ستنتقل تدريجياً من الاختبار اليدوي إلى بناء **Evaluation Dataset** وأتمتة عملية التقييم بالكامل ضمن خط الأنابيب (CI/CD Pipeline) الخاص بك.

اقرأ أيضًا