RAG patterns (TL)

From Systems analysis Wiki
Jump to navigation Jump to search

Mga Pattern ng RAG (Ingles: RAG Patterns) — isang hanay ng mga arkitektural at metodolohikal na pamamaraan para sa pagbuo ng mga sistema ng Retrieval-Augmented Generation (RAG). Ang mga pattern na ito ay idinisenyo upang malutas ang mga pundamental na problema ng malalaking language model (LLM), tulad ng mga hallucination, pagkaluma ng kaalaman, at kakulangan ng domain-specific na impormasyon, sa pamamagitan ng pag-integrate ng LLM sa mga panlabas, dinamikong naa-access na pinagkukunan ng datos[1]. Ang ebolusyon ng RAG ay naglakbay mula sa mga simpleng linear na pipeline patungo sa mga kumplikadong modular at agentic na sistema[2].

Mga Pangunahing Pattern ng RAG

Sa pag-unlad ng teknolohiya, lumitaw ang maraming RAG-pattern, kung saan ang bawat isa ay naglulutas ng mga tiyak na gawain at may sariling mga kompromiso sa pagitan ng kalidad, bilis, at gastos.

  • Classic RAG (Klasikong RAG) — pangunahing pamamaraan kung saan ang kahilingan ng gumagamit ay ive-vectorize upang maghanap ng mga kaugnay na fragment (chunk) sa vector database; ang mga nahanap na chunk ay ibinibigay sa LLM kasama ang tanong para sa pagbuo ng sagot[1].
  • Multi‑Query RAG (Maramihang Kahilingan) — ang LLM ay bumubuo ng ilang muling pinhrased/pinino na bersyon ng orihinal na kahilingan; ang paghahanap ay isinasagawa para sa lahat ng bersyon, pinagsama ang mga resulta, na nagpapataas ng completeness (recall)[3].
  • HyDE (Hypothetical Document Expansion) — para malampasan ang "semantic gap" sa pagitan ng maikling kahilingan at mahahabang dokumento. Unang bumubuo ang LLM ng "hypothetical" na dokumento-sagot, pagkatapos ang embedding nito ay ginagamit para sa paghahanap, na kadalasang nagpapabuti ng kalidad ng retrieval[4].
  • Hybrid Retrieval (Hybrid na Paghahanap) — kumbinasyon ng semantic (vector) at lexical (BM25) na paghahanap. Ang mga hybrid na shema ay naging pamantayan para sa mga production system: ang vector search ay sumasaklaw sa mga semantic na tugma, habang ang BM25 ay nakakakita ng eksaktong mga termino/ID/acronym; ang mga resulta ay pinagsama sa pamamagitan ng fusion[5][6][7].
  • Re‑ranking (Karagdagang Pag-ranking) — dalawang yugto na proseso: ang mabilis na retriever ay nagbibigay ng hanay ng mga kandidato (halimbawa, top‑100), pagkatapos ang cross-encoder (o iba pang reranker) ay muling kinakalkula ang kaugnayan at pinipili ang pinakamahusay (halimbawa, top‑5) para sa LLM[8][9].
  • Query Routing (Pag-ruta ng Kahilingan) — sa mga sistema na may ilang iba't ibang pinagkukunan ng datos (iba't ibang index/database/API), ang kahilingan ay ipinapadala sa pinakamahusay na pinagkukunan gamit ang router (LLM-selector o classifier); kasama ang mga fallback-strategy[10].
  • Agentic/Web RAG (Agentic RAG) — ang LLM ay gumaganap bilang ahente: binubuo-buo ang mga kumplikadong tanong, nagpaplano ng mga iterasyon at gumagamit ng mga kasangkapan (vector search, web search) na may feedback. Ang tipikal na implementasyon ay ang paradigm na ReAct[11]; para sa web-oriented na pagkolekta at sapilitang pagsipi, tingnan ang WebGPT[12].

Mga Kaugnay at Umuusbong na Paradigma

  • GraphRAG (Graph RAG) — gumagamit ng knowledge graph bilang pinagkukunan at mekanismo ng pagpili ng konteksto; ang paghahanap ay isinasagawa sa pamamagitan ng istruktura ng mga koneksyon sa pagitan ng mga entidad at teksto, na nagpapataas ng interpretability at kalidad sa mga multi‑hop na tanong[13][14].
  • MM‑RAG (Multimodal RAG) — nagtatrabaho sa teksto at mga visual na pinagkukunan (mga scan/diagram/talahanayan). Halimbawa: ipinapakita ng VisRAG ang VLM-oriented na retrieval at henerasyon sa mga multimodal na dokumento[15].
  • Packaging & Context Handling (Pag-pack ng Konteksto) — mga paraan ng pag-integrate ng mga nahanap na chunk sa prompt: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16].

Talahanayan ng Paghahambing ng mga Pattern

Paghahambing ng mga Pangunahing RAG-pattern
Pattern Kailan Gamitin Epekto sa Kalidad Gastos / Pagkaantala Mga Panganib at Limitasyon
Classic RAG PoC at simpleng Q&A sa homogenous na base Pangunahing antas; lubos na nakasalalay sa mga embedding[1] Mababa Sensitivity sa mga pagbubuo ng salita; panganib ng hindi kaugnay na konteksto
Hybrid Retrieval Sa karamihan ng production scenario; maraming code/acronym/ID Nagpapataas ng completeness; sumasaklaw sa eksaktong mga termino[5][6][7] Mababa/Katamtaman Pag-aayos ng mga timbang ng fusion; dalawang index
Re‑ranking Kritikal kapag mahalaga ang mataas na katumpakan Makabuluhang pagtaas ng precision sa top‑k[8][9] Katamtaman/Mataas Karagdagang pagkaantala/gastos
Multi‑Query Maikling/multi-aspeto na mga kahilingan Nagpapataas ng recall[3] Katamtaman Labis/maingay na mga muling pagbubuo
HyDE Maikling/malabong mga kahilingan na may malaking "semantic gap" Nagpapabuti ng kalidad ng retrieval nang zero‑shot[4] Katamtaman Nakasalalay sa kalidad ng "hypothetical" na teksto
Query Routing Ilang pinagkukunan (dokumento-base, SQL, API, web) Nagpapataas ng kaugnayan sa pamamagitan ng tamang pinagkukunan[10] Katamtaman Maling ruta = kabiguan ng paghahanap
Agentic/Web RAG Kumplikado, pananaliksik, maramihang yugto na mga kahilingan Nireresolba ang mga gawain na lampas sa linear na pipeline[11][12] Mataas Kumplikado, panganib ng pag-ikot; kailangan ng mga guardrail

Praktikal na Implementasyon at Arkitektura

Mga Yugto ng Pagpapatupad

  1. Proof of Concept (PoC): Magsimula sa Classic RAG sa isang limitado ngunit representatibong hanay ng datos upang suriin ang kalidad ng mga embedding at pangunahing retrieval[1].
  2. Minimum Viable Product (MVP): Ipatupad ang Hybrid Retrieval at Re‑ranking bilang pinakamahusay na ratio ng "pagsisikap/epekto"[5][8].
  3. Production: Magdagdag ng mga pagbabago ng kahilingan (HyDE, Multi‑Query) at kung kinakailangan ang Query Routing; i-configure ang observability (pag-log ng retrieval/rerank/mga sagot) at A/B testing[3][10].

Mga Pangunahing Bahagi

  • Chunking (Paghihiwa ng Teksto): Isa sa mga pinaka-kritikal na salik ng kalidad. Ang naïve na fixed na laki ay kadalasang pumuputol ng mga semantic na yunit. Inirerekomenda ang mga istruktura-oriented (ayon sa markup) o recursive na splitter (talata → pangungusap → salita)[17][18].
  • Mga Embedding at Metadata: I-store kasama ang bawat chunk ang document_id, pahina/seksyon, pamagat, mga petsa; ito ay kinakailangan para sa pag-filter at tamang pagsipi ng mga pinagkukunan.
  • Hybrid Retrieval at Reranking: Gumamit ng BM25+vector na may fusion (o RRF), pagkatapos ay cross-encoder para sa muling pag-rank sa maliit na pool ng mga kandidato[5][6][8].
  • Pag-pack ng Konteksto: Pumili ng Map‑Reduce, Refine o Tree‑of‑Chunks para sa mahahabang corpus[16][18].

Mga Karaniwang Pagkakamali (Antipattern)

  • Vector search lamang nang walang BM25 → kabiguan sa mga code/ID/acronym[5][7].
  • Masyadong malaki/maliit na chunk → pagkawala ng konteksto o "pagkalat" ng embedding[17].
  • Walang reranking sa production → ang LLM ay tumatanggap ng maingay na konteksto[8].
  • Walang observability at tracing ng mga pinagkukunan → imposibleng suriin ang mga sanhi ng mga pagkakamali (tingnan ang ebalwasyon ng RAG).

Ebalwasyon ng Kalidad at Mga Sukatan

Ang ebalwasyon ay isinasagawa sa antas ng retrieval (offline) at end‑to‑end (henerasyon).

Mga Sukatan ng Retriever

  • Hit Rate, Recall@k, MRR — saklaw at posisyon ng mga kaugnay na dokumento.
  • Context Precision & Recall — gaano karami ang nakuha na konteksto na walang "basura" at sumasaklaw sa lahat ng kinakailangan (ipinatupad sa RAGAS)[19].

Mga Sukatan ng Generator (end‑to‑end)

  • Faithfulness / Groundedness — pagsang-ayon ng sagot sa ibinigay na konteksto.
  • Answer Relevancy (Kaugnayan ng Sagot) — pagsang-ayon sa orihinal na tanong.

Para sa automation ng mga sukatan, ginagamit ang mga open‑source framework: RAGAS, TruLens (RAG triad: context relevance, groundedness, answer relevance), DeepEval[20][21].

Tingnan Din

  • Retrieval-Augmented Generation (RAG)
  • Mga Vector Database
  • Embedding
  • AI-ahente
  • GraphRAG
  • MM-RAG
  • Ebalwasyon at mga Benchmark ng LLM

Mga Sanggunian

  • 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].

Mga Tala

  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