Home
Login

المرحلة الخامسة: استكشاف سيناريوهات تطبيق الذكاء الاصطناعي

مجموعة شاملة من التقنيات المتقدمة لأنظمة الاسترجاع المعزز بالتوليد (RAG)، تغطي أكثر من 30 تطبيقًا لتقنيات RAG من الأساسي إلى المتطور، بما في ذلك أمثلة التعليمات البرمجية الكاملة والوثائق التفصيلية.

RAGRetrievalAugmentedGenerationVectorSearchGitHubTextFreeEnglish

مقدمة مفصلة لمواد تعلم تقنيات RAG

نظرة عامة على المشروع

RAG Techniques هو مشروع مفتوح المصدر على GitHub أنشأه Nir Diamant، ويركز على عرض مجموعة متنوعة من تقنيات أنظمة التوليد المعزز بالاسترجاع (Retrieval-Augmented Generation, RAG) المتقدمة. يهدف هذا المشروع إلى تزويد الباحثين والمطورين بمكتبة موارد شاملة لمساعدتهم في بناء أنظمة RAG أكثر دقة وذات صلة بالسياق.

مميزات المشروع

🌟 الميزات الأساسية

  • تقنيات رائدة: يغطي أحدث تقنيات تعزيز أنظمة RAG.
  • وثائق كاملة: كل تقنية مصحوبة بوثائق شرح مفصلة.
  • إرشادات عملية: يوفر إرشادات تنفيذ عملية.
  • تحديثات مستمرة: تحديثات منتظمة لأحدث التطورات التقنية.
  • مدفوع بالمجتمع: يمتلك مجتمع Discord نشط (أكثر من 20,000 من عشاق الذكاء الاصطناعي).

🎯 الجمهور المستهدف

  • باحثو الذكاء الاصطناعي
  • مهندسو تعلم الآلة
  • المطورون والممارسون
  • المتعلمون المهتمون بتقنيات RAG

تصنيف التقنيات وشرح مفصل

1. التقنيات الأساسية (Foundational 🌱)

Simple RAG

  • الوصف: يقدم تقنيات RAG الأساسية، مناسب للمبتدئين.
  • التنفيذ: يدعم LangChain و LlamaIndex.
  • الوظائف: استعلام استرجاع أساسي وآلية تعلم تزايدي.

Simple RAG باستخدام CSV

  • الوصف: تنفيذ RAG أساسي باستخدام ملفات CSV.
  • الوظائف: استخدام ملفات CSV لإنشاء استرجاع أساسي والتكامل مع OpenAI.

Corrective RAG

  • الوصف: يعزز RAG البسيط، ويضيف آليات التحقق والتحسين.
  • الوظائف: يتحقق من مدى صلة المستندات المسترجعة ويبرز أجزاء المستند المستخدمة للإجابة.

2. تقنيات التجزئة (Chunking Techniques)

اختيار حجم الكتلة (Choose Chunk Size)

  • الوصف: اختيار حجم الكتلة النصية المناسب للموازنة بين الاحتفاظ بالسياق وكفاءة الاسترجاع.
  • التنفيذ:
# مثال: تجربة أحجام كتل مختلفة
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
    # اختبار تأثير الاسترجاع لأحجام مختلفة
    evaluate_chunk_performance(size)

تجزئة الاقتراحات (Proposition Chunking)

  • الوصف: تقسيم النص إلى جمل موجزة، كاملة، وذات معنى.
  • الميزات:
    • 💪 توليد الاقتراحات: استخدام نماذج اللغة الكبيرة (LLM) لتوليد بيانات واقعية لكتل المستندات.
    • ✅ فحص الجودة: تقييم الدقة، الوضوح، الاكتمال، والإيجاز.

التجزئة الدلالية (Semantic Chunking)

  • الوصف: تقسيم المستندات بناءً على الترابط الدلالي بدلاً من الحجم الثابت.
  • الميزة: استخدام تقنيات معالجة اللغة الطبيعية (NLP) لتحديد الحدود الموضوعية، وإنشاء وحدات استرجاع أكثر معنى.

3. معالجة الاستعلامات (Query Processing)

تحويلات الاستعلام (Query Transformations)

  • الوصف: تعديل وتوسيع الاستعلامات لتحسين فعالية الاسترجاع.
  • التقنيات تشمل:
    • ✍️ إعادة صياغة الاستعلام: إعادة صياغة الاستعلام لتحسين الاسترجاع.
    • 🔙 توجيه احتياطي: توليد استعلامات أوسع للحصول على سياق أفضل.
    • 🧩 تحليل الاستعلام الفرعي: تقسيم الاستعلامات المعقدة إلى استعلامات فرعية بسيطة.

الأسئلة الافتراضية (Hypothetical Questions - HyDE)

  • الوصف: توليد أسئلة افتراضية لتحسين مطابقة الاستعلام بالبيانات.
  • الوظائف: إنشاء أسئلة افتراضية تشير إلى المواقع ذات الصلة في البيانات.

تضمينات الموجهات الافتراضية (Hypothetical Prompt Embeddings - HyPE)

  • الوصف: نسخة محسنة من HyDE، تقوم بحساب الموجهات الافتراضية مسبقًا في مرحلة الفهرسة.
  • المزايا:
    • 📖 أسئلة محسوبة مسبقًا: توليد عدة استعلامات افتراضية عند الفهرسة.
    • 🔍 مطابقة السؤال بالسؤال: مطابقة استعلام المستخدم بالأسئلة الافتراضية المخزنة.
    • ⚡ لا توجد تكلفة إضافية في وقت التشغيل: لا يتطلب استدعاء LLM عند الاستعلام.

4. معالجة السياق (Context Processing)

تقنيات إثراء السياق (Context Enrichment Techniques)

  • الوصف: تعزيز دقة الاسترجاع عن طريق تضمين الجمل الفردية والتوسع إلى الجمل المجاورة.
  • التنفيذ:
# مثال: توسيع نافذة السياق
def get_context_window(sentence_index, window_size=2):
    start = max(0, sentence_index - window_size)
    end = min(len(sentences), sentence_index + window_size + 1)
    return sentences[start:end]

الضغط السياقي (Contextual Compression)

  • الوصف: ضغط المعلومات المسترجعة مع الاحتفاظ بالمحتوى ذي الصلة بالاستعلام.
  • الطريقة: استخدام LLM لضغط أو تلخيص الكتل المسترجعة.

رؤوس الكتل السياقية (Contextual Chunk Headers - CCH)

  • الوصف: إنشاء سياق على مستوى المستند والفصل، وإضافته إلى رؤوس الكتل.
  • الوظائف: تحسين دقة الاسترجاع.

5. تعزيز الاسترجاع (Retrieval Enhancement)

الاسترجاع الاندماجي (Fusion Retrieval)

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

إعادة الترتيب الذكي (Intelligent Reranking)

  • الوصف: تطبيق آليات تسجيل متقدمة لتحسين ترتيب صلة نتائج الاسترجاع.
  • التقنيات:
    • 🧠 التسجيل القائم على LLM
    • 🔀 نماذج التشفير المتقاطع (Cross-encoder models)
    • 🏆 الترتيب المعزز بالبيانات الوصفية (Metadata-enhanced ranking)

التصفية متعددة الأوجه (Multi-faceted Filtering)

  • الوصف: تطبيق تقنيات تصفية متنوعة لتحسين جودة نتائج الاسترجاع.
  • تشمل:
    • 🏷️ تصفية البيانات الوصفية
    • 📊 عتبة التشابه
    • 📄 تصفية المحتوى
    • 🌈 تصفية التنوع

6. البنية المتقدمة (Advanced Architecture)

الفهارس الهرمية (Hierarchical Indices)

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

الاسترجاع التجميعي (Ensemble Retrieval)

  • الوصف: دمج نماذج أو تقنيات استرجاع متعددة للحصول على نتائج أكثر قوة ودقة.
  • الطريقة: استخدام آليات التصويت أو الترجيح لتحديد مجموعة المستندات المسترجعة النهائية.

RAPTOR

  • الوصف: معالجة تجريدية متكررة للاسترجاع المنظم على شكل شجرة.
  • الميزات: استخدام التلخيص التجريدي لمعالجة المستندات المسترجعة بشكل متكرر، وتنظيم المعلومات في هيكل شجري.

7. التقنيات التكيفية (Adaptive Techniques)

الاسترجاع التكيفي (Adaptive Retrieval)

  • الوصف: تعديل استراتيجية الاسترجاع ديناميكيًا بناءً على نوع الاستعلام وسياق المستخدم.
  • الوظائف: استخدام استراتيجيات استرجاع مخصصة لفئات مختلفة من الاستعلامات.

RAG الذاتي (Self RAG)

  • الوصف: نهج ديناميكي يجمع بين الاسترجاع وطرق التوليد.
  • العملية: قرار الاسترجاع ← استرجاع المستندات ← تقييم الصلة ← توليد الاستجابة.

RAG التصحيحي (Corrective RAG - CRAG)

  • الوصف: طريقة RAG معقدة تقوم بتقييم وتصحيح عملية الاسترجاع ديناميكيًا.
  • المكونات: مقيّم الاسترجاع، تنقية المعرفة، مُعيد صياغة استعلام البحث على الويب.

8. التقنيات متعددة الوسائط (Multi-modal)

الاسترجاع متعدد الوسائط (Multi-modal Retrieval)

  • الوصف: توسيع قدرات RAG للتعامل مع أنواع بيانات متعددة.
  • الطرق:
    • تسميات توضيحية للوسائط المتعددة: توليد تسميات توضيحية لجميع بيانات الوسائط المتعددة.
    • Colpali: تحويل جميع البيانات إلى صور واستخدام نموذج لغة كبير بصري (Visual LLM).

9. تكامل الرسم البياني المعرفي

تكامل الرسم البياني المعرفي (Knowledge Graph Integration - Graph RAG)

  • الوصف: دمج البيانات المهيكلة من الرسوم البيانية المعرفية لإثراء السياق.
  • الوظائف: استرجاع الكيانات والعلاقات ذات الصلة بالاستعلام.

GraphRAG (مايكروسوفت)

  • الوصف: نظام GraphRAG مفتوح المصدر من مايكروسوفت.
  • الميزات: استخراج الكيانات والعلاقات من وحدات النص، وتوليد ملخصات المجتمع.

10. تقنيات التقييم (Evaluation)

تقييم DeepEval

  • الوصف: تقييم شامل لنظام RAG.
  • المقاييس: الصحة، الأمانة، الصلة السياقية.

تقييم GroUSE

  • الوصف: تقييم LLM القائم على السياق.
  • الوظائف: استخدام 6 مقاييس من إطار عمل GroUSE للتقييم.

دليل التنفيذ

البدء السريع

# استنساخ المستودع
git clone https://github.com/NirDiamant/RAG_Techniques.git

# الانتقال إلى دليل تقنية محددة
cd all_rag_techniques/technique-name

# اتبع دليل التنفيذ المفصل في كل دليل تقنية

دعم حزمة التقنيات

  • LangChain: دعم الإطار الرئيسي.
  • LlamaIndex: دعم جزئي للتقنيات.
  • OpenAI API: تكامل نموذج التوليد.
  • نماذج تضمين متنوعة: دعم طرق التوجيه المتعددة.

مسار التعلم المقترح

مسار المبتدئين

  1. Simple RAG ← فهم المفاهيم الأساسية
  2. Choose Chunk Size ← تعلم تجزئة النص
  3. Query Transformations ← فهم تحسين الاستعلام
  4. Context Enrichment ← إتقان معالجة السياق

مسار المتقدمين

  1. Semantic Chunking ← تقنيات التجزئة المتقدمة
  2. Fusion Retrieval ← دمج طرق متعددة
  3. Intelligent Reranking ← تحسين النتائج
  4. Hierarchical Indices ← بنية معقدة

مسار الخبراء

  1. Self RAG ← أنظمة تكيفية
  2. Graph RAG ← تكامل الرسم البياني المعرفي
  3. RAPTOR ← معالجة متكررة
  4. Multi-modal Retrieval ← معالجة متعددة الوسائط

يوفر هذا المصدر التعليمي مسارًا كاملاً لتعلم تقنيات RAG من الأساسيات إلى المستويات المتقدمة، وهو مناسب للمتعلمين من مختلف المستويات، ويعد أحد أشمل مستودعات موارد تقنيات RAG المتاحة حاليًا.