يا جماعة الخير، السلام عليكم ورحمة الله وبركاته. معكم أخوكم أبو عمر.
قبل فترة، يمكن سنة وشوي، اتصل عليّ صديق عزيز عنده متجر إلكتروني صغير ببيع فيه منتجات بلدية، زيت زيتون أصلي، زعتر، جبنة نابلسية، وشغلات بتفتح النفس. كان بده يضيف “شات بوت” ذكي للمتجر عشان يساعد الزباين ويرد على استفساراتهم بسرعة، خصوصاً إنه عايش برا البلد والتوقيت مختلف. قلبه كان حاسه إنه هالتكنولوجيا رح تريحه وتزيد مبيعاته.
قلتله: “تكرم عيونك يا أبو فلان، الموضوع عندي”.
بكل حماس، استخدمت واحد من النماذج اللغوية الكبيرة (LLM) اللي كانت طالعة جديد وقتها، ودرّبته شوي على بيانات المنتجات ووصفها. في البداية، كانت النتائج مبهرة. البوت كان يرد بلباقة، ويوصف المنتجات كأنه شاعر، ويقترح وصفات أكل كمان! صاحبي كان طاير من الفرحة، وأنا كنت حاسس حالي “أبو العرّيف” في عالم الذكاء الاصطناعي.
بعد أسبوع، رن عليّ صاحبي وصوته برتجف. “يا أبو عمر الحقني! البوت بدو يخرّب بيتي!”. قلتله خير يا زلمة شو صاير؟ حكالي إنه في زبون سأل البوت عن سياسة الإرجاع لمنتج معين (ما كان له سياسة إرجاع واضحة على الموقع). البوت، وبكل ثقة، اخترع سياسة من عنده: “بالتأكيد! يمكنك إرجاع المنتج خلال 30 يوماً واسترداد كامل المبلغ، وحتى يمكنك الاحتفاظ بالمنتج كهدية منا لثقتك بنا!”.
تخيلوا الموقف! البوت مش بس كذب، كذب بثقة وكرم حاتمي على حساب صاحبي. هذه الحادثة، اللي بنسميها في عالمنا “الهلوسة الواثقة” (Confident Hallucination)، كانت جرس إنذار قوي. أدركت وقتها أن الثقة اللي بنبنيها مع المستخدمين هشة جداً، وأن كذبة واحدة من نظام ذكي ممكن تهدم كل شي. من هنا بدأت رحلتي الحقيقية للبحث عن حل، حل يعيد للنماذج عقلها، ويعيد للمستخدم ثقته. هذا الحل كان اسمه: الجيل المعزز بالاسترجاع (RAG).
ما هي “هلوسة” النماذج اللغوية ولماذا هي كارثية؟
قبل ما نغوص في الحل، خلينا نفهم المشكلة من جذورها. النموذج اللغوي الكبير، بكل بساطة، هو آلة تنبؤ بالكلمات على مستوى خارق. هو لا “يفهم” العالم كما نفهمه نحن، بل تعلم من خلال قراءة كميات هائلة من نصوص الإنترنت كيف تبدو الجملة الصحيحة والمقنعة.
المشكلة تكمن عندما تسأله عن شيء غير موجود في بيانات تدريبه الضخمة، أو عن معلومة حديثة جداً، أو عن بيانات خاصة بشركتك (مثل سياسة الإرجاع في متجر صاحبي). هنا، النموذج يقع في حيرة: هل يقول “لا أعرف” (وهو أمر لا يجيده غالباً)، أم يحاول “تأليف” إجابة تبدو منطقية بناءً على مليارات الجمل التي قرأها؟ للأسف، يختار الخيار الثاني في كثير من الأحيان.
هذه “الهلوسة” كارثية لأنها:
- تهدم الثقة: المستخدم الذي يكتشف أن البوت يكذب عليه لن يعود لاستخدامه أبداً.
- تسبب خسائر مادية: كما رأينا في قصة صاحبي، يمكن أن تؤدي إلى التزامات مالية غير محسوبة.
- تنشر معلومات مضللة: في سياقات أكثر حساسية (كالطب أو القانون)، يمكن أن تكون العواقب وخيمة.
المحاولات الأولى: الضبط الدقيق (Fine-Tuning) لم يكن كافياً
في البداية، كان الحل الذي يفكر فيه الجميع هو “الضبط الدقيق” أو Fine-Tuning. الفكرة هي أن نأخذ النموذج اللغوي العملاق ونعيد تدريبه على مجموعة بياناتنا الخاصة (وثائق الشركة، كتالوج المنتجات، الأسئلة الشائعة، إلخ).
هذا الأسلوب له فوائده، فهو يجعل النموذج يتحدث “بلهجة” شركتك ويفهم مصطلحاتك الخاصة. لكنه لم يحل مشكلة الهلوسة جذرياً للأسباب التالية:
- مكلف ويستهلك الوقت: عملية إعادة التدريب تحتاج إلى موارد حاسوبية كبيرة ووقت طويل.
- معلوماته ثابتة (Static): إذا أضفت منتجاً جديداً أو غيرت سياسة ما، عليك إعادة عملية الضبط الدقيق من جديد. النموذج لا يتعلم بشكل حي ومباشر.
- لا يمنع الهلوسة تماماً: قد يقلل منها، لكنه لا يقضي عليها. النموذج لا يزال يعتمد على “ذاكرته” الداخلية المشوشة أحياناً.
كنا كمن يحاول تعليم شخص كل كتب العالم عن ظهر قلب، بدلاً من تعليمه كيف يقرأ ويستخدم المكتبة عند الحاجة. وهنا يأتي دور المنقذ.
دخول المنقذ: الجيل المعزز بالاسترجاع (RAG)
RAG هي اختصار لـ Retrieval-Augmented Generation. الاسم قد يبدو معقداً، لكن الفكرة خلفه بسيطة وعبقرية. بدلاً من أن نطلب من النموذج اللغوي أن يجيب من “ذاكرته” فقط، نحن نعطيه “كتاباً مفتوحاً” ليبحث فيه عن الإجابة الصحيحة قبل أن يتكلم.
تخيل أن النموذج اللغوي هو طالب ذكي جداً في امتحان. بدون RAG، هو يعتمد على ما حفظه فقط. مع RAG، نحن نعطيه الم教科書 والمراجع ونقول له: “اقرأ هذا الفصل المتعلق بالسؤال، ثم أجب”. النتيجة؟ إجابات دقيقة، مستندة إلى مصدر موثوق، وخالية من الهلوسة.
كيف يعمل RAG خطوة بخطوة؟
لنعد إلى مثال متجر صاحبي. هذه هي الخطوات العملية التي اتبعناها لتطبيق نظام RAG وإنقاذ الموقف:
الخطوة الأولى: بناء قاعدة المعرفة (The Knowledge Base)
أولاً، جمعنا كل المستندات والمعلومات التي نريد أن يعتمد عليها البوت. هذا شمل:
- وصف كل المنتجات.
- الأسعار وتفاصيل الشحن.
- سياسات الإرجاع والاستبدال (الجديدة والواضحة!).
- الأسئلة الشائعة التي يطرحها الزبائن.
بعد ذلك، قمنا بتقطيع هذه المستندات إلى “قطع” أو “chunks” صغيرة. هذه الخطوة مهمة جداً، لأننا لاحقاً سنبحث عن القطع الأكثر صلة بسؤال المستخدم.
نصيحة من أبو عمر: حجم القطع (Chunk size) هو فن وعلم. قطع كبيرة جداً قد تحتوي على معلومات غير ضرورية “تشوش” على النموذج. قطع صغيرة جداً قد تفقد السياق. ابدأ بحجم متوسط (مثلاً 200-400 كلمة) مع تداخل (overlap) بسيط بين القطع لضمان عدم ضياع المعنى عند حواف التقطيع.
الخطوة الثانية: تحويل المعرفة إلى أرقام (Embeddings)
الحواسيب لا تفهم النصوص، بل تفهم الأرقام. لذلك، نستخدم نموذجاً متخصصاً (يُسمى Embedding Model) لتحويل كل “قطعة” نصية إلى متجه رياضي (Vector) – وهو عبارة عن قائمة طويلة من الأرقام تمثل المعنى الدلالي لتلك القطعة.
الفكرة هنا أن القطع النصية ذات المعاني المتقاربة سيكون لها متجهات رياضية متقاربة في الفضاء الرقمي.
الخطوة الثالثة: تخزين المتجهات (Vector Store)
نقوم بتخزين كل هذه المتجهات، مع ربط كل متجه بالقطعة النصية الأصلية التي جاء منها، في قاعدة بيانات متخصصة تسمى “قاعدة بيانات المتجهات” (Vector Database). أمثلة عليها: ChromaDB, Pinecone, FAISS.
هذه القاعدة مصممة خصيصاً للبحث السريع عن المتجهات الأكثر تشابهاً مع متجه معين.
الخطوة الرابعة والخامسة: الاستعلام، الاسترجاع، ثم التوليد!
هنا يحدث السحر الحقيقي عند وصول سؤال من مستخدم، مثلاً: “ما هي سياسة إرجاع زيت الزيتون؟”
- الاستعلام (Query): يتم تحويل سؤال المستخدم أيضاً إلى متجه رياضي بنفس الطريقة.
- الاسترجاع (Retrieve): نأخذ متجه السؤال ونبحث في قاعدة بيانات المتجهات عن أكثر 3 أو 5 متجهات (قطع نصية) تشابهاً معه. في مثالنا، سيعثر النظام على القطعة التي تحتوي على نص سياسة الإرجاع.
- التعزيز والتوليد (Augment & Generate): الآن، بدلاً من إرسال السؤال للنموذج اللغوي مباشرة، نقوم ببناء “موجه” (Prompt) جديد ومحسن. هذا الموجه يبدو كالتالي:
"أنت مساعد خدمة عملاء لمتجر يبيع منتجات بلدية.
مهمتك هي الإجابة على سؤال المستخدم بالاعتماد **فقط** على المعلومات الموجودة في قسم 'السياق' أدناه.
إذا كانت الإجابة غير موجودة في السياق، قل بوضوح 'لا أملك معلومات كافية للإجابة على هذا السؤال' ولا تحاول اختراع إجابة.
---
السياق:
[هنا نلصق القطع النصية التي تم استرجاعها من قاعدة البيانات، مثلاً: 'سياسة الإرجاع لدينا تسمح بإعادة المنتجات غير المفتوحة خلال 14 يوماً من تاريخ الشراء...']
---
سؤال المستخدم:
ما هي سياسة إرجاع زيت الزيتون؟
الإجابة:"
عندما يستقبل النموذج اللغوي هذا الموجه، فإنه لا يعود بحاجة للاعتماد على ذاكرته. الإجابة الصحيحة أمامه مباشرة في “السياق”. سيقوم ببساطة بصياغة إجابة طبيعية بناءً على هذه المعلومات الموثوقة.
ولو سأل المستخدم عن شيء غير موجود، مثل “هل تبيعون سيارات؟”، فإن عملية الاسترجاع لن تجد أي قطع نصية ذات صلة. وبالتالي، سيحتوي السياق على معلومات غير مرتبطة أو سيكون فارغاً، مما يدفع النموذج لاتباع التعليمات والإجابة بصدق: “لا أملك معلومات كافية للإجابة على هذا السؤال”.
وهكذا، قضينا على الهلوسة. حولنا النموذج من “كاذب واثق” إلى “باحث دقيق”.
نصائح أبو عمر الذهبية لتطبيق RAG ناجح
من خلال التجربة والخطأ، تعلمت بعض الدروس التي أود مشاركتها معكم:
- جودة البيانات هي الملك: “Garbage in, garbage out”. نظافة ودقة وصحة مستنداتك في قاعدة المعرفة هي أهم عامل لنجاح نظام RAG.
- هندسة الموجهات لا تزال حاسمة: الطريقة التي تصيغ بها التعليمات للنموذج (مثل “اعتمد فقط على السياق”) لها تأثير كبير على جودة الإجابة النهائية.
- المُسترجِع (Retriever) لا يقل أهمية عن المُوَلِّد (Generator): إذا فشلت عملية البحث في إيجاد المستندات الصحيحة، فلن يتمكن أفضل نموذج لغوي في العالم من إعطاء إجابة صحيحة. استثمر في تحسين عملية الاسترجاع (يمكنك مثلاً استخدام تقنيات البحث الهجين Hybrid Search التي تدمج البحث بالكلمات المفتاحية مع البحث الدلالي).
- ابدأ بسيطاً ثم توسع: لا تحتاج إلى بنية تحتية معقدة من اليوم الأول. يمكنك البدء باستخدام مكتبات مثل LangChain أو LlamaIndex مع قاعدة بيانات متجهات محلية مثل ChromaDB على جهازك، وعندما يثبت المفهوم، يمكنك الانتقال إلى حلول سحابية أكثر قوة.
خلاصة القول: من الهذيان إلى الثقة 😉
كانت رحلة صعبة لكنها مجزية. الانتقال من نماذج لغوية تهذي بثقة إلى أنظمة ذكية تستند إلى حقائق موثوقة هو نقلة نوعية في كيفية بناء تطبيقات الذكاء الاصطناعي. تقنية RAG ليست مجرد أداة، بل هي فلسفة جديدة في التصميم: فلسفة “التأريض” (Grounding)، أي ربط قدرات اللغة الهائلة للنماذج بأرض الواقع الصلبة المتمثلة في بياناتنا وحقائقنا.
بفضل RAG، استعاد بوت صاحبي عافيته، والأهم من ذلك، استعاد ثقة الزبائن. وأنا، أبو عمر، تعلمت درساً لن أنساه: في عالم الذكاء الاصطناعي، الثقة ليست شيئاً تحصل عليه، بل هي شيء تبنيه، سطر كود بعد سطر، ووثيقة دقيقة بعد وثيقة دقيقة.
فلا تخافوا من هلوسات نماذجكم، بل اعتبروها فرصة للتعلم والبناء بشكل أفضل. والله الموفق.