هذا المقال للمبتدئين — مفترض إنك بتستخدم LLM (زي Claude أو ChatGPT) في chatbot أو تطبيق، وعايز تفهم ليه أحياناً بيرجّع إجابات تبان مظبوطة وهي غلط، وإزاي تمسك ده قبل ما يوصل للعميل.
لو chatbot الدعم بتاع متجرك بيرد على عميل بـ "سياسة الاسترجاع 14 يوم"، وانت أصلاً مكتوب 30 يوم في كل مكان، انت قدام أشهر مشكلة في الـ LLM: الهلوسة (Hallucination). النموذج اخترع رقم وقدّمه للعميل كأنه حقيقة من سياستك الرسمية. هنا هتفهم ليه ده بيحصل، إزاي تكتشفه في 30 ثانية بـ 22 سطر Python، والـ trade-off اللي بتدفعه مقابل الحماية.
Hallucination في LLM: المشكلة باختصار
الهلوسة هي لما النموذج يولّد نص تبان شكلياً صحيح وثابت لغوياً، لكن المضمون جوّه غلط أو مخترع من العدم. مش زي خطأ syntax — ده خطأ في الحقيقة فقط. والقارئ مش بيقدر يفرّق، لأن النموذج بيرد بنفس النبرة الواثقة لمّا يكون صح ولمّا يكون غلط.
المشكلة دي مش نادرة. تقرير Vectara في 2024 (Hughes Hallucination Evaluation Model) قاس نسبة الهلوسة على مهمة تلخيص النصوص: GPT-4 Turbo بيهلوس في حوالي 3% من الردود، Claude 3.5 Sonnet في 8.4%، والموديلات الأصغر زي Llama 3 8B بتوصل لـ 25% أحياناً.
مثال بسيط (مدخل للمفهوم قبل الشرح العلمي)
تخيّل إنك سألت موظف استقبال في فندق: "مين كان نازل في الجناح 502 الأسبوع اللي فات؟". الموظف المحترم بيرد: "متأسف، المعلومة دي مش معايا". الموظف اللي بيهلوس بيرد: "كان نازل أ. أحمد فاروق من شركة تقنية، 3 ليالٍ، دفع كاش". الاتنين بيردوا بنفس الثقة، لكن التاني بيخترع تفاصيل بدل ما يقول "مش عارف".
الـ LLM شغّال بنفس المنطق. هو مدرَّب يكمّل النص بأعلى احتمال لغوي، مش يفرز بين معلومة موجودة عنده ومعلومة مش موجودة. لما تسأله سؤال إجابته مش موجودة في الـ tokens اللي اتدرّب عليها، بيختار أقرب نمط لغوي يبان مناسب — حتى لو ده يعني اختراع رقم أو اسم.
ليه ده بيحصل (الشرح العلمي بدون حشو)
الـ LLM في الأساس هو probability distribution فوق tokens. لكل token بيكتبه، النموذج بيحسب: إيه أكثر token محتمل في الموضع ده بناءً على الـ context؟ مفيش في المعمارية نفسها حقل اسمه "أنا متأكد" أو "ده موجود فعلاً". ورقة Ji et al. 2023 (ACM Computing Surveys, vol. 55) قسّمت الهلوسة لنوعين أساسيين:
- Intrinsic Hallucination: النموذج يناقض النص المعطى له في الـ prompt. تقوله "اقرأ هذا العقد ولخّصه" فيلخّصه بمعلومات مش موجودة في العقد أصلاً.
- Extrinsic Hallucination: النموذج يضيف معلومات خارج الـ prompt مش ممكن نتأكد منها من السياق. سؤال زي "متى وُلد فلان؟" ممكن يجاوب بتاريخ صح وممكن غلط.
السبب الجذري بسيط: النموذج بيحاول يكمّل النص بطريقة طبيعية، مش بيحاول يقول الحقيقة. الحقيقة بتطلع كـ side effect لمّا الـ training data كانت دقيقة، لكنها مش هدف معماري داخل الـ Transformer.
3 أنواع شائعة للهلوسة في تطبيقاتك الفعلية
- اختراع أرقام: "سعر الشحن 25 جنيه" (الصح 30). النموذج بياخد رقم قريب من السياق العام لكن مش من بياناتك.