Aracılığıyla paylaş


Vektör ve eklemeler: Sık sorulan sorular (SSS)

Şunlar için geçerlidir: SQL Server 2025 (17.x) Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

Bu makalede, SQL Veritabanı Altyapısı'ndaki vektörler ve eklemeler hakkında sık sorulan sorular yer alır.

Uyarı

Vektör özellikleri, Always-up-to-date ilkesiyle yapılandırılmış Azure SQL Yönetilen Örneği'nde kullanılabilir.

Gömme işlemini nasıl güncel tutarım?

Eklemeleri, temsil ettikleri temel alınan veriler her değiştiğinde güncelleştirin. Bu uygulama özellikle kullanıcı tarafından oluşturulan içerik veya sık güncelleştirilen veritabanları gibi verilerin dinamik olduğu senaryolar için önemlidir. Eklemeleri güncel tutmaya yönelik çeşitli stratejiler hakkında daha fazla bilgi için bkz. Veritabanı ve Yapay Zeka: eklemeleri güncel tutmaya yönelik çözümler.

Vektör araması için ek yük öncelikli olarak vektör veri türünün depolanmasını ve dizin oluşturma ve arama için gereken hesaplama kaynaklarını içerir. Vektör veri türü depolama açısından verimli olacak şekilde tasarlanmıştır, ancak tam ek yük, depolanan vektörlerin boyutuna (boyut sayısına) göre değişebilir.

Doğru vektör boyutunu seçme hakkında daha fazla bilgi için Bkz. Modelleri ve boyutları ekleme: performans-kaynak kullanım oranını iyileştirme.

SQL Server veri sayfası en fazla 8.060 bayt tutabilir, bu nedenle vektör boyutu tek bir sayfada kaç vektör depolanabileceğini etkiler. Örneğin, 1.024 boyutlu bir vektöre sahipseniz ve her boyut tek bir duyarlık float (4 bayt) ise, vektörnün toplam boyutu 4.104 bayttır (4.096 bayt yükü + 8 bayt üst bilgisi). Bu boyut, tek bir sayfaya sığan vektör sayısını bir ile sınırlar.

Hangi ekleme modelini ve ne zaman kullanmalıyım?

Birçok ekleme modeli mevcuttur. Seçim, belirli kullanım örneğiniz ve işlemekte olduğunuz verilerin türüne bağlıdır. Bazı modeller birden çok dili desteklerken, diğerleri çok modüllü verileri (metin, resim ve daha fazlası) destekler. Bazı modeller yalnızca çevrimiçi kullanılabilirken, bazıları yerel olarak çalıştırılabilir.

Modelin kendisine ek olarak, modelin boyutunu ve ürettiği boyut sayısını göz önünde bulundurun. Daha büyük modeller daha iyi doğruluk sağlayabilir, ancak daha fazla hesaplama kaynağı ve depolama alanı gerektirir. Çoğu durumda, daha fazla boyuta sahip olmak yaygın kullanım örneklerinin kalitesini önemli ölçüde değiştirmez.

Doğru ekleme modelini seçme hakkında daha fazla bilgi için bkz. Modelleri ve boyutları ekleme: performans-kaynak kullanım oranını iyileştirme.

Vektörler için tek duyarlıklı (4 bayt) ile yarım duyarlıklı (2 bayt) kayan nokta değerlerinin ne zaman kullanılacağına nasıl karar verebilirim?

Ekleme vektörlerini bir veritabanında depolarken, tek duyarlıklı () ve yarı duyarlıklı (float32float16) kayan değerler arasında seçim yaparken depolama verimliliğini sayısal uygunlukla dengelemeniz gerekir.

Neyse ki, eklemeler genellikle duyarlıktaki küçük değişikliklere karşı son derece hassas değildir.

Eklemeler, anlamsal arama, öneri sistemleri ve doğal dil işleme gibi görevlerde kullanılan yoğun vektör gösterimleridir. Bu vektörler genellikle doğal olarak küçük sayısal varyasyonlara dayanıklı olan sinir ağlarından gelir. Sonuç olarak, duyarlığın c0'dan c1'e azaltılması, özellikle çıkarım sırasında, benzerlik karşılaştırmalarının veya sonraki görevlerin kalitesi üzerinde genellikle en az etkiye sahiptir.

Kullanımı float16 , depolama ve bellek kullanımını önemli ölçüde azaltabilir. Bu, özellikle büyük ölçekli ekleme veri kümeleriyle çalışırken yararlıdır.

Seyrek vektörler ne olacak?

Şu anda SQL Veritabanı Altyapısı'ndaki vektör veri türü yoğun vektörler için tasarlanmıştır. Bu vektörler, öğelerin çoğunun sıfır olmayan olduğu kayan noktalı sayı dizileridir. Önemli sayıda sıfır öğe içeren seyrek vektörler yerel olarak desteklenmez.

Performans, belirli kullanım örneğine, veri kümesinin boyutuna ve sorguların karmaşıklığına göre büyük ölçüde farklılık gösterebilir. Ancak SQL Server'ın vektör arama özellikleri verimli ve ölçeklenebilirdir. Arama performansını iyileştirmek için dizin oluşturma tekniklerini kullanırlar.

Ekleme oluşturmak için kullanmak istediğim birden fazla sütun varsa ne olur?

Ekleme oluşturmak için kullanmak istediğiniz birden çok sütun varsa iki ana seçeneğiniz vardır:

  • Her sütun için bir ekleme oluşturun veya
  • Birden çok sütunun değerlerini tek bir dizede birleştirin ve bu birleştirilmiş dize için tek bir ekleme oluşturun.

Bu iki seçenek ve ilgili veritabanı tasarımı konuları hakkında daha fazla bilgi için bkz. Verimli ve Zarif Modelleme Eklemeleri.

Yeniden sıralamaya ne dersin?

Yeniden derecelendirme, ek ölçütlere veya modellere göre ilk sonuçları yeniden değerlendirerek arama sonuçlarının ilgi düzeyini artırır. SQL Veritabanı Altyapısı'nda, vektör aramasını tam metin arama ile birleştirerek (BM25 derecelendirmesi sağlar) veya sonuçları belirli iş mantığına veya kullanıcı tercihlerine göre iyileştirmek için ek SQL sorguları veya makine öğrenmesi modelleri kullanarak yeniden derecelendirme uygulayabilirsiniz.

Daha fazla bilgi için bkz. Karma Arama ve RRF Yeniden Sıralama ile Arama Özelliklerini Geliştirme.

Daha gelişmiş bir yeniden derecelendirme tekniğine anlamsal yeniden sıralama adı verilir. Anlamsal yeniden sıralama, her aday bölümünü sorguyla karşılaştırmak ve ayrıntılı bir ilgi puanı atamak için özel bir modele (genellikle çapraz kodlayıcı veya geç etkileşim yaklaşımı) dayanır. Rerankers, bu pasajları yeniden değerlendirerek en hassas, kullanışlı ve ilgili sonuçların en üste çıkmasını sağlar.

Yeniden derecelendirme modeli kullanma örneği için bkz. Azure SQL, SQL Server 2025 ve Cohere Rerank modelleri ile AnlamSal Yeniden Boyutlandırma.

AI Search (şimdi AI Foundry) ile vektör arama senaryoları için SQL'i ne zaman kullanmalıyım?

AI Search (şimdi AI Foundry), vektör arama, doğal dil işleme ve yapay zeka odaklı içgörüler gibi gelişmiş arama senaryoları için tasarlanmış özel bir hizmettir. Çeşitli yapay zeka modelleri için yerleşik destek, gelişmiş derecelendirme algoritmaları ve diğer yapay zeka hizmetleriyle tümleştirme gibi akıllı arama uygulamaları oluşturmaya yönelik kapsamlı bir özellik kümesi sağlar.

SQL Veritabanı Altyapısı, her türlü veriyi depolama ve her türlü sorguyu çalıştırma olanağı sağlar: yapılandırılmış ve yapılandırılmamış. Bu veriler üzerinde vektör araması yapabilirsiniz. Tüm bu verileri birlikte aramanız gereken ve mimarinizi karmaşıklaştıracak ayrı bir arama hizmeti kullanmak istemediğiniz senaryolar için iyi bir seçimdir. SQL Veritabanı Altyapısı, satır düzeyi güvenlik (RLS), dinamik veri maskeleme (DDM), Always Encrypted, sabit kayıt defteri tabloları ve saydam veri şifrelemesi (TDE) gibi verilerin her zaman korunduğundan emin olmak için kritik kurumsal güvenlik özellikleri sunar.

Burada vektör, jeo-uzamsal, yapılandırılmış ve yapılandırılmamış verilerin tümünü aynı anda birleştiren Azure SQL veya SQL Server'da çalıştırabileceğiniz tek bir sorgu örneği verilmiştir. Örnek sorgu, restoranın açıklamasına, restoranın konumuna ve kullanıcının tercihlerine göre en uygun 50 restoranı alır. Açıklama için vektör araması ve konum için jeo-uzamsal arama kullanır, ayrıca yıldız numaralarına, inceleme sayısına, kategoriye ve diğer özniteliklere göre filtreler.

DECLARE @p AS GEOGRAPHY = GEOGRAPHY::Point(47.6694141, -122.1238767, 4326);
DECLARE @e AS VECTOR(1536) = AI_GENERATE_EMBEDDINGS('I want to eat a good focaccia' USE MODEL Text3Embedding);

SELECT TOP (50) b.id AS business_id,
                b.name AS business_name,
                r.id AS review_id,
                r.stars,
                r.review,
                VECTOR_DISTANCE('cosine', re.embedding, @e) AS semantic_distance,
                @p.STDistance(geo_location) AS geo_distance
FROM dbo.reviews AS r
     INNER JOIN dbo.reviews_embeddings AS re
         ON r.id = re.review_id
     INNER JOIN dbo.business AS b
         ON r.business_id = b.id
WHERE b.city = 'Redmond'
      AND @p.STDistance(b.geo_location) < 5000 -- 5 km
      AND r.stars >= 4
      AND b.reviews >= 30
      AND JSON_VALUE(b.custom_attributes, '$.local_recommended') = 'true'
      AND VECTOR_DISTANCE('cosine', re.embedding, @e) < 0.2
ORDER BY semantic_distance DESC;

Önceki örnekte, Tam En Yakın Komşu (ENN) araması eklemelerin semantik uzaklığı temelinde en uygun incelemeleri bulurken, jeo-uzamsal uzaklık ve diğer iş özniteliklerine göre filtreleme de sağlar. Bu sorgu, zengin ve verimli bir arama deneyimi oluşturmak için vektör aramasını geleneksel SQL özellikleriyle birleştirmenin gücünü gösterir.

Yaklaşık En Yakın Komşu (ANN) aramasını kullanmak istiyorsanız, reviews_embeddings tablo üzerinde bir vektör dizini oluşturabilir ve aramayı gerçekleştirmek için VECTOR_SEARCH işlevini kullanabilirsiniz.

Kendi hızınıza göre Azure SQL Cryptozoology AI Embeddings laboratuvarını gözden geçirin.