Mozaik AI Vektör Arama

Bu makalede mozaik yapay zeka vektör aramasının ne olduğu ve nasıl çalıştığı da dahil olmak üzere genel bir bakış sağlanır.

Mozaik AI Vektör Arama, Databricks Veri Zekası Platformu'na yerleşik olarak sunulan ve idare ve üretkenlik araçlarıyla tümleştirilmiş bir vektör arama çözümüdür. Vektör araması, eklemeleri almak için iyileştirilmiş bir arama türüdür. Eklemeler, genellikle metin veya görüntü verileri olan verilerin anlamsal içeriğinin matematiksel temsilleridir. Eklemeler büyük bir dil modeli tarafından oluşturulur ve birbirine benzeyen belgeleri veya görüntüleri bulmaya bağlı birçok üretken yapay zeka uygulaması için önemli bir bileşendir. BUNA örnek olarak RAG sistemleri, önerilen sistemler, görüntü ve video tanıma verilebilir.

Mozaik AI Vektör Araması ile Delta tablosundan bir vektör arama dizini oluşturursunuz. Dizinde meta veriler içeren ekli veriler bulunur. Daha sonra en benzer vektörleri tanımlamak ve ilişkili belgeleri döndürmek için REST API kullanarak dizini sorgulayabilirsiniz. Temel delta tablosu güncelleştirildiğinde dizini otomatik olarak eşitlenecek şekilde yapılandırabilirsiniz.

Mozaik AI Vektör Arama aşağıdakileri destekler:

Mozaik AI Vektör Arama nasıl çalışır?

Mozaik AI vektör araması, yaklaşık en yakın komşu (ANN) aramaları için Hiyerarşik Gezinilebilir Küçük Dünya (HNSW) algoritmasını ve katıştırma vektörü benzerliğini ölçmek için L2 mesafe metriği kullanır. Kosinüs benzerliğini kullanmak istiyorsanız, veri noktası eklemelerinizi vektör aramasına beslemeden önce normalleştirmeniz gerekir. Veri noktaları normalleştirildiğinde, L2 uzaklığı tarafından üretilen derecelendirme, kosinüs benzerliğine göre derecelendirmenin ürettiği sıralamayla aynıdır.

Mozaik AI Vektör Arama, vektör tabanlı ekleme aramasını geleneksel anahtar sözcük tabanlı arama teknikleriyle birleştiren karma anahtar sözcük benzerliği aramasını da destekler. Bu yaklaşım, sorgunun anlamsal ilişkilerini ve bağlamını yakalamak için vektör tabanlı bir benzerlik araması kullanırken sorgudaki tam sözcükleri eşleştirir.

Karma anahtar sözcük benzerliği araması, bu iki tekniği tümleştirerek yalnızca tam anahtar sözcükleri değil kavramsal olarak benzer olan belgeleri de alır ve daha kapsamlı ve ilgili arama sonuçları sağlar. Bu yöntem özellikle kaynak verilerin SKU'lar veya tanımlayıcılar gibi benzersiz anahtar sözcüklerin saf benzerlik aramasına uygun olmadığı RAG uygulamalarında kullanışlıdır.

API hakkında ayrıntılı bilgi için bkz. Python SDK başvurusu ve Vektör arama dizinini sorgulama.

Benzerlik arama hesaplaması

Benzerlik arama hesaplaması aşağıdaki formülü kullanır:

1 artı mesafenin karesinin tersi

burada dist, sorgu q ile xdizin girişi arasındaki Öklid uzaklığıdır:

Öklidyen mesafe, kare farkların toplamının karekökü

Anahtar sözcük arama algoritması

İlgi puanları Okapi BM25 kullanılarak hesaplanır. Metin veya dize biçimindeki tüm sütunlar, kaynak metin gömme ve meta veri sütunları dahil olmak üzere aranıyor. Belirteç oluşturma işlevi sözcük sınırlarında bölünür, noktalama işaretlerini kaldırır ve tüm metni küçük harfe dönüştürür.

Benzerlik arama ve anahtar sözcük aramalarının birleştirilmesi

Benzerlik arama ve anahtar sözcük arama sonuçları, Karşılıklı Rank Fusion (RRF) işlevi kullanılarak birleştirilir.

RRF ilk olarak her yöntemde bulunan her belgeyi yeniden puanlar.

ANN için RRF denklemi

Anahtar sözcük araması için RRF denklemi

rrf_param daha yüksek dereceli ve düşük dereceli belgelerin göreli önemini denetler. Literatüre göre rrf_param 60 olarak ayarlanmıştır.

Puanlar, aşağıdaki normalleştirme faktörü kullanılarak mümkün olan en yüksek puanın 1 olması için normalleştirilir:

Normalleştirme

Her belgenin son puanı aşağıdaki gibi hesaplanır:

final puanı

En yüksek son puana sahip belgeler döndürülür.

Vektör eklemeleri sağlama seçenekleri

Databricks'te vektör arama dizini oluşturmak için önce vektör eklemeleri sağlamayı belirlemeniz gerekir. Databricks üç seçeneği destekler.

Seçenek 1: Databricks tarafından hesaplanan eklemelerle Delta Eşitleme Dizini

Bu seçenekle, metin biçiminde veri içeren bir kaynak Delta tablosu sağlarsınız. Databricks, belirttiğiniz modeli kullanarak eklemeleri hesaplar ve isteğe bağlı olarak eklemeleri Unity Kataloğu'ndaki bir tabloya kaydeder. Delta tablosu güncelleştirildikçe, dizin Delta tablosuyla eşitlenmiş olarak kalır.

Aşağıdaki diyagramda işlem gösterilmektedir:

  1. Sorgu gömülerini hesapla. Sorgu meta veri filtreleri içerebilir.
  2. En ilgili belgeleri tanımlamak için benzerlik araması yapın.
  3. En uygun belgeleri döndürerek sorguya ekleyin.

vektör arama dizini, Databricks eklemeleri hesaplar

Seçenek 2: Kendi kendine yönetilen eklemelerle Delta Eşitleme Dizini

Bu seçenekle, önceden hesaplanmış eklemeler içeren bir kaynak Delta tablosu sağlarsınız. Delta tablosu güncelleştirildikçe, dizin Delta tablosuyla eşitlenmiş olarak kalır.

Uyarı

Kendi kendine yönetilen bir ekleme dizinini Databricks tarafından yönetilen dizine dönüştürmek mümkün değildir. Daha sonra yönetilen eklemeleri kullanmaya karar verirseniz, yeni bir dizin oluşturmanız ve eklemeleri yeniden derlemeniz gerekir.

Aşağıdaki diyagramda işlem gösterilmektedir:

  1. Sorgu eklemelerden oluşur ve meta veri filtrelerini içerebilir.
  2. En ilgili belgeleri tanımlamak için benzerlik araması yapın. En uygun belgeleri döndürerek sorguya ekleyin.

vektör arama dizini, önceden hesaplanmış eklemeler

Seçenek 3: Doğrudan Vektör Erişim Dizini

Bu seçenekle, ekleme tablosu değiştiğinde REST API'yi kullanarak dizini el ile güncelleştirmeniz gerekir.

Aşağıdaki diyagramda işlem gösterilmektedir:

vektör arama dizini, otomatik eşitleme olmadan önceden hesaplanmış eklemeler

Seçenek 4: Depolama için iyileştirilmiş uç noktalarda tam metin arama dizini (Beta)

Bu seçenekle, depolama için iyileştirilmiş bir uç noktada sütun eklemeden Delta Eşitleme Dizini oluşturursunuz. Dizin, vektör eklemelerine gerek kalmadan BM25 puanlama kullanarak anahtar sözcük tabanlı tam metin aramasını destekler. Bu, metin verilerinde tam terimleri, tanımlayıcıları veya anahtar sözcükleri aramak için kullanışlıdır.

Uyarı

Hem standart hem de depolama için iyileştirilmiş uç noktalarda mevcut vektör arama dizinlerinde anahtar sözcük aramaları yapmak için de kullanabilirsiniz query_type="FULL_TEXT" . Bu seçenek, hiç ekleme içermeyen ayrılmış bir dizin oluşturmaya yöneliktir.

Ayrılmış tam metin arama dizinleri yalnızca depolama için iyileştirilmiş uç noktalarda kullanılabilir ve tetiklenmiş eşitleme modunu gerektirir. Yönergeler için bkz. Tam metin arama dizini oluşturma (Beta).

Uç nokta seçenekleri

Mozaik AI Vektör Arama, uygulamanızın gereksinimlerini karşılayan uç nokta yapılandırmasını seçebilmeniz için aşağıdaki seçenekleri sağlar.

Uyarı

Depolama için iyileştirilmiş uç noktalar Genel Önizleme aşamasındadır. Yüksek QPS beta sürümündedir ve yalnızca standart uç noktalarda kullanılabilir.

  • Standart uç noktaların boyutu 768 olan 320 milyon vektör kapasitesi vardır.
  • Depolama için iyileştirilmiş uç noktalar daha büyük bir kapasiteye (boyut 768'de bir milyardan fazla vektör) sahiptir ve 10-20 kat daha hızlı dizin oluşturma sağlar. Depolama için iyileştirilmiş uç noktalardaki sorgular yaklaşık 250 ms'lik bir gecikme süresine sahiptir. Bu seçeneğin fiyatlandırması, daha fazla sayıda vektör için iyileştirilmiştir. Fiyatlandırma ayrıntıları için vektör arama fiyatlandırma sayfasına bakın. Vektör arama maliyetlerini yönetme hakkında bilgi için bkz . Vektör arama maliyeti yönetimi kılavuzu.

Uç noktayı oluştururken uç nokta türünü belirtirsiniz.

Ayrıca bkz . Depolama için iyileştirilmiş uç nokta sınırlamaları.

Mozaik AI Vektör Araması'nı kullanmak için aşağıdakileri oluşturmanız gerekir:

  • Vektör arama uç noktası. Bu uç nokta vektör arama dizinine hizmet eder. REST API veya SDK kullanarak uç noktayı sorgulayabilir ve güncelleştirebilirsiniz. Yönergeler için bkz . Vektör arama uç noktası oluşturma.

    Uç noktalar, dizinin boyutunu veya eşzamanlı istek sayısını desteklemek için ölçeği otomatik olarak büyütür. Bir dizin silindiğinde uç noktaların ölçeği otomatik olarak azaltılır.

  • Vektör arama dizini. Vektör arama dizini, Delta tablosundan oluşturulur ve gerçek zamanlı yaklaşık en yakın komşu (ANN) aramaları sağlamak için optimize edilmiştir. Aramanın amacı, sorguya benzer belgeleri tanımlamaktır. Vektör arama dizinleri içinde görünür ve Unity Kataloğu tarafından yönetilir. Yönergeler için bkz . Vektör arama dizini oluşturma.

Buna ek olarak, Databricks'in gömüleri hesaplamasını seçerseniz, önceden yapılandırılmış bir Foundation Model API'leri uç noktasını kullanabilir veya tercih ettiğiniz gömü modelini çalıştırmak için bir model sunma uç noktası oluşturabilirsiniz. Talimatlar için Jeton Başına Ödeme Temelli Model API'leri veya Temel model sunum uç noktalarını oluşturma kısmına bakın.

Model sunma uç noktasını sorgulamak için REST API veya Python SDK'sını kullanırsınız. Sorgunuz Delta tablosundaki herhangi bir sütunu temel alan filtreler tanımlayabilir. Ayrıntılar için bkz. Sorguların filtrelerini kullanma, API başvurusu veya Python SDK başvurusu.

Gereksinimler

Vektör arama uç noktalarını oluşturma ve yönetme izni, erişim denetim listeleri kullanılarak yapılandırılır. Bkz. Vektör arama uç noktası ACL'leri.

Veri koruma ve kimlik doğrulaması

Databricks, verilerinizi korumak için aşağıdaki güvenlik denetimlerini uygular:

  • Mozaik Yapay Zeka Vektör Araması için her müşteri isteği mantıksal olarak yalıtılmış, kimliği doğrulanmış ve yetkilendirilmiştir.
  • Mozaik AI Vektör Arama, dinlenme durumundaki (AES-256) ve aktarımdaki (TLS 1.2+) tüm verileri şifreler.

Mozaik AI Vektör Arama, iki kimlik doğrulama modunu, hizmet sorumlularını ve kişisel erişim belirteçlerini (PAT) destekler. Üretim uygulamaları için Databricks, kişisel erişim belirteçlerine göre 100 msec'e kadar daha hızlı sorgu başına performansa sahip olabilecek hizmet sorumlularını kullanmanızı önerir.

  • Service principal belirteci. Bir yönetici bir hizmet sorumlusu belirteci oluşturabilir ve bunu SDK veya API'ye geçirebilir. Bkz. hizmet ilkelerini kullanma. Üretim kullanım örnekleri için Databricks, hizmet ilkesi belirteci kullanılmasını önerir.

    # Pass in a service principal
    vsc = VectorSearchClient(workspace_url="...",
            service_principal_client_id="...",
            service_principal_client_secret="..."
            )
    
  • Kişisel erişim anahtarı. Mozaik AI Vektör Arama ile kimlik doğrulaması yapmak için kişisel erişim belirteci kullanabilirsiniz. Bkz. kişisel erişim kimlik doğrulama belirteci. SDK'yı bir not defteri ortamında kullanırsanız, SDK kimlik doğrulaması için otomatik olarak bir PAT belirteci oluşturur.

    # Pass in the PAT token
    client = VectorSearchClient(workspace_url="...", personal_access_token="...")
    

Müşteri Tarafından Yönetilen Anahtarlar (CMK), 8 Mayıs 2024 veya sonrasında oluşturulan uç noktalarda desteklenir.

Kullanımı ve maliyetleri izleme

Vektör arama dizinleri ve uç noktalarıyla ilişkili kullanımı ve maliyetleri izleme hakkında bilgi için bkz . Vektör arama maliyeti yönetimi kılavuzu.

Kullanımı bütçe ilkesine göre de sorgulayabilirsiniz. Bkz . Vektör arama bütçe ilkeleri.

Kaynak ve veri boyutu sınırları

Aşağıdaki tabloda vektör arama uç noktaları ve dizinleri için kaynak ve veri boyutu sınırları özetlenir:

Resource Granülerlik Sınır
Vektör arama uç noktaları Çalışma alanı başına beş yüz
Gömülemeler (Delta Eşitleme dizini) Standart uç nokta başına 768 ekleme boyutunda ~ 320.000.000
1536 ekleme boyutunda ~ 160.000.000
3072 gömme boyutunda yaklaşık 80.000.000
(ölçeklendirme yaklaşık olarak doğrusaldır)
Eklemeler (Doğrudan Vektör Erişimi dizini) Standart uç nokta başına ~ 2.000.000 adet, 768 gömme boyutunda
Gömüler (depolama için optimize edilmiş son nokta) Depolama açısından optimize edilmiş her bir uç nokta başına 768 gömme boyutunda ~ 1.000.000.000
Boyut ekleme Endeks başına 4096
Indexes Uç nokta başına 50
Kolonlar Endeks başına 50
Kolonlar Desteklenen türler: Baytlar, kısa, tamsayı, uzun, kayan, çift, boole, dize, zaman damgası, tarih, dizi
Meta veri alanları Endeks başına 50
Dizin adı Endeks başına 128 karakter

Vektör arama dizinlerinin oluşturulması ve güncelleştirilmesinde aşağıdaki sınırlar geçerlidir:

Resource Granülerlik Sınır
Delta Eşitleme Dizini için satır boyutu Endeks başına 100 KB
Delta Sync dizini için kaynak sütun boyutu ekleme İndeks Başına 32764 bayt
Doğrudan Vektör dizini için toplu güncelleme/ekleme istek boyutu sınırı İndeks Başına 10 MB
Doğrudan Vektör dizini için toplu silme isteği boyut sınırı İndeks Başına 10 MB

Aşağıdaki sınırlar sorgu API'sine uygulanır.

Resource Granülerlik Sınır
Sorgu metni uzunluğu Sorgu başına 32764 karakter
Karma arama kullanırken belirteçler Sorgu başına 1024 sözcük veya 2 baytlık karakter
Filtre koşulları Filtre yan tümcesi başına 1024 öğeleri
Döndürülen en fazla sonuç sayısı (yaklaşık en yakın komşu araması) Sorgu başına 10.000
Döndürülen en fazla sonuç sayısı (karma anahtar sözcük-benzerlik araması) Sorgu başına 200
Döndürülen en fazla sonuç sayısı (tam metin araması) Sorgu başına 200
Yanıt boyutu Sorgu başına 10 MB

Sınırlamalar

  • Sütun adı _id rezerve edilmiştir. Kaynak tablonuzda _id adlı bir sütun varsa, bir vektör arama indeksi oluşturmadan önce adını değiştirin.
  • Satır ve sütun düzeyi izinleri desteklenmez. Ancak, filtre API'sini kullanarak kendi uygulama düzeyi ACL'lerinizi uygulayabilirsiniz.
  • Dizini farklı bir çalışma alanına kopyalayamazsınız. Databricks SDK'sını veya REST API'yi kullanarak çalışma alanları arası isteklerde bulunabilirsiniz.
  • Dizin kapasitesi, dizin oluşturma zamanında kaynak tablo boyutuna göre sağlanır. Küçük bir kaynak tabloyla başlayarak, dizinin ne kadar büyüyebileceği ve kapasite tükenen hatalara neden olabileceği için, dizini oluşturmadan önce kaynak tabloyu beklenen veri hacminizle eşleşecek şekilde boyutlandırın.

Depolama için iyileştirilmiş uç nokta sınırlamaları

Bu bölümdeki sınırlamalar yalnızca depolama için iyileştirilmiş uç noktalar için geçerlidir. Depolama için iyileştirilmiş uç noktalar Genel Önizleme aşamasındadır.

  • Sürekli eşitleme modu desteklenmez.
  • Eşitlenecek sütunlar desteklenmez.
  • Gömme boyutu 16'ya bölünebilir olmalıdır.
  • Artımlı güncelleştirme kısmen desteklenir. Her eşitleme, vektör arama dizininin bölümlerini yeniden oluşturmalıdır.
    • Yönetilen dizinler için, kaynak satır değişmediyse önceden hesaplanan tüm eklemeler yeniden kullanılır.
    • Eşitleme için gereken sürenin standart uç noktalarla karşılaştırıldığında uçtan uca önemli bir azalma olacağını tahmin etmelisiniz. 1 milyar eklemeye sahip veri kümeleri, eşitleme işlemini 8 saatten daha küçük bir süre içinde tamamlamalıdır. Daha küçük veri kümelerinin eşitlenmesi daha kısa sürer.
  • FedRAMP uyumlu çalışma alanları desteklenmez.
  • Müşteri tarafından yönetilen anahtarlar (CMK) desteklenmez.
  • Yönetilen Delta Sync dizini için bir özel ekleme modeli kullanmak için Özel Modeller ve Dış Modeller için Yapay Zeka Sorgulama önizlemesinin etkinleştirilmesi gerekir. Önizlemeleri etkinleştirmeyi öğrenmek için bkz. Azure Databricks önizlemelerini yönetme.
  • Depolama için iyileştirilmiş uç noktalar, 768 boyutlu 1 milyara kadar vektör ekleme işlemini destekler. Daha büyük bir ölçek kullanım örneğine sahipseniz hesap ekibinize ulaşın.

Ek kaynaklar