Mozaik AI Vektör Arama
Bu makalede Databricks'in vektör veritabanı çözümü Mozaik AI Vektör Arama'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 veritabanıdır. Vektör veritabanı, eklemeleri depolamak ve almak için iyileştirilmiş bir veritabanı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 GenAI 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ı.
- Filtreleme.
- Vektör arama uç noktalarını yönetmek için denetim listelerine (ACL) erişin.
- Yalnızca seçili sütunları eşitleyin.
- Oluşturulan eklemeleri kaydedin ve eşitleyin.
Mozaik AI Vektör Arama nasıl çalışır?
Mozaik AI Vektör Arama, yaklaşık en yakın komşu 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 uzaklık mesafe ölçümünü 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 uç noktasını sorgulama.
Benzerlik arama hesaplaması
Benzerlik arama hesaplaması aşağıdaki formülü kullanır:
burada dist
sorgu q
ile dizin girişi x
arasındaki Öklid uzaklığıdır:
Anahtar sözcük arama algoritması
İlgi puanları Okapi BM25 kullanılarak hesaplanır. Kaynak metin ekleme ve meta veri sütunları metin veya dize biçiminde olmak üzere tüm metin veya dize sütunları 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, puanı kullanarak her yöntemden her belgeyi yeniden puanlar:
Yukarıdaki denklemde derece 0'da başlar, her belgenin puanlarını toplar ve en yüksek puanlama belgelerini döndürür.
rrf_param
daha yüksek dereceli ve düşük dereceli belgelerin göreli önemini denetler. Literatüre rrf_param
göre 60 olarak ayarlanmıştır.
Puanlar normalleştirilir, böylece aşağıdaki denklem kullanılarak en yüksek puan 1, en düşük puan 0 olur:
Vektör eklemeleri sağlama seçenekleri
Databricks'te vektör veritabanı 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 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 eklemelerini hesaplama. 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 Ö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.
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 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:
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. Uç noktalar, dizinin boyutunu veya eşzamanlı istek sayısını destekleyecek şekilde otomatik olarak ölçeklendirilir. Yönergeler için bkz . Vektör arama uç noktası oluşturma.
- Vektör arama dizini. Vektör arama dizini bir Delta tablosundan oluşturulur ve gerçek zamanlı yaklaşık en yakın komşu aramaları sağlamak için iyileştirilmiş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 eklemeleri hesaplamasını seçerseniz, önceden yapılandırılmış bir Foundation Model API'leri uç noktasını kullanabilir veya tercih ettiğiniz ekleme modeline hizmet vermek için bir model sunum uç noktası oluşturabilirsiniz. Yönergeler için bkz. Belirteç başına ödeme temel modeli API'leri veya Uç noktaları sunan üretken yapay zeka modeli oluşturma.
Model sunum uç noktasını sorgulamak için REST API'yi 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 . Sorgularda filtreleri kullanma, API başvurusu veya Python SDK başvurusu.
Gereksinimler
- Unity Kataloğu etkin çalışma alanı.
- Sunucusuz işlem etkinleştirildi. Yönergeler için bkz . Sunucusuz işlemle bağlantı kurma.
- Kaynak tabloda Veri Akışını Değiştir etkinleştirilmelidir. Yönergeler için bkz . Azure Databricks'te Delta Lake değişiklik veri akışını kullanma.
- Dizin oluşturmak için katalog şemalarında CREATE TABLE ayrıcalıkları.
- Kişisel erişim belirteçleri etkinleştirildi.
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, bekleyen (AES-256) ve aktarımdaki (TLS 1.2+) tüm verileri şifreler.
Mozaik AI Vektör Araması iki kimlik doğrulama modunu destekler:
- Kişisel Erişim Belirteci - Mozaik AI Vektör Araması 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, kimlik doğrulaması için otomatik olarak bir PAT belirteci oluşturur.
- Hizmet Sorumlusu Belirteci - Yönetici bir hizmet sorumlusu belirteci oluşturabilir ve bunu SDK veya API'ye geçirebilir. Bkz. hizmet sorumlularını kullanma. Üretim kullanım örnekleri için Databricks bir hizmet sorumlusu belirteci kullanılmasını önerir.
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
Faturalanabilir kullanım sistemi tablosu, vektör arama dizinleri ve uç noktalarıyla ilişkili kullanımı ve maliyetleri izlemenize olanak tanır. Örnek bir sorgu aşağıda verilmiştir:
WITH all_vector_search_usage (
SELECT *,
CASE WHEN usage_metadata.endpoint_name IS NULL
THEN 'ingest'
ELSE 'serving'
END as workload_type
FROM system.billing.usage
WHERE billing_origin_product = 'VECTOR_SEARCH'
),
daily_dbus AS (
SELECT workspace_id,
cloud,
usage_date,
workload_type,
usage_metadata.endpoint_name as vector_search_endpoint,
SUM(usage_quantity) as dbus
FROM all_vector_search_usage
GROUP BY all
ORDER BY 1,2,3,4,5 DESC
)
SELECT * FROM daily_dbus
Faturalama kullanım tablosunun içeriği hakkında ayrıntılı bilgi için bkz . Faturalanabilir kullanım sistemi tablosu başvurusu. Ek sorgular aşağıdaki örnek not defterinde yer alır.
Vektör arama sistemi tabloları sorgular not defteri
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:
Kaynak | Ayrıntı düzeyi | Sınır |
---|---|---|
Vektör arama uç noktaları | Çalışma alanı başına | 100 |
Eklemeler | Uç nokta başına | 320,000,000 |
Boyut ekleme | Dizin başına | 4096 |
Dizinler | Uç nokta başına | 50 |
Sütunlar | Dizin başına | 50 |
Sütunlar | Desteklenen türler: Bayt, kısa, tamsayı, uzun, kayan, çift, boole, dize, zaman damgası, tarih | |
Meta veri alanları | Dizin başına | 20 |
Dizin adı | Dizin başına | 128 karakter |
Vektör arama dizinlerinin oluşturulması ve güncelleştirilmesinde aşağıdaki sınırlar geçerlidir:
Kaynak | Ayrıntı düzeyi | Sınır |
---|---|---|
Delta Eşitleme Dizini için satır boyutu | Dizin başına | 100 KB |
Delta Sync dizini için kaynak sütun boyutu ekleme | Dizin Başına | 32764 bayt |
Doğrudan Vektör dizini için toplu upsert istek boyutu sınırı | Dizin Başına | 10 MB |
Doğrudan Vektör dizini için toplu silme isteği boyut sınırı | Dizin Başına | 10 MB |
Aşağıdaki sınırlar sorgu API'sine uygulanır.
Kaynak | Ayrıntı düzeyi | Sınır |
---|---|---|
Sorgu metni uzunluğu | Sorgu başına | 32764 |
Döndürülen en fazla sonuç sayısı | Sorgu başına | Kategori 10,000 |
Sınırlamalar
- Satır ve sütun düzeyi izinleri desteklenmez. Ancak, filtre API'sini kullanarak kendi uygulama düzeyi ACL'lerinizi uygulayabilirsiniz.
Ek kaynaklar
- Alma Artırılmış Nesil (RAG), Temel Modeller ve Vektör Arama ile LLM sohbet botunuzu dağıtın.
- Vektör arama dizini oluşturma ve sorgulama.
- Örnek not defterleri