Wyjaśnienie baz danych wektorowych: jak maszyny wyszukują według znaczenia
Dowiedz się, w jaki sposób bazy danych wektorowych przekształcają tekst na wektory numeryczne umożliwiające wyszukiwanie semantyczne oraz w czym różnią się one od tradycyjnych baz danych.
Czym jest baza danych wektorowych?
Zanim przejdziemy do tego, jak działa baza danych wektorowych, przydatne jest zrozumienie dokładnego problemu, który ma rozwiązać.
Załóżmy, że masz pole wyszukiwania i wpisujesz słowo „dog.” Standardowa funkcja wyszukiwania przeanalizuje twoje dokumenty w poszukiwaniu dokładnego ciągu znaków „dog.” Ale co się stanie, jeśli w dokumencie użyto zamiast tego słowa „puppy”? Zwykłe wyszukiwanie w tekście całkowicie to pominie, ponieważ dla komputera „dog” i „puppy” to po prostu dwa różne sekwencje znaków, mimo że my, ludzie, od razu wiemy, że odnoszą się do tego samego rodzaju rzeczy.
To jest główny problem. Komputery doskonale radzą sobie z dopasowywaniem dokładnych ciągów tekstu, ale mają trudności z samodzielnym pojmowaniem znaczenia. To właśnie ta luka ma zostać zamknięta dzięki bazom danych wektorowych.
To w skrócie opisuje podstawowy problem. Biorąc to pod uwagę, przyjrzyjmy się temu, czym właściwie jest wektor.
Czym właściwie jest wektor?
W najprostszej formie wektor to po prostu lista liczb. Nic bardziej tajemniczego niż to. Ta lista liczb służy do reprezentowania czegoś innego – może to być pojedyncze słowo, całe zdanie, cały akapit lub nawet obraz.
Możesz się zastanawiać, jak seria liczb może zastępować słowo.
Pomyśl o czymś, co już codziennie używasz: współrzędnych GPS. Gdy przesyłasz swoją lokalizację przyjacielowi, nie opisujesz jej jako „przy dużym drzewie, za niebieską bramą, obok sklepu”. Zamiast tego wysyłasz po prostu dwie liczby – szerokość i długość geograficzną – a te dwie wartości dokładnie wskazują, gdzie się znajdujesz.
Wektor działa według tej samej zasady. Różnica polega na tym, że zamiast dwóch liczb umieszczających cię w określonym miejscu na powierzchni Ziemi, wektor może zawierać setki liczb, które umieszczają słowo lub zdanie w jakimś ogromnym przestrzeni znaczeń.
Zatem gdy model AI przekształca słowo „pies” w wektor, w istocie przypisuje mu współrzędną w tej przestrzeni. Słowo „szczenię” otrzymuje współrzędną znajdującą się bardzo blisko niej, ponieważ oba słowa są do siebie bliskie pod względem znaczenia.
Baza danych wektorowych to nie magia. To po prostu sprytna metoda przechowywania znaczeń w postaci liczb, a następnie wyszukiwania na podstawie bliskości, a nie dokładnego dopasowania słów.
Mapa znaczeń
Załóżmy sobie dużą mapę, na której zamiast rozrzuconych po niej miast znajdują się słowa. Słowa o podobnym znaczeniu są umieszczone blisko siebie, natomiast te o niepowiązanym znaczeniu znajdują się daleko od siebie.
Na takiej mapie „pies”, „szczeniak” i „psowaty” skupiłyby się w jednej grupie, ponieważ wszystkie odnoszą się do tego samego pojęcia. „Jabłko”, „banan” i „mango” utworzyłyby odrębną grupę. Tymczasem słowo takie jak „smutek” znajdowałoby się osobno, oddzielone od reszty, ponieważ nie ma żadnego rzeczywistego związku z żadnym z tych innych słów.
Baza danych wektorowych to w istocie system odpowiedzialny za przechowywanie wszystkich tych współrzędnych. Gdy wysyłasz pytanie, znajduje ona te przechowywane współrzędne, które są najbliżej współrzędnych twojego pytania na tej mapie. To właśnie stanowi cały mechanizm.
Jak faktycznie działa baza danych wektorowych?
Proces ten można podzielić na cztery główne kroki:
- Zmiana tekstu na wektor (krok ten nazywany jest embeddingiem)
- Przechowywanie tego wektora w bazie danych razem z odpowiadającym mu tekstem
- Zmiana twojego zapytania wyszukiwawczego również na wektor
- Znalezienie najbliższych pasujących wektorów i zwrócenie tekstu do nich przypisanego
Rozważmy każdy z tych kroków bardziej szczegółowo.
1. Embedding: Przekształcanie tekstu w liczby
Zanim cokolwiek zostanie zapisane, każde zdanie lub dokument jest najpierw przetwarzane przez model embeddingowy. Ten model bierze fragment tekstu i tworzy na jego podstawie wektor, czyli tę samą długą listę liczb opisaną wcześniej.
Na przykład podanie zdania takiego jak „Kocham uczenie maszynowe” do funkcji embeddingowej da wynik liczbowy w postaci serii wartości dziesiętnych, coś na kształt kilku dziesiątych i setnych w obu kierunkach – zarówno dodatnich, jak i ujemnych.
Gdy ta transformacja nastąpi, zdanie przestaje być zwykłym ciągiem znaków. Staje się konkretnym punktem umieszczonym w jakimś dużym przestrzeni znaczeń.
2. Przechowywanie wektora
Gdy wektor zostanie utworzony, jest zapisywany w bazie danych wektorowych razem z tekstem, z którego pochodzi. Do najczęściej używanych baz danych wektorowych obecnie należą Pinecone, Chroma, Weaviate i Qdrant. Nie ma potrzeby zapamiętywania tej listy – wystarczy pamiętać, że takie narzędzia istnieją właśnie po to, aby obsługiwać ten rodzaj przechowywania.
3. Przekształcanie pytania w wektor
Gdy wpiszesz pytanie, na przykład „Co to jest uczenie maszynowe?”, to samo pytanie przechodzi przez identyczny model embeddingu i również zostaje przekształcone w wektor.
4. Znajdowanie najbliższego dopasowania
Na tym etapie baza danych bierze wektor Twojego pytania i porównuje go z każdym wektorem już w niej przechowywanym. Następnie szuka tych, które znajdują się najbliżej Twojej zapytania. Ta „bliskość” jest zazwyczaj obliczana za pomocą techniki zwanej podobieństwem kosinowym, chociaż na tym etapie nie musisz zagłębiać się w matematykę stojącą za nią. Kluczowy wniosek jest prosty: wektory znajdujące się blisko siebie reprezentują znaczenia, które również są sobie bliskie.
To opisuje cały proces od początku do końca. Gdy rozłożymy go krok po kroku, okazuje się, że wcale nie jest tak skomplikowany.
Gdzie wykorzystuje się bazy danych wektorowych w praktyce?
Pewnie zastanawiasz się, gdzie ta technologia pojawia się w codziennych narzędziach. Oto kilka konkretnych przykładów:
1. Systemy RAG W architekturach generatywnej wzbogacanej o wyszukiwanie komponent odpowiedzialny za przeszukiwanie dokumentów opiera się w tle na bazie danych wektorowych. Jest to w istocie element łączący, który łączy proces wyszukiwania dokumentów z wyszukiwaniem wektorowym.
2. Rekomendacje produktów Gdy sklep internetowy pokazuje „podobne produkty”, często porównuje wektory produktów, zamiast jedynie dopasowywać tagi kategorii.
3. Rekomendacje muzyki i wideo Aplikacje, które sugerują piosenki na podstawie ogólnej atmosfery lub nastroju, zamiast ściśle trzymać się etykiet gatunkowych, działają poprzez porównywanie wektorów utworzonych na podstawie cech samego dźwięku.
4. Chatboty i obsługa klienta Bot do obsługi klienta, który potrafi przeszukiwać wewnętrzną dokumentację firmy, aby odpowiedzieć na pytanie klienta, w większości przypadków działa w tle za pomocą bazy danych wektorowych.
Baza danych wektorowych a zwykła baza danych
W tym momencie możesz się zastanawiać, co tak naprawdę odróżnia to od konwencjonalnych baz danych, z którymi jesteś już zapoznany. Oto różnica:
- Zwykła baza danych przechowuje dokładne wartości i odzyskuje dane poprzez dokładne dopasowania lub filtry. Jest doskonała do zapytań typu „znajdź klienta o ID = 5.”
- Baza danych wektorowych przechowuje znaczenia w formie liczbowej i odzyskuje dane na podstawie stopnia podobieństwa. Jest doskonała do zapytań typu „znajdź dokumenty podobne do tego pytania.”
Należy pamiętać, że baza danych wektorowych nie ma zastąpić zwykłej bazy danych. W praktyce większość systemów używanych w rzeczywistym świecie wykorzystuje obie jednocześnie. Zwykła baza danych obsługuje ustrukturyzowane dane, takie jak cena, identyfikator czy data, natomiast baza danych wektorowych zajmuje się wszystkim, co wymaga zrozumienia znaczenia, np. tekstem, obrazami lub otwartymi pytaniami.
Aby podsumować, oto krótkie streszczenie:
- Klasyczne wyszukiwanie według słów kluczowych dopasowuje tylko dokładne słowa i zawodzi, gdy ta sama idea jest sformułowana inaczej
- Wektor to po prostu lista liczb używana do reprezentacji znaczenia
- Baza danych wektorowych przechowuje te liczbowe reprezentacje i przywraca najbliższe dopasowania podczas wyszukiwania
To właściwie wszystko. Nie chodzi tu o żadną magię, lecz o sprytny sposób przechowywania znaczeń, dzięki któremu komputer może je przeszukiwać w sposób podobny do tego, w jaki nasze mózgi naturalnie przetwarzają informacje. Jeśli chcesz trochę poćwiczyć, dobrym punktem wyjścia będzie użycie narzędzia takiego jak Chroma, ponieważ jest bezpłatne i dostępne dla początkujących.
Literatura pokrewna
- RAG Explained: Jak systemy AI odzyskują świeże informacje na żądanie — Dowiedz się, jak działa Retrieval-Augmented Generation, od dzielenia tekstu na fragmenty i tworzenia embeddingów po wyszukiwanie wektorowe, aby modele AI mogły odpowiadać na pytania bez ponownego szkolenia.