RAG (Geri Getirim Artırılmış Üretim)

LLM'yi harici bilgi kaynaklarıyla dinamik olarak destekleyerek güncel ve kaynak gösterilebilir yanıtlar üreten mimari.

RAG (Retrieval-Augmented Generation — Geri Getirme Destekli Üretim), büyük dil modellerini (LLM) harici bilgi kaynaklarıyla dinamik olarak güçlendiren bir mimaridir. Bir LLM, eğitim sırasında öğrendiği bilgiyle sınırlıdır; güncel olmayan veya alana özgü bilgiye sahip değildir. RAG bu sorunu, yanıt üretmeden önce ilgili belgeleri gerçek zamanlı olarak getirerek (retrieve) çözer. RAG sürecinin temel adımları şöyle özetlenebilir: kullanıcının sorusu bir embedding modeliyle vektörleştirilir, bu vektör temsili bir vektör veri tabanında (Pinecone, Weaviate, pgvector, Chroma, Qdrant) benzerlik araması yapılarak en alakalı metin parçaları (chunk) bulunur. Bu chunk'lar LLM'in sistem promptuna bağlam olarak eklenir ve model bu zenginleştirilmiş girdiyle yanıt üretir. RAG birçok kritik avantaj sunar: halüsinasyonları azaltır, güncelliği korur (bilgi tabanı yeniden eğitim gerektirmeksizin güncellenebilir), kaynak gösterilebilir ve ölçeklenebilir bir yapı sunar. Hukuk, finans ve tıp gibi yüksek güvenilirlik gerektiren sektörlerde her yanıtın kaynağını gösterme zorunluluğu RAG'ı vazgeçilmez kılmaktadır. Bu özellikler RAG'ı kurumsal yapay zeka uygulamalarının omurgası hâline getirmiştir. Chunk stratejisi RAG performansını doğrudan etkiler. Sabit uzunluklu bölme, özyinelemeli karakter bölme ve anlamsal bölme farklı senaryolara göre seçilir. Genel öneri 512–1024 token chunk, yüzde on ila yirmi örtüşmedir. Büyük chunk bağlam penceresini tıkarken küçük chunk bağlam kaybına yol açar. İyi bir chunk stratejisi, sistemin doğruluğunu temel embedding modeli seçiminden daha fazla etkileyebilir. İleri RAG teknikleri arasında query expansion, HyDE (Hypothetical Document Embeddings), re-ranking ve hybrid search (yoğun vektör ile BM25 anahtar kelime aramasının birleşimi) sayılabilir. GraphRAG ise bilgi grafiği entegrasyonuyla mantıksal ilişki zincirlerini sorgulayan Microsoft kaynaklı gelişmiş uzantıdır. Türkiye'deki geliştiriciler için LangChain ve LlamaIndex gibi çerçeveler RAG pipeline'larını hızla hayata geçirmeyi kolaylaştırır; pgvector ve Qdrant yerel barındırma için öne çıkan açık kaynak seçeneklerdir.

RAG Neden Gereklidir?

LLM'ler bilgilerini eğitim sırasında 'dondurmaktadır'; model bilgi kesim tarihi sonrasındaki olayları bilmez. Kurumsal bir chatbot için şirket içi belgeler, ürün katalogları veya güncel mevzuat gerektiğinde ise ince ayar (fine-tuning) her güncelleme için pahalı ve zaman alıcıdır. RAG bu problemi köklü biçimde çözer: bilgi tabanı herhangi bir model yeniden eğitimi gerektirmeksizin anlık olarak güncellenebilir. Ayrıca yanıtlarda kaynak belgeler gösterilebilir — hukuk, finans ve tıp gibi yüksek güvenilirlik gerektiren sektörlerde bu özellik kritik öneme sahiptir.

Temel RAG Pipeline

Bir RAG sistemi beş katmandan oluşur. (1) Doküman işleme: PDF, DOCX, web sayfası gibi ham içerikler metin bloklarına (chunk) ayrılır. (2) Vektörleştirme: Her chunk bir embedding modeliyle (text-embedding-3-small, BGE, E5 vb.) sayısal vektöre dönüştürülür. (3) Vektör depolama: Bu vektörler benzerlik aramasına hazır bir vektör veri tabanına aktarılır. (4) Sorgulama: Kullanıcı sorusu da vektörleştirilir; en yakın chunk'lar kosinüs veya Euclidean benzerliğiyle bulunur. (5) Üretim: Bulunan chunk'lar LLM'in sistem promptuna bağlam olarak eklenir ve model bu zenginleştirilmiş girdiyle yanıt üretir.

Popüler Vektör Veri Tabanları

pgvector

PostgreSQL uzantısı; mevcut Postgres altyapısına entegre edilebilir. Ekstra altyapı gerektirmez, küçük-orta ölçekli projeler için idealdir.

Qdrant

Yüksek performanslı açık kaynak vektör DB; filtreleme ve koşullu arama gücü güçlüdür. Yerel Docker veya bulut olarak çalışır.

Pinecone

Yönetilen bulut vektör DB; sıfır altyapı yükü. Üretim ölçeğinde güvenilir ama maliyeti büyüklükle artar.

Chroma

Geliştirici dostu, yerleşik açık kaynak seçenek. Prototipleme ve yerel geliştirme için hızlı başlangıç sunar.

İleri RAG Teknikleri

Temel RAG'ın ötesinde performansı artıran birçok yöntem mevcuttur. **Query Expansion:** Kullanıcı sorusu LLM yardımıyla yeniden ifade edilerek geri getirme kalitesi artırılır. **HyDE:** Soruya göre hipotetik bir yanıt üretilir, bu yanıtın embedding'i gerçek chunk'lara karşı aranır. **Re-Ranking:** İlk arama sonuçları çapraz kodlayıcı modellerle yeniden sıralanır. **Hybrid Search:** Yoğun vektör araması ile BM25 anahtar kelime araması birleştirilerek hem anlam hem kelime eşleşmesi yakalanır. **GraphRAG:** Microsoft'un geliştirdiği bu yaklaşım bilgi grafiği üzerinden mantıksal ilişki zincirlerini de sorgular.

RAG mı, Fine-Tuning mi?

  • check_circle Bilgi güncelliği gerekiyorsa → RAG: Güncel belgeler, ürün katalogları veya değişen mevzuata ihtiyaç varsa RAG tercih edilir; bilgi tabanı yeniden eğitim gerektirmeksizin güncellenir.
  • check_circle Kalıcı davranış/format öğretilecekse → Fine-Tuning: Modelin belirli bir üslup, terminoloji veya çıktı formatını kalıcı olarak öğrenmesi gerekiyorsa ince ayar daha etkilidir.
  • check_circle Kaynak gösterme zorunluysa → RAG: Hukuk, finans veya tıp gibi alanlarda her yanıtın kaynağı gösterilmesi gerekiyorsa RAG bunu doğal biçimde destekler.
  • check_circle Kombinasyon en güçlü yaklaşım: Alan bilgisiyle fine-tuning yapılmış model + RAG ile güncel bağlam bilgisi: bu kombinasyon en yüksek kaliteyi sunar.

menu_book Site İçi RAG Rehberleri

  • check_circle RAG Nedir? Yerel Chatbot Ollama ve LangChain: RAG pipeline'ını Ollama ve LangChain kullanarak yerel ortamda adım adım kurma rehberi. Daha detaylı bilgi için /blog/rag-nedir-yerel-chatbot-ollama-langchain adresine bakın.
  • check_circle Fine-Tuning vs RAG: LLM Proje Stratejisi: Hangi senaryoda RAG, hangisinde fine-tuning seçilmeli? Karşılaştırmalı rehber: /blog/fine-tuning-vs-rag-llm-proje-stratejisi
  • check_circle GraphRAG Nedir? Microsoft Graph Tabanlı RAG: Bilgi grafiği entegrasyonuyla gelişmiş RAG mimarisi: /blog/graphrag-nedir-microsoft-graph-tabanli-rag
  • check_circle Reranker ile RAG Kalitesini Artırma: Re-ranking teknikleriyle RAG doğruluğunu iyileştirme: /blog/reranker-nedir-rag-arama-kalitesi-artirma

quiz Sık Sorulan Sorular

  • check_circle RAG nedir?: Retrieval-Augmented Generation; büyük dil modellerini harici bilgi kaynaklarıyla destekleyerek güncel, kaynak gösterilebilir yanıtlar üretmesini sağlayan mimaridir.
  • check_circle RAG halüsinasyonu tamamen ortadan kaldırır mı?: Hayır. Yanlış bağlam getirilirse LLM hata yapabilir. Chunk kalitesi, embedding modeli ve re-ranking halüsinasyon riskini azaltır; sıfıra indirmez.
  • check_circle Kaç chunk getirilmeli (k değeri)?: k=3–5 iyi başlangıç noktasıdır. Bağlam penceresi boyutu ve maliyet dengesiyle optimize edilmeli; uzun belgeler için k=8–10 tercih edilebilir.
  • check_circle pgvector mu, Qdrant mı seçmeliyim?: Mevcut PostgreSQL altyapısı varsa pgvector pratik. Yüksek performanslı filtreleme öncelikliyse Qdrant önerilir. Prototip için Chroma hızlı başlangıç sunar.
  • check_circle RAG için hangi kütüphane kullanılır?: LangChain ve LlamaIndex en yaygın seçeneklerdir; chunk, embed, retrieve ve generate adımlarını tek pipeline'da yönetir.
  • check_circle Chunk boyutu nasıl belirlenir?: Genel öneri 512–1024 token, %10–20 örtüşme. Kısa belgeler için 256 token; uzun raporlar için 1024 token. Anlamsal bölme en tutarlı sonucu verir.