RAG patterns — Μοτίβα RAG

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) σε μια διανυσματική βάση δεδομένων· τα chunks που βρέθηκαν υποβάλλονται στο LLM μαζί με την ερώτηση για τη δημιουργία απάντησης[1].
  • Multi‑Query RAG (Πολλαπλά ερωτήματα) — το LLM δημιουργεί πολλές παραφρασμένες/αποσαφηνισμένες εκδοχές του αρχικού ερωτήματος· η αναζήτηση εκτελείται για όλες τις εκδοχές, τα αποτελέσματα συγχωνεύονται, γεγονός που αυξάνει την πληρότητα (recall)[3].
  • HyDE (Hypothetical Document Expansion) — για την υπέρβαση του «σημασιολογικού χάσματος» μεταξύ ενός σύντομου ερωτήματος και μεγάλων εγγράφων. Το LLM δημιουργεί αρχικά ένα «υποθετικό» έγγραφο-απάντηση, έπειτα το embedding του χρησιμοποιείται για αναζήτηση, γεγονός που συχνά βελτιώνει την ποιότητα ανάκτησης[4].
  • Hybrid Retrieval (Υβριδική αναζήτηση) — συνδυασμός σημασιολογικής (διανυσματικής) και λεξιλογικής (BM25) αναζήτησης. Τα υβριδικά σχήματα έχουν γίνει πρότυπο για συστήματα παραγωγής: η διανυσματική αναζήτηση καλύπτει σημασιολογικές αντιστοιχίες, ενώ το BM25 εντοπίζει ακριβείς όρους/ID/ακρωνύμια· τα αποτελέσματα ενοποιούνται μέσω fusion[5][6][7].
  • Re‑ranking (Επαναδιάταξη) — διαδικασία δύο σταδίων: ένας γρήγορος retriever επιστρέφει ένα σύνολο υποψηφίων (π.χ. top‑100), στη συνέχεια ένας cross-encoder (ή άλλος reranker) επανυπολογίζει τη σχετικότητα και επιλέγει τους καλύτερους (π.χ. top‑5) για το LLM[8][9].
  • Query Routing (Δρομολόγηση ερωτημάτων) — σε συστήματα με πολλαπλές ετερογενείς πηγές δεδομένων (διαφορετικοί δείκτες/βάσεις δεδομένων/API) το ερώτημα κατευθύνεται στην καταλληλότερη πηγή μέσω ενός router (επιλογέας LLM ή ταξινομητής)· περιλαμβάνει στρατηγικές fallback[10].
  • Agentic/Web RAG (Πρακτορικό RAG) — το LLM λειτουργεί ως πράκτορας: αποσυνθέτει σύνθετες ερωτήσεις, σχεδιάζει επαναλήψεις και χρησιμοποιεί εργαλεία (διανυσματική αναζήτηση, αναζήτηση στον ιστό) με ανατροφοδότηση. Η τυπική υλοποίηση είναι το παράδειγμα ReAct[11]· για web-προσανατολισμένη συλλογή και υποχρεωτική παραπομπή βλ. WebGPT[12].

Συγγενή και αναδυόμενα παραδείγματα

  • GraphRAG (Γραφικό RAG) — χρησιμοποιεί έναν γράφο γνώσης ως πηγή και μηχανισμό επιλογής πλαισίου· η αναζήτηση γίνεται κατά μήκος της δομής συνδέσμων μεταξύ οντοτήτων και κατά μήκος κειμένου, βελτιώνοντας την ερμηνευσιμότητα και την ποιότητα σε ερωτήσεις multi-hop[13][14].
  • MM‑RAG (Πολυτροπικό RAG) — εργασία με κείμενο και οπτικές πηγές (σαρώσεις/διαγράμματα/πίνακες). Παράδειγμα: το VisRAG επιδεικνύει VLM-προσανατολισμένη ανάκτηση και δημιουργία σε πολυτροπικά έγγραφα[15].
  • Packaging & Context Handling (Συσκευασία πλαισίου) — τρόποι ενσωμάτωσης των ανακτηθέντων chunks στο prompt: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16].

Συγκριτικός πίνακας μοτίβων

Σύγκριση βασικών μοτίβων RAG
Μοτίβο Πότε να εφαρμόζεται Επίδραση στην ποιότητα Κόστος / Καθυστέρηση Κίνδυνοι και περιορισμοί
Classic RAG PoC και απλά Q&A σε ομογενή βάση Βασικό επίπεδο· εξαρτάται σε μεγάλο βαθμό από τα embeddings[1] Χαμηλό Ευαισθησία στη διατύπωση· κίνδυνος μη σχετικού πλαισίου
Hybrid Retrieval Στα περισσότερα σενάρια παραγωγής· πολλοί κωδικοί/ακρωνύμια/ID Αυξάνει την πληρότητα· καλύπτει ακριβείς όρους[5][6][7] Χαμηλό/Μέτριο Ρύθμιση βαρών fusion· δύο δείκτες
Re‑ranking Κρίσιμο όταν η υψηλή ακρίβεια είναι σημαντική Σημαντική αύξηση precision στα top‑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 σε ένα περιορισμένο αλλά αντιπροσωπευτικό σύνολο δεδομένων για να επαληθεύσετε την ποιότητα των embeddings και την βασική ανάκτηση[1].
  2. Minimum Viable Product (MVP): Εισαγάγετε Hybrid Retrieval και Re‑ranking ως την καλύτερη αναλογία «προσπάθειας/αποτελέσματος»[5][8].
  3. Παραγωγή: Προσθέστε μετασχηματισμούς ερωτημάτων (HyDE, Multi‑Query) και εάν χρειάζεται Query Routing· διαμορφώστε observability (καταγραφή ανάκτησης/rerank/απαντήσεων) και A/B testing[3][10].

Βασικά στοιχεία

  • Chunking (Τεμαχισμός): Ένας από τους πιο κρίσιμους παράγοντες ποιότητας. Το αφελές σταθερό μέγεθος συχνά διασπά σημασιολογικές μονάδες. Συνιστώνται δομικά-προσανατολισμένοι (βάσει σήμανσης) ή αναδρομικοί διαχωριστές (παράγραφος → πρόταση → λέξη)[17][18].
  • Embeddings και μεταδεδομένα: Αποθηκεύστε με κάθε chunk το document_id, σελίδα/ενότητα, τίτλο, ημερομηνίες· αυτό είναι απαραίτητο για φιλτράρισμα και σωστή παραπομπή πηγών.
  • Υβριδική ανάκτηση και rerank: Χρησιμοποιήστε BM25+διάνυσμα με fusion (ή RRF), στη συνέχεια cross-encoder για επαναδιάταξη σε μικρή ομάδα υποψηφίων[5][6][8].
  • Συσκευασία πλαισίου: Επιλέξτε Map‑Reduce, Refine ή Tree‑of‑Chunks για μεγάλα σώματα κειμένου[16][18].

Συνηθισμένα σφάλματα (αντιμοτίβα)

  • Μόνο διανυσματική αναζήτηση χωρίς BM25 → αποτυχίες σε κωδικούς/ID/ακρωνύμια[5][7].
  • Υπερβολικά μεγάλο/μικρό chunk → απώλεια πλαισίου ή «αραίωση» του embedding[17].
  • Απουσία rerank στην παραγωγή → το LLM λαμβάνει θορυβώδες πλαίσιο[8].
  • Χωρίς observability και ιχνηλάτηση πηγών → αδυναμία ανάλυσης των αιτιών σφαλμάτων (βλ. αξιολόγηση RAG).

Αξιολόγηση ποιότητας και μετρικές

Η αξιολόγηση διεξάγεται σε επίπεδο retriever (εκτός σύνδεσης) και end‑to‑end (δημιουργία).

Μετρικές retriever

  • Hit Rate, Recall@k, MRR — κάλυψη και θέση σχετικών εγγράφων.
  • Context Precision & Recall — σε ποιο βαθμό το εξαγόμενο πλαίσιο είναι χωρίς «θόρυβο» και καλύπτει όλα τα απαραίτητα (υλοποιείται στο RAGAS)[19].

Μετρικές γεννήτριας (end‑to‑end)

  • Faithfulness / Groundedness — αντιστοιχία της απάντησης με το παρεχόμενο πλαίσιο.
  • Answer Relevancy (Σχετικότητα απάντησης) — αντιστοιχία με την αρχική ερώτηση.

Για την αυτοματοποίηση μετρικών χρησιμοποιούνται open‑source frameworks: RAGAS, TruLens (RAG triad: context relevance, groundedness, answer relevance), DeepEval[20][21].

Δείτε επίσης

  • Retrieval-Augmented Generation (RAG)
  • Διανυσματικές βάσεις δεδομένων
  • Embedding
  • AI-πράκτορας
  • GraphRAG
  • MM-RAG
  • Αξιολόγηση και benchmark 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