Aracılığıyla paylaş


Databricks Vektör Araması

Bu makalede Databricks'in vektör veritabanı çözümü Databricks Vector Search'e genel bir bakış sağlanır. Bu çözüm nedir ve nasıl çalışır?

Databricks Vektör Arama, Databricks Veri Zekası Platformunda yerleşik olarak bulunan 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.

Vektör Arama 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.

Databricks Vektör Araması, 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 ölçümü kullanır. Kosinüs benzerliğini kullanmak istiyorsanız, veri noktası eklemelerinizi Vektör Arama'ya 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.

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

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

  • 1 . Seçenek 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 eklemelerini hesaplama. 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 veritabanı, Databricks eklemeleri hesaplar

  • 2 . Seçenek Ö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:

    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 veritabanı, önceden hesaplanmış eklemeler

  • Seçenek 3 Önceden hesaplanmış eklemeler içeren bir kaynak Delta tablosu sağlarsınız. Delta tablosu güncelleştirildiğinde otomatik eşitleme yoktur. Eklemeler tablosu değiştiğinde REST API kullanarak dizini el ile güncelleştirmeniz gerekir.

    Aşağıdaki diyagramda, Delta tablosu değiştiğinde vektör dizininin otomatik olarak güncelleştirilmemesi dışında Seçenek 2 ile aynı olan işlem gösterilmektedir:

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

Benzerlik arama hesaplaması

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

1 artı kare uzaklığı karşılıklı

burada dist sorgu q ile dizin girişi xarasındaki Öklid uzaklığıdır:

Öste uzaklığı, karekök farklarının toplamının karekök

Databricks 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.

Ayrıca, Databricks'in eklemeleri hesaplamasını seçerseniz, ekleme modeli için bir model sunum uç noktası da oluşturmanız gerekir. Yönergeler için bkz . Uç noktaları sunan temel model 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.
  • Kaynak tabloda Veri Akışını Değiştir etkinleştirilmelidir.
  • Dizin oluşturmak için katalog şemalarında CREATE TABLE ayrıcalıkları.
  • Kişisel erişim belirteçleri etkinleştirildi.

Veri koruma ve kimlik doğrulaması

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

  • Vektör Arama'ya yapılan her müşteri isteği mantıksal olarak yalıtılmış, kimliği doğrulanmış ve yetkilendirilmiştir.
  • Databricks vektör araması bekleyen (AES-256) ve aktarımdaki (TLS 1.2+) tüm verileri şifreler.

Databricks Vektör Araması iki kimlik doğrulama modunu destekler:

  • Kişisel Erişim Belirteci - 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, 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. CMK için Vektör Arama desteği Genel Önizleme aşamasındadır.

Vektör Arama kullanımını ve maliyetlerini 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:

SELECT *
FROM system.billing.usage
WHERE billing_origin_product = 'VECTOR_SEARCH'
  AND usage_metadata.endpoint_name IS NOT NULL

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 sistem tabloları sorgular not defteri

Not defterini alma

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 100,000,000
Boyut ekleme Dizin başına 4096
Dizinler Uç nokta başına 20
Sütunlar Dizin başına 20
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

Vektör araması için sorgu API'sine aşağıdaki sınırlar 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

  • PrivateLink şu anda seçili müşteri kümesiyle sınırlıdır. Özelliği PrivateLink ile kullanmak istiyorsanız Databricks hesap temsilcinize başvurun.
  • Düzenlenen çalışma alanları desteklenmez, bu nedenle bu işlevsellik HIPAA uyumlu değildir.
  • Satır ve sütun düzeyi izinleri desteklenmez. Ancak, filtre API'sini kullanarak kendi uygulama düzeyi ACL'lerinizi uygulayabilirsiniz.

Ek kaynaklar