RAG Nedir?
Retrieval-Augmented Generation (RAG), büyük dil modellerini harici bilgi kaynaklarıyla birleştiren güçlü bir tekniktir. Türkçe'ye "Erişim Destekli Üretim" olarak çevrilebilir. RAG, AI'ın yanıtlarını kendi veritabanınızdaki, dokümanlarınızdaki veya bilgi tabanınızdaki gerçek ve güncel bilgilerle destekleyerek çok daha doğru, güvenilir ve kaynak gösterilebilir çıktılar almanızı sağlar.
Geleneksel dil modelleri, eğitim verilerinde öğrendikleri bilgilerle sınırlıdır ve bu bilgiler zamanla eskir. Ayrıca modeller bazen "halüsinasyon" yaparak gerçek olmayan bilgiler üretebilir. RAG, bu iki temel sorunu çözmek için tasarlanmıştır: Model, yanıt üretmeden önce ilgili bilgiyi harici kaynaklardan alır ve bu bilgiye dayanarak yanıt oluşturur.
💡 Basit Tanım: RAG = Arama (Retrieval) + Üretim (Generation). Önce soruyla ilgili bilgiyi bul, sonra bu bilgiyi kullanarak yanıt üret. Bir nevi AI'a "açık kitap sınavı" yaptırmak gibi düşünebilirsiniz.
Neden RAG Kullanmalısınız?
RAG'in Çözdüğü Temel Sorunlar
1. Halüsinasyon Problemi:
Dil modelleri bazen son derece ikna edici ama tamamen yanlış bilgiler üretebilir. RAG, modelin yanıtlarını gerçek kaynaklara dayandırarak bu riski önemli ölçüde azaltır.
RAG'siz: "X şirketinin 2024 geliri 5.2 milyar dolardı." (Uydurma olabilir)
RAG'li: "Yıllık rapora göre X şirketinin 2024 geliri 4.8 milyar dolardı. [Kaynak: 2024 Yıllık Rapor, s.12]"2. Güncellik Sorunu:
Dil modelleri belirli bir tarihe kadar eğitilmiştir ve sonrasındaki bilgileri bilemez. RAG, güncel verilere erişim sağlayarak bu sınırlamayı aşar.
3. Domain-Specific Bilgi Eksikliği:
Genel amaçlı modeller, şirketinizin iç süreçleri, ürünleriniz veya sektörünüze özgü bilgiler konusunda yetersiz kalır. RAG ile kendi verilerinizi entegre edebilirsiniz.
4. Kaynak Gösterme İhtiyacı:
Kurumsal ve akademik uygulamalarda yanıtların nereden geldiğini bilmek kritiktir. RAG, her bilgi parçasının kaynağını belirtebilir.
RAG vs Fine-Tuning Karşılaştırması
┌─────────────────────┬──────────────────────┬──────────────────────┐
│ Kriter │ RAG │ Fine-Tuning │
├─────────────────────┼──────────────────────┼──────────────────────┤
│ Maliyet │ Düşük-Orta │ Yüksek │
│ Güncelleme kolaylığı│ Çok kolay │ Zor (yeniden eğitim) │
│ Kurulum süresi │ Hızlı │ Yavaş │
│ Kaynak gösterme │ Mümkün │ Mümkün değil │
│ Bilgi güncelliği │ Anlık güncellenebilir│ Eğitim tarihiyle sınırlı│
│ Özel bilgi entegre │ Çok iyi │ İyi │
│ Model davranış değ. │ Sınırlı │ Kapsamlı │
└─────────────────────┴──────────────────────┴──────────────────────┘
Genel Öneri: Çoğu kullanım senaryosu için RAG ile başlayın.
Fine-tuning, model davranışını köklü değiştirmeniz gerektiğinde düşünün.RAG Mimarisi: Nasıl Çalışır?
Temel Bileşenler
RAG Sistemi Bileşenleri:
1. DOKÜMAN İŞLEME (Offline - Hazırlık Aşaması)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Dokümanlar │ -> │ Chunking │ -> │ Embedding │ -> │ Vektör DB │
│ (PDF, TXT, │ │ (Parçalama) │ │ (Vektöre │ │ (Depolama) │
│ Web, DB) │ │ │ │ Çevirme) │ │ │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
2. SORGULAMA (Online - Kullanım Aşaması)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Kullanıcı │ -> │ Query │ -> │ Vektör │
│ Sorusu │ │ Embedding │ │ Arama │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ İlgili │
│ Dokümanlar │
└─────────────┘
3. ÜRETME (Generation)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Soru + │ -> │ LLM │ -> │ Yanıt │
│ Bağlam │ │ (Claude, │ │ (Kaynak │
│ (Retrieved) │ │ GPT vb.) │ │ dayanaklı) │
└─────────────┘ └─────────────┘ └─────────────┘Detaylı İş Akışı
ADIM 1: Doküman Yükleme ve Hazırlık
────────────────────────────────────
- Çeşitli formatlardan doküman toplama (PDF, Word, HTML, TXT, CSV)
- Metin çıkarma ve temizleme
- Meta veri ekleme (tarih, kaynak, yazar vb.)
ADIM 2: Chunking (Parçalama)
────────────────────────────────────
- Dokümanları küçük, anlamlı parçalara bölme
- Optimal chunk boyutu belirleme (genellikle 200-1000 token)
- Overlap (örtüşme) ile bağlam kaybını önleme
ADIM 3: Embedding (Vektöre Çevirme)
────────────────────────────────────
- Her metin parçasını sayısal vektöre dönüştürme
- Embedding modeli seçimi (OpenAI, Cohere, açık kaynak)
- Semantik anlam korunur
ADIM 4: Vektör Veritabanına Kayıt
────────────────────────────────────
- Vektörleri ve orijinal metinleri depolama
- İndeksleme ile hızlı arama imkanı
- Meta verilerle filtreleme desteği
ADIM 5: Sorgu İşleme
────────────────────────────────────
- Kullanıcı sorusunu vektöre çevirme
- Benzerlik araması ile ilgili chunk'ları bulma
- En alakalı K adet sonucu seçme
ADIM 6: Yanıt Üretme
────────────────────────────────────
- Soru + bulunan bağlamı LLM'e gönderme
- Kaynaklara dayalı yanıt üretimi
- Kaynak atıflarını eklemeChunking Stratejileri
Dokümanları nasıl parçaladığınız, RAG sisteminizin başarısını doğrudan etkiler.
1. Sabit Boyutlu Chunking
Yöntem: Belirli karakter veya token sayısında parçalara böl
Parametreler:
- chunk_size: 500-1000 karakter (veya 200-500 token)
- overlap: %10-20 (50-200 karakter)
Avantajları:
✓ Basit ve tutarlı
✓ Uygulaması kolay
✓ Tahmin edilebilir boyutlar
Dezavantajları:
✗ Anlam bütünlüğünü bozabilir
✗ Cümleler ortasından kesilebilir
Kullanım: Genel amaçlı dokümanlar, homojen içerik
Örnek:
"Bu bir örnek metindir. | Chunk sınırı buraya denk gelebilir |
ve cümle ortasında kesme olabilir."2. Semantik Chunking
Yöntem: Anlamsal bütünlüğe göre parçala (paragraf, bölüm)
Yaklaşımlar:
- Paragraf bazlı bölme
- Başlık/alt başlık bazlı bölme
- Doğal kırılım noktalarını tespit
Avantajları:
✓ Anlam bütünlüğünü korur
✓ Daha kaliteli retrieval
✓ Bağlam kaybı minimal
Dezavantajları:
✗ Değişken chunk boyutları
✗ Daha karmaşık implementasyon
Kullanım: Yapılandırılmış dokümanlar, teknik içerik
Örnek:
[Bölüm 1: Giriş - tam paragraf]
[Bölüm 2: Metodoloji - tam paragraf]
[Bölüm 3: Sonuçlar - tam paragraf]3. Hiyerarşik Chunking
Yöntem: Farklı seviyelerde özetler + detaylı chunk'lar
Yapı:
Seviye 1: Doküman özeti
└── Seviye 2: Bölüm özetleri
└── Seviye 3: Detaylı paragraflar
Avantajları:
✓ Hem genel hem detay sorularına iyi yanıt
✓ Bağlam + detay dengesi
✓ Esnek retrieval
Dezavantajları:
✗ Daha fazla depolama
✗ Karmaşık implementasyon
Kullanım: Uzun dokümanlar, kitaplar, kapsamlı raporlarOptimal Chunk Boyutu Seçimi
Chunk Boyutu Rehberi:
Küçük Chunk (100-300 token):
- Avantaj: Spesifik bilgi retrieval'ı iyi
- Dezavantaj: Bağlam kaybı riski
- Kullanım: SSS, kısa tanımlar, fact-based sorular
Orta Chunk (300-600 token):
- Avantaj: Denge
- Dezavantaj: Her duruma optimal değil
- Kullanım: Genel amaçlı, çoğu senaryo için başlangıç
Büyük Chunk (600-1500 token):
- Avantaj: Zengin bağlam
- Dezavantaj: Gürültü, alakasız bilgi dahil olabilir
- Kullanım: Karmaşık konular, detaylı açıklamalar
💡 İpucu: Başlangıç için 400-500 token + %15 overlap deneyin,
sonra kullanım senaryonuza göre ayarlayın.Embedding Modelleri
Popüler Embedding Seçenekleri
Ticari Modeller:
────────────────
- OpenAI text-embedding-3-small/large
- Yüksek kalite, kullanımı kolay
- API maliyeti var
- Cohere embed-v3
- Çok dilli destek iyi
- Rekabetçi fiyatlandırma
- Google textembedding-gecko
- Vertex AI entegrasyonu
- Kurumsal kullanım için uygun
Açık Kaynak Modeller:
────────────────
- sentence-transformers/all-MiniLM-L6-v2
- Hızlı, hafif
- Ücretsiz, lokal çalışır
- BAAI/bge-large-en-v1.5
- Yüksek performans
- MTEB benchmark lideri
- intfloat/multilingual-e5-large
- Çok dilli (Türkçe dahil)
- İyi genel performans
Seçim Kriterleri:
- Dil desteği (Türkçe için multilingual önemli)
- Performans vs maliyet dengesi
- Vektör boyutu (depolama ve hız etkiler)
- Kullanım senaryosu (semantic search vs clustering)Vektör Veritabanları
Popüler Vektör Veritabanları:
┌─────────────────┬───────────────┬─────────────┬──────────────┐
│ Veritabanı │ Tür │ Öne Çıkan │ Kullanım │
├─────────────────┼───────────────┼─────────────┼──────────────┤
│ Pinecone │ Managed Cloud │ Kolay başla │ Production │
│ Weaviate │ Self/Cloud │ GraphQL API │ Esnek projeler│
│ Chroma │ Açık kaynak │ Basitlik │ Prototip/Dev │
│ Qdrant │ Self/Cloud │ Performans │ Büyük veri │
│ Milvus │ Self-hosted │ Ölçeklenme │ Enterprise │
│ pgvector │ PostgreSQL ext│ Mevcut DB │ Mevcut Pg'li │
│ FAISS │ Kütüphane │ Meta'dan │ Araştırma │
└─────────────────┴───────────────┴─────────────┴──────────────┘
Başlangıç Önerisi: Chroma (prototip) veya Pinecone (production)RAG için Prompt Engineering
Temel RAG Prompt Şablonu
"""
Aşağıdaki bağlam bilgisini kullanarak soruyu yanıtla.
KURALLAR:
1. SADECE verilen bağlamdaki bilgileri kullan
2. Bağlamda olmayan bilgi için "Bu bilgi verilen kaynaklarda mevcut değil" de
3. Yanıtını bağlamdan alıntılarla destekle
4. Emin olmadığın konularda belirsizliği belirt
BAĞLAM:
---
{retrieved_documents}
---
SORU: {user_question}
YANIT:
"""Gelişmiş RAG Prompt Şablonu
"""
Sen {domain} konusunda uzman bir asistansın. Aşağıdaki kaynaklara
dayanarak kullanıcının sorusunu yanıtla.
## KAYNAKLAR
{documents_with_metadata}
## TALİMATLAR
1. SADECE yukarıdaki kaynaklardaki bilgileri kullan
2. Her önemli bilgi için kaynak belirt: [Kaynak: dosya_adı, sayfa/bölüm]
3. Kaynaklar arasında çelişki varsa, her iki görüşü de sun
4. Kaynaklarda bulunmayan bilgi için açıkça belirt
5. Yorumlama yaparken bunu belirt: "Bu bilgiye dayanarak..."
6. Kullanıcının sorusuna doğrudan ve net yanıt ver
## KULLANICI SORUSU
{question}
## YANIT FORMATI
- Ana yanıt (açık ve net)
- Destekleyen detaylar (kaynak referanslı)
- Varsa ek notlar veya uyarılar
"""Kaynak Atıflı Yanıt Formatı
Soru: "Şirketin 2024 hedefleri nelerdir?"
İyi RAG Yanıtı:
"""
Şirketin 2024 yılı için belirlediği ana hedefler şunlardır:
1. Gelir Artışı: Yıllık gelirin %25 artırılarak 50 milyon TL'ye
ulaştırılması hedeflenmektedir. [Kaynak: 2024 Strateji Planı, s.8]
2. Yeni Pazar Girişi: Avrupa pazarına açılma ve en az 3 yeni
ülkede faaliyet başlatma planlanmaktadır. [Kaynak: YK Toplantı
Kararları, 15.01.2024]
3. Ürün Geliştirme: İki yeni ürün lansmanı hedeflenmektedir:
- Q2'de mobil uygulama
- Q4'te kurumsal çözüm paketi
[Kaynak: Ürün Yol Haritası 2024, s.3-4]
Not: Kaynaklarda belirtilen hedefler Ocak 2024 itibarıyla
geçerlidir ve güncellenmiş olabilir.
"""Yaygın Kullanım Alanları
1. Kurumsal Bilgi Tabanı / Chatbot
Senaryo: Şirket içi dokümanlar üzerinden çalışan soru-cevap sistemi
Veri Kaynakları:
- Şirket politikaları ve prosedürleri
- Çalışan el kitabı
- Ürün dokümantasyonu
- İç eğitim materyalleri
- Toplantı notları
Örnek Sorular:
"İzin talep etme süreci nasıl işliyor?"
"Yeni müşteri onboarding adımları nelerdir?"
"Uzaktan çalışma politikamız nedir?"2. Müşteri Destek Asistanı
Senaryo: Ürün dokümantasyonu ve SSS üzerinden otomatik yanıt
Veri Kaynakları:
- Ürün kullanım kılavuzları
- SSS veritabanı
- Bilinen sorunlar ve çözümleri
- Video transcript'leri
Değer: 7/24 destek, tutarlı yanıtlar, destek yükü azaltma3. Hukuki / Mevzuat Araştırma
Senaryo: Kanun, yönetmelik ve içtihat üzerinden araştırma
Veri Kaynakları:
- Kanun metinleri
- Yönetmelikler
- Mahkeme kararları
- Hukuki görüşler
Kritik: Kaynak gösterme ve güncellik çok önemli4. Teknik Dokümantasyon Asistanı
Senaryo: API dokümantasyonu ve kod örnekleri üzerinden yardım
Veri Kaynakları:
- API referansları
- Kod örnekleri
- GitHub issues/discussions
- Stack Overflow arşivi
Örnek: "Bu API'de pagination nasıl yapılır?"En İyi Uygulamalar
Retrieval Kalitesini Artırma
1. Chunk Optimizasyonu:
• Kullanım senaryonuza uygun boyut seçin
• Overlap kullanarak bağlam kaybını önleyin
• Anlamsal bütünlüğü koruyun
2. Hybrid Search:
• Semantik (vektör) + Keyword aramasını birleştirin
• Farklı sorgu türleri için daha iyi sonuç
3. Re-ranking:
• İlk retrieval sonuçlarını alakaya göre yeniden sıralayın
• Cross-encoder modelleri kullanın
4. Query Transformation:
• Kullanıcı sorusunu genişletin/yeniden yazın
• Alternatif formülasyonlar deneyin
5. Meta Data Filtering:
• Tarih, kaynak, kategori ile filtreleme
• Daha hedefli sonuçlarSık Yapılan Hatalar
❌ Çok büyük chunk boyutu → Gürültülü, alakasız bilgi
❌ Çok küçük chunk boyutu → Bağlam kaybı
❌ Overlap kullanmama → Bilgi parçalanması
❌ Yetersiz kaynak sayısı → Eksik bilgiyle yanıt
❌ Aşırı kaynak sayısı → Bağlam kirliliği, maliyet
❌ Kaynak kalitesini ihmal → Garbage in, garbage out
❌ Prompt'ta kural eksikliği → Halüsinasyon riskiSonuç
RAG, modern AI uygulamalarının temel yapı taşlarından biridir ve doğru implementasyonla inanılmaz güçlü sistemler oluşturmanızı sağlar. Halüsinasyonları azaltarak, güncel bilgiye erişim sağlayarak ve kaynak gösterebilir yanıtlar üreterek AI'ı çok daha güvenilir hale getirir. Bu rehberde öğrendiğiniz kavramları - chunking, embedding, vektör veritabanları ve RAG prompt engineering - kendi projelerinizde uygulayarak başlayın. Küçük bir prototiple başlayıp iteratif olarak geliştirmek, RAG'i öğrenmenin en etkili yoludur. Unutmayın: RAG'in başarısı, veri kaliteniz ve retrieval stratejinizle doğru orantılıdır.
Rehberler Arasında Gezin