Spis treści:
Co to są bazy wektorów i jak działają?
Jakie są główne zastosowania baz wektorowych w aplikacjach AI?
Jakie korzyści płyną z używania baz wektorowych?
Jakie technologie wspierają bazy wektorowe?
Jakie wyzwania mogą wystąpić przy implementacji baz wektorowych?
FAQ – najczęściej zadawane pytania o Vector databases
Co to są bazy wektorów i jak działają?
Samo słowo wektor pochodzi od łacińskiego vehere, które znaczy nieść, wieźć, przenosić. Dlatego w różnych dziedzinach zaczęto nim określać coś, co niesie daną wartość (np. punkt, chorobę) w przestrzeni, czyli z jednego miejsca/stanu do drugiego. Podobnie wektor w vector database to zestaw wartości danego obiektu, jego cech, wyrażony w postaci ciągu liczb, np. [0.12, -0.04, 0.87, ...].
Można w ten sposób klasyfikować, przechowywać, wyszukiwać i porównywać dane, którymi mogą być:
- słowa i większe partie tekstu,
- grafiki i zdjęcia,
- produkty w sklepie internetowym,
- pliki audio i video,
- profil użytkownika albo dokument firmowy.
Dla modelu bazy danych te numeryczne reprezentacje treści nie tyle określają cechy obiektu, na wzór tagów i etykiet, ile ich pozycję w przestrzeni bazy. Jeżeli użytkownik zadaje pytanie o danej treści, aplikacja przerabia go na wektor i szuka w bazie najbardziej do niego zbliżonych wektorów – im bliżej siebie znajdują się dwa wektory, tym większe prawdopodobieństwo ich podobieństwa znaczeniowego, wizualnego lub kontekstowego.
Zasadę działania wektorów w bazach danych można porównać do danych nawigacyjnych. Można się spodziewać, że dwa miejsca różniące się nieznacznie ostatnimi cyframi we współrzędnych zamieszkują osoby mówiące tym samym językiem i dzielące wiele cech wspólnych. Podobnie dzięki wektorom program może rozpoznać, że pytania „jak zresetować hasło?”, „nie mogę się zalogować” i „konto odrzuca moje dane” mogą dotyczyć tego samego problemu, nawet jeśli nie zawierają tych samych słów. I wie, gdzie znaleźć odpowiedź.
Jak działa vector database?
Aby jednak tak było, obiekt musi zostać przetworzony na wektor, a następnie osadzony w bazie danych. Służą do tego zintegrowane z nią specjalne modele embendingowe. Analizują one cechy osadzanej treści i nadają mu numeryczne współrzędne w odpowiednich wymiarach. Jeśli jest to np. produkt w sklepie, opisze numerycznie jego markę, płeć, kształt, wielkość itd. Z kolei długi tekst zostanie podzielony na mniejsze fragmenty (bo łatwiej wyszukiwać konkretny akapit niż cały plik naraz). Obok wektora zostają zapisane także metadane, które pomagają filtrować wyniki, kontrolować dostęp i wskazać źródło wykorzystanego fragmentu oraz autora.
Podczas wyszukiwania model określa podobieństwo danych do zapytania na podstawie różnych metryk.
- Cosinusowe similarity. Sprawdza się przede wszystkim w wyszukiwaniu semantycznym, które mierzy, czy dwa wektory „wskazują” w podobnym kierunku. Jeśli tak, to znaczy, że mają podobne znaczenie, nawet jeśli nie zawierają tych samych wartości, np. słów.
- Euclidean distance (L2), czyli metryka euklidesowa wykorzystująca odległość od siebie porównywanych wektorów w wielu wymiarach. Im niższa odległość, tym lepsze dopasowanie.
- Manhattan distance (L1), czyli suma różnic po wymiarach. Nazwa pochodzi od poruszania się po siatce ulic, np. na planie miasta. System nie liczy odleglości dzielącej porównywane wektory „po prostej” jak w odległości euklidesowej, tylko liczy trasę wzdłuż przecinających się ulic: trochę w bok, trochę w górę, potem znowu w bok.
- Dot product / inner product (IP). Ta metoda bierze pod uwagę zarówno to, czy wektory są skierowane podobnie, jak i to, jaką mają długość, które oznaczają nasilenie cech.
Ten sam zbiór wektorów może zostać uporządkowany inaczej w zależności od metryki. Przykładowo wektory [2, 2] i [200, 200] wskazują w tym samym kierunku, ale drugi jest dużo dłuższy. Mimo że znaczeniowo mogą oznaczać bardzo podobną rzecz, to L2 pokaże inne sugestie niż IP. Dlatego aby niwelować różnice, wektory się normalizuje, czyli skaluje tak, aby miały długość 1.
Ma to ogromne znaczenie np. w architekturze RAG, gdzie do wygenerowania odpowiedzi niezbędny jest właściwie rozpoznany kontekst, oraz innych aplikacji AI, bo źle dobrana metryka może zafałszować wyniki.

