
Jeśli próbujesz zbudować chatbota lub wyszukiwarkę, prawdopodobnie słyszałeś o wektorowych bazach danych.
Wektorowe bazy danych odgrywają istotną rolę w interakcji między danymi, zasobami i zapytaniami, ale radzenie sobie z nimi może być zniechęcające. Byłem tam: przewijając ezoteryczne terminy, takie jak osadzanie i wyszukiwanie rozmyte, nie byłem pewien, czy przesadzam z inżynierią, czy po prostu brakuje mi czegoś podstawowego.
Kto decyduje o tym, które filmy na YouTube polecać? Jak wyszukiwarki radzą sobie z literówkami? W jaki sposób Instagram zawsze pokazuje mi idealnego puszystego psa?
Rozpakujmy świat wektorów, podobieństwa i wyszukiwania semantycznego oraz dowiedzmy się, jak tworzyć bardziej spersonalizowane aplikacje.
Czym jest wektorowa baza danych?
Wektorowa baza danych przechowuje dane jako zbiór reprezentacji numerycznych (znanych jako wektory), które przechwytują znaczenie danych. Pozwala to na wyszukiwanie w oparciu o podobieństwo, a nie tylko konkretne słowa kluczowe.
Są one kluczową technologią stojącą za nowoczesnymi systemami czatu, wyszukiwania i rekomendacji.
Jak działają wektorowe bazy danych?
Wektorowe bazy danych przechowują tekst, obrazy i arkusze kalkulacyjne jako serię wektorów, zwanych również osadzeniami. Każdy z tych wektorów to seria liczb, które na pierwszy rzut oka nie wyglądają na wiele, ale pod maską oddają abstrakcyjne znaczenie danych.
Dane te - czy to e-maile, transkrypcje spotkań, opisy produktów - nie są zastępowane serią liczb, ale indeksowane.

Te małe, gęste osadzenia sprawiają, że wyszukiwanie informacji jest zarówno wydajne, jak i znaczące. Pozwalają nam porównywać elementy na podstawie podobieństwa, a nie tylko słów kluczowych. Przyjrzyjmy się różnym komponentom.
Kluczowe koncepcje
Czym jest model osadzania?
Modele osadzania to modele uczenia maszynowego wyszkolone do konwersji danych na osadzenia.
Modele te są szkolone w zakresie kompresji danych do wektora (nasze osadzenie), a następnie ich regeneracji. Skompresowany wektor przechowuje jak najwięcej informacji semantycznych z danych.
Oznacza to, że przechowują one nie tylko słowa, ale także idee, które się za nimi kryją. Na przykład, osadzenie może to uchwycić:
- "Szczeniak" i "pies" są blisko spokrewnione
- "Jak zresetować hasło?" jest podobne do "Nie mogę zalogować się na moje konto".
- "Niedrogi laptop" i "niedrogi komputer" odnoszą się do tego samego.
Tego rodzaju wzorce pomagają agentom AI i wyszukiwarkom porównywać dane wejściowe w oparciu o znaczenie, a nie tylko pasujące słowa kluczowe.
Czym jest wyszukiwanie semantyczne?
W jaki sposób embeddingi są porównywane pod kątem podobieństwa?
Jak wspomniano wcześniej, wektor osadzania to seria liczb. Liczby te są reprezentacją punktu w przestrzeni wielowymiarowej. Możemy wizualizować rzeczy w 2D lub 3D, ale co powiesz na 384? Zamiast X, Y i Z mamy setki wartości, z których wszystkie składają się na jeden unikalny punkt.

Wektory te pozwalają nam zmierzyć, jak "bliskie" są 2 fragmenty treści - nie pod względem słów, ale pod względem znaczenia.
Wyszukiwanie semantyczne przetwarza zapytanie na wektor i przeszukuje bazę danych w poszukiwaniu najbliższych wektorów. Te wektory wyników powinny być zasadniczo najbardziej podobne do zapytania użytkownika.

Przybliżone wyszukiwanie najbliższych sąsiadów (ANN)
Wyszukiwanie semantyczne odbywa się przy użyciu algorytmu Approximate Nearest Neighbor (ANN). Celem ANN jest odpowiedź na pytanie "który wektor w mojej bazie danych jest najbardziej podobny do mojego zapytania?".
Istnieje kilka algorytmów ANN, z których każdy ma swoje mocne strony. Na przykład:
Hierarchiczny mały świat z możliwością nawigacji (HNSW)
HNSW jest zoptymalizowany pod kątem wyszukiwania w czasie rzeczywistym, z małymi opóźnieniami. Świetnie nadaje się do spersonalizowanych kanałów treści i systemów rekomendacji - każdego scenariusza, który wymaga szybkiego wyszukiwania w często aktualizowanych danych.
Odwrócony indeks pliku (IVF)
IVF jest bardziej odpowiedni dla dużych, w większości niezmiennych danych. Pomyśl o katalogach e-commerce lub akademickich katalogach papierowych.
W praktyce algorytm będzie ukryty w silniku lub platformie używanej do implementacji wyszukiwania.
Przypadki użycia wektorowych baz danych
Teraz, gdy rozumiemy już, w jaki sposób wektory są tworzone i dopasowywane, przyjrzyjmy się różnym sposobom ich wykorzystania w aplikacjach.
RAG (Retrieval-Augmented Generation)
Ta strategia generowania LLM wydaje się być tematem rozmów i nie bez powodu: RAG jest niezawodny, dokładny i zapewnia konkretne odpowiedzi, a wszystko to jest możliwe dzięki Vector DB.
Dzięki RAG zapytanie użytkownika jest osadzane i porównywane z resztą bazy danych pod kątem podobnych elementów. Następnie model odwołuje się do tych elementów podczas generowania odpowiedzi.
RAG unika polegania na wewnętrznej wiedzy modelu lub historii konwersacji, które mogą być fałszywe lub nieistotne.
Powiedzmy, że prosisz o podsumowanie dzieciństwa Napoleona. Odpowiedź modelu jest wiarygodna, ale czy dokładna? Dzięki RAG dokumenty związane z zapytaniem zostaną wykorzystane do kierowania odpowiedzią modelu. W ten sposób można sprawdzić podstawowy zasób, utrzymując weryfikowalność wyników modelu.
Jeśli chcesz zobaczyć, jak to wygląda w praktyce, oto przewodnik po budowaniu chatbota za pomocą RAG.
Zalecenia dotyczące produktów i treści
Wektorowe bazy danych służą nie tylko do odpowiadania na zapytania użytkowników. Mogą być również wykorzystywane do optymalizacji doświadczenia użytkownika.
Śledzenie historii nawigacji użytkowników i grupowanie podobnych elementów pozwala firmom określić najlepszy produkt lub treść do polecenia użytkownikowi.
Jest to świetny przykład tego, co nazywamy algorytmem: strategiczne rekomendacje treści i ukierunkowane reklamy.
Pomyślmy o platformie do udostępniania wideo: każdy film ma własne osadzenie przechowywane w bazie danych. Po obejrzeniu jednego z nich system może zasugerować inne z pobliskimi osadzeniami - co oznacza podobną treść, nawet jeśli tytuły lub tagi są zupełnie inne.
Z biegiem czasu historia oglądania staje się rodzajem spersonalizowanej "chmury" osadzeń, pomagając systemowi zrozumieć preferencje użytkownika i polecić, co będzie chciał zobaczyć w następnej kolejności.
Zalety wektorowych baz danych w porównaniu z tradycyjnymi bazami danych
Teraz, gdy już wiemy , co i jak z wektorowymi bazami danych, porozmawiajmy o tym, dlaczego: jakie korzyści dają one w chatbotach i wyszukiwarkach?
1. Zapewniają Chatbotom więcej kontekstu
LLMs są podatni na zapominanie i halucynacje podczas długich rozmów. Użytkownicy i deweloperzy nie mają wyraźnego poczucia, które informacje są zachowywane.
W przypadku strategii takich jak RAG, model przeszukuje bazę danych pod kątem zapytania użytkownika, aby znaleźć wszelkie informacje potrzebne do udzielenia dokładnej odpowiedzi.
Zamiast przypominać i poprawiać model po raz kolejny, wektorowe bazy danych przechowują istotne informacje i wyraźnie się do nich odwołują.

2. Sprawiają, że wyniki wyszukiwania są odporne na literówki
Nawet jeśli znamy dokładne słowa kluczowe, wyszukiwanie jest chaotyczne.
golfen retriever ≠ golden retriever, ale wyszukiwarka powinna wiedzieć lepiej.
Jeśli dopasowujemy zapytania dosłownie, literówka lub błędnie wpisane słowo dyskwalifikuje odpowiednią opcję.
Gdy wyabstrahujemy znaczenie zapytania wyszukiwania, konkretna pisownia lub sformułowanie nie ma tak dużego znaczenia.
3. Pozwalają użytkownikom na wyszukiwanie rozmyte
W wyszukiwaniu mniej chodzi o słowa kluczowe, a bardziej o ✨vibes✨.
Abstrakcja tekstu do wektora osadzania pozwala przechowywać go w niewysłowionej przestrzeni wibracji. Tak więc, na pierwszy rzut oka,
"Gdzie w okolicy mogę dostać zabójczą flat white?".
nie wygląda jak
"Najlepsze miejsca na kofeinę w pobliżu",
ale wyszukiwarka dopasuje je tak samo. Jest to możliwe, ponieważ osadzenia tych dwóch fraz są bardzo zbliżone, mimo że ich brzmienie jest inne.
4. Wektorowe bazy danych mogą porównywać różne modalności
Dane mają różne kształty, rozmiary i typy. Często musimy porównywać dane różnych typów. Na przykład, używając tekstu do wyszukiwania i filtrowania zdjęć produktów.
Modele multimodalne są szkolone w celu porównywania różnych typów danych, takich jak tekst, obrazy, audio i wideo.
Ułatwia to rozmowę o treści. Znajdź produkt opisując jego zdjęcie lub zapytaj o wykresy używając prostego języka.
Jak zbudować agenta AI z inteligentnymi możliwościami wyszukiwania?
Jeśli dopiero zaczynasz przygodę z wyszukiwaniem semantycznym, prawdopodobnie masz mnóstwo pytań:
Jak przygotować dane?
Jakie dane powinienem uwzględnić?
Którego modelu osadzania powinienem użyć... i skąd mam wiedzieć, że działa?
Na szczęście nie trzeba tego wszystkiego ustalać z góry. Oto jak zacząć w kilku prostych krokach:
1. Zdefiniuj swój przypadek użycia
Zacznij od czegoś prostego i użytecznego. Oto kilka przykładów, które pomogą ci się rozkręcić:
- A chatbot dla sprzedawców detalicznych który pomaga klientom znaleźć odpowiednie produkty w oparciu o ich potrzeby i preferencje. Zapytaj go: "Jaka jest dobra kurtka zimowa do wędrówek w cenie poniżej 150 USD?".
- A bot do obsługi zgłoszeń który rozpatruje zgłoszenia IT pracowników w czasie rzeczywistym. Zapytaj: "Czy są jeszcze jakieś nieprzypisane zgłoszenia o wysokim priorytecie związane z dostępem VPN?".
- A automatyzacja procesów biznesowych który zarządza realizacją zamówień od początku do końca. Zapytaj go: "Czy zamówienie Smitha zostało już wysłane i czy wysłaliśmy wiadomość e-mail z potwierdzeniem?".
Wszystkie z nich są szybkie do zbudowania, łatwe do przetestowania i od razu wartościowe.
2. Wybierz swoją platformę
Jeśli wektorowe bazy danych wydają się mylące lub abstrakcyjne, istnieje wiele platform chatbotowych, które zajmują się osadzaniem i grupowaniem za kulisami.
3. Gromadzenie danych
Zacznij od tego, co już masz - plików tekstowych, PDF, arkuszy kalkulacyjnych. Dobra platforma zajmie się formatowaniem za Ciebie. Po prostu prześlij swoją zawartość, a ona zajmie się osadzaniem i indeksowaniem za kulisami.
Niektóre szczegóły będą zależeć od używanej platformy. Oto kilka wskazówek, jak najlepiej wykorzystać dane.
4. Dodaj opis
Napisz krótki, prosty opis tego, do czego służy twój bot.
Pomaga to ustalić ton i oczekiwania: w jaki sposób bot powinien rozmawiać z użytkownikami, jakiego rodzaju pytań może oczekiwać i do jakich danych może się odwoływać.
Na przykład:
"Jesteś asystentem wsparcia dla zespołu HR. Pomagaj pracownikom znaleźć zasady i odpowiadaj na pytania dotyczące WOM i świadczeń. Używaj informacji z podręcznika pracownika i dokumentów HR. Wyrażaj się jasno i uprzejmie. Jeśli czegoś nie wiesz, poproś użytkownika o kontakt z działem HR".
5. Testowanie i poprawianie
Przetestuj swoją konfigurację z prawdziwymi zapytaniami. Zapytaj o to, o co zapytaliby Twoi klienci. Czy wyniki są trafne? Dokładne?

Dostosuj swojego bota według potrzeb:
- Niekompletne wyniki? Zwiększ liczbę fragmentów, aby uzyskać pełniejsze odpowiedzi.
- Wolna reakcja? Wybierz szybszy model.
- Nieprawidłowe odpowiedzi? Wypróbuj dokładniejszy model lub dodaj odpowiednie dane.
Platformy są wysoce konfigurowalne, więc rozwiązywanie problemów jest zwykle tylko kwestią konfiguracji, na przykład grania dostępnymi modelami lub zmiany opisów.
Tworzenie inteligentniejszych funkcji wyszukiwania
Wraz z ostatnimi postępami w dziedzinie sztucznej inteligencji, możliwość przeszukiwania danych nie jest tylko miłym dodatkiem - staje się domyślnym oczekiwaniem.
Nie musisz opanowywać ANN ani embeddings, aby budować inteligentniejsze wyszukiwarki. Nasza platforma zapewnia narzędzia typu plug-and-play do wyszukiwania semantycznego i generowania rozszerzonego wyszukiwania. Przygotowanie danych nie jest wymagane.
Zacznij budować już dziś. To nic nie kosztuje.