Udostępnij za pośrednictwem


Co to są osadzanie wektorów i wyszukiwanie wektorów w usłudze Azure Managed Redis (wersja zapoznawcza)

Wyszukiwanie podobieństwa wektorów (VSS) stało się popularną technologią inteligentnych aplikacji opartych na sztucznej inteligencji. Usługa Azure Managed Redis (wersja zapoznawcza) może służyć jako wektorowa baza danych, łącząc je z modelami, takimi jak Azure OpenAI for Retrieval-Augmented Generative AI and analysis scenarios (Scenariusze analizy i pobierania rozszerzonej sztucznej inteligencji). W tym artykule przedstawiono ogólne wprowadzenie do koncepcji osadzania wektorów, wyszukiwania podobieństwa wektorów oraz sposobu użycia usługi Redis jako wektorowej bazy danych obsługujących inteligentne aplikacje.

Aby zapoznać się z samouczkami i przykładowymi aplikacjami dotyczącymi używania usług Azure Managed Redis i Azure OpenAI do przeprowadzania wyszukiwania podobieństwa wektorów, zobacz następujące artykuły:

Zakres dostępności

Funkcje wyszukiwania wektorowego w usłudze Redis wymagają usługi Redis Stack, w szczególności modułu RediSearch . Ta funkcja jest dostępna tylko w warstwach Enterprise usługi Azure Cache for Redis.

Ta tabela zawiera informacje dotyczące dostępności wyszukiwania wektorów w różnych warstwach.

Warstwa Podstawowa/Standardowa Premium Przedsiębiorstwa Enterprise Flash
Dostępny Nie Nie. Tak Tak (wersja zapoznawcza)

Co to są osadzanie wektorów?

Pojęcie

Osadzanie wektorów to podstawowa koncepcja uczenia maszynowego i przetwarzania języka naturalnego, która umożliwia reprezentację danych, takich jak słowa, dokumenty lub obrazy jako wektory liczbowe w przestrzeni wektorów o wysokim wymiarze. Podstawową ideą osadzania wektorów jest przechwycenie podstawowych relacji i semantyki danych przez mapowanie ich na punkty w tej przestrzeni wektorowej. Oznacza to przekonwertowanie tekstu lub obrazów na sekwencję liczb reprezentujących dane, a następnie porównanie różnych sekwencji liczb. Dzięki temu złożone dane mogą być manipulowane i analizowane matematycznie, co ułatwia wykonywanie zadań, takich jak porównanie podobieństwa, rekomendacja i klasyfikacja.

Każdy model uczenia maszynowego klasyfikuje dane i tworzy wektor w inny sposób. Ponadto zazwyczaj nie można określić dokładnie, co oznacza semantyka każdego wymiaru wektora. Jednak ponieważ model jest spójny między każdym blokiem danych wejściowych, podobnymi słowami, dokumentami lub obrazami mają również podobne wektory. Na przykład wyrazy basketball i baseball wektory osadzania są znacznie bliżej siebie niż wyraz podobny rainforestdo .

Porównanie wektorów

Wektory można porównać przy użyciu różnych metryk. Najpopularniejszym sposobem porównywania wektorów jest użycie podobieństwa cosinusu, który mierzy cosinus kąta między dwoma wektorami w przestrzeni wielowymiarowej. Im bliżej wektorów, tym mniejszy kąt. Inne typowe metryki odległości obejmują odległość euklidesową i produkt wewnętrzny.

Generowanie osadzania

Wiele modeli uczenia maszynowego obsługuje interfejsy API osadzania. Aby zapoznać się z przykładem tworzenia osadzania wektorów przy użyciu usługi Azure OpenAI Service, zobacz Dowiedz się, jak generować osadzanie za pomocą usługi Azure OpenAI.

Co to jest baza danych wektorów?

Wektorowa baza danych to baza danych, która może przechowywać wektory, zarządzać nimi, pobierać i porównywać. Bazy danych wektorów muszą być w stanie wydajnie przechowywać wektor o wysokim wymiarach i pobierać je z minimalnym opóźnieniem i wysoką przepływnością. Magazyny danych nierelacyjnych są najczęściej używane jako wektorowe bazy danych, chociaż można używać relacyjnych baz danych, takich jak PostgreSQL, na przykład z rozszerzeniem pgvector .

Metoda indeksowania i wyszukiwania

Wektorowe bazy danych muszą indeksować dane w celu szybkiego wyszukiwania i pobierania. Ponadto baza danych wektorów powinna obsługiwać wbudowane zapytania wyszukiwania dla uproszczonych środowisk programistycznych.

Istnieje kilka metod indeksowania, takich jak:

  • FLAT — indeks siłowy
  • HNSW — wydajne i niezawodne przybliżone wyszukiwanie najbliższych sąsiadów przy użyciu hierarchicznych grafów nawigowalnego małego świata

Istnieje kilka typowych metod wyszukiwania, w tym:

  • K-Najbliższe sąsiady (KNN) — wyczerpująca metoda zapewniająca największą precyzję, ale z wyższym kosztem obliczeniowym.
  • Przybliżone najbliższe sąsiady (ANN) - bardziej wydajne dzięki precyzji handlu w celu zwiększenia szybkości i niższego obciążenia związanego z przetwarzaniem.

Możliwości wyszukiwania

Na koniec bazy danych wektorów wykonują wyszukiwania wektorów przy użyciu wybranej metody porównania wektorów, aby zwrócić najbardziej podobne wektory. Niektóre wektorowe bazy danych mogą również wykonywać wyszukiwania hybrydowe , najpierw zawężając wyniki na podstawie cech lub metadanych przechowywanych w bazie danych przed przeprowadzeniem wyszukiwania wektorowego. Jest to sposób na zwiększenie skuteczności i dostosowywania wyszukiwania wektorów. Na przykład wyszukiwanie wektorów może być ograniczone tylko do wektorów z określonym tagiem w bazie danych lub wektorów z danymi geolokalizacji w określonym regionie.

Scenariusze klucza wyszukiwania wektorowego

Wyszukiwanie podobieństwa wektorowego może być używane w wielu aplikacjach. Oto niektóre typowe przypadki użycia:

  • Semantyczne pytania i pytania Utwórz czatbota, który może odpowiedzieć na pytania dotyczące własnych danych. Na przykład czatbot, który może odpowiedzieć na pytania pracowników dotyczące ich opieki zdrowotnej. Setki stron dokumentacji gęstej opieki zdrowotnej można podzielić na fragmenty, przekonwertować na wektory osadzania i wyszukać na podstawie podobieństwa wektorów. Wynikowe dokumenty można następnie podsumować dla pracowników przy użyciu innego dużego modelu językowego (LLM). Semantyczny przykład pytań i pytań
  • Pobieranie dokumentu. Aby zapewnić bogatsze środowisko wyszukiwania dokumentów, w którym brakuje tradycyjnego wyszukiwania opartego na słowach kluczowych, użyj bardziej semantycznego zrozumienia tekstu dostarczonego przez program LLMs. Przykład pobierania dokumentu
  • Zalecenie dotyczące produktu. Znajdź podobne produkty lub usługi, które mają być zalecane na podstawie poprzednich działań użytkowników, takich jak historia wyszukiwania lub poprzednie zakupy. Przykład rekomendacji produktu
  • Wyszukiwanie wizualne. Wyszukaj produkty podobne do obrazu zrobionego przez użytkownika lub obrazu innego produktu. Przykład wyszukiwania wizualnego
  • Buforowanie semantyczne. Zmniejsz koszty i opóźnienia usługi LLM, buforując ukończenia usługi LLM. Zapytania LLM są porównywane przy użyciu podobieństwa wektorów. Jeśli nowe zapytanie jest wystarczająco podobne do wcześniej buforowanego zapytania, zwracane jest buforowane zapytanie. Przykład semantycznego buforowania przy użyciu biblioteki LangChain.
  • Pamięć konwersacji LLM. Utrwalanie historii konwersacji za pomocą usługi LLM jako osadzania w wektorowej bazy danych. Aplikacja może użyć wyszukiwania wektorowego, aby ściągnąć odpowiednią historię lub "wspomnienia" do odpowiedzi z usługi LLM. Przykład pamięci konwersacji LLM

Dlaczego warto wybrać usługę Azure Managed Redis do przechowywania i wyszukiwania wektorów?

Usługa Azure Managed Redis może służyć jako baza danych wektorów do przechowywania wektorów osadzania i przeprowadzania wyszukiwania podobieństwa wektorów. Obsługa magazynu wektorów i wyszukiwania była dostępna w wielu kluczowych strukturach uczenia maszynowego, takich jak:

Te struktury oferują rozbudowane integracje z usługą Redis. Na przykład integracja usługi Redis LangChain automatycznie generuje schemat indeksu dla metadanych przekazywanych podczas korzystania z usługi Redis jako magazynu wektorów. Ułatwia to filtrowanie wyników na podstawie metadanych.

Usługa Redis oferuje szeroką gamę funkcji wyszukiwania za pośrednictwem modułu RediSearch, który jest dostępny w warstwie Enterprise usługi Azure Managed Redis. Są to:

  • Wiele metryk odległości, w tym Euclidean, Cosinei Internal Product.
  • Obsługa obu metod indeksowania KNN (przy użyciu FLAT) i ANN (przy użyciu HNSWmetody indeksowania).
  • Magazyn wektorowy w strukturach danych skrótu lub JSON
  • Najważniejsze zapytania języka K
  • Zapytania zakresu wektorów (czyli znajdowanie wszystkich elementów w określonej odległości wektora)
  • Wyszukiwanie hybrydowe z zaawansowanymi funkcjami zapytań, takimi jak:
    • Filtrowanie geoprzestrzenne
    • Filtry liczbowe i tekstowe
    • Dopasowanie prefiksu i rozmyte
    • Dopasowywanie fonetyczne
    • Zapytania logiczne

Ponadto usługa Redis jest często ekonomicznym wyborem, ponieważ jest już tak często używana do buforowania lub aplikacji ze sklepu sesji. W tych scenariuszach może ściągać podwójne obowiązki, obsługując typową rolę buforowania, jednocześnie obsługując aplikacje wyszukiwania wektorów.

Jakie są moje inne opcje przechowywania i wyszukiwania wektorów?

Istnieje wiele innych rozwiązań na platformie Azure na potrzeby magazynu wektorowego i wyszukiwania. Inne rozwiązania to:

Najlepszym sposobem rozpoczęcia pracy z osadzaniem i wyszukiwaniem wektorów jest samodzielne wypróbowanie.