Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Microsoft SQL’de hibrit arama, anahtar kelime tabanlı tam metin aramasıyla vektör aramasını birleştiriyor. Sistem, sorgunun maliyetine ve seçiciliğine göre kNN ile ANN vektör araması arasında seçim de yapabiliyor. Böylece uygulamalar ve yapay zekâ ajanları için daha anlamlı sonuçlar üreten bir arama akışı kurulabiliyor.
SQL’de tam metin araması ve BM25
Microsoft SQL’in tam metin araması yeni bir özellik değil. Microsoft Research Cambridge, 1998 yılında BM25 alaka sıralama algoritmasının başlıca mimarlarından Stephen Robertson’ı ağırladı. Robertson, sonraki 15 yılını Microsoft Research’te geçirdi ve BM25, modern bilgi erişiminin temel algoritmalarından biri hâline geldi.
SQL Server’daki FREETEXTTABLE() işlevi, sonuçları alaka düzeyine göre sıralamak için bugün de BM25 kullanıyor. Vektör araması yeni bir eğilim gibi görünse de alaka sıralamalı arama, SQL ekosisteminin uzun süredir parçası.
CONTAINSTABLE() kesin terimler, ifadeler, ön ekler, kelimeler arasındaki yakınlık ve açıkça belirtilen çekim biçimleriyle çalışıyor. FREETEXTTABLE() ise daha geniş bir arama yapıyor ve sonuçları alaka düzeyine göre sıralıyor. İşlev, dil farkındalığına sahip kelime ayrıştırma ve kök bulma özellikleriyle kullanıcı sorgusunu ilişkili kelime biçimlerine genişletebiliyor.
Örneğin kullanıcı “run” araması yaptığında sistem “ran”, “running” ve “runs” biçimlerini de değerlendirebiliyor. Bu yaklaşım, kullanıcıların verideki tam ifadeyi bilmeden ihtiyaçlarını tarif ettiği senaryolarda işe yarıyor.
SELECT p.Name, ft.RANK
FROM FREETEXTTABLE(Product, (Description), 'running shoes') ft
JOIN Product p ON p.Id = ft.[KEY]
ORDER BY ft.RANK DESC;
FREETEXTTABLE() belgeleri, işlevin kullanım ayrıntılarını içeriyor.
Vektör aramasında kNN ve ANN seçimi
Microsoft SQL’in vektör arama yaklaşımında DiskANN önemli bir yere sahip. Microsoft Research tarafından 2019’da yayımlanan DiskANN, milyonlarca hatta milyarlarca vektör üzerinde yaklaşık vektör aramasının yüksek bellek gereksinimi olmadan hızlı ve doğru kalabileceğini ortaya koydu. SQL de bu araştırma yaklaşımını vektör arama mimarisinin bir parçası olarak kullanıyor.
kNN, yani k-en yakın komşu araması, vektör aramanın kesin biçimi. Sorgu vektörü mevcut vektörlerle karşılaştırılıyor, seçilen uzaklık metriğine göre en yakın eşleşmeler döndürülüyor. Yöntem basit ve doğru, ancak veri kümesi büyüdükçe gereken işlem miktarı da artıyor.
ANN, yani yaklaşık en yakın komşu araması, büyük veri kümelerinde bu nedenle daha kullanışlı. Microsoft SQL, sorgu maliyetini ve seçiciliğini değerlendirerek kNN veya ANN yaklaşımını dinamik biçimde seçebiliyor. Bu iki arama türü, hibrit arama akışının farklı ihtiyaçlara uyarlanmasını sağlıyor.
VECTOR_SEARCH() ile verimli eşleşme
VECTOR_DISTANCE() iki vektörü kesin biçimde karşılaştırıyor ve vektör dizininden yararlanmıyor. VECTOR_SEARCH() ise büyük vektör kümelerinde en yakın eşleşmeleri daha verimli biçimde getirmek için tasarlanmış.
Arama sırasında koşullar da değerlendirilebiliyor. Yinelemeli filtreleme, SQL’in aşırı örnekleme yapmadan istenen sayıda ilgili satırı döndürmeye çalışmasını sağlıyor.
SELECT TOP (10) WITH APPROXIMATE
p.Id, p.Name, v.distance
FROM VECTOR_SEARCH(
TABLE = ProductEmbedding AS p,
COLUMN = Embedding,
SIMILAR_TO = @Embedding,
METRIC = 'cosine'
) AS v
ORDER BY v.distance;
VECTOR_SEARCH() belgeleri, vektör arama işlevinin sözdizimini ve kullanımını açıklıyor.
Model entegrasyonu SQL içinde nasıl konumlanıyor?
Azure SQL, 2022 yılında sp_invoke_external_rest_endpoint ile T-SQL üzerinden REST servislerini doğrudan çağırma olanağı sundu. Bu yetenek, SQL’in model entegrasyonu yaklaşımının temel parçalarından biri hâline geldi. External Models ve AI_GENERATE_EMBEDDINGS gibi yerleşik yapılar, veritabanı merkezli yapay zekâ senaryolarını kolaylaştırıyor.
Yerleşik soyutlamaların henüz desteklemediği yeni model ve etkileşimlerde doğrudan REST uç noktası çağrısı kullanılabiliyor. GPT tabanlı niyet tespiti veya Cohere ile yeniden sıralama gibi adımlar da aynı SQL merkezli RAG akışına eklenebiliyor.
Azure SQL ile SQL Server arasında bu yeteneğin uygulanışında farklılık bulunuyor. Her iki ortamda da kimlik bilgileri SQL içinde korunuyor ve uç noktalara erişim için açık izinler gerekiyor. Azure SQL, onaylanmış hizmet etki alanlarından oluşan bir izin listesiyle ek koruma sağlıyor. Bu listede önemli Azure hizmetlerinin yanı sıra Microsoft Graph, Power BI ve Microsoft Foundry de yer alıyor.
Yöneticiler desteklenen uç noktaları doğrulayabiliyor. Yerleşik listenin dışındaki erişim ihtiyaçları için API Management gibi servislerden yararlanılabiliyor. Ayrıntılar için sp_invoke_external_rest_endpoint belgelerine bakılabilir.
RRF ile birleşik hibrit arama sonuçları
Hibrit aramada tam metin araması önemli kelimeleri bulurken vektör araması sorgunun arkasındaki anlamı yakalamaya çalışıyor. Her iki yöntem kendi sıralanmış sonuçlarını üretiyor. Reciprocal Rank Fusion, yani RRF, bu sıralamaları tek bir sonuç kümesinde birleştiriyor. İhtiyaca göre aramalardan birine diğerinden daha yüksek ağırlık verilebiliyor.
Bir hibrit arama akışında sorgu yeniden yazma ve niyet tespiti gibi adımlar arama başlamadan önce uygulanabiliyor. Kullanıcı girdisi bu adımlarla aramaya daha uygun hâle getiriliyor. Ardından tam metin ve vektör sonuçları RRF ile birleştiriliyor, son aşamada da yeniden sıralamayla sonuçların düzeni iyileştiriliyor.
Bu akışın tamamı SQL içinde orkestre edilebildiği için uygulamaların ve ajanların kullandığı üretim verilerine yakın bir RAG mimarisi kurulabiliyor. Böylece arama, model entegrasyonu, sonuçların birleştirilmesi ve yeniden sıralama için ayrı bir yapı kurma ihtiyacı azalıyor.
Kaynaklar ve İleri Okuma
- Microsoft SQL’de İki Hibrit Arama
- FREETEXTTABLE() işlevi
- VECTOR_SEARCH() işlevi
- Harici REST uç noktalarını çağırma







0 comments