ما هو RAG؟ التوليد المعزَّز بالاسترجاع بشرح مبسّط
RAG (التوليد المعزَّز بالاسترجاع) طريقة تجعل نموذج الذكاء الاصطناعي يجيب عن الأسئلة باستخدام معلوماتك الخاصة. حين يطرح أحدهم سؤالاً، يبحث تطبيقك أولاً في مستنداتك عن المقاطع الأكثر صلة، ثم يمرر تلك المقاطع إلى النموذج مع السؤال. يكتب النموذج إجابته من ذلك النص، بدلاً من الاعتماد فقط على ما تعلمه صدفةً أثناء التدريب.
لماذا يهم RAG عند البناء بالذكاء الاصطناعي
يعرف نموذج اللغة الكبير الكثير عن العالم بشكل عام، لكنه لا يعرف شيئاً عن عملك: أسعارك، وسياساتك، ودليل منتجك، وتذاكر الدعم في الأسبوع الماضي. كما أن لديه تاريخ انقطاع للتدريب، فلا يعرف شيئاً حديثاً. وإذا سألته مع ذلك، فقد ينتج إجابة واثقة ومقنعة وخاطئة.
لديك ثلاثة خيارات رئيسية لحل ذلك:
| الأسلوب | ماذا يفعل | مناسب لـ |
|---|---|---|
| لصق كل شيء في الأمر | إرسال كل مستنداتك مع كل سؤال | كميات صغيرة من النص، بضع صفحات |
| RAG | البحث في مستنداتك وإرسال الأجزاء ذات الصلة فقط | مجموعات أكبر أو متغيرة: مراكز المساعدة، والأدلة، والملاحظات |
| الضبط الدقيق (Fine-tuning) | تدريب النموذج أكثر على أمثلة | النبرة والشكل والمهام المتكررة، لا الحقائق المتغيرة |
النماذج الحديثة تقبل أوامر طويلة، لذلك فالخيار الأول غالباً مناسب لأسئلة شائعة قصيرة. أما RAG فيصبح مفيداً حين يكون لديك نص أكثر مما تريد إرساله في كل مرة، لأن كل كلمة ترسلها تكلّف مالاً ووقتاً (راجع كيف تُحتسب تكلفة واجهات LLM).
وإذا كنت تبني ميزة "تحدّث مع مستنداتنا" أو مساعداً للدعم أو أداة معرفة داخلية، فأنت تبني على الأرجح شكلاً من أشكال RAG.
تشبيه من الحياة اليومية
تخيّل امتحاناً بالكتاب المفتوح. الطالب الذي يجيب من الذاكرة قد يخطئ أو يتظاهر بالمعرفة. أما الطالب المسموح له بتقليب الصفحات الصحيحة أولاً، ثم قراءتها والإجابة، فهو أكثر موثوقية بكثير، بشرط أن يجد الصفحات الصحيحة.
- الطالب هو نموذج اللغة.
- الكتاب المدرسي هو مستنداتك.
- تقليب الصفحات الصحيحة هو الاسترجاع (Retrieval).
- كتابة الإجابة من تلك الصفحات هو التوليد (Generation).
RAG هو نسخة الكتاب المفتوح. وكما في الامتحان، تعتمد جودة الإجابة كثيراً على ما إذا كان قد تم العثور على الصفحات الصحيحة.
كيف يعمل RAG خطوة بخطوة
يتكون إعداد RAG النموذجي من مرحلتين.
تجهيز مستنداتك (يتم مسبقاً):
- جمع المواد المصدرية: مقالات المساعدة، وملفات PDF، والسياسات، وبيانات المنتجات.
- التقطيع (Chunking): تقسيم المستندات الطويلة إلى قطع أصغر، غالباً من بضع فقرات لكل قطعة، حتى يتمكن البحث من إرجاع الجزء ذي الصلة فقط.
- التضمين (Embedding) لكل قطعة: إرسالها إلى نموذج تضمين، يحوّل النص إلى تضمين، وهو قائمة طويلة من الأرقام تلتقط معناه. النصوص التي تتحدث عن أشياء متشابهة تحصل على أرقام متشابهة.
- التخزين: حفظ القطع وتضميناتها في قاعدة بيانات تستطيع البحث بالتشابه، وتسمى غالباً قاعدة بيانات متجهات (Vector Database) أو فهرس متجهات.
الإجابة عن سؤال (تتم في كل مرة):
- تضمين السؤال باستخدام نموذج التضمين نفسه.
- الاسترجاع: اختيار القطع التي تكون تضميناتها الأقرب إلى تضمين السؤال، مثلاً أفضل خمس قطع.
- بناء الأمر: التعليمات، والقطع المسترجعة، والسؤال.
- التوليد: يكتب نموذج اللغة الإجابة بناءً على تلك القطع، ويفضّل أن يذكر أي القطع استخدم.
البحث بحسب المعنى هو ما يجعل هذا ينجح: فالسؤال عن "استرداد أموالي" يمكن أن يجد قطعة بعنوان "سياسة الاسترداد" رغم أنهما لا يتشاركان أي كلمة.
مثال عملي: مساعد الدعم لصالة رياضية
لنفترض أن صالة رياضية لديها 40 مقالة مساعدة وتريد مساعداً للدردشة على موقعها. يسأل أحد الأعضاء: "هل يمكنني إيقاف عضويتي مؤقتاً أثناء السفر؟"
يُضمّن التطبيق السؤال ويسترجع القطع الثلاث الأقرب. وإحدى القطع تقول:
Membership freeze: Members on monthly plans can freeze their
membership for up to 2 months per year. Request it at the front
desk or in the app at least 7 days before the freeze starts.
ثم يُرسل إلى النموذج أمر يشبه هذا:
You are the help assistant for Northside Gym.
Answer only from the sources below. If the answer isn't in them,
say you don't know and suggest contacting the front desk.
Mention which source you used.
[Source 1: Membership freeze] Members on monthly plans can freeze...
[Source 2: Cancelling your membership] ...
[Source 3: Guest passes] ...
Question: Can I pause my membership while I'm travelling?
ويجيب النموذج: "نعم، في الخطة الشهرية يمكنك تجميد عضويتك لمدة تصل إلى شهرين في السنة. اطلب ذلك من مكتب الاستقبال أو من التطبيق قبل 7 أيام على الأقل من بدء التجميد (المصدر: تجميد العضوية)."
لم تُعد الصالة تدريب أي شيء. وعندما تغيّر سياسة التجميد، تحدّث المقالة، فيعيد التطبيق تضمين تلك القطعة، وتعكس الإجابة التالية التغيير.
شرح المصطلحات
| المصطلح | المعنى |
|---|---|
| LLM | نموذج اللغة الكبير، وهو الذكاء الاصطناعي الذي يكتب الإجابة. راجع ما هو LLM. |
| Embedding (التضمين) | قائمة أرقام تمثل معنى جزء من النص. |
| Embedding model (نموذج التضمين) | نموذج ينتج التضمينات، وغالباً ما يكون منفصلاً عن نموذج الدردشة وأرخص منه بكثير. |
| Chunk (قطعة) | جزء من المستند بحجم يسمح باسترجاعه بشكل مستقل. |
| Vector database / vector search (قاعدة متجهات / بحث متجهات) | تخزين يجد العناصر ذات التضمينات المتشابهة. بعض قواعد البيانات العادية تقدمه أيضاً، مثل Postgres عبر إضافة pgvector. |
| Top-k | عدد القطع المسترجعة لكل سؤال. |
| Hybrid search (البحث الهجين) | الجمع بين البحث بالمعنى والبحث بالكلمات المفتاحية العادي، وهو مفيد للمصطلحات الدقيقة مثل رموز المنتجات. |
| Context window (نافذة السياق) | أقصى كمية نص يستطيع النموذج أخذها في طلب واحد. |
| Grounding / citations (التأريض / الاستشهادات) | ربط الإجابة بمصادر محددة مسترجعة وعرضها. |
مفاهيم خاطئة شائعة
- "RAG يدرّب النموذج على بياناتي." لا يفعل. لا يتغير النموذج على الإطلاق، بل يقرأ نصاً إضافياً وقت السؤال.
- "RAG يعني عدم وجود هلوسة." يعني هلوسة أقل. فإذا فاتت عملية الاسترجاع القطعة الصحيحة، أو لم تكن الإجابة في مستنداتك، فقد يخمّن النموذج. اطلب منه أن يقول "لا أعرف" واختبره بأسئلة تعرف إجاباتها.
- "أحتاج إلى قاعدة متجهات خاصة." غالباً لا. فبالنسبة لكميات بيانات متواضعة، قد تكفي إضافة متجهات إلى قاعدة البيانات التي تملكها أصلاً، أو حتى البحث بالكلمات المفتاحية البسيط.
- "القطع الأكبر أفضل." إن كانت كبيرة جداً أرسلت نصاً كثيراً غير ذي صلة (تكلفة أكبر وارتباك أكثر)، وإن كانت صغيرة جداً فقدت القطعة السياق الذي جعلها مفيدة. توقّع أن تحتاج إلى ضبطها.
- "فقط ارفع كل شيء." المستندات القديمة أو المكررة أو المتناقضة تنتج إجابات متناقضة. وتنظيف المواد المصدرية غالباً ما يكون أكبر تحسين يمكنك القيام به.
- "أي شخص يستطيع رؤية أي مستند." هذا صحيح فقط إن بنيته بهذه الطريقة. فإذا كانت بعض المستندات خاصة بمستخدمين محددين، يجب أن يُصفّي البحث نفسه بحسب من يسأل، وإلا فقد يقتبس المساعد بيانات عميل لعميل آخر.
التكلفة
تتكلف ميزة RAG عادةً ثلاثة بنود مستمرة: تضمين مستنداتك (صغير، ومعظمه لمرة واحدة)، وتضمين كل سؤال (ضئيل جداً)، واستدعاء نموذج اللغة (وهو التكلفة الرئيسية، وتزداد مع عدد القطع التي ترسلها). إضافة إلى التخزين في قاعدة بياناتك. يحاسبك مزود الذكاء الاصطناعي على هذه التكاليف في حسابك الخاص، فاضبط حد الإنفاق لديه.
ماذا تطلب من أداة البناء بالذكاء الاصطناعي
- "قبل بناء RAG، تحقق: هل محتوانا صغير بما يكفي لوضعه في الأمر مباشرة؟"
- "قسّم مقالات المساعدة إلى قطع من بضع فقرات، واحتفظ بعنوان كل قطعة ورابط مصدرها، وخزّن التضمينات في قاعدة بياناتنا."
- "استخدم بحثاً هجيناً، يجمع بين المعنى والكلمات المفتاحية، حتى تتطابق رموز المنتجات."
- "أخبر النموذج أن يجيب فقط من المصادر المسترجعة، وأن يقول حين لا يعرف، وأن يعرض المصادر تحت كل إجابة."
- "ابحث فقط في المستندات التي يُسمح للمستخدم المسجّل بالاطلاع عليها."
- "أعد تضمين المستند تلقائياً كلما تم تحريره."
- "احتفظ بمفتاح مزود الذكاء الاصطناعي على الخادم في خانة أسرار، لا في المتصفح أبداً."
- "سجّل كل سؤال والقطع المسترجعة والإجابة حتى أراجع الإجابات السيئة."
RAG في Mythex
لا يتضمن Mythex منتج قاعدة معرفة أو RAG جاهزاً. ما يفعله هو كتابة الشيفرة الخاصة به داخل تطبيقك: تحضر مستنداتك ومفتاح مزود الذكاء الاصطناعي الخاص بك، المحفوظ كـسر للمشروع، ويبني الوكيل جزئي الاسترجاع والدردشة، مستخدماً قاعدة بيانات Postgres الخاصة بالمشروع للتخزين. تُحتسب استخدامات المزوّد على حسابك لدى المزوّد، لا على أرصدة Mythex. وتقترح الوثائق البدء بميزة ذكاء اصطناعي بسيطة واحدة، ثم إضافة RAG بعد أن تعمل، راجع بناء تطبيق ذكاء اصطناعي، وأدلتنا حول بناء تطبيق دردشة بالذكاء الاصطناعي وإضافة ميزات الذكاء الاصطناعي إلى تطبيقك.
الأسئلة
ما هو RAG ببساطة؟
RAG (التوليد المعزَّز بالاسترجاع) طريقة تجعل نموذج الذكاء الاصطناعي يجيب من معلوماتك أنت. قبل أن يرد النموذج، يبحث تطبيقك في مستنداتك عن المقاطع الأكثر صلة بالسؤال ويضمّنها في الأمر، فتكون الإجابة مبنية على ذلك النص، لا على ما تعلمه النموذج فقط أثناء التدريب.
هل يدرّب RAG الذكاء الاصطناعي على بياناتي؟
لا. لا يغيّر RAG النموذج أبداً. بل يبحث عن النص المناسب في لحظة طرح السؤال ويمرره إلى النموذج مع السؤال. وعند تحديث مستند، يمكن للإجابة التالية أن تستخدم النسخة الجديدة فوراً.
هل RAG هو نفسه الضبط الدقيق (Fine-tuning)؟
لا. الضبط الدقيق يغيّر سلوك النموذج بتدريبه أكثر على أمثلة، وهو أبطأ وأنسب للأسلوب أو الشكل. أما RAG فيمنح النموذج حقائق يقرؤها وقت السؤال، وهو أنسب للمعرفة التي تتغير أو التي يجب أن تُنقل بدقة.
هل يوقف RAG هلوسة الذكاء الاصطناعي؟
يقلّلها لكنه لا يلغيها. فإذا وجد البحث مقاطع خاطئة، أو لم تكن الإجابة موجودة في مستنداتك، فقد يخمّن النموذج. وتطلب تطبيقات RAG الجيدة من النموذج أن يقول حين لا يعرف، وأن يعرض المصادر التي استخدمها.