متاح --:--محلي ابدأ مشروعًا
→ كل المقالات

كيف تبني منظومة RAG تعمل في بيئة الإنتاج، لا في العرض التجريبي فقط

دليل عملي لبناء منظومة RAG للإنتاج: قراءة المستندات، والتقطيع، والبحث الهجين، وإعادة الترتيب، وذكر المصادر، والتقييم، والصلاحيات، والأخطاء الشائعة.

  • RAG
  • النماذج اللغوية
  • هندسة الذكاء الاصطناعي

العرض التجريبي لـRAG يأخذ عصرًا واحدًا. تحمّل بضعة ملفات PDF، وتحسب التضمينات، وتطرح سؤالًا، فتأتي إجابة جيدة. ثم يصل المستخدمون الحقيقيون بأسئلة حقيقية، فتبدأ الإجابات بالانحراف بطرق لم يُظهرها العرض أبدًا.

التوليد المعزز بالاسترجاع (RAG) بسيط من حيث المبدأ: ابحث في مستنداتك، وأعطِ المقاطع المناسبة للنموذج، ودعه يجيب منها. أما في الإنتاج، فكل الإخفاقات تقريبًا تقع في البحث لا في النموذج. إليك خطوة بخطوة كيف أبني منظومة RAG تصمد.

منظومة RAG في لمحة

  1. الإدخال: استخراج المستندات من أماكنها وتحويلها إلى نص نظيف.
  2. التقطيع: تقسيمها إلى مقاطع بالحجم المناسب للبحث.
  3. الفهرسة: إنشاء التضمينات وفهرس للكلمات المفتاحية.
  4. الاسترجاع: إيجاد المقاطع المرشحة لكل سؤال بالبحث الهجين.
  5. إعادة الترتيب: وضع أفضل المرشحين في المقدمة.
  6. التوليد: الإجابة من المقاطع مع ذكر المصادر.
  7. التقييم: قياس كل ما سبق على أسئلة حقيقية.

إن لم تكن متأكدًا أن RAG هو الأداة المناسبة أصلًا، فابدأ بمقال RAG أم الضبط الدقيق.

1. الإدخال: ما يدخل يحدد ما يخرج

معظم الجودة تُحسم هنا. ملفات PDF هي المشكلة المعتادة: تخطيطات بأعمدة متعددة، ورؤوس وتذييلات تتكرر في كل صفحة، وجداول تتحول إلى كلمات مبعثرة، وصفحات ممسوحة ضوئيًا تحتاج إلى التعرف الضوئي على الحروف (OCR).

ما أفعله:

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

2. التقطيع: حسب المعنى لا حسب عدد الأحرف

المقاطع الكبيرة جدًا تدفن الإجابة في الضجيج. والصغيرة جدًا تفقد السياق الذي يمنحها معناها.

  • قسّم أولًا حسب بنية المستند نفسه: الأقسام ثم الفقرات.
  • اترك تداخلًا بسيطًا بين المقاطع المتجاورة حتى لا تضيع جملة قُطعت عند الحد.
  • أضف إلى بداية كل مقطع عنوان المستند وعنوان القسم. مقطع يقول "تُلغى الرسوم بعد 30 يومًا" لا قيمة له إن لم يعرف البحث عن أي منتج يتحدث.

لا يوجد حجم مثالي للجميع. جرّب عدة أحجام على مجموعة التقييم واحتفظ بما يسترجع أفضل.

3. البحث الهجين: التضمينات والكلمات المفتاحية معًا

البحث المتجهي (التضمينات) يجد مقاطع قريبة المعنى حتى عندما تختلف الكلمات. لكنه ضعيف مع المصطلحات الدقيقة: رموز المنتجات والأسماء ورسائل الأخطاء وأرقام المواد القانونية. والبحث بالكلمات المفتاحية (مثل BM25) عكسه تمامًا.

استخدم الاثنين. مرّر السؤال عبر البحث المتجهي والبحث بالكلمات، ثم ادمج النتائج، مثلًا بطريقة دمج الرتب المتبادلة (reciprocal rank fusion). ومن تجربتي، هذا التغيير وحده يصلح إجابات سيئة أكثر مما يصلحه تبديل نموذج التضمينات.

وأضف مرشحات على البيانات الوصفية: اللغة ونوع المستند والفترة الزمنية، وقبل كل شيء الصلاحيات.

4. إعادة الترتيب: أفضل مقطع أولًا

البحث في المرحلة الأولى مصمم للسرعة ويعطي قائمة تقريبية. أما نموذج إعادة الترتيب (reranker)، وهو عادة نموذج cross-encoder، فيقرأ السؤال وكل مرشح معًا ويقيّم مدى تطابقهما. استرجع بضع عشرات من المرشحين، وأعد ترتيبهم، واحتفظ بالأفضل فقط للطلب.

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

5. التوليد: أجب من المصادر واذكرها

يجب أن تطلب التعليمات من النموذج أن:

  • يجيب فقط من المقاطع المقدَّمة،
  • يقول بوضوح عندما لا تحتوي المقاطع على الإجابة، بدل التخمين،
  • يذكر المقطع الذي جاءت منه كل معلومة.

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

6. التقييم: الخطوة التي يتجاوزها الجميع

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

ثم قِس الاسترجاع والتوليد كلًا على حدة:

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

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

7. الصلاحيات وحداثة البيانات

أمران لا تتعامل معهما العروض التجريبية أبدًا:

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

الأخطاء الشائعة

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

RAG متعدد اللغات: العربية والفرنسية

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

RAG خاص

يمكن لمنظومة RAG أن تعمل بالكامل على خوادمك: نموذج تضمينات محلي، وفهرس محلي، ونموذج لغوي محلي. وللمستندات السرية، كثيرًا ما يكون هذا أبسط جواب عن سؤال "أين تذهب بياناتنا؟". المزيد في الذكاء الاصطناعي الخاص وتشغيل النماذج اللغوية داخل الشركة.

لنعمل معًا

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

إذا كان لديك نموذج أولي لـRAG ينجح في العرض لكنه يتعثر مع المستخدمين الحقيقيين، أرسل لي وصفًا موجزًا، وسأخبرك أين كنت سأبحث أولًا.