Udostępnij za pośrednictwem


Wyszukiwanie wektorów mozaiki sztucznej inteligencji

Ten artykuł zawiera omówienie rozwiązania bazy danych wektorów usługi Databricks, wyszukiwania wektorów mozaiki sztucznej inteligencji, w tym tego, co to jest i jak działa.

Mosaic AI Vector Search to wektorowa baza danych wbudowana w platformę analizy danych usługi Databricks i zintegrowana z jej narzędziami do zapewniania ładu i produktywności. Wektorowa baza danych to baza danych zoptymalizowana pod kątem przechowywania i pobierania osadzonych. Osadzanie to matematyczne reprezentacje semantycznej zawartości danych, zwykle danych tekstowych lub obrazów. Osadzanie jest generowane przez duży model językowy i jest kluczowym składnikiem wielu aplikacji GenAI, które zależą od znajdowania dokumentów lub obrazów, które są podobne do siebie. Przykłady to systemy RAG, systemy rekomendacji oraz rozpoznawanie obrazów i wideo.

Wyszukiwanie wektorów mozaiki sztucznej inteligencji umożliwia utworzenie indeksu wyszukiwania wektorów na podstawie tabeli delty. Indeks zawiera osadzone dane z metadanymi. Następnie możesz wykonać zapytanie względem indeksu przy użyciu interfejsu API REST, aby zidentyfikować najbardziej podobne wektory i zwrócić skojarzone dokumenty. Indeks można strukturę do automatycznego synchronizowania po zaktualizowaniu bazowej tabeli delty.

Jak działa wyszukiwanie wektorów mozaiki sztucznej inteligencji?

Wyszukiwanie wektorów mozaiki sztucznej inteligencji używa algorytmu Hierarchiczny mały świat (HNSW) dla przybliżonego wyszukiwania najbliższych sąsiadów i metryki odległości L2 w celu mierzenia podobieństwa wektora osadzania. Jeśli chcesz użyć podobieństwa cosinus, musisz znormalizować osadzanie punktu danych przed ich wprowadzeniem do wyszukiwania wektorowego. Gdy punkty danych są znormalizowane, klasyfikacja wygenerowana przez odległość L2 jest taka sama, jak klasyfikacja tworzy podobieństwo cosinusu.

Wyszukiwanie wektorów mozaiki sztucznej inteligencji obsługuje również wyszukiwanie słów kluczowych hybrydowych, które łączy wyszukiwanie osadzania oparte na wektorach z tradycyjnymi technikami wyszukiwania opartymi na słowach kluczowych. Takie podejście dopasowuje dokładne wyrazy w zapytaniu, a jednocześnie używa wyszukiwania podobieństwa opartego na wektorach w celu przechwycenia relacji semantycznych i kontekstu zapytania.

Dzięki zintegrowaniu tych dwóch technik wyszukiwanie słów kluczowych hybrydowych pobiera dokumenty zawierające nie tylko dokładne słowa kluczowe, ale także te, które są koncepcyjnie podobne, zapewniając bardziej kompleksowe i odpowiednie wyniki wyszukiwania. Ta metoda jest szczególnie przydatna w aplikacjach RAG, w których dane źródłowe mają unikatowe słowa kluczowe, takie jak jednostki SKU lub identyfikatory, które nie są odpowiednie do wyszukiwania czystego podobieństwa.

Wyszukiwanie hybrydowe jest w publicznej wersji zapoznawczej. Aby uzyskać szczegółowe informacje na temat interfejsu API, zobacz Dokumentację zestawu SDK języka Python i Wykonywanie zapytań względem punktu końcowego wyszukiwania wektorów.

Obliczanie wyszukiwania podobieństwa

Obliczenie wyszukiwania podobieństwa używa następującej formuły:

odwrotnie 1 plus odległość kwadratowa

gdzie dist to odległość euklidesowa między zapytaniem q a wpisem xindeksu :

Odległość Eucydean, pierwiastek kwadratowy sumy różnic kwadratowych

Algorytm wyszukiwania słów kluczowych

Wyniki istotności są obliczane przy użyciu rozwiązania Okapi BM25. Przeszukiwane są wszystkie kolumny tekstowe lub ciągowe, w tym osadzanie tekstu źródłowego i kolumny metadanych w formacie tekstowym lub ciągu. Funkcja tokenizacji dzieli się na granice wyrazów, usuwa znaki interpunkcyjne i konwertuje cały tekst na małe litery.

Jak połączone są wyszukiwanie podobieństwa i wyszukiwanie słów kluczowych

Wyniki wyszukiwania słów kluczowych i wyszukiwania podobieństwa są łączone przy użyciu funkcji RRF (Reciprocal Rank Fusion).

Funkcja RRF ponownie podkreśla każdy dokument z każdej metody przy użyciu wyniku:

Równanie RRF

W powyższym równaniu ranga zaczyna się od 0, sumuje wyniki dla każdego dokumentu i zwraca najwyższe dokumenty oceniania.

rrf_param steruje względnym znaczeniem dokumentów o wyższych i niższych rangach. Na podstawie literatury rrf_param ustawiono wartość 60.

Wyniki są znormalizowane, tak aby najwyższy wynik wynosi 1, a najniższy wynik wynosi 0, używając następującego równania:

normalizacja

Opcje udostępniania osadzania wektorów

Aby utworzyć bazę danych wektorów w usłudze Databricks, musisz najpierw zdecydować, jak zapewnić osadzanie wektorów. Usługa Databricks obsługuje trzy opcje:

  • Opcja 1 Należy podać źródłową tabelę delty zawierającą dane w formacie tekstowym. Usługa Databricks oblicza osadzanie przy użyciu określonego modelu i opcjonalnie zapisuje osadzanie w tabeli w wykazie aparatu Unity. Podczas aktualizowania tabeli delty indeks pozostaje zsynchronizowany z tabelą delty.

    Na poniższym diagramie przedstawiono proces:

    1. Obliczanie osadzania zapytań. Zapytanie może zawierać filtry metadanych.
    2. Wykonaj wyszukiwanie podobieństwa, aby zidentyfikować najbardziej odpowiednie dokumenty.
    3. Zwróć najbardziej odpowiednie dokumenty i dołącz je do zapytania.

    wektorowa baza danych, usługa Databricks oblicza osadzanie

  • Opcja 2 Udostępniasz źródłową tabelę delty zawierającą wstępnie obliczone osadzanie. Podczas aktualizowania tabeli delty indeks pozostaje zsynchronizowany z tabelą delty.

    Na poniższym diagramie przedstawiono proces:

    1. Zapytanie składa się z osadzania i może zawierać filtry metadanych.
    2. Wykonaj wyszukiwanie podobieństwa, aby zidentyfikować najbardziej odpowiednie dokumenty. Zwróć najbardziej odpowiednie dokumenty i dołącz je do zapytania.

    wektorowa baza danych, wstępnie obliczone osadzanie

  • Opcja 3 (bezpośredni dostęp) Udostępniasz źródłową tabelę różnicową zawierającą wstępnie obliczone osadzanie. Nie ma automatycznej synchronizacji podczas aktualizowania tabeli delty. Podczas wprowadzania zmian w tabeli osadzania należy ręcznie zaktualizować indeks przy użyciu interfejsu API REST.

    Na poniższym diagramie przedstawiono proces, który jest taki sam jak Opcja 2, z tą różnicą, że indeks wektorowy nie jest automatycznie aktualizowany po zmianie tabeli delty:

    wektorowa baza danych, wstępnie obliczone osadzanie bez automatycznej synchronizacji

Aby użyć funkcji Wyszukiwania wektorów sztucznej inteligencji mozaiki, należy utworzyć następujące elementy:

  • Punkt końcowy wyszukiwania wektorów. Ten punkt końcowy obsługuje indeks wyszukiwania wektorowego. Punkt końcowy można wykonywać zapytania i aktualizować przy użyciu interfejsu API REST lub zestawu SDK. Punkty końcowe są skalowane automatycznie w celu obsługi rozmiaru indeksu lub liczby współbieżnych żądań. Aby uzyskać instrukcje, zobacz Tworzenie punktu końcowego wyszukiwania wektorów.
  • Indeks wyszukiwania wektorowego. Indeks wyszukiwania wektorów jest tworzony na podstawie tabeli delty i jest zoptymalizowany pod kątem zapewniania przybliżonych wyszukiwań najbliższych sąsiadów w czasie rzeczywistym. Celem wyszukiwania jest zidentyfikowanie dokumentów, które są podobne do zapytania. Indeksy wyszukiwania wektorowego są wyświetlane w katalogu aparatu Unity i podlegają nim. Aby uzyskać instrukcje, zobacz Tworzenie indeksu wyszukiwania wektorów.

Ponadto jeśli zdecydujesz się, aby usługa Databricks obliczała osadzanie, możesz użyć wstępnie skonfigurowanego punktu końcowego interfejsów API modelu podstawowego lub utworzyć punkt końcowy obsługujący model służący do obsługi wybranego modelu osadzania. Aby uzyskać instrukcje, zobacz Pay-per-token Foundation Model APIs or Create generative AI model obsługujący punkty końcowe .

Aby wykonać zapytanie dotyczące punktu końcowego obsługującego model, należy użyć interfejsu API REST lub zestawu SDK języka Python. Zapytanie może definiować filtry na podstawie dowolnej kolumny w tabeli delty. Aby uzyskać szczegółowe informacje, zobacz Używanie filtrów dla zapytań, dokumentacji interfejsu API lub dokumentacji zestawu SDK języka Python.

Wymagania

  • Obszar roboczy z obsługą wykazu aparatu Unity.
  • Włączono bezserwerowe obliczenia.
  • Tabela źródłowa musi mieć włączoną opcję Zmień źródło danych.
  • Tworzenie uprawnień TABELI w schematach wykazu w celu utworzenia indeksów.
  • Włączone osobiste tokeny dostępu.

Ochrona i uwierzytelnianie danych

Usługa Databricks implementuje następujące mechanizmy kontroli zabezpieczeń w celu ochrony danych:

  • Każde żądanie klienta do wyszukiwania wektorów sztucznej inteligencji mozaiki jest logicznie izolowane, uwierzytelniane i autoryzowane.
  • Wyszukiwanie wektorów mozaiki sztucznej inteligencji szyfruje wszystkie dane magazynowane (AES-256) i podczas przesyłania (TLS 1.2+).

Aplikacja Mosaic AI Vector Search obsługuje dwa tryby uwierzytelniania:

  • Osobisty token dostępu — możesz użyć osobistego tokenu dostępu do uwierzytelniania w usłudze Mosaic AI Vector Search. Zobacz osobisty token uwierzytelniania dostępu. Jeśli używasz zestawu SDK w środowisku notesu, automatycznie generuje token pat na potrzeby uwierzytelniania.
  • Token jednostki usługi — administrator może wygenerować token jednostki usługi i przekazać go do zestawu SDK lub interfejsu API. Zobacz Use service principals (Używanie jednostek usługi). W przypadku przypadków użycia w środowisku produkcyjnym usługa Databricks zaleca użycie tokenu jednostki usługi.

Klucze zarządzane przez klienta (CMK) są obsługiwane w punktach końcowych utworzonych 8 maja 2024 r.

Monitorowanie użycia i kosztów

Tabela rozliczanego systemu użycia umożliwia monitorowanie użycia i kosztów skojarzonych z indeksami wyszukiwania wektorowego i punktami końcowymi. Oto przykładowe zapytanie:

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

Aby uzyskać szczegółowe informacje na temat zawartości tabeli użycia rozliczeń, zobacz Billable usage system table reference (Dokumentacja tabeli rozliczanego użycia). Dodatkowe zapytania znajdują się w poniższym przykładowym notesie.

Notes zapytań dotyczących tabel systemu wyszukiwania wektorowego

Pobierz notes

Limity rozmiaru zasobów i danych

W poniższej tabeli przedstawiono podsumowanie limitów rozmiaru zasobów i danych dla punktów końcowych i indeksów wyszukiwania wektorów:

Zasób Poziom szczegółowości Limit
Punkty końcowe wyszukiwania wektorowego Na obszar roboczy 100
Osadzanie Na punkt końcowy 100,000,000
Wymiar osadzania Na indeks 4096
Indeksy Na punkt końcowy 20
Kolumny Na indeks 20
Kolumny Obsługiwane typy: bajty, krótkie, liczba całkowita, długa, zmiennoprzecinkowa, podwójna, wartość logiczna, ciąg, sygnatura czasowa, data
Pola metadanych Na indeks 20
Nazwa indeksu Na indeks 128 znaków

Następujące limity dotyczą tworzenia i aktualizowania indeksów wyszukiwania wektorowego:

Zasób Poziom szczegółowości Limit
Rozmiar wiersza dla indeksu synchronizacji różnicowej Na indeks 100 KB
Osadzanie rozmiaru kolumny źródłowej dla indeksu usługi Delta Sync Na indeks 32764 bajty
Limit rozmiaru żądania operacji zbiorczych upsert dla indeksu wektora bezpośredniego Na indeks 10 MB
Limit rozmiaru żądania usuwania zbiorczego dla indeksu wektora bezpośredniego Na indeks 10 MB

Następujące limity dotyczą interfejsu API zapytań.

Zasób Poziom szczegółowości Limit
Długość tekstu kwerendy Na zapytanie 32764
Maksymalna liczba zwróconych wyników Na zapytanie 10,000

Ograniczenia

  • Usługa PrivateLink jest obecnie ograniczona do wybranego zestawu klientów. Jeśli interesuje Cię korzystanie z funkcji z usługą PrivateLink, skontaktuj się z przedstawicielem konta usługi Databricks.
  • Regulowane obszary robocze nie są obsługiwane, dlatego ta funkcja nie jest zgodna ze standardem HIPAA.
  • Uprawnienia na poziomie wierszy i kolumn nie są obsługiwane. Można jednak zaimplementować własne listy ACL na poziomie aplikacji przy użyciu interfejsu API filtrowania.

Dodatkowe zasoby