Pola-pola RAG
Pola-pola RAG (Ingg. RAG Patterns) — adalah sekumpulan pendekatan arsitektur dan metodologi untuk membangun sistem Retrieval-Augmented Generation (RAG). Pola-pola ini dirancang untuk mengatasi masalah mendasar pada large language model (LLM), seperti halusinasi, keusangan pengetahuan, dan kurangnya spesifisitas domain, melalui integrasi LLM dengan sumber data eksternal yang dapat diakses secara dinamis[1]. Evolusi RAG telah menempuh perjalanan dari pipeline linier sederhana menuju sistem modular dan agentik yang kompleks[2].
Pola-pola Utama RAG
Seiring berkembangnya teknologi, muncul berbagai pola RAG, masing-masing mengatasi tugas tertentu dan memiliki komprominya sendiri antara kualitas, kecepatan, dan biaya.
- Classic RAG (RAG Klasik) — pendekatan dasar di mana kueri pengguna divektorisasi untuk mencari fragmen (chunk) yang relevan dalam basis data vektor; chunk yang ditemukan dimasukkan ke LLM bersama pertanyaan untuk menghasilkan jawaban[1].
- Multi‑Query RAG (Kueri Berganda) — LLM menghasilkan beberapa varian kueri asli yang diparafrase/diperjelas; pencarian dilakukan atas semua varian, hasilnya digabungkan, sehingga meningkatkan kelengkapan (recall)[3].
- HyDE (Hypothetical Document Expansion) — untuk mengatasi "kesenjangan semantik" antara kueri pendek dan dokumen panjang. LLM terlebih dahulu menghasilkan dokumen jawaban "hipotetis", lalu embedding-nya digunakan untuk pencarian, yang seringkali meningkatkan kualitas ekstraksi[4].
- Hybrid Retrieval (Pencarian Hibrida) — kombinasi pencarian semantik (vektor) dan leksikal (BM25). Skema hibrida telah menjadi standar untuk sistem produksi: pencarian vektor mencakup kesesuaian makna, sedangkan BM25 menemukan istilah/ID/akronim yang tepat; hasilnya digabungkan melalui fusion[5][6][7].
- Re‑ranking (Peringkat Ulang) — proses dua tahap: retriever cepat menghasilkan sekumpulan kandidat (misalnya, top‑100), lalu cross-encoder (atau reranker lainnya) menghitung ulang relevansi dan memilih yang terbaik (misalnya, top‑5) untuk LLM[8][9].
- Query Routing (Perutean Kueri) — pada sistem dengan beberapa sumber data heterogen (indeks/basis data/API berbeda), kueri diarahkan ke sumber terbaik menggunakan router (selektor LLM atau pengklasifikasi); mencakup strategi fallback[10].
- Agentic/Web RAG (RAG Agentik) — LLM bertindak sebagai agen: mendekomposisi pertanyaan kompleks, merencanakan iterasi, dan menggunakan alat (pencarian vektor, pencarian web) dengan umpan balik. Implementasi tipikal adalah paradigma ReAct[11]; untuk pengumpulan berorientasi web dengan kutipan wajib, lihat WebGPT[12].
Paradigma Terkait dan yang Sedang Berkembang
- GraphRAG (RAG Berbasis Graf) — menggunakan graf pengetahuan sebagai sumber dan mekanisme pemilihan konteks; pencarian dilakukan melalui struktur hubungan antar entitas dan teks, meningkatkan interpretabilitas dan kualitas pada pertanyaan multi-hop[13][14].
- MM‑RAG (RAG Multimodal) — bekerja dengan sumber teks dan visual (pindaian/diagram/tabel). Contoh: VisRAG menunjukkan retrieval dan generasi berorientasi VLM pada dokumen multimodal[15].
- Packaging & Context Handling (Pengemasan Konteks) — cara mengintegrasikan chunk yang ditemukan ke dalam prompt: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16].
Tabel Perbandingan Pola
| Pola | Kapan diterapkan | Pengaruh terhadap kualitas | Biaya / Latensi | Risiko dan keterbatasan |
|---|---|---|---|---|
| Classic RAG | PoC dan Q&A sederhana pada basis data homogen | Tingkat dasar; sangat bergantung pada embedding[1] | Rendah | Sensitif terhadap formulasi; risiko konteks tidak relevan |
| Hybrid Retrieval | Pada sebagian besar skenario produksi; banyak kode/akronim/ID | Meningkatkan kelengkapan; mencakup istilah yang tepat[5][6][7] | Rendah/Sedang | Penyetelan bobot fusion; dua indeks |
| Re‑ranking | Kritis ketika presisi tinggi penting | Peningkatan precision yang signifikan pada top‑k[8][9] | Sedang/Tinggi | Latensi/biaya tambahan |
| Multi‑Query | Kueri pendek/multi-aspek | Meningkatkan recall[3] | Sedang | Parafrase yang berlebihan/berisik |
| HyDE | Kueri pendek/ambigu dengan "kesenjangan semantik" besar | Meningkatkan kualitas retrieval zero‑shot[4] | Sedang | Bergantung pada kualitas teks "hipotetis" |
| Query Routing | Beberapa sumber (basis dokumen, SQL, API, web) | Meningkatkan relevansi melalui sumber yang tepat[10] | Sedang | Kesalahan rute = kegagalan pencarian |
| Agentic/Web RAG | Kueri kompleks, eksploratif, multi-tahap | Menyelesaikan tugas di luar pipeline linier[11][12] | Tinggi | Kompleksitas, risiko perulangan tak terbatas; perlu guardrail |
Implementasi Praktis dan Arsitektur
Tahapan Penerapan
- Proof of Concept (PoC): Mulailah dengan Classic RAG pada kumpulan data terbatas namun representatif untuk menguji kualitas embedding dan retrieval dasar[1].
- Minimum Viable Product (MVP): Terapkan Hybrid Retrieval dan Re‑ranking sebagai rasio terbaik "usaha/dampak"[5][8].
- Produksi: Tambahkan transformasi kueri (HyDE, Multi‑Query) dan bila perlu Query Routing; konfigurasikan observability (pencatatan retrieval/rerank/respons) dan pengujian A/B[3][10].
Komponen Utama
- Chunking (Pemecahan Teks): Salah satu faktor kualitas yang paling kritis. Ukuran tetap yang naif sering memutus unit semantik. Disarankan menggunakan pemisah berorientasi struktur (berdasarkan markup) atau rekursif (paragraf → kalimat → kata)[17][18].
- Embedding dan Metadata: Simpan bersama setiap chunk berupa document_id, halaman/seksi, judul, tanggal; ini diperlukan untuk penyaringan dan kutipan sumber yang benar.
- Hybrid Retrieval dan Rerank: Gunakan BM25+vektor dengan fusion (atau RRF), lalu cross-encoder untuk perangkingan ulang pada kumpulan kandidat kecil[5][6][8].
- Pengemasan Konteks: Pilih Map‑Reduce, Refine, atau Tree‑of‑Chunks untuk korpus yang panjang[16][18].
Kesalahan Umum (Antipola)
- Hanya pencarian vektor tanpa BM25 → kegagalan pada kode/ID/akronim[5][7].
- Chunk terlalu besar/kecil → kehilangan konteks atau "pengenceran" embedding[17].
- Tidak ada reranker di produksi → LLM menerima konteks yang berisik[8].
- Tidak ada observability dan pelacakan sumber → tidak mungkin menganalisis penyebab kesalahan (lihat evaluasi RAG).
Evaluasi Kualitas dan Metrik
Evaluasi dilakukan pada level retriever (offline) dan end‑to‑end (generasi).
Metrik Retriever
- Hit Rate, Recall@k, MRR — cakupan dan posisi dokumen yang relevan.
- Context Precision & Recall — sejauh mana konteks yang diekstraksi bebas dari "sampah" dan mencakup semua yang diperlukan (diimplementasikan dalam RAGAS)[19].
Metrik Generator (end‑to‑end)
- Faithfulness / Groundedness — kesesuaian jawaban dengan konteks yang diberikan.
- Answer Relevancy (Relevansi Jawaban) — kesesuaian dengan pertanyaan asli.
Untuk otomatisasi metrik digunakan framework open‑source: RAGAS, TruLens (RAG triad: relevansi konteks, groundedness, relevansi jawaban), DeepEval[20][21].
Lihat Juga
- Retrieval-Augmented Generation (RAG)
- Basis data vektor
- Embedding
- Agen AI
- GraphRAG
- MM-RAG
- Evaluasi dan benchmark LLM
Daftar Pustaka
- 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].
Catatan
- ↑ 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.
- ↑ 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.0 3.1 3.2 LangChain Docs. MultiQueryRetriever. https://python.langchain.com/docs/how_to/MultiQueryRetriever/
- ↑ 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.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.0 6.1 6.2 Qdrant Docs. Hybrid Queries. https://qdrant.tech/documentation/concepts/hybrid-queries/
- ↑ 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.0 8.1 8.2 8.3 8.4 Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- ↑ 9.0 9.1 Cohere Docs. Rerank — best practices. https://docs.cohere.com/docs/reranking-best-practices
- ↑ 10.0 10.1 10.2 LlamaIndex Docs. Routing (query routers/selectors). https://docs.llamaindex.ai/en/stable/module_guides/querying/router/
- ↑ 11.0 11.1 Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
- ↑ 12.0 12.1 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. https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
- ↑ Microsoft Research. Project GraphRAG. https://www.microsoft.com/en-us/research/project/graphrag/
- ↑ Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594; OpenReview: zG459X3Xge.
- ↑ 16.0 16.1 Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
- ↑ 17.0 17.1 LangChain Docs. RecursiveCharacterTextSplitter. https://python.langchain.com/docs/how_to/recursive_text_splitter/
- ↑ 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/
- ↑ Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). https://aclanthology.org/2024.eacl-demo.16/
- ↑ TruLens Docs. RAG Triad. https://www.trulens.org/getting_started/core_concepts/rag_triad/
- ↑ DeepEval (GitHub). https://github.com/confident-ai/deepeval