Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 Yapay Zeka Vektör Araması nedir?
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:
- Karma anahtar sözcük benzerliği araması.
- Herhangi bir uç noktada tam metin anahtar sözcük araması (Beta) veya depolama için iyileştirilmiş uç noktalarda ayrılmış tam metin dizinleri (Beta).
- Filtreleme.
- Yeniden sıralama.
- Vektör arama uç noktalarını yönetmek için denetim listelerine (ACL) erişin.
- Yalnızca seçili sütunları eşitle.
- Oluşturulan eklemelerikaydedin ve eşitleyin.
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:
burada dist, sorgu q ile xdizin girişi arasındaki Öklid uzaklığıdır:
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.
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:
Her belgenin son puanı aşağıdaki gibi hesaplanır:
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:
- Sorgu gömülerini hesapla. Sorgu meta veri filtreleri içerebilir.
- En ilgili belgeleri tanımlamak için benzerlik araması yapın.
- En uygun belgeleri döndürerek sorguya ekleyin.
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:
- Sorgu eklemelerden oluşur ve meta veri filtrelerini içerebilir.
- En ilgili belgeleri tanımlamak için benzerlik araması yapın. En uygun belgeleri döndürerek sorguya ekleyin.
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:
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.
- Standart uç noktalarda yüksek sürekli aktarım hızını desteklemek için yüksek QPS kullanabilirsiniz. Bkz . Yüksek QPS (Beta) ile uç nokta aktarım hızını ölçeklendirme.
- 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ı ayarlama
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
- Unity Kataloğu ile etkinleştirilmiş çalışma alanı.
- Sunucusuz işlem etkinleştirildi. Yönergeler için Sunucusuz Bilişime Bağlantı Kurma başlığına bakın.
- Standart uç noktalar için kaynak tabloda Veri Akışını Değiştir etkinleştirilmelidir. Bkz. Azure Databricks üzerinde Delta Lake değişiklik veri akışını kullanma.
- Vektör arama dizini oluşturmak için, dizinin oluşturulacağı katalog şemasında CREATE TABLE ayrıcalıklarınız olmalıdır.
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ı
_idrezerve edilmiştir. Kaynak tablonuzda_idadlı 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.