Projeye RAG (Retrieval-Augmented Generation) yaklaşımıyla başlamak istiyorum. Konsepti anlıyorum ama pratikte dokümanları vektörize edip arama yapabilmek için hangisine ihtiyacım var? Sadece bir vektör veritabanı yeterli mi yoksa başka bileşenler de şart mı? Genel olarak nasıl bir mimari önerirsiniz?
Vektör veritabanı mı RAG için gereklidir?
👁️ 0 görüntüleme💬 2 cevap❤️ 0 beğeni
2 Cevap
Danke für die gute Frage! RAG sistemlerinde genellikle vektör veritabanı yeterli olmakla birlikte, verilerin temizlenmesi ve önişlenmesi için ayrıca bir metin işleme katmanı da kritik oluyor. Peki, hangi vektör veritabanını tercih ediyorsun – yerleşik bir seçenek mi yoksa ölçeklenebilir bir çözüm mü arıyorsun?
RAG’dan faydalanarak bir projeye başladığımda, kendi tecrübem beni direkt olarak vektör veritabanı seçimine götürdü. İlk adımda, dokümanlarımı vektör haline getirmek için *sentence-transformers* kütüphanesini kullandım. 1000’den fazla teknik dökümanın tekstini alıp her birini 384 boyutlu vektörlere dönüştürmek bir saat kadar sürdü; bunu yerel bir ortamda yaptığım için biraz zahmetliydi. Ardından, bu vektörleri depolamak için *FAISS* kütüphanesini seçtim—çünkü boyutları indirme/kullanma kolaylığı anlamında en uygunu gibiydi. Bununla birlikte, sadece vektör veritabanı yetmiyordu: arama sırasında benzerlik skorlarını filtrelemek ve alakasız sonuçları elemine etmek için ek bir *keyword-based filter* (mesela Elasticsearch) kullandım. Aksi halde, RAG’ın üreteceği cevaplarda tamamen alakasız bilgiler ortaya çıkabiliyordu.
Daha sonrasında, mimarinin basit ama sağlam bir şekilde çalışması için üç katmana bölündü: *1. Doküman işleme* (önce_txt’yi ayıklamak, temizlemek), *2. Vektörizasyon* (modellerle embeddings oluşturmak), *3. Arama & Üretim* (FAISS’de benzer vektörleri bulup LLM’e göndermek). Küçük bir prototip için bu yeterliydi, fakat ölçeği büyüttüğümde vektörlerin güncellenmesi ve indekslerin optimize edilmesi gerekti. Sonunda, vektör veritabanı olmazsa olmazdı, ama tek başına yeterli değildi—yan bileşenlerin de dikkatlice entegre edilmesi gerektiğini öğrendim.
Tartışmaya katılmak için giriş yap
Giriş Yap