Udostępnij za pomocą


Co to są osadzanie wektorów i wyszukiwanie wektorów w usłudze Azure Cache for Redis?

Wyszukiwanie podobieństwa wektorów (VSS) stało się popularną technologią inteligentnych aplikacji opartych na sztucznej inteligencji. Usługa Azure Cache for Redis może służyć jako wektorowa baza danych w połączeniu z modelami, takimi jak Azure OpenAI for Retrieval-Augmented Generative AI i inne scenariusze analizy. 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 warstwy Enterprise lub usługi Azure Managed Redis z usługą Azure OpenAI, zobacz następujące tematy:

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 i Azure Managed Redis.

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

Warstwa Podstawowa/Standardowa Premium Enterprise Enterprise Flash Zarządzany Redis w Azure
Dostępny Nie. Nie. Tak Tak (wersja zapoznawcza) Tak

Co to są osadzanie wektorów?

Osadzanie wektorów to podstawowa koncepcja uczenia maszynowego i przetwarzania języka naturalnego, która umożliwia reprezentację danych, takich jak wyrazy, 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 dla każdego bloku danych wejściowych, podobne słowa, dokumenty lub obrazy mają również podobne wektory. Na przykład wyrazy basketball i baseball mają wektory osadzenia znacznie bliżej siebie niż rainforest.

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ą. Bazy danych nierelacyjnych najczęściej są używane jako bazy danych wektorowych, chociaż można używać relacyjnych baz danych, takich jak PostgreSQL, za pomocą rozszerzenia 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 nawigowalnych grafów o małym świecie.

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 poprzez poświęcenie precyzji na rzecz większej 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.

Kluczowe scenariusze wyszukiwania wektorowego

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

  • Semantyczne pytania i odpowiedzi 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, używając innego dużego modelu językowego (LLM). Przykład semantycznych pytań i odpowiedzi
  • 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 LLM, przechowując w pamięci podręcznej wyniki 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 z użyciem LLM jako osadzeń w bazie danych wektorowej. 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 Cache for Redis do przechowywania i wyszukiwania wektorów?

Usługa Azure Cache for Redis może służyć skutecznie jako wektorowa baza danych 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 Cache for 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 HNSW).
  • Przechowywanie wektorów w strukturach danych typu skrót 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 Redis jest często ekonomicznym wyborem, ponieważ jest już tak często używany w aplikacjach do buforowania lub przechowywania sesji. W tych scenariuszach może pełnić podwójną rolę, działając jako typowa pamięć podręczna, a jednocześnie obsługując aplikacje wyszukiwania wektorowego.

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.