RAG (Retrieval-Augmented Generation) Nedir? Bilgi Çekmeli AI
RAG, LLM'in cevap üretmeden önce harici bir bilgi tabanından ilgili belgeleri çekip, bunları bağlam olarak kullandığı bir sistem mimarisidir. Modelin güncel ve özelleştirilmiş bilgi vermesini sağlar.
Alternatif isimler: retrieval augmented generation, bilgi çekmeli üretim
Kısa Tanım
RAG (Retrieval-Augmented Generation — Bilgi Çekmeli Üretim), LLM’in cevap üretmeden önce harici bir bilgi tabanından ilgili belgeleri çekip, bunları bağlam olarak kullandığı sistem mimarisidir.
Sıradan ChatGPT: “Şirketinizin iade politikasını sorarsam yanıt veremem, çünkü onu bilmem.”
RAG’li sistem: “Şirketinizin iade politikası belgelerinizi çekip okudum, 14 gün içinde iade kabul ediliyor.”
Nasıl Çalışır?
[Kullanıcı sorusu]
↓
[Embedding'e dönüştür]
↓
[Vektör DB'de en yakın 5 belgeyi bul]
↓
[Bu belgeleri + soruyu LLM'e ver]
↓
[LLM bağlam-bilinçli cevap üret]
↓
[Kullanıcıya cevap]
Neden Önemli?
1. Güncel Bilgi
LLM’in eğitim verisi belli bir tarihten sonrasını içermez. RAG ile gerçek zamanlı bilgi kullanabilirsiniz.
2. Özel/İç Bilgi
Şirketinizin iç dokümanları, müşteri bilgileri, ürün kataloğu — bunlar LLM’in eğitim verisinde yok. RAG ile bunları cevaplara dahil edebilirsiniz.
3. Halüsinasyon Azaltma
LLM “bilmediğini uydurma” yerine “belgeden okuduğunu söyleme” eğilimi gösterir. Halüsinasyon belirgin şekilde azalır.
4. Kaynak Gösterimi
RAG sistemleri cevabın hangi belgeden geldiğini gösterebilir. Bu güvenilirliği artırır.
RAG Bileşenleri
| Bileşen | Görev | Örnek araç |
|---|---|---|
| Belge yükleyici | PDF/HTML/MD okur | LlamaIndex DocumentLoader |
| Chunker | Belgeleri parçalara böler | LangChain RecursiveCharacterTextSplitter |
| Embedding modeli | Vektöre dönüştürür | OpenAI text-embedding-3 |
| Vektör DB | Vektörleri saklar, arar | Pinecone, Qdrant, Chroma |
| Retriever | En yakın belgeleri çeker | LangChain Retriever |
| LLM | Cevap üretir | GPT-4o, Claude 4.7 |
| Framework | Hepsini birleştirir | LangChain, LlamaIndex, Haystack |
Basit RAG Örneği (Python + LangChain)
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders import PyPDFLoader
from langchain.chains import RetrievalQA
# 1. Belge yükle
loader = PyPDFLoader("sirket-politikalari.pdf")
docs = loader.load_and_split()
# 2. Vektör DB oluştur
db = Chroma.from_documents(docs, OpenAIEmbeddings())
# 3. Retriever + LLM
qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o"),
retriever=db.as_retriever(),
)
# 4. Soru sor
yanit = qa.invoke("İade politikamız ne?")
print(yanit['result'])
RAG Çeşitleri
Naive RAG
En basit haliyle: tek embedding modeli, tek vektör DB, en yakın 5 belge çek, LLM’e ver.
Advanced RAG
- Re-ranking: İlk N belgeyi tekrar sıralama
- Hybrid search: Embedding + keyword arama birleştirme
- Query expansion: Soruyu genişletme
- HyDE: Hipotetik cevap üretip onun embedding’iyle arama
Modular RAG
Pipeline’ı modüler hale getirmek: routing, multi-step retrieval, agent benzeri davranış.
Agentic RAG
AI agent mantığıyla, sistem hangi belge tabanına bakacağına, ne zaman tekrar arayacağına kendi karar verir.
Yaygın Sorunlar
Chunk Boyutu
Çok küçük (50 token) → bağlam kaybı. Çok büyük (2000 token) → alakasız bilgi karışır. İdeal: 300-800 token, %10-20 overlap.
”Lost in the Middle”
LLM’ler verilen bağlamın başına ve sonuna daha fazla odaklanır, ortayı atlar. Çözüm: en önemli belgeleri en başa koymak.
Tekrarlayan Belgeler
Vektör DB’de near-duplicate belgeler varsa, model aynı bilgiyi farklı sözlerle 5 kez okur, çıktısı tekrar dolu olur.
RAG vs Fine-tuning
| Konu | RAG | Fine-tuning |
|---|---|---|
| Güncel bilgi | ✓ | ✗ |
| Marka sesi/tonu | Sınırlı | ✓ |
| Maliyet | Düşük | Yüksek |
| Bakım | Belge güncellemeyle | Yeniden eğitim |
| İlk kurulum süresi | Düşük | Yüksek |
Çoğu uygulamada RAG yeterlidir. Fine-tuning sadece tutarlı davranış/format gerekiyorsa.
Kullanım Senaryoları
- Kurumsal chatbot: İç dokümanlardan cevap
- Müşteri hizmetleri: Ürün/politika sorularına otomatik yanıt
- Hukuk araştırma: Mevzuat dokümanlarından özetleme
- Tıbbi asistan: Uzlaşma rehberlerinden bilgi çekme
- Eğitim: Ders materyallerinden sınava hazırlık
- Akademik araştırma: Makalelerden özetleme
İlgili Kavramlar
- Embedding — RAG temel parçası
- LLM — cevabı üreten
- Fine-tuning — alternatif yöntem
- Hallucination — RAG’in azalttığı sorun
Sonraki Adımlar
- NotebookLM İncelemesi — kişisel RAG aracı
- Yapay Zeka Cevaplarını Nasıl Doğrularsınız?
Özet
RAG, LLM’i harici bilgi tabanıyla zenginleştiren sistem mimarisidir. Güncel bilgi gerektiren, özel veri üzerinde çalışan uygulamaların temelidir. Doğru kurgulandığında halüsinasyonu azaltır, güvenilirliği artırır ve fine-tuning’den çok daha pratik bir çözümdür.