Szacowany czas czytania: 9 minuti
W ostatnich tygodniach wzrosło zainteresowanie inwestorów wektorowymi bazami danych. Od początku 2023 roku zauważyliśmy, że:
Zobaczmy bardziej szczegółowo, czym są wektorowe bazy danych.
Wektorowe bazy danych w dużym stopniu opierają się na osadzeniu wektorowym, typie reprezentacji danych, który przenosi w sobie informacje semantyczne, które mają kluczowe znaczenie dla sztucznej inteligencji w zrozumieniu i utrzymaniu długoterminowej pamięci, z której można korzystać podczas wykonywania złożonych czynności.
Osadzone wektory są jak mapy, ale zamiast pokazywać nam, gdzie są rzeczy na świecie, pokazują nam, gdzie są rzeczy w czymś, co nazywa się Przestrzeń wektorowa. Przestrzeń wektorowa to swego rodzaju wielki plac zabaw, na którym wszystko ma swoje miejsce. Wyobraź sobie, że masz grupę zwierząt: kota, psa, ptaka i rybę. Możemy utworzyć osadzenie wektora dla każdego obrazu, nadając mu specjalne miejsce na placu zabaw. Kot może być w jednym rogu, pies po drugiej stronie. Ptak może być na niebie, a ryba w stawie. To miejsce jest przestrzenią wielowymiarową. Każdy wymiar odpowiada innym ich aspektom, na przykład ryby mają płetwy, ptaki mają skrzydła, koty i psy mają nogi. Innym ich aspektem może być to, że ryby należą do wody, ptaki głównie do nieba, a koty i psy do ziemi. Kiedy już mamy te wektory, możemy użyć technik matematycznych, aby pogrupować je na podstawie ich podobieństwa. Na podstawie informacji, które posiadamy,
Tak więc osadzanie wektorów jest jak mapa, która pomaga nam znaleźć podobieństwa między rzeczami w przestrzeni wektorowej. Tak jak mapa pomaga nam poruszać się po świecie, osadzone wektory pomagają poruszać się po wektorowym placu zabaw.
Kluczową ideą jest to, że elementy osadzone, które są semantycznie podobne do siebie, mają mniejszą odległość między sobą. Aby dowiedzieć się, jak bardzo są do siebie podobne, możemy użyć wektorowych funkcji odległości, takich jak odległość euklidesowa, odległość cosinusowa itp.
Biblioteki wektorowe przechowywać osadzenia wektorów w indeksach w pamięci, w celu przeprowadzenia wyszukiwania podobieństwa. Biblioteki wektorowe mają następujące cechy/ograniczenia:
Dostępnych jest wiele bibliotek wyszukiwania wektorów: FAISS z Facebooka, Annoy przez Spotify i skanNN przez Google. FAISS wykorzystuje metodę grupowania, Annoy wykorzystuje drzewa, a ScanNN wykorzystuje kompresję wektorową. Dla każdego istnieje kompromis w zakresie wydajności, który możemy wybrać na podstawie naszych wskaźników aplikacji i wydajności.
Główną cechą odróżniającą wektorowe bazy danych od bibliotek wektorowych jest możliwość archiwizacji, aktualizacji i usuwania danych. Bazy danych wektorowych obsługują CRUD kompletne (tworzenie, odczytywanie, aktualizowanie i usuwanie), które rozwiązuje ograniczenia biblioteki wektorów.
Krótko mówiąc, wektorowa baza danych zapewnia doskonałe rozwiązanie do obsługi osadzania wektorów, uwzględniając ograniczenia niezależnych indeksów wektorowych, jak omówiono w poprzednich punktach.
Ale co sprawia, że wektorowe bazy danych są lepsze od tradycyjnych baz danych?
Tradycyjne bazy danych są przeznaczone do przechowywania i pobierania danych strukturalnych przy użyciu modeli relacyjnych, co oznacza, że są zoptymalizowane pod kątem zapytań opartych na kolumnach i wierszach danych. Chociaż możliwe jest przechowywanie osadzonych wektorów w tradycyjnych bazach danych, te bazy danych nie są zoptymalizowane pod kątem operacji na wektorach i nie mogą efektywnie wykonywać wyszukiwania podobieństw ani innych złożonych operacji na dużych zbiorach danych.
Dzieje się tak dlatego, że tradycyjne bazy danych wykorzystują techniki indeksowania oparte na prostych typach danych, takich jak ciągi znaków lub liczby. Te techniki indeksowania nie są odpowiednie dla danych wektorowych, które mają dużą wymiarowość i wymagają specjalistycznych technik indeksowania, takich jak odwrócone indeksy lub drzewa przestrzenne.
Ponadto tradycyjne bazy danych nie są zaprojektowane do obsługi dużych ilości nieustrukturyzowanych lub częściowo ustrukturyzowanych danych, często związanych z osadzonymi wektorami. Na przykład obraz lub plik audio może zawierać miliony punktów danych, których tradycyjne bazy danych nie są w stanie efektywnie obsłużyć.
Z drugiej strony, wektorowe bazy danych są specjalnie zaprojektowane do przechowywania i pobierania danych wektorowych oraz są zoptymalizowane pod kątem wyszukiwania podobieństw i innych złożonych operacji na dużych zbiorach danych. Używają wyspecjalizowanych technik indeksowania i algorytmów zaprojektowanych do pracy z danymi wielowymiarowymi, dzięki czemu są znacznie bardziej wydajne niż tradycyjne bazy danych do przechowywania i wyszukiwania osadzonych wektorów.
Teraz, gdy tyle przeczytałeś o wektorowych bazach danych, możesz się zastanawiać, jak one działają? Spójrzmy.
Wszyscy wiemy, jak działają relacyjne bazy danych: przechowują ciągi znaków, liczby i inne rodzaje danych skalarnych w wierszach i kolumnach. Z drugiej strony wektorowa baza danych działa na wektorach, więc sposób jej optymalizacji i przeszukiwania jest zupełnie inny.
W tradycyjnych bazach danych zwykle pytamy o wiersze w bazie danych, w których wartość zwykle dokładnie odpowiada naszemu zapytaniu. W bazach danych wektorów stosujemy metrykę podobieństwa, aby znaleźć wektor, który jest najbardziej podobny do naszego zapytania.
Wektorowa baza danych wykorzystuje kombinację kilku algorytmów, z których wszystkie uczestniczą w wyszukiwaniu najbliższego sąsiada (ANN). Algorytmy te optymalizują wyszukiwanie poprzez mieszanie, kwantyzację lub wyszukiwanie oparte na grafach.
Algorytmy te są łączone w potok, który zapewnia szybkie i dokładne wyszukiwanie sąsiadów wektora, którego dotyczy zapytanie. Ponieważ baza danych wektorów zapewnia przybliżone wyniki, główne kompromisy, które rozważamy, dotyczą dokładności i szybkości. Im dokładniejszy wynik, tym wolniejsze będzie zapytanie. Jednak dobry system może zapewnić ultraszybkie wyszukiwanie z niemal idealną dokładnością.
Bazy danych wektorowych są potężnym narzędziem do wyszukiwania podobieństw i innych złożonych operacji na dużych zbiorach danych, których nie można skutecznie wykonać przy użyciu tradycyjnych baz danych. Aby zbudować funkcjonalną wektorową bazę danych, niezbędne są elementy osadzone, ponieważ przechwytują semantyczne znaczenie danych i umożliwiają dokładne wyszukiwanie podobieństw. W przeciwieństwie do bibliotek wektorowych, wektorowe bazy danych są zaprojektowane tak, aby pasowały do naszego przypadku użycia, dzięki czemu idealnie nadają się do zastosowań, w których wydajność i skalowalność mają kluczowe znaczenie. Wraz z rozwojem uczenia maszynowego i sztucznej inteligencji, wektorowe bazy danych stają się coraz ważniejsze dla szerokiego zakresu zastosowań, w tym systemów rekomendujących, wyszukiwania obrazów, podobieństwa semantycznego i lista jest długa. W miarę rozwoju tej dziedziny możemy spodziewać się w przyszłości jeszcze bardziej innowacyjnych zastosowań wektorowych baz danych.
Ercole Palmeri
Coveware by Veeam będzie w dalszym ciągu świadczyć usługi reagowania na incydenty związane z wyłudzeniami cybernetycznymi. Coveware będzie oferować funkcje kryminalistyczne i naprawcze…
Konserwacja predykcyjna rewolucjonizuje sektor naftowo-gazowy dzięki innowacyjnemu i proaktywnemu podejściu do zarządzania zakładami.…
Brytyjskie CMA wydało ostrzeżenie dotyczące zachowań Big Tech na rynku sztucznej inteligencji. Tam…
Rozporządzenie w sprawie zielonych domów, opracowane przez Unię Europejską w celu zwiększenia efektywności energetycznej budynków, zakończyło proces legislacyjny…