RAG patterns (TR)
RAG Örüntüleri (İng. RAG Patterns) — Retrieval-Augmented Generation (RAG) sistemleri oluşturmak için kullanılan mimari ve metodolojik yaklaşımlar bütünüdür. Bu örüntüler; büyük dil modellerinin (LLM) halüsinasyonlar, bilgi güncelliğini yitirme ve alan özgüllüğünün yetersizliği gibi temel sorunlarını, LLM'leri harici ve dinamik olarak erişilebilir veri kaynaklarıyla entegre ederek çözmek amacıyla tasarlanmıştır[1]. RAG'ın evrimi, basit doğrusal boru hatlarından karmaşık modüler ve ajanlı sistemlere doğru ilerlemiştir[2].
RAG'ın Temel Örüntüleri
Teknolojinin gelişimiyle birlikte pek çok RAG örüntüsü ortaya çıkmıştır; her biri belirli sorunları çözmekte ve kalite, hız ile maliyet arasında farklı dengeler sunmaktadır.
- Classic RAG (Klasik RAG) — Kullanıcının sorgusunun vektörleştirilerek vektör veritabanındaki ilgili parçaların (chunk) arandığı temel yaklaşım; bulunan chunk'lar, yanıt üretimi için soruyla birlikte LLM'e iletilir[1].
- Multi‑Query RAG (Çoklu Sorgu) — LLM, orijinal sorgunun birden fazla yeniden ifade edilmiş/netleştirilmiş varyantını üretir; arama tüm varyantlar üzerinden gerçekleştirilir ve sonuçlar birleştirilerek kapsam (recall) artırılır[3].
- HyDE (Hypothetical Document Expansion) — Kısa sorgu ile uzun belgeler arasındaki "anlamsal uçurumu" aşmak için kullanılır. LLM önce "hipotetik" bir yanıt belgesi üretir, ardından bu belgenin embedding'i arama için kullanılır; bu yaklaşım çoğunlukla elde etme kalitesini artırır[4].
- Hybrid Retrieval (Hibrit Arama) — Anlamsal (vektör) arama ile sözcüksel (BM25) aramanın birleşimi. Hibrit şemalar üretim sistemleri için standart hâline gelmiştir: vektör arama anlam eşleşmelerini karşılarken BM25 tam terimleri/ID'leri/kısaltmaları bulur; sonuçlar fusion yöntemiyle birleştirilir[5][6][7].
- Re‑ranking (Yeniden Sıralama) — İki aşamalı bir süreç: hızlı bir retriever aday kümesini (örneğin ilk 100) döndürür, ardından bir cross-encoder (ya da başka bir reranker) alaka düzeyini yeniden hesaplayarak LLM için en iyi sonuçları (örneğin ilk 5) seçer[8][9].
- Query Routing (Sorgu Yönlendirme) — Birden fazla heterojen veri kaynağına (farklı indeksler/veritabanları/API'ler) sahip sistemlerde sorgu, bir yönlendirici (LLM seçici veya sınıflandırıcı) aracılığıyla en uygun kaynağa yönlendirilir; fallback stratejileri de içerir[10].
- Agentic/Web RAG (Ajanlı RAG) — LLM bir ajan olarak işlev görür: karmaşık soruları parçalara ayırır, yinelemeleri planlar ve geri bildirimle araçları (vektör arama, web araması) kullanır. Tipik uygulama ReAct paradigmasıdır[11]; web odaklı veri toplama ve zorunlu alıntılama için WebGPT'ye bakınız[12].
İlgili ve Gelişmekte Olan Paradigmalar
- GraphRAG (Graf RAG) — Bağlam kaynağı ve seçim mekanizması olarak bir bilgi grafiği kullanır; arama, varlıklar arasındaki bağlantıların yapısı ve metin üzerinden gerçekleşerek çok adımlı (multi-hop) sorularda yorumlanabilirliği ve kaliteyi artırır[13][14].
- MM‑RAG (Çok Modlu RAG) — Metin ve görsel kaynaklarla (taramalar/şemalar/tablolar) çalışır. Örnek: VisRAG, çok modlu belgeler üzerinde VLM odaklı retrieval ve üretimi göstermektedir[15].
- Packaging & Context Handling (Bağlam Paketleme) — Bulunan chunk'ların prompt'a entegre edilme yöntemleri: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16].
Örüntülerin Karşılaştırma Tablosu
| Örüntü | Ne Zaman Kullanılır | Kaliteye Etkisi | Maliyet / Gecikme | Riskler ve Kısıtlamalar |
|---|---|---|---|---|
| Classic RAG | Homojen bir taban üzerinde PoC ve basit Q&A | Temel düzey; embedding'lere güçlü bağımlılık[1] | Düşük | İfadeye duyarlılık; alakasız bağlam riski |
| Hybrid Retrieval | Çoğu üretim senaryosunda; çok sayıda kod/kısaltma/ID içeren durumlarda | Kapsamı artırır; tam terimleri karşılar[5][6][7] | Düşük/Orta | Fusion ağırlıklarının ayarlanması; iki ayrı indeks |
| Re‑ranking | Yüksek hassasiyet kritik olduğunda | İlk k'da precision'da belirgin artış[8][9] | Orta/Yüksek | Ek gecikme/maliyet |
| Multi‑Query | Kısa/çok yönlü sorgular | Recall'ı artırır[3] | Orta | Gereksiz/gürültülü yeniden ifadeler |
| HyDE | Büyük "anlamsal uçurum" barındıran kısa/belirsiz sorgular | Zero‑shot retrieval kalitesini iyileştirir[4] | Orta | "Hipotetik" metnin kalitesine bağımlılık |
| Query Routing | Birden fazla kaynak (belge tabanı, SQL, API, web) | Doğru kaynak sayesinde alaka düzeyini artırır[10] | Orta | Yanlış yönlendirme = arama başarısızlığı |
| Agentic/Web RAG | Karmaşık, araştırmacı, çok aşamalı sorgular | Doğrusal boru hattının ötesindeki görevleri çözer[11][12] | Yüksek | Karmaşıklık, döngüye girme riski; guardrail gereksinimi |
Pratik Uygulama ve Mimari
Uygulama Aşamaları
- Proof of Concept (PoC): Embedding kalitesini ve temel retrieval'ı doğrulamak için sınırlı ancak temsili bir veri kümesi üzerinde Classic RAG ile başlayın[1].
- Minimum Viable Product (MVP): En iyi "çaba/etki" oranı olarak Hybrid Retrieval ve Re‑ranking uygulayın[5][8].
- Üretim: Sorgu dönüşümleri (HyDE, Multi‑Query) ve gerektiğinde Query Routing ekleyin; observability (retrieval/rerank/yanıt günlükleme) ve A/B testi yapılandırın[3][10].
Temel Bileşenler
- Chunking (Parçalama): Kalite açısından en kritik etkenlerden biridir. Naif sabit boyut çoğunlukla anlam birimlerini böler. Yapı odaklı (işaretlemeye göre) veya özyinelemeli bölücüler (paragraf → cümle → sözcük) önerilir[17][18].
- Embedding'ler ve Meta Veriler: Her chunk ile birlikte document_id, sayfa/bölüm, başlık ve tarihler saklayın; bu bilgiler filtreleme ve doğru kaynak alıntılaması için zorunludur.
- Hibrit Retrieval ve Rerank: Fusion (veya RRF) ile BM25+vektör kullanın, ardından küçük bir aday havuzunda yeniden sıralama için cross-encoder uygulayın[5][6][8].
- Bağlam Paketleme: Uzun korpuslar için Map‑Reduce, Refine veya Tree‑of‑Chunks seçin[16][18].
Yaygın Hatalar (Antipatternler)
- Yalnızca vektör arama — BM25 olmadan → kodlar/ID'ler/kısaltmalar üzerinde başarısızlık[5][7].
- Çok büyük/çok küçük chunk → bağlam kaybı veya embedding'in "bulanıklaşması"[17].
- Üretimde rerank yokluğu → LLM gürültülü bağlam alır[8].
- Observability ve kaynak takibi eksikliği → hata nedenlerini analiz etmek imkânsızlaşır (bkz. RAG değerlendirmesi).
Kalite Değerlendirmesi ve Metrikler
Değerlendirme, retrieval düzeyinde (çevrimdışı) ve uçtan uca (üretim) olmak üzere iki düzeyde gerçekleştirilir.
Retriever Metrikleri
- Hit Rate, Recall@k, MRR — İlgili belgelerin kapsamı ve konumu.
- Context Precision & Recall — Elde edilen bağlamın "gürültüsüzlüğü" ve gerekli tüm bilgileri kapsama derecesi (RAGAS'ta uygulanmıştır)[19].
Üretici Metrikleri (Uçtan Uca)
- Faithfulness / Groundedness — Yanıtın sağlanan bağlamla uyumu.
- Answer Relevancy (Yanıt Alaka Düzeyi) — Orijinal soruyla uyum.
Metriklerin otomatikleştirilmesi için açık kaynaklı framework'ler kullanılır: RAGAS, TruLens (RAG triad: context relevance, groundedness, answer relevance), DeepEval[20][21].
Ayrıca bakınız
- Retrieval-Augmented Generation (RAG)
- Vektör Veritabanları
- Embedding
- AI Ajanı
- GraphRAG
- MM-RAG
- LLM Değerlendirmesi ve Benchmark'ları
Kaynakça
- 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].
Notlar
- ↑ 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