Retrieval-Augmented Generation (RAG), büyük dil modelinin egitim verisinin otesindeki güncel veya özel bilgiye erismesini saglayan mimari yaklasimdir. Model yalnizca parametrelerindeki bilgiyle sinirli kalmaz; once ilgili doküman parcalari retrieve edilir, sonra bu parçalar prompt baglamina eklenerek cevap uretilir. Kurumsal bilgi tabanlari, hukuki arsivler ve teknik dokumantasyon senaryolarinda halusinasyon riskini azaltmanin en yaygın yolu RAG pipeline kurmaktir.
Temel mimari: index, retrieve, generate
Klasik RAG uc asamadan olusur. Index asamasinda ham dokumanlar yuklenir, parcalara bolunur, embedding vektorlerine donusturulur ve vektor veritabanına yazilir. Retrieve asamasinda kullanıcı sorusu embedding'e cevrilir, benzerlik aramasi yapilir ve en alakali K parça secilir. Generate asamasinda LLM bu parcalari bağlam olarak alir ve soruya cevap üretir. Bu uc lop arasindaki sözleşme net olmalidir; aksi halde index kalitesi iyi olsa bile üretim katmanı hatali sonuç verir.
Minimal bir üretim pipeline'i su bilesenleri icerir: doküman yukleyici (PDF, HTML, Markdown), chunker, embedding modeli, vektor store (pgvector, Qdrant, Pinecone vb.), retriever servisi, prompt builder ve LLM gateway. Her bilesen ayri ölçeklenebilir; embedding işlemi genelde batch, sorgu ise düşük gecikmeli çalışır.
Embedding ve vektor arama
Embedding modeli metni sabit boyutlu vektor uzayina tasir; anlamsal olarak yakın metinler vektor uzayinda da yakın olur. OpenAI text-embedding-3-large, Cohere embed-v3 ve açık kaynak bge-m3 gibi modeller farklı boyut, maliyet ve cok dilli destek profilleri sunar. Model seçiminde MTEB benchmark sonuclari ve kendi domain veriniz uzerindeki recall@k degerleri esas alinmalidir.
Benzerlik aramasi genelde cosine similarity ile yapilir. Vektor veritabanları approximate nearest neighbor (ANN) algoritmalari kullanır; HNSW yaygın bir secimdir. ANN hiz kazanir ama küçük bir recall kaybi olabilir. Kritik sistemlerde efSearch parametresi ve K degeri A/B test edilir. Metadata filtreleme (departman, tarih, erişim seviyesi) vektor aramasindan once veya sonra uygulanabilir; hibrit senaryolarda genelde once metadata filtre, sonra vektor siralamasi tercih edilir.
Örnek retrieval akisi
query_vec = embed("VPN hata kodu 809 cozumu")
candidates = vector_store.search(
vector=query_vec,
top_k=20,
filter={"tenant_id": "acme", "doc_type": "runbook"}
)
top_chunks = candidates[:5]
prompt = build_rag_prompt(question=user_query, chunks=top_chunks)
answer = llm.complete(prompt)
Chunking stratejilerinin etkisi
Chunking, RAG basarisinin sessiz belirleyicisidir. Sabit karakter boyutu (örneğin bes yuz karakter) uygulamasi basit ama cumle ortasinda kesme riski tasir. Recursive character splitter paragraflar, cumleler ve kelimeler uzerinden hiyerarsik boler; çoğu metin turu icin iyi baslangictir. Semantic chunking embedding benzerligine gore sınır cizer; daha tutarlı anlam bloklari oluşturur ama maliyeti yüksektir.
Overlap (ust uste binme) kayıp baglami azaltir. Yüzde on ile yirmi overlap teknik dokumanlarda sik kullanılır. Cok küçük chunklar spesifik aramayi iyilestirir ama generate asamasinda yeterli bağlam sunmaz. Cok büyük chunklar gurultu ekler ve embedding kalitesini dusurur. Baslangic icin bes yuz ile bin token arasi parçalar, yüzde on bes overlap çoğu kurumsal wiki icin makul bir varsayilandir.
Prompt sablonu ve grounded generation
RAG promptu modeli açıkça sinirlandirmalidir: yalnizca verilen kaynaklara dayan, bilgi yoksa belirt. Örnek şablon:
Sistem: Sen teknik destek asistanisin. Asagidaki kaynaklar disinda bilgi uydurma.
Kaynaklar:
{numbered_chunks}
Kullanici sorusu: {question}
Cevabi Turkce ver. Her iddia icin kaynak numarasi belirt.
Grounded generation icin citation zorunlulugu halusinasyonu dusurur. Model kaynak numarasi uydurdugunda sunucu tarafinda dogrulama yapilir; olmayan referanslar kullanıcıya gosterilmeden yeniden üretim tetiklenir. Bu kontrol ek gecikme getirir ama güvenilirlik kritik ortamlarda kabul edilebilir.
RAG turleri: naive, advanced ve modular
Naive RAG tek gecisli index-retrieve-generate akisidir; hızlı prototip icin yeterlidir. Advanced RAG sorgu genişletme, reranking, cok adimli retrieval ve ozetleme ekler. Modular RAG ise routing, farklı bilgi kaynaklari ve agent benzeri karar mekanizmalari kullanır. Hangi tur secilecegi latency butcesi ve dogruluk gereksinimine baglidir; destek botu icin advanced RAG sik tercih edilir.
Query transformation teknikleri arama kalitesini artirir. HyDE (Hypothetical Document Embeddings) modelin varsayilan bir cevap dokumani uretmesini ve onu aramak icin kullanmasini icerir. Multi-query ise tek sorudan birden fazla arama ifadesi üretir; sonuçlar birlestirilir. Bu teknikler token maliyetini artirir; yalnizca recall düşük kaldiginda devreye alinmalidir.
Değerlendirme metrikleri
RAG sistemini olcmek icin en az dört metrik izlenmelidir:
- Context precision: Getirilen parcalardan kac tanesi gercekten alakali?
- Context recall: Cevap icin gerekli bilgi parcalari getirildi mi?
- Faithfulness: Uretilen cevap kaynaklara sadik mi?
- Answer relevance: Cevap soruyu karsiliyor mu?
Bu metriklerin bir kismi LLM-as-judge ile otomatik hesaplanir; yine de insan etiketli alt kumeler duzenli kontrol edilmelidir. Offline test setinde en az yuz soru-cevap-kaynak ucgeni bulunmasi regression analizi icin minimum saglam seviyedir.
Üretim ortamina geçiş dikkat noktalari
Ilk üretim kurulumunda en sik yapılan hata, prototipteki ayni embedding modelini ve chunk boyutunu degistirmeden olceklendirmektir. Doküman guncellemeleri icin incremental indexing planlanmali; tam yeniden index gece batch job olarak calisabilir ama tek doküman guncellemesi anlik yansimalidir. Silinen dokumanlar vektor store'dan da silinmeli; aksi halde hayalet bilgi retrieve edilir.
Güvenlik tarafinda tenant izolasyonu vektor filtreleriyle sağlanır; tek index icinde metadata ile ayirim yeterli degilse ayri collection kullanılır. PII iceren dokumanlar index oncesi maskeleme pipeline'indan gecmelidir. Loglarda ham kullanıcı sorusu ve retrieve edilen parçalar KVKK acisindan saklama politikasina tabidir.
Maliyet ve gecikme profili
Tipik bir sorguda embedding maliyeti düşük, vektor arama milisaniye duzeyinde, LLM uretimi ise toplam gecikmenin büyük bolumunu oluşturur. Retrieve edilen parça sayisi arttikca input token maliyeti lineer artar. K=5 ile K=20 arasindaki kalite farki olculmeden K artirmak hem pahali hem risklidir cunku düşük skorlu parçalar modeli yanlış yone ceker.
Cache stratejileri maliyeti dusurur: ayni soru tekrarlarinda embedding ve vektor arama sonucu cache'lenebilir. Semantik cache benzer sorulari gruplar; esik degeri yanlış cache hit uretmemek icin dikkatle ayarlanir. Streaming cevap kullanıcıya algilanan gecikmeyi azaltir; retrieval tamamlanmadan LLM baslatilmamali.
Alternatiflerle karşılaştırma
RAG, model fine-tuning'e alternatif degil tamamlayicidir. Güncel bilgi gerektiren senaryolarda fine-tuning tek basina yeterli olmaz cunku her doküman guncellemesinde yeniden egitim gerekir. Uzun bilgi tabanlarini modele sokmak icin RAG daha ekonomiktir. Ancak stil, format veya domain dili ogretmek icin fine-tuning veya güçlü sistem promptu daha etkili olabilir. Doğru mimari çoğu zaman RAG arti hafif prompt muhendisligi kombinasyonudur.
Ilk kurulum kontrol listesi
Veri envanterini cikarip hangi kaynaklarin indexlenecegini belirleyin. Chunk boyutu ve overlap degerlerini küçük bir alt kumede test edin. Embedding modelini domain sorulariyla degerlendirin. Prompt sablonunda kaynak disi cevap yasagini açıkça yazin. Faithfulness ve recall metriklerini otomatik pipeline'a baglayin. Uretimde retrieval loglarini kaynak etiketiyle saklayin. Bu temeller oturdugunda ileri teknikler (rerank, hibrit arama) uzerine guvenle insa edilebilir.
Ek üretim perspektifi
Canli ortamda gozlemlenebilirlik olmadan ne RAG ne fine-tuning yatirimi savunulabilir. Her istek icin retrieval skorlari, kullanilan model surumu, prompt hash ve token sayilari yapilandirilmis log olarak yazilmalidir. Dashboard uzerinde haftalik trend analizi yaparak kalite dususleri deployment veya veri kaynagi degisikligine baglanir. On-call runbook'unda retrieval bos dondugunde kullanıcıya gosterilecek mesaj, fallback model seçimi ve cache invalidation adimlari açıkça tanimlanmalidir. Chaos testleri ile vektor veritabanı geçici kesildiginde sistemin kontrollu degradasyon gostermesi beklenir; sessiz halusinasyon üretmek kabul edilemez bir failure moddur. Maliyet optimizasyonu kalite metriklerinden koparilmamali; ucuz model veya düşük top_k seçimi anlik fatura dusurur ama faithfulness alarmi yoksa toplam is degeri zarar görür. Ekip icin ortak bir sözlük tutmak önemlidir: chunk, embedding, adapter, rerank gibi terimler herkes icin ayni anlama gelmelidir. Yeni hire onboarding dokumani bu mimari kararlari ve gerekce metriklerini icermelidir. Son olarak, kullanıcı geri bildirim dongusu kapatilmalidir: thumbs-down tiklanan cevaplar retrieval logu ile eslestirilerek haftalik kalite toplantisinda incelenir. Bu operasyonel olgunluk tek basina doğru teknoloji seciminden daha uzun vadeli başarı getirir cunku sistemler bozulduklarinda fark edilir ve duzeltilir; iyi tasarlanmis RAG veya fine-tuning pipeline'i ise ancak bu disiplinle sürekli deger üretir.