Kaba Kuvvet Vektör Arama 5.000 Kayda Kadar Dayanır. Sonrasında İse Dayanmaz.

İçindekiler
Yapay zeka tabanlı kişisel bellek sistemlerinde kaba kuvvet (brute-force) doğrusal arama ne zaman yetersiz kalır? Bu çalışmada, yerel bir yapay zeka bellek deposunda kosinüs benzerliği taramasının performans sınırları 10 ila 10.000 vektör arasında test edilmiş ve sistemin sınırları incelenmiştir.
Ölçüm Sonuçları ve Gözlemler
Yapılan detaylı benchmark testlerinde yazılım geliştiriciler için oldukça öğretici olan şu üç temel bulgu öne çıkmaktadır:
- Ortanca Gecikme (p50): 5.000 kayda kadar son derece stabil ve düzdür (yaklaşık 40 ms). Veri boyutu 50 kat artsa da ortanca gecikme neredeyse hiç değişmemiştir; çünkü toplam süredeki baskın maliyet gömme (embedding) modelinin çalışma süresidir.
- Kuyruk Gecikmesi (p95): 1.000 kayıtta genişlemeye başlamış, 5.000 kayıtta ise 116 ms'ye fırlayarak kırılmıştır. Bu durum, doğrusal arama maliyetinin özellikle sistemin yavaş çalıştığı anlarda (kuyrukta) kendini hissettirdiğini gösterir.
- p50 Değerinin Kayması: 10.000 kayda ulaşıldığında p50 değeri belirgin bir şekilde artarak 57.6 ms'ye yükselmiştir. Doğrusal tarama artık sadece kuyruk gecikmesini değil, genel ortalamayı da olumsuz etkilemektedir.
Pratik Çıkarımlar ve Geliştirici Yorumu
Yazılım mühendisliği açısından en büyük ders erken optimizasyondan (premature optimization) kaçınmaktır. Çoğu geliştirici doğrudan karmaşık vektör veri tabanlarına yönelir. Ancak ortalama bir kullanıcının kişisel bellek boyutu bir yılda bile 2.000 kaydı geçmez. Bu ölçekte doğrusal kosinüs taraması en doğru varsayılan çözümdür; çünkü operasyonel yük getirmez.
Gömme Bütçesi ve Performans Analizi
40 ms'lik ortalama bütçenin büyük kısmı gömme hesaplamasına harcanır. 5.000 vektörlük doğrusal tarama numpy ile sadece 2 ms sürerken, p95'teki ani fırlama CPU bağlam geçişleri ve çöp toplayıcı (GC) duraksamaları gibi sistem içi çakışmalardan kaynaklanır. Bu yüzden ilk optimizasyon algoritmayı değiştirmek değil, arama alanını daraltmaktır.
Ölçümün Sınırları
Bu çalışma CUDA destekli Linux üzerinde gerçekleştirilmiştir. Metal veya CPU tabanlı farklı donanımlarda sonuçlar değişebilir. Ayrıca sentetik veriler, gerçek kullanıcıların belirli konulara odaklanan (semantik olarak kümelenmiş) sorgu alışkanlıklarını ve önbellek davranışlarını tam olarak yansıtmayabilir.
Sırada Ne Var?
Geliştirme önceliği şu şekilde planlanmalıdır:
- 1. Proje Tabanlı Ön Filtreleme: Arama alanını sadece ilgili projeye ait etiketli vektörlerle sınırlandırarak tarama boyutunu anında düşürür.
- 2. Sorgu Önbelleği (LRU): Aynı sorguların tekrarlanması durumunda gömme hesaplamasını atlayarak ortanca gecikmeyi azaltır.
- 3. Soğuk Depolama Katmanlandırması: Eski ve erişilmeyen verileri soğuk depolamaya taşıyarak sıcak arama kümesini küçük tutar.
- 4. ANN İndeksleme: Ancak sıcak tarama boyutu 5.000 sınırını aşarsa HNSW gibi karmaşık indeksleme algoritmalarına geçiş yapılır.
Sonuç
Tahminlere değil, ölçümlere dayanarak kararlar almak mühendisliğin temelidir. Kaba kuvvet kosinüs taraması 5.000 kayda kadar kusursuz çalışır. Doğru mimari, gereksiz karmaşıklıktan uzak duran ve sadece gerektiğinde optimize edilen mimaridir.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →