Naive RAG (Temel RAG (Naive RAG))

Belgeleri chunk'lara bölerek vektör araması yapan ve LLM'e bağlam aktaran RAG mimarisinin temel biçimi.

Naive RAG (Temel RAG), erişim destekli üretim (Retrieval-Augmented Generation) yaklaşımının en basit biçimidir. Akış üç ana aşamadan oluşur: belgeleri sabit boyutlu parçalara (chunk) bölerek bir gömme modeli aracılığıyla vektör veritabanında indeksle; kullanıcı sorusunu da aynı gömme modeliyle vektöre dönüştürerek kosinüs benzerliğiyle en yakın parçaları getir; getirilen bağlamı bir sistem isteminin içine yerleştirerek büyük dil modeline ilet ve yanıt üret. Bu sıralı boru hattı, RAG kavramının 2020–2022 döneminde popülerleşmesiyle birlikte fiili standart uygulama biçimi haline geldi. Naive RAG'ın en belirgin güçlü yönleri sadeliği ve erişilebilirliğidir: minimum bileşen sayısı, belirli bir çerçeveye bağımlılık olmaksızın çalışabilme ve temel belge soru-cevap görevleri için kabul edilebilir kalite. Prototipleme, kavram kanıtlama aşamaları ile az sayıda homojen belge içeren senaryolar için hızlı ve etkili bir başlangıç noktası sunar. Açık kaynak kütüphaneler (LangChain, LlamaIndex) basit bir Naive RAG boru hattını birkaç satır kodla oluşturmayı mümkün kılar. Bununla birlikte yaklaşım ciddi sınırlılıklar taşır. Sabit boyutlu parçalama, cümle veya paragraf sınırlarını gözetmediğinde anlam kopuklukları ve bağlam kaybı yaratır. Yalnızca vektör benzerliğine dayalı getiri, anahtar kelime uyuşmazlığı durumunda alakasız parçaları bağlama dahil eder ve yanıt kesinliğini düşürür. Birden fazla belge veya akıl yürütme adımı gerektiren karmaşık sorgular (multi-hop reasoning) sistematiğinde başarısız olur. Çelişen veya tekrar eden parçalar büyük dil modelini yanıltabilir ve halüsinasyon riskini artırır. Bu eksiklikleri gidermek için Advanced RAG (yeniden sıralama, sorgu yeniden yazma, hibrit BM25+vektör arama, parent-child parçalama), Modular RAG ve GraphRAG gibi sonraki nesil mimariler geliştirilmiştir. GraphRAG, belge içeriğini bilgi grafiğinde kodlayarak Naive RAG'ın parçalama tabanlı yapısının karşılayamadığı tüm belge kümesini kapsayan global sorulara yanıt üretme kapasitesi kazandırır.

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.