Yaklaşık en yakın komşu araması: büyük vektör kümelerinde hızlı benzerlik
Sözlük

Yaklaşık en yakın komşu araması: büyük vektör kümelerinde hızlı benzerlik

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

ANN, büyük vektör kümelerinde en yakın komşuları tam doğruluktan küçük bir ödün vererek hızla bulur. Çalışma mantığı, indeks türleri ve doğruluk-hız dengesi.

ANN nedir?

Yaklaşık en yakın komşu araması (approximate nearest neighbor, ANN), bir sorgu vektörüne en yakın vektörleri büyük bir koleksiyondan hızlı biçimde bulan arama yöntemleri ailesidir. Tam arama her vektörü tek tek karşılaştırır; ANN ise bazı gerçek komşuları kaçırma ihtimalini kabul ederek çok daha hızlı yanıt verir.

Embedding ile temsil edilen metinlerin, görsellerin ya da ürünlerin anlamca benzerini bulmak gerektiğinde, koleksiyon büyüdükçe tam arama pratik olmaktan çıkar. ANN, vektör veritabanlarının arkasındaki temel tekniktir.

Neden tam arama yetmez?

Tam en yakın komşu araması (k-NN), sorguyu koleksiyondaki her vektörle karşılaştırır. Koleksiyon küçükken bu sorun değildir. Vektör sayısı milyonlara, boyutlar yüzlere çıktığında her sorgu için taranması gereken veri hacmi gecikmeyi ve maliyeti yükseltir; eşzamanlı sorgularda sistem tıkanır.

ANN bu taramayı daraltır: veriyi önceden bir yapıya yerleştirir (indeks) ve sorguda yalnızca olası yakın bölgeleri inceler. Bedel, sonucun yaklaşık olmasıdır; bazı gerçek komşular listede yer almayabilir.

Başlıca yaklaşımlar

Yaygın ANN indeksleri farklı fikirlere dayanır:

  • Grafik tabanlı (HNSW): Vektörler birbirine bağlı katmanlı bir grafikte tutulur. Arama, üst katmanlardan başlayıp sorguya yaklaştıkça ayrıntılı katmana iner. Yüksek doğruluk ve hızlı sorgu sağlar, belleği daha çok kullanır.
  • Kümeleme tabanlı (IVF): Vektörler kümelere ayrılır, sorguda yalnızca en yakın küme ya da kümeler taranır. Bellek açısından daha hafiftir, küme sayısı ve kaç kümenin taranacağı ayarlanır.
  • Nicemleme (quantization): Vektörler sıkıştırılarak daha az bellekle saklanır; hız kazanılır ama hassasiyet biraz düşer. Çoğunlukla diğer yöntemlerle birlikte kullanılır.
  • Karma yöntemler: Küme tabanlı yapı ile sıkıştırmayı birleştirerek büyük ölçekte bellek tasarrufu sağlar.

Doğruluk, hız ve bellek dengesi

ANN'nin kalitesi duyarlılık (recall) ile ölçülür: yaklaşık aramanın getirdiği sonuçların, tam aramanın getireceği gerçek en yakın komşuların ne kadarını içerdiği. Hız arttıkça duyarlılık genelde düşer; yüksek duyarlılık hedeflenince gecikme ve bellek artar.

İndeks parametreleri bu dengeyi belirler. Grafik indekslerde bağlantı sayısı ve arama sırasında incelenen aday sayısı, küme indekslerinde küme sayısı ve taranan küme sayısı ayar noktalarıdır. Doğru ayar kendi verinizde ölçülerek bulunur: önce tam aramanın sonucunu referans alın, sonra indeksin referanstan ne kadar sapma yaptığını görün.

Örnek: şirket içi doküman araması

Örneğin bir şirket çok sayıda iç dokümanı parçalara bölüp embedding vektörlerine dönüştürerek bir vektör veritabanına yazıyor. Çalışan bir soru sorduğunda sistem sorunun vektörünü üretir ve ANN indeksi ile en yakın doküman parçalarını milisaniye düzeyinde getirir. Bu parçalar bir dil modeline bağlam olarak verilir (RAG).

İndeks tam doğru olmasa bile, kullanıcıya dönen birkaç en yakın parça genellikle anlamlıdır. Tam doğruluk gereken, hata kabul etmeyen durumlarda (örneğin hukuki emsal taraması) ise sonuçlar ek bir yeniden sıralama adımıyla doğrulanır. Örnek kurgusaldır.

Bakım ve işletme konuları

Vektör koleksiyonu değiştikçe indeksin güncel tutulması gerekir. Bazı indeks türlerinde silme ve güncelleme maliyetlidir; periyodik olarak yeniden oluşturma gerekebilir. Metadata filtresi (örneğin yalnız belirli bir departmanın dokümanları) uygulandığında filtre ile aramanın birlikte nasıl işlendiği sonuç kalitesini etkiler.

Üretimde izlenecekler: sorgu gecikmesi, duyarlılık, bellek kullanımı, indeks boyutu ve yeniden indeksleme süresi. Benzerlik ölçüsü (kosinüs, iç çarpım, öklid) indeks oluşturulurken seçilir ve sonradan değiştirmek yeniden indeksleme gerektirir.

Mindset programlarında nerede çalışılır?

Vektör Veritabanları ve Embedding Stratejileri programı, yaklaşık en yakın komşu arama algoritmalarını, platform karşılaştırmasını, metadata filtrelemeyi ve hibrit aramayı birlikte işler. Vektör Veritabanı Ölçekleme ve İndeksleme programı indeks türlerini ve parametrelerini, pgvector ve Milvus ile uygulamayı, ölçekleme ve performans testini kapsar.

Vektör Veritabanı Operasyonu ve Bakımı programı güncelleme, silme ve tutarlılık ile performans izleme başlıklarını; Kurum İçi Bilgiyle Konuşan Yapay Zeka programı ise RAG mimarisi içinde vektör veritabanlarını ele alır. Arama altyapısı kuran veri mühendisleri ve yapay zeka geliştiricileri için uygundur.

İlgili Mindset programı

Vektör Veritabanları ve Embedding Stratejileri

Sık sorulanlar

Sık sorulan sorular

ANN sonuçları hatalı mıdır?

Hatalı değil, yaklaşıktır. Gerçek en yakın komşulardan bazıları listede olmayabilir, ama getirilenler genellikle anlamlıdır. Beklenen hata miktarı indeks ayarlarıyla kontrol edilir ve kendi verinizde tam aramaya göre ölçülerek kabul edilebilir düzeye çekilir.

HNSW mi IVF mi seçilmeli?

Bellek yeterliyse ve düşük gecikme ile yüksek doğruluk öncelikliyse HNSW genellikle tercih edilir. Veri çok büyükse ve bellek kısıtlıysa IVF ve nicemleme birleşimleri daha ekonomiktir. Seçim veri boyutuna, güncelleme sıklığına ve gecikme hedefine göre yapılır.

ANN ile kosinüs benzerliği aynı şey mi?

Hayır. Kosinüs benzerliği vektörlerin ne kadar benzediğini ölçen bir ölçüdür. ANN ise büyük bir koleksiyonda bu ölçüye göre en yakın vektörleri hızlı bulma yöntemidir. ANN indeksi, kosinüs ya da başka bir ölçüyle birlikte çalışır.

Küçük bir koleksiyon için ANN gerekli mi?

Genellikle gerekmez. Küçük koleksiyonlarda tam arama yeterince hızlıdır ve sonuçlar tamdır; ayrıca ek indeks bakımı da gerekmez. ANN, koleksiyon büyüdüğünde ve gecikme ya da maliyet sorun olmaya başladığında anlamlıdır; erken optimizasyon gereksiz karmaşıklık getirir.

pgvector ANN destekler mi?

Evet, PostgreSQL eklentisi pgvector tam arama yanında HNSW ve IVFFlat gibi ANN indeks türleri sunar. Ayrıntılar ve parametreler eklentinin resmî belgesinde yer alır; kullandığınız sürümdeki seçenekleri oradan doğrulamak ve kendi verinizde duyarlılık ölçmek gerekir.

ANN Nedir? Yaklaşık En Yakın Komşu Araması