Vektör veri türlerini ve vektör aramalarını uygulama
SQL Server 2025, vektör veri türleri ve vektör araması için yerel destek içerir. Bu özellik, ilişkisel verilerinizle birlikte yüksek boyutlu vektör eklemelerini depolamanıza ve benzerlik aramaları gerçekleştirmenize olanak sağlayarak verileriniz içindeki anlamsal ilişkileri anlayan uygulamalar derlemenizi mümkün kılar.
Vektör araması, geleneksel veritabanı sorgularındaki sınırlamaları giderir. Geleneksel veritabanları tam eşleşmelerde ve yapılandırılmış sorgularda üstünlük sağlar, ancak bağlamı ve anlamı anlamakta zorlanmaktadır. Vektör arama, tam anahtar sözcükleri paylaşmadığında bile kavramsal olarak benzer öğeleri bulma olanağı olan anlamsal anlayışı etkinleştirerek bunu değiştirir. Örneğin, "rahat koşu ayakkabıları" araması, vektör eklemelerinin benzer anlamları yakalaması nedeniyle "yastıklı atletik ayakkabı" olarak tanımlanan ürünleri bulabilir.
Geliştiriciler için bu, ayrı vektör veritabanlarını veya karmaşık veri eşitleme işlemlerini yönetmeden akıllı uygulamalar oluşturabileceğiniz anlamına gelir. SQL Server'da vektörlerinizi ilişkisel verilerinizle birlikte tutarak ACID uyumluluğunu korur, mevcut güvenlik ilkelerini kullanır, tanıdık T-SQL söz dizimini kullanır ve mimarinizi basitleştirirsiniz. Bu tümleştirme aşağıdaki gibi senaryolar için geçerlidir:
- Anlamsal arama ve öneriler: Yalnızca anahtar sözcükler yerine anlam temelinde ilgili ürünleri, belgeleri veya içeriği bulma
- Soru-cevap sistemleri: Kurumsal verileriniz üzerinde doğal dildeki sorguları anlayan güçlü sohbet botları ve sanal asistanlar
- Anomali algılama: Normal davranıştan farklı olan veri noktalarını bularak olağan dışı desenleri belirleme
- İçerik yinelenmeyi önleme: Farklı sözcükler kullanıldığında bile benzer veya yinelenen öğeleri algılamak
- Kişiselleştirme altyapıları: Kullanıcı tercihlerini, nüanslı benzerlik temelinde ürünlerle veya içerikle eşleştirme
Vektör veri türünü keşfetme
SQL Server 2025'teki vektör veri türü kayan noktalı sayı dizilerini verimli bir şekilde depolamak için tasarlanmıştır. Vektörler genellikle yapay zeka modelleri tarafından oluşturulan ve her boyutun verilerin belirli özelliklerini veya anlamsal özelliklerini yakaladığı eklemeleri temsil etmek için kullanılır.
Temel özellikleri keşfetme
- İyileştirilmiş depolama biçimi: Vektörler dahili olarak iyileştirilmiş ikili biçimde depolanır, ancak kullanım kolaylığı ve uyumluluk için JSON dizileri olarak sunulur.
- Esnek duyarlık: Vektördeki her öğe tek duyarlıklı (4 bayt) veya yarım duyarlıklı (2 bayt) kayan nokta değerleri kullanılarak depolanabilir ve doğruluk ile depolama verimliliğini dengelemenizi sağlar.
- Boyut desteği: SQL Server 2025, tek duyarlık için 1998 boyuta kadar ve yarı duyarlık için 3.996 boyuta kadar vektörleri destekler ve çok çeşitli ekleme modellerini destekler.
Vektör oluşturma ve depolama
JSON dizilerini veri türüne vector dönüştürerek vektörler oluşturabilirsiniz. İşte bir örnek:
-- Create a vector from a JSON array
DECLARE @v1 VECTOR(3) = '[1.0, -0.2, 30]';
DECLARE @v2 VECTOR(3) = JSON_ARRAY(1.0, -0.2, 30);
SELECT @v1 AS v1, @v2 AS v2;
Bu kod, 3 boyutlu bir vektör oluşturmanın iki yolunu gösterir: doğrudan bir JSON dize değerinden dönüştürerek veya JSON_ARRAY işlevini kullanarak. Her iki yöntem de aynı sonucu verir ve [1.0, -0.2, 30] değerlerini bir vektör veri türünde depolar.
Vektörleri bir tabloda depolamak için:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name NVARCHAR(100),
description NVARCHAR(MAX),
embedding VECTOR(1536) -- Common dimension for OpenAI embeddings
);
Bu kod, 1536 boyutlu vektör ekleme ile birlikte ürün bilgilerini depolamak için bir tablo oluşturur. 1536 boyutu, OpenAI'nin metin ekleme modelleriyle yaygın olarak kullanılır ve bu tablo, ürün açıklamalarından oluşturulan eklemeleri depolamaya hazır hale getirir.
Vektörleri JSON'a dönüştürme
Görüntüleme veya işleme için vektörleri kolayca JSON dizilerine dönüştürebilirsiniz:
DECLARE @v VECTOR(3) = '[1.0, -0.2, 30]';
SELECT
CAST(@v AS NVARCHAR(MAX)) AS string_representation,
CAST(@v AS JSON) AS json_representation;
Bu kod, vektörleri okunabilir biçimlere geri dönüştürür.
CAST, NVARCHAR(MAX) vektöri dize olarak döndürürken CASTJSON JSON dizisi olarak döndürür. Bu, uygulamalar ve API'lerle birlikte çalışabilirlik için kullanışlıdır.
En yakın komşu aramasını (k-NN) tam olarak gerçekleştirin.
Tam olarak en yakın komşu (k-NN) araması, sorgu vektörleriyle veri kümenizdeki tüm vektörler arasındaki uzaklığı hesaplamayı ve ardından en yakın k eşleşmelerini döndürmeyi içerir. Bu yöntem kesin sonuçları garanti eder, ancak büyük veri kümeleri için hesaplama açısından yoğun olabilir.
VECTOR_DISTANCE işlevini kullanma
İşlev, VECTOR_DISTANCE belirtilen uzaklık ölçümünü kullanarak iki vektör arasındaki benzerliği ölçer:
DECLARE @query_vector VECTOR(1536) = AI_GENERATE_EMBEDDINGS(
N'Pink Floyd music style'
USE MODEL Ada2Embeddings
);
SELECT TOP (10)
product_id,
product_name,
VECTOR_DISTANCE('cosine', @query_vector, embedding) AS distance
FROM products
ORDER BY distance;
Bu sorgu, Ada2Embeddings modelini kullanarak "Pink Floyd müzik stili" metni için bir ekleme oluşturur ve ardından sorguya en çok benzeyen eklemeleri olan 10 ürünü bulur.
VECTOR_DISTANCE işlevi, sorgu vektörü ile her ürünün gömmesi arasındaki kosinüs mesafesini hesaplar ve daha küçük mesafeler daha yüksek benzerliği ifade eder.
Mesafe ölçümlerini seçme
SQL Server 2025 çeşitli mesafe ölçümlerini destekler:
- Kosinüs benzerliği: Metin eklemeler için ideal olan vektörler arasındaki açıyı ölçer
- Öklid uzaklığı: Vektör uzayında düz çizgi mesafeyi ölçer
- Noktalı ürün: Normalleştirilmiş vektörler için kullanışlıdır
Tam aramanın ne zaman kullanılacağını belirleme
Aşağıdaki durumlarda tam arama önerilir:
- Aramanız gereken 50.000'den az vektör var
- Sorgunuz veri kümesini yönetilebilir bir boyuta göre filtreler
- Mükemmel geri çağırmaya ihtiyacınız var (100% doğruluk)
- Ek hesaplama maliyeti kabul edilebilir
Yaklaşık en yakın komşu aramasını (ANN) uygula
Daha büyük veri kümeleri için, yaklaşık en yakın komşu (ANN) araması hız ve doğruluk arasında bir denge sağlar. SQL Server 2025, etkin vektör gezintisi için graf tabanlı bir dizin oluşturan DiskANN algoritmasını kullanarak ANN uygular.
Geri çekmeyi anlama
Geri çağırma, ANN algoritmasının tam aramayla karşılaştırıldığında en yakın gerçek komşularının oranını ölçer. 1,0 (100%) geri çağırma değeri, yaklaşık aramanın tam arama ile aynı sonuçları döndürdüğü anlamına gelir. Uygulamada, 0,95'in üzerindeki geri çağırma değerleri genellikle yapay zeka uygulamaları için mükemmel sonuçlar verirken önemli performans iyileştirmeleri sunar.
Vektör dizinleri oluşturma
ANN aramasını etkinleştirmek için vektör sütununuzda bir vektör dizini oluşturun:
CREATE VECTOR INDEX idx_product_embedding
ON products(embedding);
Bu kod, DiskANN algoritmasını kullanarak ekleme sütununda bir vektör dizini oluşturur. Dizin, verimli vektör gezintisi için bir grafik yapısı oluşturarak büyük veri kümelerinde yaklaşık en yakın komşu aramalarının performansını artırır.
SQL Server 2025'te vektör dizinleri:
- Verimli graf tabanlı arama için DiskANN algoritmasını kullanma
- Sınırlı bellek ve CPU kaynaklarını destekleme
- Disk G/Ç, bellek kullanımı ve sorgu performansını dengeleme
- Veri değiştikçe otomatik olarak güncelleştir
VECTOR_SEARCH işlevini kullanma
VECTOR_SEARCH işlevi yaklaşık en yakın komşu aramalarını gerçekleştirir:
DECLARE @query_vector VECTOR(1536) = AI_GENERATE_EMBEDDINGS(
N'Pink Floyd music style'
USE MODEL Ada2Embeddings
);
SELECT
t.product_id,
t.product_name,
s.distance
FROM
VECTOR_SEARCH(
TABLE = products AS t,
COLUMN = embedding,
SIMILAR_TO = @query_vector,
METRIC = 'cosine',
TOP_N = 10
) AS s
ORDER BY s.distance;
Bu sorgu, daha önce oluşturulan vektör dizinini kullanarak yaklaşık en yakın komşu araması gerçekleştirir. İşlev, VECTOR_SEARCH tüm vektörleri taramadan en benzer 10 ürünü bulmak için DiskANN algoritmasını kullanarak büyük veri kümeleri için performans iyileştirmeleri sağlar ve yüksek doğruluğu korur.
Performans avantajlarını göz önünde bulundurun
ANN arama teklifleri:
- Daha hızlı sorgu yürütme: Özellikle milyonlarca vektöre sahip veri kümeleri için
- Daha düşük kaynak tüketimi: Tam aramayla karşılaştırıldığında daha az CPU ve bellek kullanımı
- Ölçeklenebilirlik: Büyük ölçekli vektör veri kümelerini verimli bir şekilde işler
- Yüksek geri çağırma: Genellikle 95%üzerindeki geri çağırma oranlarına ulaşarak kaliteli sonuçlar elde eder
Karma arama senaryoları oluşturma
SQL Server 2025, karma arama senaryoları için vektör aramasını geleneksel SQL işlemleriyle birleştirmeyi destekler.
Anlamsal ve anahtar sözcük aramalarını birleştirme
Geleneksel filtreler uygularken vektörleri kullanarak anlamsal arama gerçekleştirebilirsiniz:
DECLARE @query_vector VECTOR(1536) = AI_GENERATE_EMBEDDINGS(
N'comfortable running shoes'
USE MODEL Ada2Embeddings
);
SELECT
t.product_id,
t.product_name,
t.category,
t.price,
s.distance
FROM
VECTOR_SEARCH(
TABLE = products AS t,
COLUMN = embedding,
SIMILAR_TO = @query_vector,
METRIC = 'cosine',
TOP_N = 20
) AS s
WHERE
t.category = 'Footwear'
AND t.price BETWEEN 50 AND 150
ORDER BY s.distance;
Bu karma arama, semantik benzerlik aramasını geleneksel SQL filtrelemesiyle birleştirir. İlk olarak, "rahat koşu ayakkabılarına" en benzer 20 ürünü bulur, ardından bu sonuçları yalnızca 50 ABD doları ile 150 ABD doları arasında fiyatlanan ayakkabı öğelerini içerecek şekilde filtreler. Bu yaklaşım, anlamsal anlama kullanılırken hassas hedefleme sağlar.
Tam metin ve vektör aramasını tümleştirin
Kapsamlı sonuçlar için vektör araması ile tam metin aramasını birleştirin:
DECLARE @query_vector VECTOR(1536) = AI_GENERATE_EMBEDDINGS(
N'sustainable materials'
USE MODEL Ada2Embeddings
);
SELECT
t.product_id,
t.product_name,
s.distance,
fts.RANK AS text_rank
FROM
VECTOR_SEARCH(
TABLE = products AS t,
COLUMN = embedding,
SIMILAR_TO = @query_vector,
METRIC = 'cosine',
TOP_N = 50
) AS s
INNER JOIN CONTAINSTABLE(products, description, 'sustainable OR eco-friendly') AS fts
ON t.product_id = fts.[KEY]
ORDER BY (s.distance * 0.6) + ((1.0 - fts.RANK/1000.0) * 0.4);
Bu sorgu, vektör arama ile tam metin aramalarını birleştirir. Vektör eklemeleri kullanarak "sürdürülebilir malzemelere" benzer ürünleri görsel olarak bulur, ardından açıklamada "sürdürülebilir" veya "çevre dostu" anahtar sözcükler için tam metin arama sonuçlarıyla birleşir. Son sıralama her iki puanı da ağırlıklı bir formülle birleştirir (60% anlamsal benzerlik, 40% anahtar sözcük eşleşmesi).
En iyi yöntemleri uygulama
SQL Server 2025'te vektör araması uygulanırken:
- Doğru duyarlığı seçin: Depolama önemli olduğunda daha büyük boyutlar için yarı duyarlık kullanın
- Stratejik dizin: Sık aranan sütunlarda vektör dizinleri oluşturma
- Geri çağırmayı izleme: Kabul edilebilir geri çağırma oranlarını sağlamak amacıyla kullanım senaryonuzda ANN sorgularınızı test edin.
- Sorguları iyileştirme: Vektör işlemden önce arama alanını azaltmak için uygun filtreleri kullanın
- Toplu işlemler: Daha iyi performans için toplu olarak gömü oluşturma ve ekleme.
Bu vektör özelliklerini kullanarak, tüm güvenilir SQL Server platformunda anlamsal ilişkileri anlayan, akıllı öneriler sağlayan ve doğal dil arama deneyimleri sunan yapay zeka destekli uygulamalar oluşturabilirsiniz.