Giriş#
Retrieval-Augmented Generation (RAG), büyük dil modellerinin (LLM) dış bilgi kaynaklarıyla desteklenerek daha doğru ve güncel yanıtlar üretmesini sağlayan bir mimaridir. Sistemin başarısı büyük ölçüde retrieval aşamasının kalitesine bağlıdır.
Retrieval Kalitesini Etkileyen Faktörler#
1. Doküman Parçalama (Chunking) Stratejisi#
Dokümanların anlamlı parçalara bölünmesi, retrieval kalitesini doğrudan etkiler:
- Sabit boyutlu chunking: Basit ama anlam bütünlüğünü bozabilir
- Anlamsal chunking: Cümle/paragraf sınırlarına göre bölme
- Örtüşen chunking: Bağlam kaybını önlemek için chunk’lar arası bindirme
# Anlamsal chunking örneği
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=100,
separators=["\n\n", "\n", ". ", " ", ""]
)2. Embedding Model Seçimi#
Embedding modelinin kalitesi, semantik aramanın başarısını belirler:
| Model | Boyut | Dil Desteği |
|---|---|---|
| text-embedding-3-small | 1536 | Çok dilli |
| text-embedding-3-large | 3072 | Çok dilli |
| Cohere Embed v3 | 1024 | Çok dilli |
| BGE-M3 | 1024 | Çok dilli |
3. Hibrit Arama Yaklaşımı#
Yalnızca vektör araması yerine, seyrek (sparse) ve yoğun (dense) retrieval yöntemlerini birleştiren hibrit yaklaşımlar daha iyi sonuç verir:
- BM25 — Anahtar kelime tabanlı seyrek arama
- Dense embeddings — Anlamsal benzerlik tabanlı arama
- Fusion yöntemleri — RRF (Reciprocal Rank Fusion), Convex Combination
Sonuç#
RAG sistemlerinde retrieval kalitesini artırmak için çok katmanlı bir yaklaşım gerekir. Doğru chunking stratejisi, uygun embedding modeli ve hibrit arama yöntemlerinin kombinasyonu en iyi sonuçları verir.