RAG patterns (HE)

From Systems analysis Wiki
Jump to navigation Jump to search

RAG-פטרנים (באנגלית: RAG Patterns) — הם אוסף של גישות ארכיטקטוניות ומתודולוגיות לבניית מערכות Retrieval-Augmented Generation (RAG). פטרנים אלה נועדו לפתור בעיות יסודיות של מודלי שפה גדולים (LLM), כגון הזיות, התיישנות ידע ומחסור בספציפיות דומיינית, באמצעות שילוב LLM עם מקורות נתונים חיצוניים הנגישים באופן דינמי[1]. האבולוציה של RAG עברה מצינורות לינאריים פשוטים למערכות מודולריות וסוכניות מורכבות[2].

פטרני RAG עיקריים

עם התפתחות הטכנולוגיה, צמחו פטרני RAG רבים, שכל אחד מהם פותר משימות מסוימות ומציע פשרות שונות בין איכות, מהירות ועלות.

  • Classic RAG (RAG קלאסי) — גישה בסיסית שבה בקשת המשתמש עוברת וקטוריזציה לצורך חיפוש קטעים (chunks) רלוונטיים ב-DB וקטורי; הקטעים שנמצאו מועברים ל-LLM יחד עם השאלה לצורך יצירת תשובה[1].
  • Multi‑Query RAG (שאילתות מרובות) — ה-LLM מייצר מספר גרסאות מנוסחות מחדש/מדויקות יותר של השאילתה המקורית; החיפוש מתבצע לפי כל הגרסאות, התוצאות מאוחדות, מה שמגביר את השלמות (recall)[3].
  • HyDE (Hypothetical Document Expansion) — לצורך גישור על ה"פער הסמנטי" בין שאילתה קצרה למסמכים ארוכים. ה-LLM מייצר תחילה מסמך-תשובה "היפותטי", ולאחר מכן ה-embedding שלו משמש לחיפוש, מה שלעיתים קרובות משפר את איכות השליפה[4].
  • Hybrid Retrieval (חיפוש היברידי) — שילוב של חיפוש סמנטי (וקטורי) ולקסיקלי (BM25). סכמות היברידיות הפכו לסטנדרט עבור מערכות production: חיפוש וקטורי מכסה התאמות סמנטיות, ו-BM25 מאתר מונחים/ID/ראשי תיבות מדויקים; התוצאות מאוחדות בשיטת fusion[5][6][7].
  • Re‑ranking (דירוג מחדש) — תהליך דו-שלבי: retriever מהיר מחזיר קבוצת מועמדים (לדוגמה, top‑100), לאחר מכן cross-encoder (או reranker אחר) מחשב מחדש את הרלוונטיות ובוחר את הטובים ביותר (לדוגמה, top‑5) עבור ה-LLM[8][9].
  • Query Routing (ניתוב שאילתות) — במערכות עם מספר מקורות נתונים הטרוגניים (אינדקסים/DB/API שונים) השאילתה מופנית למקור הטוב ביותר באמצעות router (סלקטור מבוסס LLM או מסווג); כולל אסטרטגיות fallback[10].
  • Agentic/Web RAG (RAG סוכני) — ה-LLM פועל כסוכן: מפרק שאלות מורכבות, מתכנן איטרציות ומשתמש בכלים (חיפוש וקטורי, חיפוש ברשת) עם משוב. מימוש טיפוסי — פרדיגמת ReAct[11]; לאיסוף מוכוון-אינטרנט עם ציטוט חובה ראו WebGPT[12].

פרדיגמות קרובות ומתפתחות

  • GraphRAG (RAG גרפי) — משתמש בגרף ידע כמקור ומנגנון בחירת הקשר; החיפוש עובר דרך מבנה הקשרים בין ישויות וטקסט, ומשפר פרשנות ואיכות על שאלות multi‑hop[13][14].
  • MM‑RAG (RAG מולטי-מודאלי) — עבודה עם טקסט ומקורות ויזואליים (סריקות/תרשימים/טבלאות). דוגמה: VisRAG מדגים retrieval ויצירה מוכווני VLM על מסמכים מולטי-מודאליים[15].
  • Packaging & Context Handling (אריזת הקשר) — שיטות לשילוב קטעים שנמצאו ב-prompt: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16].

טבלת השוואה של פטרנים

השוואת פטרני RAG מרכזיים
פטרן מתי ליישם השפעה על האיכות עלות / זמן תגובה סיכונים ומגבלות
Classic RAG PoC ו-Q&A פשוטים על בסיס הומוגני רמה בסיסית; תלוי מאוד ב-embeddings[1] נמוכה רגישות לניסוח; סיכון להקשר לא רלוונטי
Hybrid Retrieval ברוב תרחישי production; הרבה קודים/ראשי תיבות/ID משפר שלמות; מכסה מונחים מדויקים[5][6][7] נמוכה/בינונית כיוון משקלי fusion; שני אינדקסים
Re‑ranking קריטי כשדיוק גבוה חשוב שיפור משמעותי ב-precision על top‑k[8][9] בינונית/גבוהה זמן תגובה/עלות נוספים
Multi‑Query שאילתות קצרות/רב-היבטיות משפר recall[3] בינונית ניסוחים עודפים/רועשים
HyDE שאילתות קצרות/עמומות עם "פער סמנטי" גדול משפר איכות retrieval ב-zero‑shot[4] בינונית תלוי באיכות הטקסט ה"היפותטי"
Query Routing מספר מקורות (בסיס מסמכים, SQL, API, אינטרנט) משפר רלוונטיות באמצעות מקור נכון[10] בינונית שגיאת ניתוב = כישלון חיפוש
Agentic/Web RAG שאילתות מורכבות, אנליטיות, רב-שלביות פותר משימות מעבר לצינור לינארי[11][12] גבוהה מורכבות, סיכון לתקיעות בלולאה; דרושים guardrails

יישום מעשי וארכיטקטורה

שלבי יישום

  1. Proof of Concept (PoC): התחל עם Classic RAG על קבוצת נתונים מוגבלת אך מייצגת, כדי לבדוק את איכות ה-embeddings וה-retrieval הבסיסי[1].
  2. Minimum Viable Product (MVP): הטמע Hybrid Retrieval ו-Re‑ranking כיחס הטוב ביותר של "מאמץ/אפקט"[5][8].
  3. Production: הוסף טרנספורמציות שאילתות (HyDE, Multi‑Query) ובמידת הצורך Query Routing; הגדר observability (לוגינג של retrieval/rerank/תשובות) וA/B testing[3][10].

רכיבים מרכזיים

  • חלוקה לקטעים (Chunking): אחד הגורמים הקריטיים ביותר לאיכות. גודל קבוע נאיבי לרוב קוטע יחידות סמנטיות. מומלצים מפצלים מבניים (לפי תגיות) או רקורסיביים (פסקה → משפט → מילה)[17][18].
  • Embeddings ומטא-נתונים: אחסן עם כל קטע document_id, עמוד/קטע, כותרת, תאריכים; זה הכרחי לסינון וציטוט נכון של מקורות.
  • Hybrid retrieval וreranking: השתמש ב-BM25+וקטור עם fusion (או RRF), ולאחר מכן cross-encoder לדירוג מחדש על מאגר מועמדים קטן[5][6][8].
  • אריזת הקשר: בחר Map‑Reduce, Refine או Tree‑of‑Chunks עבור קורפוסים ארוכים[16][18].

טעויות נפוצות (אנטי-פטרנים)

  • חיפוש וקטורי בלבד ללא BM25 → כשלונות על קודים/ID/ראשי תיבות[5][7].
  • קטע גדול/קטן מדי → אובדן הקשר או "דילול" ה-embedding[17].
  • היעדר reranking ב-production → ה-LLM מקבל הקשר רועש[8].
  • אין observability ומעקב מקורות → אי-אפשר לנתח סיבות שגיאות (ראו הערכת RAG).

הערכת איכות ומטריקות

ההערכה מתבצעת ברמת ה-retriever (אופליין) ו-end‑to‑end (יצירה).

מטריקות retriever

  • Hit Rate, Recall@k, MRR — כיסוי ומיקום מסמכים רלוונטיים.
  • Context Precision & Recall — עד כמה ההקשר שנשלף נקי מ"זבל" ומכסה את כל הנדרש (מיושם ב-RAGAS)[19].

מטריקות generator (end‑to‑end)

  • Faithfulness / Groundedness — התאמת התשובה להקשר שסופק.
  • Answer Relevancy (רלוונטיות תשובה) — התאמה לשאלה המקורית.

לאוטומציה של מטריקות משתמשים ב-frameworks בקוד פתוח: RAGAS, TruLens (RAG triad: context relevance, groundedness, answer relevance), DeepEval[20][21].

ראו גם

  • Retrieval-Augmented Generation (RAG)
  • מסדי נתונים וקטוריים
  • Embedding
  • סוכן AI
  • GraphRAG
  • MM-RAG
  • הערכה ו-benchmarks של LLM

ספרות

  • 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). [1].
  • Qdrant Docs. Hybrid Queries. [2].
  • Milvus Docs. Full‑Text Search / Hybrid Search. [3] / [4].
  • LangChain Docs. MultiQueryRetriever. [5].
  • Cohere Docs. Rerank — best practices. [6].
  • LlamaIndex Docs. Routing (query routers/selectors). [7].
  • 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). [8].
  • Microsoft Research. Project GraphRAG. (2024). [9].
  • 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). [10].
  • TruLens Docs. RAG Triad. [11].
  • DeepEval (GitHub). The LLM Evaluation Framework. [12].
  • LangChain Docs. RecursiveCharacterTextSplitter. [13].
  • LlamaIndex Docs. HierarchicalNodeParser; Response Synthesis (Tree/Refine). [14]; [15].

הערות

  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