RAG patterns — أنماط RAG

From Systems analysis wiki
Jump to navigation Jump to search

أنماط RAG (بالإنجليزية: RAG Patterns) — هي مجموعة من الأساليب المعمارية والمنهجية لبناء أنظمة Retrieval-Augmented Generation (RAG). صُممت هذه الأنماط لحل المشكلات الأساسية في نماذج اللغة الكبيرة (LLM)، مثل الهلوسة، وتقادم المعرفة، ونقص التخصص في مجال معين، عن طريق دمج نماذج اللغة الكبيرة مع مصادر بيانات خارجية يمكن الوصول إليها ديناميكيًا[1]. لقد تطورت RAG من مسارات المعالجة الخطية البسيطة إلى أنظمة معقدة معيارية ووكيلية[2].

الأنماط الأساسية لـ RAG

مع تطور التكنولوجيا، ظهرت العديد من أنماط RAG، حيث يحل كل نمط مهام محددة وله مفاضلاته الخاصة بين الجودة والسرعة والتكلفة.

  • Classic RAG (نمط RAG الكلاسيكي) — هو النهج الأساسي، حيث يتم تحويل استعلام المستخدم إلى متجه للبحث عن الأجزاء (chunks) ذات الصلة في قاعدة بيانات متجهية؛ ثم تُمرر الأجزاء التي تم العثور عليها إلى نموذج اللغة الكبير مع السؤال لتوليد الإجابة[1].
  • Multi-Query RAG (الاستعلامات المتعددة) — يقوم نموذج اللغة الكبير بتوليد عدة صيغ معاد صياغتها أو منقحة من الاستعلام الأصلي؛ ويتم البحث باستخدام جميع هذه الصيغ، ثم تُدمج النتائج، مما يزيد من معدل الاستدعاء (recall)[3].
  • HyDE (Hypothetical Document Expansion) — للتغلب على "الفجوة الدلالية" بين الاستعلام القصير والمستندات الطويلة. يقوم نموذج اللغة الكبير أولاً بتوليد مستند إجابة "افتراضي"، ثم يُستخدم التضمين (embedding) الخاص به للبحث، مما يحسن غالبًا من جودة الاسترجاع[4].
  • Hybrid Retrieval (الاسترجاع الهجين) — هو مزيج من البحث الدلالي (المتجهي) والبحث المعجمي (BM25). أصبحت المخططات الهجينة معيارًا للأنظمة الإنتاجية: يغطي البحث المتجهي التطابقات الدلالية، بينما يعثر BM25 على المصطلحات الدقيقة أو المعرفات (IDs) أو الاختصارات؛ وتُدمج النتائج باستخدام عملية الدمج (fusion)[5][6][7].
  • Re-ranking (إعادة الترتيب) — هي عملية من مرحلتين: يقوم مسترجع سريع بإرجاع مجموعة من المرشحين (على سبيل المثال، أفضل 100)، ثم يقوم مُعيد ترتيب (cross-encoder أو أي re-ranker آخر) بإعادة حساب الصلة واختيار الأفضل (على سبيل المثال، أفضل 5) لتمريرها إلى نموذج اللغة الكبير[8][9].
  • Query Routing (توجيه الاستعلامات) — في الأنظمة التي تحتوي على مصادر بيانات متعددة غير متجانسة (فهارس/قواعد بيانات/APIs مختلفة)، يتم توجيه الاستعلام إلى أفضل مصدر باستخدام موجّه (router) (محدد يعتمد على LLM أو مصنف)؛ ويتضمن ذلك استراتيجيات احتياطية (fallback)[10].
  • Agentic/Web RAG (نمط RAG الوكيلي/المعتمد على الويب) — يعمل نموذج اللغة الكبير كـوكيل (agent): يقوم بتفكيك الأسئلة المعقدة، ويخطط للتكرارات، ويستخدم أدوات (بحث متجهي، بحث ويب) مع وجود حلقة تغذية راجعة. التنفيذ النموذجي هو نموذج ReAct[11]؛ ولجمع البيانات الموجه بالويب والاقتباس الإلزامي، انظر WebGPT[12].

النماذج المجاورة والناشئة

  • GraphRAG (نمط RAG البياني) — يستخدم الرسم البياني المعرفي كمصدر وآلية لاختيار السياق؛ يتم البحث في بنية العلاقات بين الكيانات والنصوص، مما يزيد من قابلية التفسير والجودة في الأسئلة التي تتطلب قفزات متعددة (multi-hop)[13][14].
  • MM-RAG (نمط RAG متعدد الوسائط) — يعمل مع مصادر نصية ومرئية (مستندات ممسوحة ضوئيًا/مخططات/جداول). على سبيل المثال: يوضح VisRAG استرجاعًا وتوليدًا موجهًا بنماذج اللغة البصرية (VLM) على المستندات متعددة الوسائط[15].
  • Packaging & Context Handling (تغليف السياق ومعالجته) — هي طرق لدمج الأجزاء التي تم العثور عليها في الموجه (prompt): Stuff، Map-Reduce، Refine، Tree-of-Chunks (RAPTOR)[16].

جدول مقارنة للأنماط

مقارنة لأنماط RAG الرئيسية
النمط متى يُستخدم التأثير على الجودة التكلفة / زمن الاستجابة المخاطر والقيود
Classic RAG لإثبات المفهوم (PoC) والأسئلة والأجوبة البسيطة على قاعدة بيانات متجانسة مستوى أساسي؛ يعتمد بشدة على التضمينات (embeddings)[1] منخفضة حساسية للصياغة؛ خطر الحصول على سياق غير ذي صلة
Hybrid Retrieval في معظم سيناريوهات الإنتاج؛ عند وجود الكثير من الرموز/الاختصارات/المعرفات يزيد من معدل الاستدعاء؛ يغطي المصطلحات الدقيقة[5][6][7] منخفضة/متوسطة يتطلب ضبط أوزان الدمج؛ وجود فهرسين
Re-ranking حاسم عندما تكون الدقة العالية مهمة زيادة كبيرة في الدقة (precision) لأفضل k نتيجة[8][9] متوسطة/عالية زمن استجابة/تكلفة إضافية
Multi-Query للاستعلامات القصيرة أو متعددة الجوانب يزيد من معدل الاستدعاء (recall)[3] متوسطة إعادة صياغة زائدة عن الحاجة أو مشوشة
HyDE للاستعلامات القصيرة/الغامضة ذات "الفجوة الدلالية" الكبيرة يحسن جودة الاسترجاع في وضع zero-shot[4] متوسطة يعتمد على جودة النص "الافتراضي"
Query Routing عند وجود مصادر متعددة (قاعدة مستندات، SQL، API، ويب) يزيد من الصلة عن طريق اختيار المصدر الصحيح[10] متوسطة خطأ في التوجيه = فشل البحث
Agentic/Web RAG للاستعلامات المعقدة، الاستكشافية، متعددة الخطوات يحل المشكلات التي تتجاوز قدرة مسار المعالجة الخطي[11][12] عالية التعقيد، خطر الوقوع في حلقات لا نهائية؛ يتطلب حواجز حماية (guardrails)

التنفيذ العملي والهندسة المعمارية

مراحل التنفيذ

  1. Proof of Concept (PoC): ابدأ بنمط Classic RAG على مجموعة بيانات محدودة ولكنها تمثيلية، للتحقق من جودة التضمينات والاسترجاع الأساسي[1].
  2. Minimum Viable Product (MVP): طبّق نمطي Hybrid Retrieval و Re-ranking كأفضل نسبة بين "الجهد/التأثير"[5][8].
  3. Production: أضف تحويلات للاستعلامات (HyDE، Multi-Query) وعند الضرورة Query Routing؛ قم بإعداد المراقبة (observability) (تسجيل عمليات الاسترجاع/إعادة الترتيب/الإجابات) واختبار A/B[3][10].

المكونات الرئيسية

  • التقسيم إلى أجزاء (Chunking): أحد أهم العوامل الحاسمة للجودة. غالبًا ما يؤدي الحجم الثابت البسيط إلى تقسيم الوحدات الدلالية. يوصى باستخدام المقسمات الموجهة بالبنية (حسب الترميز) أو المقسمات العودية (فقرة ← جملة ← كلمة)[17][18].
  • التضمينات والبيانات الوصفية (Embeddings and metadata): خزّن مع كل جزء معرف المستند (document_id)، ورقم الصفحة/القسم، والعنوان، والتواريخ؛ هذا ضروري للتصفية والاقتباس الصحيح للمصادر.
  • الاسترجاع الهجين وإعادة الترتيب: استخدم BM25+المتجهات مع الدمج (fusion) (أو RRF)، ثم استخدم cross-encoder لإعادة ترتيب مجموعة صغيرة من المرشحين[5][6][8].
  • تغليف السياق: اختر Map-Reduce أو Refine أو Tree-of-Chunks للمجموعات النصية الكبيرة[16][18].

الأخطاء الشائعة (الأنماط المضادة)

  • البحث المتجهي فقط بدون BM25 ← فشل في العثور على الرموز/المعرفات/الاختصارات[5][7].
  • أجزاء (chunks) كبيرة جدًا أو صغيرة جدًا ← فقدان السياق أو "تخفيف" دقة التضمين[17].
  • عدم وجود إعادة ترتيب في البيئة الإنتاجية ← يتلقى نموذج اللغة الكبير سياقًا مشوشًا[8].
  • غياب المراقبة (observability) وتتبع المصادر ← استحالة تحليل أسباب الأخطاء (انظر تقييم RAG).

تقييم الجودة والمقاييس

يتم التقييم على مستوى الاسترجاع (دون اتصال) وعلى مستوى العملية الكاملة من البداية إلى النهاية (end-to-end) (التوليد).

مقاييس المسترجع (Retriever)

  • Hit Rate, Recall@k, MRR — تغطية وترتيب المستندات ذات الصلة.
  • Context Precision & Recall — إلى أي مدى يكون السياق المسترجع خاليًا من "الضوضاء" ويغطي كل ما هو مطلوب (مطبق في RAGAS)[19].

مقاييس المولد (Generator) (end-to-end)

  • Faithfulness / Groundedness (الموثوقية / التجذر) — مدى تطابق الإجابة مع السياق المقدم.
  • Answer Relevancy (صلة الإجابة) — مدى تطابق الإجابة مع السؤال الأصلي.

لأتمتة هذه المقاييس، تُستخدم أطر عمل مفتوحة المصدر مثل: RAGAS، و TruLens (ثالوث RAG: صلة السياق، التجذر، وصلة الإجابة)، و DeepEval[20][21].

انظر أيضًا

  • Retrieval-Augmented Generation (RAG)
  • قواعد البيانات المتجهية
  • التضمين (Embedding)
  • وكيل الذكاء الاصطناعي
  • GraphRAG
  • MM-RAG
  • تقييم وقياس أداء نماذج اللغة الكبيرة

المراجع

  • Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
  • Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
  • Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL 2023. ACL Anthology; arXiv:2212.10496.
  • Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  • Weaviate Docs. Hybrid search (BM25+Vector). [١].
  • Qdrant Docs. Hybrid Queries. [٢].
  • Milvus Docs. Full‑Text Search / Hybrid Search. [٣] / [٤].
  • LangChain Docs. MultiQueryRetriever. [٥].
  • Cohere Docs. Rerank — best practices. [٦].
  • LlamaIndex Docs. Routing (query routers/selectors). [٧].
  • Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR. arXiv:2210.03629.
  • Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
  • Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. (2024). [٨].
  • Microsoft Research. Project GraphRAG. (2024). [٩].
  • Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594.
  • Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
  • Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). [١٠].
  • TruLens Docs. RAG Triad. [١١].
  • DeepEval (GitHub). The LLM Evaluation Framework. [١٢].
  • LangChain Docs. RecursiveCharacterTextSplitter. [١٣].
  • LlamaIndex Docs. HierarchicalNodeParser; Response Synthesis (Tree/Refine). [١٤]; [١٥].

ملاحظات

  1. 1.0 1.1 1.2 1.3 Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
  2. Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
  3. 3.0 3.1 3.2 LangChain Docs. MultiQueryRetriever. https://python.langchain.com/docs/how_to/MultiQueryRetriever/
  4. 4.0 4.1 Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels. ACL 2023. arXiv:2212.10496; ACL Anthology: 2023.acl‑long.99.
  5. 5.0 5.1 5.2 5.3 5.4 Weaviate Docs. Hybrid search (BM25+Vector). https://docs.weaviate.io/weaviate/concepts/search/hybrid-search
  6. 6.0 6.1 6.2 Qdrant Docs. Hybrid Queries. https://qdrant.tech/documentation/concepts/hybrid-queries/
  7. 7.0 7.1 7.2 Milvus Docs. Full‑Text Search و Hybrid Search. https://milvus.io/docs/full-text-search.md; https://milvus.io/docs/hybrid_search_with_milvus.md
  8. 8.0 8.1 8.2 8.3 8.4 Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  9. 9.0 9.1 Cohere Docs. Rerank — best practices. https://docs.cohere.com/docs/reranking-best-practices
  10. 10.0 10.1 10.2 LlamaIndex Docs. Routing (query routers/selectors). https://docs.llamaindex.ai/en/stable/module_guides/querying/router/
  11. 11.0 11.1 Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
  12. 12.0 12.1 Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
  13. Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. 2024. https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
  14. Microsoft Research. Project GraphRAG. https://www.microsoft.com/en-us/research/project/graphrag/
  15. Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594; OpenReview: zG459X3Xge.
  16. 16.0 16.1 Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
  17. 17.0 17.1 LangChain Docs. RecursiveCharacterTextSplitter. https://python.langchain.com/docs/how_to/recursive_text_splitter/
  18. 18.0 18.1 LlamaIndex Docs. HierarchicalNodeParser و Tree Summarization. https://docs.llamaindex.ai/en/stable/api/llama_index.core.node_parser.HierarchicalNodeParser.html; https://docs.llamaindex.ai/en/stable/examples/low_level/response_synthesis/
  19. Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). https://aclanthology.org/2024.eacl-demo.16/
  20. TruLens Docs. RAG Triad. https://www.trulens.org/getting_started/core_concepts/rag_triad/
  21. DeepEval (GitHub). https://github.com/confident-ai/deepeval