TPToolpazar

Yazılım Geliştirici

RAG Rehberi

RAG mimarisi, embedding, vector DB seçenekleri (pgvector, Qdrant, Pinecone), Türkçe RAG ipuçları ve adım adım proje kurulumu.

RAG (Retrieval-Augmented Generation), büyük dil modellerine kendi verilerinize dayalı, halüsinasyondan arındırılmış cevap verdirten mimari kalıbıdır. 2025-2026 döneminde kurumsal AI projelerinin %80+’si bir RAG katmanı içerir. Bu rehber RAG’ın ne olduğunu, neden çalıştığını, popüler vector DB seçeneklerini, Türkçe verilerle çalışma incelikleri ve başlangıç projesi nasıl kurulacağını anlatır.

RAG Mimarisi

Klasik LLM: kullanıcı sorar, model kendi eğitim verisinden cevap üretir. Sorun: eğitim sonrası gelişmeler bilinmez, kuruma özel bilgi yok, halüsinasyon riski yüksek.

RAG iki adımı birleştirir:

  1. Retrieval: Soruyla ilgili belgeleri bir veritabanından getir.
  2. Generation: Bu belgeleri prompt’a ekleyip modele “sadece bu kaynaklara dayanarak cevap ver” de.

Sonuç: model, sadece kendi eğitim verisi yerine sizin verinize dayanır. Halüsinasyon belirgin şekilde azalır; cevap kaynaklı (citable) olur.

Embedding ve Vector Search

Retrieval’ın kalbi embedding: bir metni sabit-boyutlu sayı vektörüne (genelde 768-3072 boyut) dönüştüren model. Anlamca yakın metinlerin vektörleri yakındır. Cosine similarity ile en yakın metni bulursunuz.

Türkçe için iyi embedding modelleri:

  • OpenAI text-embedding-3-large/small: Çoklu-dil, Türkçe iyi.
  • Cohere multilingual: 100+ dil, Türkçe testlerde başarılı.
  • BGE-M3 (açık ağırlıklı): Çok-dilli, ücretsiz, yerel çalışır.
  • Qwen3-Embedding: Açık, çok-dilli, Türkçe iyi.

Vector DB Seçenekleri

  • pgvector (PostgreSQL eklentisi): Mevcut DB kullanıyorsanız ideal. Ücretsiz, ölçeklenir.
  • Qdrant: Açık kaynak, Rust ile yazılı, hızlı.
  • Weaviate: Açık kaynak, GraphQL arayüzü.
  • Chroma: Python-odaklı, küçük projeler için hızlı kurulum.
  • Pinecone: Yönetilen SaaS, kolay başlangıç, ölçeklenmiş projelerde pahalı.
  • Milvus: Büyük ölçek için.

Türk projelerin %60’ı pgvector veya Qdrant ile başlar. Veri 100.000-1M doc altında kalıyorsa pgvector mevcut Postgres ile harika çalışır.

Adım Adım Basit RAG Projesi

  1. Veriyi parçalara böl (chunking): PDF, web sayfası, doc — 300-500 kelimelik bloklara bölün. Cümle veya paragraf sınırına saygı gösterin.
  2. Her parçanın embedding’ini al: Embedding modeline gönder, vektörü kaydet.
  3. Vector DB’ye yükle: text + embedding + metadata (kaynak, tarih).
  4. Sorgu zamanı: Kullanıcı sorusunu da embedding’e çevir, vector DB’den en benzer 5-10 chunk’ı çek.
  5. Generation: Çekilen chunk’ları prompt’a ekle: “Aşağıdaki bilgilere dayanarak soruyu cevapla. Bilgi yoksa ‘belirsiz’ yaz.” Modele gönder.

Türkçe RAG'da Dikkat

  • Çoklu-dilli embedding seç: Türkçe-only model İngilizce dokümana karışan içeriği yakalayamaz; çoklu-dilli model her ikisini de kapsar.
  • Token sayısı dikkati: Türkçe chunk’lar aynı kelime sayısı için daha çok token harcar. 500 kelime yerine 350-400 kelime sınırı pratik.
  • Hibrit arama: Sadece vector arama bazen önemli kelimeleri kaçırır (KDV, BSMV gibi kısaltmalar). Vector + BM25 (keyword) hibrit en iyi sonucu verir; pgvector ve Qdrant bunu destekler.
  • Reranker kullan: İlk 20 chunk’ı çek, Cohere veya BGE reranker ile yeniden sırala, en iyi 5’i modele ver. Doğruluk %15-30 artar.

RAG Alternatifleri

  • Long-context model: Claude (1M), Gemini (2M) bağlam pencerelerine tüm dokümanı doğrudan vermek bir alternatif. Pratik: 50-200 sayfa için OK; 1000+ sayfa için RAG hâlâ daha iyi (maliyet ve hız).
  • Fine-tuning: Bilgi modele “içselleştirilirse” sorgu zamanı bağlam yüklemek gerekmez. Sınırı: bilgi statik; güncellenmesi yeniden eğitim gerektirir.
  • NotebookLM tarzı: Hazır RAG ürünleri (Google NotebookLM, Anthropic Projects). Hızlı başlangıç için iyi; özelleştirme sınırlı.

Sık Sorulan Sorular

RAG halüsinasyonu tamamen önler mi?
Önemli ölçüde azaltır ama tamamen elimine etmez. Model bağlam içinde olmayan iddiaları üretebilir. Mitigations: 'belirtilmemişse bilmiyorum de' talimatı, kaynak gösterme, çıktı doğrulama.
Hangi vector DB ile başlayayım?
PostgreSQL kullanıyorsanız pgvector (5 dakikada hazır). Yoksa Chroma veya Qdrant. SaaS isterseniz Pinecone veya Weaviate Cloud.
Embedding maliyeti ne kadar?
OpenAI text-embedding-3-small: $0.02/M token. 10.000 sayfa belge için yaklaşık $5. Açık ağırlıklı modeller (BGE-M3, Qwen3-Embedding) yerel çalışır, ücretsiz.
RAG için hangi LLM en iyi?
Talimat takibi güçlü olanlar: Claude Sonnet, GPT-5, Gemini Pro. Maliyet için Claude Haiku, Gemini Flash, DeepSeek-V3. Yerel için Qwen3 32B veya Llama 3.3 70B.
Chunk boyutu ne olmalı?
300-500 kelime tipik tatlı nokta. Çok küçük (100): bağlam kaybı. Çok büyük (1500+): retrieval bulanık. Cümle/paragraf sınırına saygı gösterin.
Hibrit arama nedir?
Vector arama (anlamsal) + BM25 (kelime-tabanlı) sonuçlarını birleştirme. Türkçe gibi morfolojik açıdan zengin dillerde özellikle değerli; özel terimler ve kısaltmalar yakalanır.
GraphRAG nedir?
Microsoft'un yaklaşımı: belgelerden bilgi grafı çıkarıp grafda yürüme + LLM birleşimi. Karmaşık çoklu-belge ilişkilerinde basit RAG'dan iyi; kurulum maliyeti yüksek.

İlgili rehberler