Naive RAG Boru Hattı
storage İndeksleme
Belgeler sabit boyutlu parçalara (chunk) bölünür, embedding modeli ile vektöre dönüştürülür ve vektör veritabanına kaydedilir.
search Getiri
Kullanıcı sorusu vektöre dönüştürülür; kosinüs benzerliği veya ANN aramasıyla en yakın k parça seçilir.
smart_toy Üretim
Seçilen parçalar sistem istemiyle birleştirilerek LLM'e gönderilir; model bağlama dayalı yanıt üretir.
warning Naive RAG'ın Sınırları
Parçalama sınırlarında bağlam kesilmesi, anlam kaybına yol açar. Anahtar kelime-anlam uyuşmazlığı durumunda alakasız parçalar getirilir (precision sorunu). Birden fazla belgeden sentez gerektiren çok adımlı sorular çözülemez. Tekrar eden bağlam pencerelerinde token israfı olur. Bu sorunları çözmek için hiyerarşik parçalama, yeniden sıralama (re-ranking), sorgu genişletme ve GraphRAG gibi teknikler geliştirilmiştir.
Naive RAG Pipeline'ının Adımları
- check_circle Belge Yükleme ve Bölme: Kaynak belgeler sabit boyutlu parçalara (chunk) bölünür. Chunk boyutu (genellikle 256-1024 token) geri çağırma kalitesini etkiler.
- check_circle Gömme Oluşturma (Embedding): Her chunk bir gömme modeli (text-embedding-3, BGE, E5) ile vektöre dönüştürülür ve vektör veritabanına kaydedilir.
- check_circle Sorgu Gömme: Kullanıcı sorusu aynı gömme modeli ile vektöre dönüştürülür.
- check_circle Benzerlik Araması: Sorgu vektörüyle en yüksek kosinüs benzerliğine sahip k belge parçaları getirilir (genellikle top-3 ile top-10).
- check_circle Bağlam Oluşturma: Getirilen parçalar LLM prompt'una bağlam olarak eklenir. 'Bu belgelere göre soruyu cevapla...' şeklinde yapılandırılır.
- check_circle LLM Yanıt Üretimi: Model bağlamı okuyarak yanıt oluşturur. Eğitim verisindeki bilgi yerine sağlanan bağlam kaynak olarak kullanılır.
Naive RAG'ın Sınırları ve Gelişmiş RAG Yaklaşımları
Naive RAG, basit belge soru-cevap görevleri için etkili olsa da karmaşık senaryolarda ciddi sınırlamalarla karşılaşır. Başlıca sorunlar: Sabit chunk boyutu anlam sınırlarını yanlış keser. Tek vektör sorgusu birden fazla adım gerektiren soruları çözemez. Getirilen parçalar birbiriyle çelişen bilgi içerebilir. Sorgu ile belge temsili arasında anlamsal boşluk (query-document mismatch) oluşabilir. Gelişmiş RAG yaklaşımları bu sorunları hedef alır: Hybrid Search (BM25 + vektör): anahtar kelime ve anlamsal aramayı birleştirir. Re-ranking: getirilen parçaları çapraz encoder modeliyle yeniden sıralar. HyDE (Hypothetical Document Embeddings): sorguya önce hayali belge üretilir, sonra aranır. Parent-child chunking: küçük parçaları büyük bağlamlarıyla birlikte getirir. Agentic RAG: çok adımlı sorgu planlaması ve yinelemeli arama döngüsü. GraphRAG: belge içeriğini bilgi grafiğine dönüştürerek ilişkisel sorgulama.
quiz Sık Sorulan Sorular
- check_circle Naive RAG ne zaman yeterlidir?: Sorular tek belgeden kısa bağlam gerektiriyorsa, belgeler tutarlı ve gürültüsüzse ve karmaşık çok adımlı akıl yürütme gerekmiyorsa naive RAG pratik ve verimli bir seçimdir.
- check_circle Naive RAG ile Advanced RAG arasındaki temel fark nedir?: Advanced RAG, getiri öncesi sorgu yeniden yazma, getiri sonrası yeniden sıralama ve bağlam sıkıştırma gibi adımlar ekler. Naive RAG bu ek işlemleri içermez.
- check_circle Naive RAG nedir?: Belge yükleme, gömme oluşturma, vektör araması ve LLM üretimini sıralı birleştiren temel RAG (Retrieval-Augmented Generation) uygulamasıdır. Gelişmiş RAG varyantlarının aksine yeniden sıralama veya çok adımlı arama içermez.
- check_circle Naive RAG ne zaman yeterli?: Az sayıda belge, basit olgusal sorular ve prototipleme aşaması için yeterlidir. Çelişen bilgiler, çok adımlı akıl yürütme veya yüksek hassasiyet gerektiren uygulamalar için gelişmiş RAG tekniklerine geçilmesi önerilir.
- check_circle Chunk boyutu RAG performansını nasıl etkiler?: Küçük chunk'lar daha hassas arama ancak bağlam kaybı riski. Büyük chunk'lar daha fazla bağlam ama gürültü artışı. 512 token başlangıç için iyi bir nokta; görev bazlı optimizasyon önerilir.
- check_circle Naive RAG'ı geliştirmenin ilk adımı nedir?: Hybrid search (BM25 + vektör) ve re-ranking en kolay ve en etkili ilk adımlardır. Çoğu durumda bu iki ekleme ile doğruluk önemli ölçüde artar. Ardından parent-child chunking ve HyDE denenebilir.