Qdrant + RAG bir sistem tasarlamak istediniz. Bu elinizdeki dökümanları parça parça edip vektörlere çevirip bir vektör tabanında saklamak ve ihtiyacınız olunca “cos benzerliğinden” yararlanıp sistemden çekmek demek. Yani sisteme öğrettiğiniz bir şey yok sadece kendi daha akıllı DB sisteminizi kurdunuz.

Bir dakika zaten LLM kursaydınızda böyle bir şey olacaktı 3 aşağı 5 yukarı değil mi? Evvet aynen öyle… Bizim öğrenme mekanizmamız da daha farklı değil ki. Hangimiz öğrendiğmiz şeyin yanlış olduğundan şüphelenip daha iyisinin peşine düşüyor ki. Ya da öğrenmiş olduğu bilgiyi kaçımız reddediyor? Cevap hiçbirimiz.

O zaman elimizdeki verileri chunk haline getirmemiz gerekiyor. Niye? Niye bir bütün halinde olmuyor? Vektör boyutunun artmasından mı korkuyoruz? Hayır. Dökümanları bölebildiğimiz en küçük parçalara bölerek aslında bir veri haritası çıkarmak istiyoruz. Ne kadar küçük olursa o kadar çok nokta ve o kadar çok bağlam çıkarma ihtimali… Tamam o zaman kelime kelime bölelim ne dersin? Hayır bu inanılmaz kötü bir fikir. Çünkü biz böleceğimiz şeyin “EN KÜÇÜK ANLAMLI PARÇA” olmasını istiyoruz. O küçük anlamsız parça olmasını değil.

Tamam şimdi elimizde kendi verilerimizden oluşan bir bilgi bulutu var. Ama aradığımız şey yine de bilgi bulutunun içinde değil. Yine de bulduğumuz şey sistemimizde bulunan bu buluttaki şeylerden en yakın olanı. Upss bir problem var. En yakın olarak bulduğu şeyin aradağım şey ile hiç alakası da olmayabilir. Tabii. Hatırla bazen LLM’ler seninle hiç alakası olmayan bazı cevapları vermiyor mu? Ya da bir Generative AI senin istediğinle hiç alakası olmayan bir image generate etmiyor mu? Ediyor. İşte hepsi bu uzaklıklar ve olasılıklar üzerinde çalışmalarının sonucunda oluşan hatalar.

Eğer RAG sistemi senin LLM sisteminin yanına eklemlendirirsen gittikçe aynı bilgileri içeren ve LLM’e ulaşmak zorunda kalmayan bir sistem tasarlarsın. Belli bir eşik değerin altında cevap aldığında ancak LLM’e gitmesi aldığı cevap sonucunu da vector db’ye yazması hem LLM maliyetini azaltacak hem de kendi uzmanlaşmış sistemini herhangi bir yüksek maliyetli fine-tuning işlemine bağlı olmadan yapabileceksin.

Sistemin yumuşak karnı…

Şimdi her şey kulağa inanılmaz güzel ve kusursuz geliyor değil mi? Gelmesin. Çünkü bu sistem bir süre sora kuyruğunu yakalamaya çalışan köpek gibi kendi etrafında dönmeye ve aynı şeylere saplanıp kalmaya başlayabilir. Klasik yüksek-uyum (overfitting) burada da senin yakanı bırakmayacaktır. Hep aynı konuyu bildiği için sana aynı konudan bahseden sıkıcı akraban gibi aynı şeyleri söylemeye başlayacaktır. Bunun çözümü ise uzmanlaşmış olduğu konunun alt ve yan konularını da dikkate daha geniş konularda bilgileri içeriyor olmasını sağlamak olmalı.

Yani her şeyi kitabına uygun yapmak her şeyin mükemmel olacağı anlamına gelmez :)