اختبار الهلوسة والاستناد إلى المصادر

الهلوسة (Hallucination) إجابة من نموذج لغوي تقرّر شيئاً خاطئاً أو بلا سند كأنه حقيقة: قاعدة استرداد مخترعة، أو تاريخ خاطئ، أو استشهاد ببند غير موجود. ويسمّي ⁦NIST AI 600-1⁩ هذا الخطر التلفيق (Confabulation): محتوى خاطئ يُقدَّم بثقة. واختبار الهلوسة هو البحث المتعمّد عن هذه الإجابات قبل أن يصادفها المستخدمون.

والاستناد إلى المصادر (Groundedness) هو الجزء الذي يمكنك فحصه. فالإجابة مستندة إلى المصادر حين يكون كل ادعاء واقعي فيها مدعوماً بالمصادر التي أعطاها النظام للنموذج: مستندات مسترجعة، أو سجل في قاعدة بيانات، أو نتيجة أداة. فمساعد الإرجاع الذي تلقّى سياسة تنص على ⁦14⁩ يوماً فأجاب «⁦30⁩ يوماً» إجابته غير مستندة إلى مصدرها مهما بدت طبيعية.

لماذا يهم

الإجابات المهلوسة فصيحة وواثقة، لذلك يتصرف الناس بناءً عليها: يعتمدون على موعد نهائي أو سعر أو سياسة لا وجود لها. وتُدرج قائمة OWASP Top 10 for LLM Applications 2025 المعلومات المضلِّلة (LLM09) خطراً، وتذكر الهلوسة سبباً رئيسياً لها. وهذا يعني للمنتج قرارات خاطئة وشكاوى ومسؤولية قانونية.

وبالنسبة إلى المختبِر، تُفسد الهلوسة المرجع (Test oracle) المعتاد: فالمخرجات تبدو معقولة، وتتغيّر بين التشغيلات، وتشغيل واحد ناجح لا يثبت إلا القليل. فالنموذج اللغوي يولّد نصاً مرجّحاً لا حقائق متحقَّقاً منها، ولا يوجد موجّه (Prompt) يجعل الهلوسة مستحيلة. ومهمتك أن تقيس كم مرة تحدث وأين، وأن تتحقق من الضمانات: المصادر والاستشهادات والرفض. والاختبار يُظهر وجود العيوب لا غيابها.

مرجعان للحكم، والأشكال التي تتخذها الهلوسة

قرّر أولاً ما الذي تقارن به الإجابة. في وضع «الكتاب المغلق» (Closed-book) يجيب النموذج مما تعلّمه في التدريب، فتحتاج إلى مرجع خارجي. أما في الوضع المستند إلى مصادر — التوليد المعزّز بالاسترجاع (RAG)، أو مستند مرفوع، أو نتيجة أداة — فيسلّم النظامُ النموذجَ مصادره، وتفحص الإجابة مقابل هذه المصادر بالضبط.

قد يختلف الفحصان. فقد تكون الإجابة صحيحة لكنها غير مستندة: أجاب النموذج من ذاكرته، وهذا ينجح إلى أن تصبح ذاكرته خاطئة أو قديمة. وقد تكون مستندة لكنها خاطئة: تكرر بأمانة مستنداً قديماً، وهذا عيب في البيانات لا في النموذج.

  • كيانات مختلقة: منتج أو بند في سياسة أو دالة في واجهة برمجية أو شخص أو رابط لا وجود له.
  • تفاصيل خاطئة: أرقام أو تواريخ أو أسعار أو أسماء محرّفة، أو مخلوطة بين المصادر.
  • تناقض: تقول الإجابة عكس مصدرها.
  • إضافات بلا سند: وعد إضافي معقول، مثل «شحن الإرجاع مجاني»، لا يحتويه أي مصدر.
  • قبول فرضيات خاطئة: شرح «لماذا تشمل الباقة الأساسية الدعم الهاتفي» وهي لا تشمله.

الاستناد إلى المصادر: افحص الإجابة ادعاءً بادعاء

الإجابة كاملةً وحدة أكبر من أن يُحكم عليها. قسّمها إلى ادعاءات ذرية (Atomic claims) — عبارات مفردة إما مدعومة وإما غير مدعومة — وضع لكل منها وسماً مقابل المصادر: مدعوم، أو مناقِض، أو غير موجود. و«غير موجود» لا يقل أهمية عن «مناقِض»: فالادعاء الذي لا سند له هلوسة حتى لو صادف أنه صحيح.

ثبّت السياق في حالات الاختبار: امنح النموذج مجموعة معروفة من المقاطع، لا ما يعيده الاسترجاع اليوم، حتى يشير الإخفاق إلى التوليد ويمكن إعادة إنتاجه.

معدّل الاستناد يُظهر الاتجاهات عبر مجموعة اختبار. وإذا حُسب على مستوى الادعاء فهو الادعاءات المدعومة مقسومة على كل الادعاءات الواقعية، وبهذه الطريقة تحسب ورقة Ragas البحثية درجة الأمانة (Faithfulness)، مستخدمةً نموذجاً لغوياً للفحص؛ وبعض الفرق تعدّ الإجابات المدعومة بالكامل بدلاً من ذلك. أما للحالة الواحدة عالية المخاطر فاستخدم قاعدة قبول: ادعاء واحد مناقِض أو غير موجود يُفشلها.

  • الكود يفحص ما هو دقيق: الأرقام والمعرّفات والنصوص المقتبسة موجودة في المصدر، وكل معرّف مستشهد به موجود وقد أُعطي للنموذج. وحين تأتي الإجابات بصيغة JSON منظّمة، يستطيع المخطط (Schema) أن يشترط استشهاداً لكل ادعاء.
  • المراجعون البشريون يحكمون على المعنى بمعايير تقييم مكتوبة (Rubric). ولا يوسّع المقيِّمُ الآلي القائم على نموذج هذا العمل إلا بعد أن تطابق وسومُه الوسومَ البشرية على بياناتك، لأنه أيضاً قد يهلوس.

جرّبها: مقارنة النصوص (Diff) جرّبها: مدقّق JSON Schema

مثال تطبيقي: مساعد الإرجاع

مساعد الدعم في متجر يجيب من سياسة الإرجاع، التي يمررها النظام إلى النموذج سياقاً وحيداً. والإجابة الأمينة عن سؤال الاختبار هي «لا»: فالأسئلة التي تغري بإجابة «نعم» ودودة من المعرفة العامة هي المواضع التي ينهار فيها الاستناد إلى المصادر.

تفشل الإجابة الموسومة أدناه رغم أن جزءاً منها صحيح. والإجابة المستندة إلى المصدر: «لا. لا يمكن إرجاع منتجات التخفيضات (القاعدة ⁦3⁩). أما المنتجات غير المستخدمة الأخرى فيمكن إرجاعها خلال ⁦14⁩ يوماً من التسليم (القاعدة ⁦1⁩)».

السياق المُعطى (policy-returns v3):
  «1. يمكن إرجاع المنتجات غير المستخدمة خلال 14 يوماً من التسليم.
   2. يُعاد المبلغ إلى وسيلة الدفع الأصلية خلال 5 أيام عمل.
   3. لا يمكن إرجاع منتجات التخفيضات.»

السؤال: هل يمكنني إرجاع منتج تخفيضات اشتريته الأسبوع الماضي؟

الإجابة قيد الاختبار:
  «نعم. يمكنك إرجاع أي منتج خلال 30 يوماً من التسليم، كما ينص البند 4
   من سياستنا. ويُعاد المبلغ إلى وسيلة الدفع الأصلية خلال 5 أيام عمل.»

C1  يمكن إرجاع منتج التخفيضات          ← مناقِض (القاعدة 3)
C2  مدة الإرجاع 30 يوماً                ← مناقِض (القاعدة 1)
C3  في السياسة بند رقم 4                ← غير موجود
C4  يُعاد المبلغ إلى وسيلة الدفع الأصلية  ← مدعوم (القاعدة 2)
C5  خلال 5 أيام عمل                    ← مدعوم (القاعدة 2)

النتيجة: فشل — ادعاءان مدعومان من 5، وادعاءان مناقِضان، وادعاء غير موجود
السياسة نفسها والسؤال نفسه: الإجابة المهلوسة تناقض قاعدتين وتستشهد ببند غير موجود، بينما لا تقدّم الإجابة المستندة إلى المصدر إلا ادعاءات تدعمها سياسة الإرجاع.

الإجابة المهلوسةالإجابة قيد الاختبارفشل

«نعم. أي منتج خلال ⁦30⁩ يوماً، كما ينص البند ⁦4⁩. ويُعاد المبلغ إلى وسيلة الدفع الأصلية خلال ⁦5⁩ أيام عمل.»

منتجات التخفيضات:
«يمكن إرجاعها»: تناقض القاعدة ⁦3⁩فشل
مدة الإرجاع:
⁦30⁩ يوماً: تناقض القاعدة ⁦1⁩ (⁦14⁩ يوماً)فشل
المرجع المذكور:
«البند ⁦4⁩»: غير موجود، فللسياسة القواعد من ⁦1⁩ إلى ⁦3⁩ فقطفشل
تفاصيل استرداد المبلغ:
وسيلة الدفع الأصلية خلال ⁦5⁩ أيام عمل: تدعمها القاعدة ⁦2⁩نجاح
نتيجة الاختبار:
فشل: ادعاءان مدعومان من ⁦5⁩، واثنان مناقِضان، وواحد غير موجودفشل

الإجابة المستندة إلى المصدرالسلوك المتوقعنجاح

«لا. لا يمكن إرجاع منتجات التخفيضات (القاعدة ⁦3⁩). أما المنتجات غير المستخدمة الأخرى فخلال ⁦14⁩ يوماً من التسليم (القاعدة ⁦1⁩).»

منتجات التخفيضات:
«لا يمكن إرجاعها»: تدعمها القاعدة ⁦3⁩نجاح
مدة الإرجاع:
⁦14⁩ يوماً للمنتجات غير المستخدمة الأخرى: تدعمها القاعدة ⁦1⁩نجاح
المرجع المذكور:
القاعدتان ⁦3⁩ و⁦1⁩: موجودتان وتدعمان الجملتين المرتبطتين بهمانجاح
تفاصيل استرداد المبلغ:
غير مذكورة: لا يحتاجها جواب هذا السؤال
نتيجة الاختبار:
نجاح: كل ادعاء تدعمه السياسةنجاح

السؤال: «هل يمكنني إرجاع منتج تخفيضات اشتريته الأسبوع الماضي؟» السياق: policy-returns v3، القواعد من ⁦1⁩ إلى ⁦3⁩.

التحقق من الحقائق حين لا يوجد مصدر واحد

إجابات «الكتاب المغلق»، والأجزاء المأخوذة من المعرفة العامة في الإجابات المستندة، تحتاج إلى مرجع مختلف للحكم. ابنِه قبل أن تختبر، وإلا حدّدت الإجابةُ الأكثر ثقةً توقعَك؛ واحفظه في مجموعة الاختبار، مثلاً سجلاً واحداً بصيغة JSON Lines لكل سؤال.

  • إجابات مرجعية تحقّق منها خبير في المجال، تذكر الحقائق التي يجب أن تظهر والتي يجب ألا تظهر.
  • مصادر موثوقة: قاعدة بيانات المنتج أو الوثائق الرسمية أو نص المعيار ذاته، ولا تكون أبداً إجابة نموذج آخر.
  • فحوص حتمية: الروابط تعمل، والمستندات المستشهد بها موجودة، والمجاميع يُعاد حسابها، ودوال الواجهة البرمجية المذكورة موجودة.
  • الاتساق مؤشراً: اطرح السؤال نفسه مراراً وبصيغ أخرى؛ فالحقائق المتغيّرة تدل على التخمين. لكن النموذج قد يكرر أيضاً الإجابة الخاطئة نفسها كل مرة.
  • أسئلة الفخ: منتج شبه مطابق، أو إصدار قديم، أو تفصيل يبدو قياسياً لكنه مختلف في مجالك.

جرّبها: مدقّق JSON Lines جرّبها: مقارنة JSON

الأسئلة غير القابلة للإجابة: اختبر الحق في قول «لا أعرف»

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

تابع معدّلين معاً: الإجابات المخترعة عن أسئلة لا يمكن الإجابة عنها، والرفض غير المناسب لأسئلة يمكن الإجابة عنها. فالنظام الذي يرفض كل شيء لا يهلوس أبداً ولا فائدة منه، وتغيير الموجّه الذي يقلل الإجابات المخترعة قد يرفع حالات الرفض.

  • غير موجود في المصادر: أسئلة معقولة لا تغطيها المستندات.
  • فرضية خاطئة: يفترض السؤال شيئاً غير صحيح، وعلى الإجابة أن تصحّحه.
  • قابل للإجابة جزئياً: أجب بما تدعمه المصادر واذكر ما ينقص.
  • أسئلة ضابطة قابلة للإجابة: يجب أن يُجاب عنها؛ والرفض هنا رفض غير مناسب.

أخطاء شائعة

  • الحكم على الإجابة بمدى إقناعها بدلاً من فحص كل ادعاء مقابل مصدر.
  • تشغيل الحالة مرة واحدة واعتبار نجاح واحد دليلاً، مع أن المخرجات تتغيّر بين التشغيلات.
  • جعل نموذج لغوي آخر المدقِّق الوحيد للحقائق دون مقارنته بالوسوم البشرية.
  • عدّ الإجابات المخترعة دون عدّ حالات الرفض غير المناسب.
  • لوم النموذج بينما كان الخطأ في المقطع المسترجع أو في المستند المصدر.

من منظور ضمان الجودة

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

احتفظ بمجموعة اختبار مُدارة بالإصدارات من الأسئلة القابلة للإجابة وغير القابلة للإجابة وذات الفرضيات الخاطئة مع مصادرها، وشغّلها عند كل تغيير في الموجّه أو النموذج أو المصادر. ويحتاج تقرير الهلوسة إلى المدخل، والسياق المُعطى، وإصدارَي الموجّه والنموذج، وكل ادعاء فاشل مع وسمه ونص مصدره، وعدد التشغيلات التي أعادت إنتاجه. ولكلٍّ من الاسترجاع والموجّه والنموذج وبيانات المصدر إصلاح مختلف، فحدّد السبب مع المطورين.

تمرين عملي

ضع الوسوم لادعاءات إجابة مساعد

المطلوب

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

ثم اكتب ثلاثة أسئلة اختبار إضافية للمصدر نفسه — سؤالاً غير قابل للإجابة، وسؤالاً بفرضية خاطئة، وسؤالاً ضابطاً قابلاً للإجابة — مع السلوك المتوقع لكل منها.

المادة
السياق المُعطى (plan-faq v2):
  «إضافة Traveller تمنح 5 GB من بيانات التجوال صالحة لمدة 7 أيام.
   سعرها 49 ريالاً وتعمل في دول مجلس التعاون الخليجي فقط.
   البيانات غير المستخدمة لا تُرحَّل.»

السؤال: كم أحصل من بيانات التجوال في مصر مع Traveller؟

الإجابة قيد الاختبار:
  «تحصل على 5 GB من بيانات التجوال في مصر، صالحة لمدة 30 يوماً، مقابل
   49 ريالاً. ويمكنك تجديدها في أي وقت من التطبيق، والبيانات التي لا
   تستخدمها تُرحَّل إلى إضافتك التالية (plan-faq v2).»
الخطوات
  1. قسّم الإجابة إلى ادعاءات مفردة قابلة للفحص.
  2. ضع لكل ادعاء وسماً: مدعوم أو مناقِض أو غير موجود.
  3. افحص الاستشهاد: هل هو موجود؟ وهل أُعطي للنموذج؟ وهل يدعم ادعاءاته؟
  4. قرّر النجاح أو الفشل، واكتب إجابة مستندة إلى المصدر.
إظهار الإجابة النموذجية
الإجابة النموذجية

الادعاءات: C1 تعمل في مصر — مناقِض (دول مجلس التعاون الخليجي فقط). C2 ⁦5⁩ GB من بيانات التجوال — مدعوم. C3 صالحة لمدة ⁦30⁩ يوماً — مناقِض (⁦7⁩ أيام). C4 سعرها ⁦49⁩ ريالاً — مدعوم. C5 يمكن تجديدها في أي وقت من التطبيق — غير موجود. C6 البيانات غير المستخدمة تُرحَّل — مناقِض.

الاستشهاد موجود وقد أُعطي للنموذج، لكنه يناقض ثلاثة من ادعاءاته، فيجعل الإجابة تبدو متحقَّقاً منها وهي ليست كذلك. النتيجة: فشل، ادعاءان مدعومان من ⁦6⁩.

السؤال نفسه قائم على فرضية خاطئة (أن Traveller تعمل في مصر)، لذا تصحّحها الإجابة المستندة إلى المصدر أولاً: «لا تغطي Traveller مصر: فهي تعمل في دول مجلس التعاون الخليجي فقط، وتمنح فيها ⁦5⁩ GB لمدة ⁦7⁩ أيام مقابل ⁦49⁩ ريالاً، والبيانات غير المستخدمة لا تُرحَّل (plan-faq v2). للتجوال في مصر يُرجى التواصل مع الدعم».

الأسئلة الإضافية. غير قابل للإجابة: «هل توجد إضافة تغطي مصر؟» — يذكر أن المعلومة غير متاحة، ويعرض التواصل مع الدعم، ولا يسمّي باقة. فرضية خاطئة: «لماذا تُرحَّل بيانات Traveller غير المستخدمة؟» — يصحّح الفرضية. سؤال ضابط: «كم مدة صلاحية بيانات Traveller؟» — «⁦7⁩ أيام» مع الاستشهاد بـplan-faq v2.

أسئلة شائعة

هل يمكن لموجّه أفضل أن يقضي على الهلوسة؟

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

ما الفرق بين الاستناد إلى المصادر والصحة؟

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

هل يخبرني اختبار قياس مرجعي عام (Benchmark) بأن مساعدي يهلوس؟

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

هل تكفي درجة أمانة عالية للإصدار؟

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

المراجع

تدرّب بأدوات متقن

التحقق من مستند JSON مقابل مخطط JSON Schema (الكلمات المفتاحية الأساسية في draft-07 / 2019-09 / 2020-12).

JSON والبيانات

التحقق من كل سطر في ملف JSON Lines والإبلاغ عن الأسطر الفاشلة بدقة.

JSON والبيانات

مقارنة مستندي JSON دلالياً وإبراز القيم المضافة والمحذوفة والمتغيرة.

JSON والبيانات

للتعمّق أكثر

تقدّمك في هذا الموضوع

جزء من مسار تعلم ضمان الجودة