اختبار RAG: الاسترجاع والاستناد والاستشهادات
التوليد المعزّز بالاسترجاع (Retrieval-augmented generation أو RAG) يجيب عن السؤال باسترجاع مقاطع من مجموعة مستندات أولاً، ثم يطلب من نموذج لغوي أن يجيب مستخدماً تلك المقاطع. واختبار نظام RAG يعني اختبار النصفين والوصلة بينهما: هل وجد المقاطع الصحيحة، وهل بقيت الإجابة أمينة لها، وهل استشهد بها بشكل صحيح، وهل اعترف حين لم تكن الإجابة موجودة، وهل استخدم فقط المستندات المسموح للمستخدم برؤيتها؟
يقدّم هذا الدليل منهج اختبار مرحلة بمرحلة، وصيغة لمجموعة الاختبار، والعيوب التي تُشحن بها أنظمة RAG عادةً. البنية مصدرها البحث العلمي (Lewis وزملاؤه، 2020)؛ والمقاييس في ورقة Ragas مقترحات بحثية؛ أما انضباط الاختبار — مجموعات اختبار موسومة، واختبارات منفصلة للمكوّنات، وانحدار عند كل تغيير، واختبارات التحكم في الوصول — فممارسة راسخة.
كيف يعمل خط RAG — وأين يفشل
لخط المعالجة النموذجي جانب إدخال وجانب استعلام. في الإدخال (Ingestion) تُحمَّل المستندات ويُستخرج نصها ويُقسَّم إلى مقاطع (Chunks)، ويُحسب لكل مقطع تضمين (Embedding، أي متجه رقمي)، وتُخزَّن المقاطع والمتجهات والبيانات الوصفية — المصدر والتاريخ والمالك والصلاحيات — في فهرس. وعند الاستعلام يضمّن النظام السؤال، ويسترجع أكثر المقاطع تشابهاً (غالباً مع بحث بالكلمات المفتاحية وخطوة إعادة ترتيب)، ويرشّحها بالبيانات الوصفية، ويمرر أفضل النتائج مع السؤال إلى النموذج، الذي يكتب إجابة ويستشهد بمصادره، في الحالة المثالية.
- الإدخال — نص يضيع من الجداول أو ملفات PDF الممسوحة ضوئياً أو الكتابة من اليمين إلى اليسار؛ ومقاطع تقسم جملة أو تفصل عنواناً عن محتواه؛ وبيانات وصفية ناقصة أو خاطئة.
- الاسترجاع — المقطع الملائم موجود لكنه ليس ضمن أفضل النتائج؛ والمعرّفات الدقيقة (SKU A-100، السياسة 7.2) يفوّتها البحث الدلالي؛ والأسئلة بالعربية لا تجد المستندات الإنجليزية أو العكس.
- الترشيح — مرشّحات الصلاحيات أو التاريخ تُطبَّق بعد اقتطاع أفضل k نتيجة (فتختفي النتائج) أو لا تُطبَّق إطلاقاً (فتتسرب النتائج).
- التوليد — الإجابة تتجاهل السياق المسترجع، أو تخلطه بافتراضات النموذج الخاصة، أو تدمج مستندين متعارضين في قاعدة واحدة مخترعة.
- الاستشهاد — الاستشهادات تشير إلى مقطع خاطئ، أو إلى مقطع لا يدعم الجملة، أو إلى رابط لا يعمل.
جانب الإدخال (Ingestion)
- تحميل المستندات
- استخراج النص(1)
- التقسيم إلى مقاطع(1)
- تضمين كل مقطعمتجه رقمي لكل مقطع
- التخزين في الفهرس(1)المقاطع والمتجهات والبيانات الوصفية: المصدر والتاريخ والمالك والصلاحيات
جانب الاستعلام
عند طرح السؤال، على الفهرس نفسه
- تضمين السؤال
- استرجاع المقاطع المتشابهة(2)الأكثر تشابهاً؛ غالباً مع بحث بالكلمات المفتاحية وإعادة ترتيب
- الترشيح بالبيانات الوصفية(3)الصلاحيات والتاريخ، قبل اقتطاع أفضل k نتيجة
- النموذج يكتب الإجابة(4)من أفضل النتائج الممرَّرة مع السؤال
- يستشهد بمصادره(5)في الحالة المثالية، قائمة بمعرّفات المقاطع أو المستندات
خط معالجة نموذجي؛ تختلف المكوّنات من نظام لآخر. تبيّن العلامات 1–5 موضع كلٍّ من حالات الفشل الخمس المذكورة أعلاه: الإدخال، والاسترجاع، والترشيح، والتوليد، والاستشهاد.
قيّم الاسترجاع منفصلاً عن التوليد
الدرجة الشاملة («كانت الإجابة صحيحة في 82% من الحالات») لا تخبرك ما الذي يجب إصلاحه. سجّل معرّفات المقاطع المسترجعة لكل حالة اختبار وقيّم الاسترجاع وحده قبل تقييم الإجابة. فالتركيبة تخبرك أين العيب.
- مقاطع صحيحة مسترجعة، وإجابة صحيحة — نجاح.
- مقاطع صحيحة مسترجعة، وإجابة خاطئة — عيب توليد: الموجّه، أو النموذج، أو ترتيب السياق، أو طوله.
- مقاطع خاطئة مسترجعة، وإجابة خاطئة — عيب استرجاع أو إدخال؛ وتغيير الموجّه لن يصلحه.
- مقاطع خاطئة مسترجعة، وإجابة صحيحة — أجاب النموذج من معرفته الخاصة؛ وهذا خطِر، لأنه سيفعل ذلك أيضاً حين تكون معرفته خاطئة أو قديمة.
اختبار الاسترجاع: الاستدعاء والدقة والترتيب
لكل سؤال اختبار، ضع وسماً للمقاطع أو المستندات الملائمة — تلك التي يحتاجها خبير في المجال للإجابة. ثم قِس مقاييس استرجاع المعلومات القياسية على القائمة المسترجعة: الاستدعاء عند k (Recall@k، أي نسبة المقاطع الملائمة الظاهرة في أفضل k)، والدقة عند k (Precision@k، أي نسبة أفضل k الملائمة)، ومقياس ترتيب مثل متوسط الرتبة العكسية (Mean reciprocal rank، أي مدى ارتفاع أول مقطع ملائم). والاستدعاء عند قيمة k التي تمررها فعلاً إلى النموذج هو الرقم الأهم: فالمقطع الذي لا يُسترجع لا يمكن استخدامه.
صمّم حالات الاسترجاع كما تصمّم الحالات الحدّية: معرّفات ورموز دقيقة، ومرادفات وإعادة صياغة، وأسئلة بالعربية والهندية على مستندات إنجليزية والعكس، وأسئلة إجابتها في جدول، وأسئلة قصيرة جداً وطويلة جداً، ومستندات شبه مكررة لا يصح منها إلا أحدث إصدار.
{"id":"rt-031","question":"What is the warranty on the X200 charger?","relevant":["doc-117#c4"],"k":5,"lang":"en"}
{"id":"rt-032","question":"ما مدة ضمان شاحن X200؟","relevant":["doc-117#c4"],"k":5,"lang":"ar"}
{"id":"rt-040","question":"Refund rules for policy 7.2","relevant":["doc-009#c1","doc-009#c2"],"k":5,"lang":"en"}جرّبها: مدقّق JSON Lines جرّبها: مولّد بيانات اختبار متعددة اللغات
اختبار التوليد: الاستناد إلى المصادر وملاءمة الإجابة
الاستناد إلى المصادر (Groundedness، ويُسمّى أيضاً الأمانة Faithfulness) يسأل: هل كل ادعاء واقعي في الإجابة مدعوم بالسياق المسترجع؟ اختبره بتثبيت السياق: امنح النموذج مجموعة معروفة من المقاطع وافحص كل ادعاء مقابلها، بمعايير تقييم ومراجعة بشرية (راسخ) أو بمقيِّم آلي من نموذج معايَر (ناشئ). ضمّن سياقات تختلف فيها الإجابة المغرية من المعرفة العامة عن المستند — كسياسة شركة أشد من الممارسة الشائعة — وتحقق من أن الإجابة تتبع المستند.
تعرّف ورقة Ragas (مقترح بحثي، 2023) مقاييس لا تحتاج إجابات مرجعية لأنظمة RAG — الأمانة، وملاءمة الإجابة، وملاءمة السياق — تُحسب بمساعدة نموذج لغوي. وهي مفيدة لمراقبة الاتجاهات على نطاق واسع، لكنها ترث أخطاء النموذج المقيِّم، والدرجة ليست معيار نجاح/فشل ما لم تتحقق منها مقابل الحكم البشري على بياناتك أنت.
- كل رقم وتاريخ واسم في الإجابة يظهر في مقطع مسترجع.
- حين يتعارض مقطعان مسترجعان، تذكر الإجابة ذلك أو تتبع قاعدة الأسبقية الموثّقة (مثل أحدث إصدار).
- تجيب الإجابة عن السؤال المطروح ولا تُحشى بمحتوى مسترجع لا علاقة له.
- تأتي الإجابة بلغة المستخدم حتى لو كان المستند المصدر بلغة أخرى، ولا تُترجم المصطلحات المقتبسة ترجمة خاطئة.
صحة الاستشهادات
الاستشهادات هي وسيلة المستخدم للتحقق من الإجابة، لذا فالاستشهاد الخاطئ أسوأ من غيابه. اطلب الاستشهادات في حقل مهيكل (قائمة بمعرّفات المقاطع أو المستندات) حتى يمكن فحصها بالكود.
- كل معرّف مستشهد به موجود وكان ضمن المجموعة المسترجعة لهذا الطلب (فحص حتمي).
- كل مقطع مستشهد به يدعم فعلاً الجملة المرتبطة به (فحص بمعايير أو فحص بشري).
- كل جملة واقعية تحتاج دعماً لها استشهاد.
- الروابط ومراسي الصفحات في الاستشهادات تعمل، وتشير إلى إصدار مستند يستطيع المستخدم فتحه.
حين لا تكون الإجابة في مجموعة المستندات
لا يكون نظام RAG جديراً بالثقة إلا إذا قال «لا أعرف» حين لا تحتوي المستندات الإجابة. ابنِ مجموعة من الأسئلة غير القابلة للإجابة: أسئلة معقولة عن منتجات أو سياسات أو تواريخ غير موجودة في مجموعة المستندات، وأسئلة مُجاب عنها جزئياً فقط، وأسئلة عن مستندات حُذفت. والسلوك المتوقع تصريح واضح بأن المعلومة غير متاحة، مع مسار إلى موظف بشري اختيارياً — لا إجابة مركّبة من المعرفة العامة. وتابع الجانبين: اختراع الإجابات فشل، ورفض أسئلة تجيب عنها مجموعة المستندات فشل أيضاً.
- سؤال غير قابل للإجابة ← تصريح صريح «غير موجود في المستندات المتاحة»، دون سياسة مخترعة ودون استشهاد.
- سؤال قابل للإجابة جزئياً ← يجيب عن الجزء المغطّى ويذكر ما ينقص.
- سؤال قابل للإجابة ← يُجاب ولا يُرفض؛ واحسب حالات الفشل هنا رفضاً غير مناسب.
الحداثة والتحديثات والحذف
مجموعة المستندات (Corpus) تتغير، ويجب أن يتبعها الفهرس. اختبر خط الإدخال كأي خط بيانات: انشر إصداراً جديداً من مستند اختبار وتحقق من أن الإجابة التالية تستخدم المحتوى الجديد وتستشهد بالإصدار الجديد؛ واحذف مستنداً وتحقق من أنه لم يعد ممكناً استرجاعه أو الاستشهاد به؛ وغيّر صلاحيات مستند وتحقق من أن التغيير يُطبَّق وقت الاستعلام. وقِس الوقت الذي يستغرقه كل تغيير ليصبح مرئياً وقارنه بالهدف المتفق عليه.
- مستند محدَّث ← تُزال المقاطع القديمة من الفهرس، ولا تُترك بجانب الجديدة.
- مستند محذوف ← لم يعد يُسترجع أو يُستشهد به أو يُقتبس، بما في ذلك من الذاكرة المؤقتة.
- مستندات لها تواريخ سريان ← تستخدم الإجابات الإصدار الساري في التاريخ المسؤول عنه، إن كان ذلك متطلباً.
التحكم في الوصول: لا يسترجع المستخدم ما لا يحق له رؤيته
في معظم أنظمة RAG المؤسسية، للمستندات مالكون وصلاحيات، ويجب أن يجيب المساعد فقط من المستندات التي يحق للمستخدم الحالي فتحها. هذا متطلب أمني، ويرتبط بنقاط ضعف المتجهات والتضمينات (LLM08:2025) في قائمة OWASP Top 10 لتطبيقات LLM. ومكان الضابط هو الاسترجاع — الترشيح بصلاحيات المستخدم قبل أن تصل المقاطع إلى النموذج — لا الموجّه أبداً، لأنه لا يمكن الاعتماد على النموذج في حجب نص سبق أن أُعطي له.
اختبره بمصفوفة صلاحيات: أنشئ مستخدمي اختبار بأدوار ومستأجرين مختلفين، ومستندات بمحتوى خيالي مميز (اسم رمزي لمشروع، أو رقم راتب مخترع) مرئية لواحد منهم فقط. اطرح على كل مستخدم أسئلة من شأنها استرجاع كل مستند، مباشرة وبشكل غير مباشر، وتحقق من أن المحتوى المقيّد لا يظهر أبداً في الإجابة، أو الاستشهادات، أو سجل المقاطع المسترجعة الظاهر للمستخدم، أو استجابة الواجهة البرمجية.
User Role / tenant Doc HR-SAL-01 (HR only) Doc PRJ-ORCHID (tenant B)
noura.a HR, tenant A may retrieve must not retrieve
omar.k Sales, tenant A must not retrieve must not retrieve
priya.s Sales, tenant B must not retrieve may retrieve
Probe questions: "What is the salary band for level 5?"
"Summarise project Orchid"
"List all documents mentioning Orchid"
Assert: restricted text, title and ID absent from answer, citations and API body.مجموعة اختبار RAG وCI والعيوب النموذجية
احتفظ بمجموعة اختبار واحدة ذات إصدارات تضم لكل حالة: السؤال، ومعرّفات المقاطع الملائمة، ونقاط الإجابة المتوقعة أو «غير موجود» المتوقع، واللغة، ومستخدم الاختبار. شغّل مقاييس الاسترجاع والتحققات الحتمية (المخطط، ومعرّفات الاستشهاد، وتأكيدات التحكم في الوصول) عند كل تغيير في التقسيم أو نموذج التضمين أو إعدادات الفهرس أو الموجّه أو نموذج التوليد؛ وشغّل التقييم بالمعايير والتقييم بالنموذج للاستناد ليلياً أو قبل الإصدار. وتغيير نموذج التضمين أو حجم المقطع يتطلب إعادة فهرسة وتشغيل استرجاع كاملاً: إنه خطر انحدار، لا تفصيل ضبط.
- مثال عيب: «انخفاض Recall@5 للأسئلة العربية بعد تغيير نموذج التضمين؛ والإنجليزية دون تغيير».
- مثال عيب: «الإجابة تستشهد بـ doc-117 v1 بعد نشر v2؛ المقاطع القديمة ما زالت في الفهرس».
- مثال عيب: «مستخدم المبيعات يتلقى نطاق رواتب الموارد البشرية في الإجابة عند السؤال عن ‹أجر المستوى 5›».
- مثال عيب: «المساعد يخترع مدة استرداد 14 يوماً لمنتج لا سياسة استرداد له في مجموعة المستندات».
- مثال عيب: «الجداول في ملفات PDF الممسوحة تُدخل كنص فارغ؛ أسئلة الأسعار لا تسترجع شيئاً ملائماً».
جرّبها: مدقّق JSON Lines جرّبها: مولّد مجموعات بيانات Unicode
الأسئلة الشائعة
ما هو اختبار RAG؟
اختبار نظام توليد معزّز بالاسترجاع: التحقق من أنه يسترجع المقاطع الصحيحة، وأن الإجابة أمينة لها وتستشهد بها بشكل صحيح، وأنه يصرّح حين لا تكون الإجابة متاحة، وأن التحديثات تصل إلى الفهرس، وأن المستخدمين لا يحصلون على إجابات إلا من المستندات المسموح لهم برؤيتها.
لماذا نقيّم الاسترجاع منفصلاً عن التوليد؟
لأن الدرجة الشاملة لا تُظهر مكان العيب. إذا استُرجعت المقاطع الصحيحة وكانت الإجابة خاطئة فأصلح التوليد؛ وإذا لم تُسترجع المقاطع الصحيحة فلن تفيد تغييرات الموجّه — أصلح الإدخال أو التقسيم أو التضمينات أو المرشّحات.
ما مقاييس الاسترجاع التي أستخدمها؟
مقاييس استرجاع المعلومات القياسية على أسئلة موسومة: Recall@k عند قيمة k التي تمررها إلى النموذج، وPrecision@k، ومقياس ترتيب مثل متوسط الرتبة العكسية. وأبلغ عنها لكل لغة ولكل نوع سؤال، لا كمتوسط واحد فقط.
هل مقاييس Ragas معيار معتمد؟
لا. إنها من ورقة بحثية تقترح مقاييس لا تحتاج إجابات مرجعية مثل الأمانة وملاءمة الإجابة وملاءمة السياق، تُحسب بنموذج لغوي. وهي مفيدة للاتجاهات، لكن تحقق منها مقابل الحكم البشري على بياناتك قبل استخدامها معاييرَ للإصدار.
كيف أختبر أن مساعد RAG يحترم الصلاحيات؟
أنشئ مستخدمي اختبار بأدوار ومستأجرين مختلفين، ومستندات بمحتوى خيالي مميز مرئية لواحد منهم فقط. اطرح على كل مستخدم أسئلة من شأنها استرجاع كل مستند وتحقق من أن المحتوى المقيّد لا يظهر أبداً في الإجابات أو الاستشهادات أو استجابات الواجهة البرمجية. ويجب أن يحدث الترشيح في الاسترجاع لا في الموجّه.
ماذا يجب أن يفعل نظام RAG حين لا تكون الإجابة في المستندات؟
أن يصرّح بوضوح بأن المعلومة غير متاحة في مصادره، دون اختراع إجابة أو الاستشهاد بمستندات لا علاقة لها، وأن يقدّم اختيارياً مساراً إلى موظف بشري. واختبر ذلك بمجموعة مخصصة من الأسئلة غير القابلة للإجابة والقابلة للإجابة جزئياً.
المراجع
- OWASP Top 10 for LLM Applications 2025أخطر عشرة مخاطر أمنية في تطبيقات النماذج اللغوية الكبيرة (LLM01:2025–LLM10:2025)، بدءاً بحقن الموجّهات والإفصاح عن المعلومات الحساسة.
- Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile (NIST AI 600-1)ملف الذكاء الاصطناعي التوليدي ضمن إطار AI RMF: مخاطر خاصة بالنماذج التوليدية مثل الاختلاق وسلامة المعلومات، وإجراءات مقترحة لإدارتها.
- Define success criteria and build evaluationsإرشادات مزوّد نماذج لكتابة معايير نجاح قابلة للقياس ومجموعات تقييم تُصحَّح بالكود أو بالمطابقة التامة أو بنموذج.
- Working with evalsإرشادات مزوّد نماذج لاختبار مخرجات النموذج مقابل معايير ومجموعات بيانات محددة، وإعادة تشغيل التقييمات مع تغيّر الموجّهات والنماذج.
- Certified Tester AI Testing (CT-AI) v2.0منهج ISTQB التخصصي لاختبار الأنظمة المبنية على الذكاء الاصطناعي، ويشمل أنظمة تعلّم الآلة والذكاء الاصطناعي التوليدي.
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al.)الورقة البحثية التي قدّمت التوليد المعزّز بالاسترجاع: مولّد يعتمد على مقاطع مسترجَعة من فهرس.
- Ragas: Automated Evaluation of Retrieval Augmented Generation (Es et al.)بحث يقترح مقاييس لا تحتاج إجابات مرجعية لأنظمة RAG، مثل الأمانة للمصدر وملاءمة الإجابة وملاءمة السياق.
تمرين عملي
قيّم تشغيلاً اختبارياً لمساعد RAG جامعي مرحلةً بمرحلة
أنت تختبر «مساعد الحرم الجامعي» في جامعة خاصة (مثال خيالي): محادثة في بوابة الطلاب تجيب عن أسئلة الطلاب والموظفين بالإنجليزية والعربية من مستندات الجامعة، ومعظمها بالإنجليزية. أنتج التشغيل الاختباري في 1 أكتوبر 2026 على فهرس بيئة Staging ثماني حالات، أرسلها إليك الفريق مع ملاحظاته. تعرض المادة أدناه خط المعالجة والقواعد المتفق عليها، ومقتطفاً من مجموعة المستندات (Corpus) مع مستوى الوصول لكل مقطع، وسجل التشغيل (السؤال، والمقاطع الملائمة الموسومة، وأفضل 5 مقاطع مسترجعة، والإجابة واستشهاداتها)، وملاحظات الفريق.
قيّم التشغيل كما يوصي الدليل: الاسترجاع أولاً، ثم الإجابة، ثم الاستشهادات، ثم الحالات الخاصة، واكتب نتائج يستطيع المطوّر أن يعمل بها. اعمل على الورق؛ ويساعدك «مدقّق JSON Lines» في الخطوة الأخيرة. خصّص لذلك 45–60 دقيقة.
مساعد الحرم الجامعي - بوابة الطلاب في جامعة خاصة (مثال خيالي)
يجيب عن أسئلة الطلاب والموظفين بالإنجليزية والعربية. ومعظم مستندات الجامعة
بالإنجليزية، ونصوص المقاطع أدناه معروضة مترجمة.
الإدخال: تُقسَّم المستندات إلى مقاطع، ويُحسب لكل مقطع تضمين، وتُخزَّن كلها في الفهرس.
ولكل سؤال: بحث هجين (بالمتجهات وبالكلمات المفتاحية)، ثم مرشّح الصلاحيات، ثم تُمرَّر
أفضل 5 مقاطع إلى النموذج.
شكل الاستجابة (JSON):
{"answer": "...", "citations": ["<chunk id>", ...]}
القواعد المتفق عليها: يحل الإصدار الجديد من المستند محل القديم في الفهرس خلال
24 ساعة؛ وعند تعارض إصدارين يسري أحدث إصدار منشور.
التشغيل الاختباري: الخميس 1 أكتوبر 2026، البناء 2.3.0، فهرس بيئة Staging.
مستخدما الاختبار: stu.lina (طالبة بكالوريوس)، وfac.omar (عضو هيئة تدريس).
مقتطف من مجموعة المستندات («الجميع» = كل مستخدم مسجّل الدخول)
المقطع lib-01#c1 - إعارة المكتبة (الجميع): يجوز لطالب البكالوريوس أن يستعير
حتى 10 كتب في المرة الواحدة، لمدة 21 يوماً.
المقطع lib-01#c2 - إعارة المكتبة (الجميع): يمكن تجديد الإعارة إلكترونياً مرتين،
ما لم يحجز مستخدم آخر الكتاب.
المقطع exm-03#c4 - لائحة الامتحانات (الجميع): يجوز للطالب الذي يتغيب عن
الامتحان النهائي بعذر مقبول أن يتقدم لامتحان بديل. ويجب تقديم العذر خلال
3 أيام عمل من موعد الامتحان.
المقطع exm-03#c5 - لائحة الامتحانات (الجميع): تُعقد الامتحانات البديلة في
الأسبوع الأول من الفصل الدراسي التالي.
المقطع fee-02v1#c1 - استرداد الرسوم الدراسية، الإصدار v1، 2025 (الجميع):
الانسحاب حتى نهاية الأسبوع 2: استرداد 100%. حتى نهاية الأسبوع 4: 50%.
بعد الأسبوع 4: لا استرداد.
المقطع fee-02v2#c1 - استرداد الرسوم الدراسية، الإصدار v2، نُشر في 20 سبتمبر 2026
(الجميع): الانسحاب حتى نهاية الأسبوع 2: استرداد 100%. حتى نهاية الأسبوع 6:
50%. بعد الأسبوع 6: لا استرداد.
المقطع hsg-05#c1 - سكن الطلاب (الجميع): يُفتح التقديم على سكن الفصل الربيعي
في 1 نوفمبر ويُغلق في 30 نوفمبر.
المقطع hsg-05#c3 - سكن الطلاب (الجميع): جدول «أسعار الغرف لكل فصل» في
صفحة PDF ممسوحة ضوئياً. تعرض الصفحة: غرفة مشتركة 4,500 ريال؛ غرفة مفردة
7,000 ريال. النص المفهرس: فارغ.
المقطع stf-07#c2 - إرشادات التصحيح، Marking guidelines (هيئة التدريس فقط):
تراجع لجنة التدقيق KESTREL كل شعبة يرسب فيها أكثر من 30% من الطلاب
في الامتحان النهائي.
بحث في الفهرس في 1 أكتوبر: لا يوجد في الفهرس مستند fee-03 ولا مقطع fee-03#c2.
صيغة مجموعة الاختبار (JSON Lines، حالة في كل سطر): الحقول id وquestion وrelevant
(معرّفات المقاطع) وk وlang وuser وexpect («answer» أو «not_found») وpoints (نقاط
الإجابة المتوقعة، حين تكون قيمة expect هي «answer» فقط) وmust_not_contain (اختياري:
نص يجب ألا يظهر في أي مكان من الاستجابة).
سجل التشغيل في 1 أكتوبر، كما تخرجه أداة الاختبار: relevant هي المقاطع الملائمة
التي وسمتها المكاتب المالكة للمستندات، وretrieved هي أفضل 5 مقاطع مسترجعة بترتيب الرتبة.
ct-01 (en, user stu.lina)
question: How many books can I borrow, for how long, and can I renew them online?
relevant: lib-01#c1, lib-01#c2; expect: answer
retrieved: 1 lib-01#c1, 2 lib-01#c2, 3 hsg-05#c1, 4 exm-03#c5, 5 fee-02v2#c1
answer: Up to 10 books at a time, for 21 days. You can renew a loan online twice,
unless someone has reserved the book.
citations: lib-01#c1, lib-01#c2
ct-02 (ar, user stu.lina)
question: كم يوماً تستمر إعارة الكتاب من المكتبة؟
relevant: lib-01#c1; expect: answer
retrieved: 1 hsg-05#c1, 2 exm-03#c4, 3 exm-03#c5, 4 fee-02v2#c1, 5 fee-02v1#c1
answer: مدة إعارة الكتاب 14 يوماً
citations: (none)
ct-03 (en, user stu.lina)
question: I missed my final exam because I was ill. How long do I have to submit
an excuse?
relevant: exm-03#c4; expect: answer
retrieved: 1 exm-03#c4, 2 exm-03#c5, 3 lib-01#c2, 4 fee-02v2#c1, 5 hsg-05#c1
answer: You must submit your excuse within 5 working days of the exam.
citations: exm-03#c4
ct-04 (en, user stu.lina)
question: When are make-up exams held?
relevant: exm-03#c5; expect: answer
retrieved: 1 exm-03#c4, 2 fee-02v2#c1, 3 fee-02v1#c1, 4 lib-01#c2, 5 hsg-05#c1
answer: Make-up exams are held in the first week of the following semester.
citations: exm-03#c4
ct-05 (en, user stu.lina)
question: If I withdraw from all my courses in week 5, do I get any tuition back?
relevant: fee-02v2#c1; expect: answer
retrieved: 1 fee-02v1#c1, 2 fee-02v2#c1, 3 exm-03#c4, 4 hsg-05#c1, 5 lib-01#c1
answer: No. After week 4 there is no refund.
citations: fee-02v1#c1
ct-06 (en, user stu.lina)
question: Is there a tuition discount if my brother also studies here?
relevant: (none); expect: not_found
retrieved: 1 fee-02v2#c1, 2 fee-02v1#c1, 3 hsg-05#c1, 4 lib-01#c1, 5 exm-03#c4
answer: Yes. Siblings receive a 10% discount on tuition every semester.
citations: fee-03#c2
ct-07 (en, user stu.lina)
question: How are final exam marks reviewed when many students fail?
relevant: (none); expect: not_found
retrieved: 1 stf-07#c2, 2 exm-03#c4, 3 exm-03#c5, 4 fee-02v2#c1, 5 lib-01#c2
answer: Sorry, I can’t share details from staff documents.
citations: (none)
api body: {"answer": "...", "citations": [], "debug": {"retrieved": [{"id":
"stf-07#c2", "title": "Marking guidelines", "text": "The moderation panel
KESTREL reviews every section in which ..."}, ...]}}
ct-08 (en, user stu.lina)
question: How much does a single room cost per semester?
relevant: hsg-05#c3; expect: answer
retrieved: 1 hsg-05#c1, 2 fee-02v2#c1, 3 fee-02v1#c1, 4 exm-03#c5, 5 lib-01#c2
answer: The available documents do not include room prices. Please contact the
Housing Office.
citations: (none)
ملاحظات الفريق
الملاحظة N1: «قرأنا الإجابات الثماني: 3 منها صحيحة (ct-01 وct-04 وct-07)،
أي 37.5%. الخطة: إعادة كتابة موجّه النظام وتشغيل الحالات الثماني مجدداً».
الملاحظة N2: «التحكم في الوصول مغطّى: موجّه النظام يقول: لا تكشف أبداً محتوى
من مستندات لا يحق للمستخدم رؤيتها».
الملاحظة N3: «ننتقل الأسبوع القادم إلى نموذج تضمين متعدد اللغات لإصلاح ct-02،
ثم نعيد تشغيل ct-02».- الاسترجاع: للحالات من ct-01 إلى ct-05 وللحالة ct-08، احسب الاستدعاء عند 5 (Recall@5) والدقة عند 5 (Precision@5) والرتبة العكسية (Reciprocal rank)، أي 1 مقسوماً على رتبة أول مقطع ملائم، و0 إن لم يُسترجع أي مقطع ملائم. اذكر المتوسطات على هذه الحالات الست — ومتوسط الرتبة العكسية هو MRR — والمتوسطات لكل لغة، وبيّن لماذا لا تحصل ct-06 وct-07 على درجة استرجاع.
- حدّد مكان العيوب: ضع الحالات من ct-01 إلى ct-05 والحالة ct-08 في التركيبات الأربع التي يذكرها الدليل للمقاطع المسترجعة والإجابة، وقل لكل منها هل يمكن أن يصلحها تغيير الموجّه.
- الاستناد إلى المصادر والاستشهادات: لكل إجابة، تحقق من أن كل ادعاء فيها مدعوم بمقطع مسترجع، ثم أجرِ فحوص الاستشهاد: الفحوص الحتمية (المعرّف المستشهد به موجود، وكان ضمن المقاطع المسترجعة لهذا الطلب) وفحوص الدعم (المقطع المستشهد به يدعم جملته، ولكل جملة واقعية استشهاد).
- الحالات الخاصة: قرّر النجاح أو الفشل للسؤال غير القابل للإجابة (ct-06)، ولسياسة الاسترداد المحدَّثة (ct-05)، ولحالة الصلاحيات (ct-07)، ولجدول السكن (ct-08)، مع السلوك المتوقع والمكان الذي ينتمي إليه الإصلاح.
- الختام: أجب عن ملاحظات الفريق من N1 إلى N3، واكتب عنواناً من سطر واحد لكل عيب، واكتب أربعة أسطر جديدة لمجموعة الاختبار بالصيغة المعطاة: نسخة عربية من ct-03، وسؤالاً لا تجيب عنه مجموعة المستندات، وسؤالاً غير مباشر يختبر التحكم في الوصول للطالبة، والسؤال نفسه لعضو هيئة التدريس.
إظهار الإجابة النموذجية
الخطوة 1: الاسترجاع. الاستدعاء عند 5 هو عدد المقاطع الملائمة ضمن أفضل 5 مقسوماً على عدد كل المقاطع الملائمة؛ والدقة عند 5 هي عدد المقاطع الملائمة ضمن أفضل 5 مقسوماً على 5؛ والرتبة العكسية هي 1 مقسوماً على رتبة أول مقطع ملائم. ct-01: الاستدعاء 2/2 = 1.0، والدقة 2/5 = 0.4، والرتبة العكسية 1. ct-02: صفر في الثلاثة. ct-03: الاستدعاء 1/1 = 1.0، والدقة 1/5 = 0.2، والرتبة العكسية 1. ct-04: صفر في الثلاثة. ct-05: الاستدعاء 1.0، والدقة 0.2، والرتبة العكسية 1/2 = 0.5، لأن مقطع الإصدار v1 الملغى يأتي قبل مقطع v2. ct-08: صفر في الثلاثة. المتوسطات على الحالات الست: Recall@5 = 3/6 = 0.50، وPrecision@5 = 0.8/6 ≈ 0.13، وMRR = 2.5/6 ≈ 0.42. ولكل لغة: الإنجليزية، خمس حالات، Recall@5 = 3/5 = 0.60 وPrecision@5 = 0.8/5 = 0.16 وMRR = 2.5/5 = 0.50؛ والعربية، حالة واحدة، صفر في المقاييس الثلاثة. والحالة العربية الواحدة إخفاق واحد ملاحَظ، لا قياس لاسترجاع الأسئلة العربية.
اقرأ الأرقام قبل أن تبلغ عنها. حين يوجد مقطع ملائم واحد فقط تكون أعلى دقة ممكنة عند 5 هي 0.2، فلا مشكلة دقة في ct-03 وct-05؛ والرقم المهم هو الاستدعاء عند قيمة k التي تُمرَّر فعلاً إلى النموذج، لأن المقطع الذي لا يُسترجع لا يمكن استخدامه. وللحالات الثلاث التي فاتها المقطع الملائم ثلاثة أسباب مختلفة: سؤال عربي على مستند إنجليزي (ct-02)، ومقطع يكرر كلمات السؤال نفسها (make-up exams are held) ومع ذلك لا يظهر ضمن أفضل 5 في بحث يشمل المطابقة بالكلمات المفتاحية (ct-04)، ومقطع بلا نص إطلاقاً (ct-08)؛ والمتوسط الواحد يخفي الأسباب الثلاثة. أما ct-06 وct-07 فلا مقطع ملائماً فيهما لهذا المستخدم، فيصبح حساب الاستدعاء قسمة على صفر، وتكون الدقة عند 5 والرتبة العكسية صفراً أياً كانت المقاطع المسترجعة، وإدخالهما في المتوسط لا يفعل إلا أن يخفضه؛ لذلك تُقيَّمان بالسلوك.
الخطوة 2: أين يقع كل عيب. ct-01: مقاطع صحيحة وإجابة صحيحة، أي نجاح. ct-03: المقطع الصحيح في الرتبة الأولى والإجابة خاطئة، أي عيب توليد: المقطع يقول 3 أيام عمل والإجابة تقول 5. ct-05: استُرجع مقطع v2 الملائم وبقيت الإجابة خاطئة، أي عيب توليد، لأن الإجابة اتبعت الأقدم من مقطعين متعارضين خلافاً لقاعدة الأسبقية الموثّقة ولم تذكر التعارض؛ ووراءه عيب إدخال، لأن مقطع v1 كان يجب ألا يبقى في الفهرس. ct-02: مقاطع خاطئة وإجابة خاطئة، أي عيب استرجاع للأسئلة العربية على المستندات الإنجليزية. ct-08: مقاطع خاطئة وإجابة خاطئة، أي عيب إدخال: فُهرس الجدول نصاً فارغاً، فلا يستطيع أي استعلام أن يسترجعه. ct-04: مقاطع خاطئة وإجابة صحيحة، أي أن النموذج أجاب من افتراضاته عن طريقة عمل الجامعات؛ أصاب هنا مصادفةً، وسيجيب بالثقة نفسها حين تختلف قاعدة هذه الجامعة. ولا يستطيع تغيير الموجّه أن يصلح إلا جزء التوليد: ct-03، والأسبقية في ct-05، والإجابات غير المدعومة في ct-02 وct-04 وct-06، التي يجب أن تصبح «غير موجود» حين لا يدعمها أي مقطع مسترجع. ولا يصلح المقاطع التي فاتها الاسترجاع (ct-02 وct-04)، ولا الفهرس القديم (ct-05)، ولا الجدول الفارغ (ct-08)، ولا تسرّب الصلاحيات (ct-07).
الخطوة 3: الاستناد إلى المصادر والاستشهادات. ct-01: كل معلومة (10 كتب، و21 يوماً، والتجديد مرتين) موجودة في lib-01#c1 أو lib-01#c2؛ والمعرّفان المستشهد بهما موجودان واستُرجعا ويدعمان جملتيهما، أي نجاح. ct-02: مدة 14 يوماً لا تظهر في أي مقطع مسترجع (والقاعدة 21 يوماً)، والجملة الواقعية بلا استشهاد، فيفشل فحص «لكل جملة واقعية استشهاد»؛ والإجابة بالعربية كما يجب، فالخطأ في محتواها فقط. ct-03: يجتاز الاستشهاد الفحصين الحتميين، فالمقطع exm-03#c4 موجود واستُرجع، ويفشل في فحص الدعم لأن المقطع يقول 3 أيام عمل؛ ولهذا فالفحوص الحتمية للاستشهادات ضرورية لكنها غير كافية. ct-04: المقطع exm-03#c4 موجود واستُرجع لكنه لا يقول شيئاً عن موعد الامتحانات البديلة، فالاستشهاد لا يدعم الجملة، والادعاء غير موجود في أي مقطع مسترجع. ct-05: الإجابة مدعومة باستشهادها، لكن بمقطع ملغى: مستندة إلى السياق ومع ذلك خاطئة، والاستشهاد يحيل الطلاب إلى إصدار يجب ألا يُحالوا إليه بعد الآن. ct-06: المعرّف fee-03#c2 غير موجود في الفهرس (انظر نتيجة البحث في الفهرس) ولم يُسترجع، فيفشل الفحص الحتمي الأول، والخصم البالغ 10% مخترع. ct-07 وct-08 لا تستشهدان بشيء، وهذا متسق مع ردّين لا يذكران أي وقائع.
الخطوة 4: الحالات الخاصة. ct-06، سؤال غير قابل للإجابة: فشل. المتوقع تصريح واضح بأن المستندات المتاحة لا تتناول خصماً للإخوة، مع مسار اختياري إلى مكتب الشؤون المالية للطلاب، ودون استشهاد؛ لكن المساعد اخترع سياسة واستشهاداً، وقد يبني طالب خططه المالية على خصم غير موجود. ct-05، الحداثة: فشل. نُشر الإصدار v2 في 20 سبتمبر، وفي 1 أكتوبر، أي بعد 11 يوماً، ما زال مقطع v1 في الفهرس مع أن الهدف المتفق عليه 24 ساعة، بل يأتي في الرتبة الأولى. والإجابة الصحيحة استرداد 50%، لأن الأسبوع 5 يسبق نهاية الأسبوع 6، مع الاستشهاد بـ fee-02v2#c1. وبعد الإصلاح اختبر خط الإدخال كأي خط بيانات: انشر إصداراً جديداً من مستند اختبار، وقِس الوقت حتى تستخدمه الإجابات ويتوقف استرجاع المقطع القديم، وافحص الأمر نفسه لمستند محذوف.
ct-07، التحكم في الوصول: فشل، وهو أخطر عيب في التشغيل. استرجعت طالبةٌ مقطعاً مخصصاً لهيئة التدريس في الرتبة الأولى، فمرشّح الصلاحيات الذي يصفه خط المعالجة لم يحذفه قبل وصول المقاطع إلى النموذج؛ ولم يحجب الردُّ المحتوى إلا بسبب الموجّه، وما زال جسم استجابة API يحمل معرّف المقطع وعنوانه ونصه، بما فيه الاسم الرمزي KESTREL. ومكان الإصلاح هو الاسترجاع: الترشيح بصلاحيات المستخدم قبل اقتطاع أفضل 5، حتى تحصل الطالبة مع ذلك على خمسة مقاطع يحق لها رؤيتها؛ ويجب ألا تعيد API مقاطع مقيّدة في الحقل debug. والاستجابة الموثّقة ليس فيها إلا الحقلان answer وcitations، لذا كان فحص المخطط الذي يرفض الحقول الإضافية سيكشف الحقل debug أيضاً. وهذا يرتبط بنقاط ضعف المتجهات والتضمينات (LLM08:2025) في قائمة OWASP Top 10 لتطبيقات LLM. كما يخبر الردُّ الطالبةَ بأن مستنداً للموظفين يتناول الموضوع موجود؛ والرد المتوقع هو «غير موجود» نفسه الذي يُعطى لأي سؤال لا تجيب عنه مستنداتها. ct-08، الإدخال: فشل، ويُحسب رفضاً غير مناسب، لأن الصفحة المصدر تجيب عن السؤال (7,000 ريال). وقد أحسن المساعد التصرف بما لديه من سياق، فلم يخترع سعراً؛ لذا فالإصلاح في الإدخال: استخراج نص الجداول الممسوحة ضوئياً، ثم إعادة الفهرسة، ثم تشغيل الاسترجاع من جديد.
ملاحظات الفريق. N1: قراءة نص الإجابة وحده تعطي 3 من 8، ومع ذلك تمرّر حالتي فشل: ct-04 صحيحة مصادفةً (فاتها الاسترجاع واستشهادها لا يدعمها)، وct-07 تسرّب محتوى مقيّداً في جسم استجابة API. ومع فحوص الاسترجاع والاستشهادات وAPI لا تنجح إلا حالة واحدة من 8 (ct-01)، وإعادة كتابة الموجّه لا تصل إلا إلى عيوب التوليد المذكورة في الخطوة 2. N2: التعليمات في الموجّه ليست تحكماً في الوصول. فالنموذج تلقّى النص المقيّد بالفعل ولا يمكن الاعتماد عليه في حجبه، وct-07 تُظهر أن التسرّب لا يمر بالنموذج أصلاً. رشّح في الاسترجاع، ثم اختبر بمصفوفة صلاحيات: مستخدمو اختبار من كل دور، ومستندات بمحتوى خيالي مميز، وأسئلة مباشرة وغير مباشرة. N3: نموذج التضمين الجديد يغيّر كل المتجهات، فيحتاج إلى إعادة فهرسة مجموعة المستندات كلها وتشغيل استرجاع كامل على كل الحالات، مع المقارنة لكل لغة بتشغيل 1 أكتوبر على الإصدار نفسه من مجموعة الاختبار؛ وإعادة تشغيل ct-02 وحدها قد تخفي انخفاض الاستدعاء للأسئلة الإنجليزية. وحالة عربية واحدة لا تُظهر هل تحسّن الاسترجاع للعربية: أضف أولاً نسخاً عربية من الحالات القابلة للإجابة. وتعمل الفحوص الحتمية — مخطط الاستجابة، ومعرّفات الاستشهادات، وتأكيدات التحكم في الوصول — عند كل تغيير في التقسيم أو نموذج التضمين أو إعدادات الفهرس أو الموجّه أو نموذج التوليد.
عناوين العيوب، من الأخطر إلى الأقل خطورة، ويُبلَّغ عن كل منها مع البناء 2.3.0 وفهرس Staging ومعرّف الحالة والمستخدم ومعرّفات المقاطع المسترجعة: «مستخدمة بدور طالب تسترجع المقطع stf-07#c2 المخصص لهيئة التدريس؛ وعنوانه ونصه (KESTREL) يُعادان في الحقل debug من استجابة API» (ct-07). «إجابة الاسترداد تتبع السياسة v1 بعد نشر v2 في 20 سبتمبر؛ ومقطع v1 ما زال في الفهرس في 1 أكتوبر، والهدف 24 ساعة» (ct-05). «المساعد يخترع خصماً للإخوة قدره 10% على الرسوم الدراسية ويستشهد بمقطع غير موجود هو fee-03#c2» (ct-06). «الإجابة تعطي 5 أيام عمل لتقديم عذر الامتحان، والمقطع المستشهد به exm-03#c4 يقول 3» (ct-03). «سؤال عربي عن مدة إعارة الكتب لا يسترجع أي مقطع من مستند المكتبة؛ والإجابة تخترع 14 يوماً دون استشهاد» (ct-02). «المقطع exm-03#c5 ليس ضمن أفضل 5 مع أن السؤال يكرر كلماته؛ والإجابة عن موعد الامتحانات البديلة لا يدعمها استشهادها» (ct-04). «جدول أسعار الغرف في صفحة ممسوحة ضوئياً من hsg-05 مفهرس نصاً فارغاً؛ وأسئلة أسعار الغرف تُرفض» (ct-08).
أربعة أسطر جديدة لمجموعة الاختبار. قد تختلف صياغتك، لكن يجب أن يكون كل سطر كائن JSON كاملاً بتوقّع قابل للتقييم ودون بيانات شخصية حقيقية. {"id":"ct-09","question":"فاتني الامتحان النهائي بسبب المرض، كم يوماً لدي لتقديم العذر؟","relevant":["exm-03#c4"],"k":5,"lang":"ar","user":"stu.lina","expect":"answer","points":["3 working days after the exam"]}، ثم أضف نسخاً عربية من بقية الحالات القابلة للإجابة. {"id":"ct-10","question":"Can I pay my tuition in monthly instalments?","relevant":[],"k":5,"lang":"en","user":"stu.lina","expect":"not_found"}، بعد أن يؤكد مكتب الشؤون المالية للطلاب أنه لا يوجد مستند يتناول ذلك. {"id":"ct-11","question":"Which panel reviews a section when many students fail the final exam?","relevant":[],"k":5,"lang":"en","user":"stu.lina","expect":"not_found","must_not_contain":["stf-07","KESTREL","Marking guidelines"]}؛ فالسؤال لا يذكر الاسم الرمزي، لذا فظهور KESTREL في أي مكان من الاستجابة، بما فيه جسم استجابة API، تسرّب. {"id":"ct-12","question":"Which panel reviews a section when many students fail the final exam?","relevant":["stf-07#c2"],"k":5,"lang":"en","user":"fac.omar","expect":"answer","points":["the moderation panel KESTREL","more than 30% of students fail the final exam"]}؛ فالحالة المقابلة لعضو هيئة التدريس تُظهر أن المرشّح يزيل المستند فقط عن المستخدمين الذين لا يحق لهم رؤيته.
إن اختلفت نتائجك فراجعها مقابل قواعد الدليل: قيّم الاسترجاع وحده قبل الإجابة؛ وعامل الإجابة الصحيحة الآتية من مقاطع خاطئة على أنها خطر لا نجاح؛ وأجرِ الفحوص الحتمية للاستشهادات أولاً ثم فحوص الدعم؛ وضع التحكم في الوصول في الاسترجاع وتحقق من استجابة API كاملة؛ وأبلغ عن المقاييس لكل لغة مع عدد الحالات التي تقف وراءها. والترتيب المختلف للعيوب مع سبب مذكور مقبول، وكذلك أي ملاحظة إضافية، مثل سؤال لمكتب التسجيل عن طريقة عدّ الأسابيع الدراسية. وبعد الإصلاحات أجرِ اختبار التأكيد (Confirmation testing) على الحالات الفاشلة وتشغيل انحدار للمجموعة كلها، لأن أي تغيير في الإدخال أو الاسترجاع قد يغيّر نتيجة كل حالة.
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.
جزء من مسار تعلم ضمان الجودة
الموضوعات التالية
الأدوات المذكورة في هذا الدليل
التحقق من كل سطر في ملف JSON Lines والإبلاغ عن الأسطر الفاشلة بدقة.
التحقق من مستند JSON مقابل مخطط JSON Schema (الكلمات المفتاحية الأساسية في draft-07 / 2019-09 / 2020-12).
ولّد السجلات نفسها بلغات متعددة (الإنجليزية والعربية والهندية وغيرها) لاختبار التدويل (i18n) واختلاط RTL/LTR.
قارن نصّين سطراً بسطر أو كلمةً بكلمة مع إبراز الاختلافات.
مقارنة مستندي JSON دلالياً وإبراز القيم المضافة والمحذوفة والمتغيرة.
ولّد سلاسل نصية اختبارية بترميز Unicode عبر الخطوط (العربية والديفاناغارية وCJK والسيريلية) والرموز التعبيرية وعلامات الدمج وصيغ التطبيع.
مصنع متكامل لبيانات الاختبار الاصطناعية: مستخدمون وعملاء وشركات وعناوين وأرقام وتواريخ وسلاسل نصية بصيغة JSON أو CSV أو SQL أو XML.