لو سألت Claude عن سياسة الإجازات في شركتك، هيخترع رد. مش لأنه كذاب، لأنه ما يعرفش الشركة دي أصلاً. RAG بيحل المشكلة دي بفكرة سطر واحد: قبل ما تسأل النموذج، هاتله بنفسك الإجابة من ملفاتك.
ما هي RAG؟ Retrieval-Augmented Generation بالعربي
RAG اختصار لـ Retrieval-Augmented Generation — التوليد المعزَّز بالاسترجاع. الاسم معقد، الفكرة بسيطة جداً ولو فهمتها مرة واحدة هتفهم كل تطبيقات الـ AI الحديثة في الشركات.
المشكلة باختصار
أي نموذج لغوي زي Claude أو GPT اتدرّب على بيانات حتى تاريخ معين، وما يعرفش:
- ملفات شركتك الداخلية ووثائق المنتج بتاعك.
- مقالات ودراسات اتنشرت بعد تاريخ تدريبه.
- قاعدة بيانات العملاء أو السجل التشغيلي.
- تعديلات حصلت في القانون أو السياسة الأسبوع اللي فات.
لما تسأله عن أي حاجة من دول، عنده خياران: يقول "ما أعرفش"، أو يخترع إجابة تبان معقولة. للأسف، السلوك الافتراضي بيميل للاختراع. ده اللي اسمه Hallucination.
مثال للمبتدئ: أمين مكتبة جدتك
تخيل معايا. عندك أمين مكتبة جامعي قرأ ملايين الكتب من زمان (ده Claude). جاءلك سؤال عن وصفة كيكة جدتك بالظبط. هو ممكن يجاوبك من خبرته العامة بكيك عادي، لكن مش هيعرف وصفة جدتك المخصوصة.
الحل: قبل ما يجاوب، تقوله "استنى لحظة، هات دفتر وصفات جدتي الأول، افتح الصفحة المتعلقة بالكيك، اقرأها، وبعد كده جاوب". ده بالظبط اللي RAG بتعمله. بياخد سؤالك، يبحث في ملفاتك عن الجزء المتعلق بالسؤال، يضيف الجزء ده للسؤال، وبعدين يبعت الكل لـ LLM.
الفكرة الأساسية: RAG في ثلاث خطوات
- Retrieval (الاسترجاع): ابحث في ملفاتك عن المحتوى المتعلق بالسؤال.
- Augmentation (التعزيز): ضيف المحتوى ده لسؤال المستخدم في نفس الـ prompt.
- Generation (التوليد): ابعت الـ prompt المعزَّز للموديل وخلّيه يجاوب من السياق ده فقط.
النتيجة: الموديل بيجاوب من معلومات حقيقية في ملفاتك، مش من ذاكرته العامة. ولو السؤال خارج نطاق ملفاتك، بتقوله صراحة "لو الإجابة مش في السياق، قول مش موجود"، فبيقولها بدل ما يخترع.
التعريف العلمي الدقيق
RAG هي معمارية بتدمج بين نظامين منفصلين كانوا قبل كده بيشتغلوا لوحدهم:
- Retriever: نظام بحث (في الإنتاج عادة Vector Database زي pgvector أو Pinecone أو Qdrant) بيخزّن ملفاتك على شكل Embeddings — متّجهات أرقام بتمثل المعنى الدلالي للنص. لما يجي سؤال، بيتحوّل لمتّجه برضه ويتقارن بأقرب الفقرات في الفضاء الدلالي.