Architektura i integracja AI · Wyszukiwanie wiedzy

Wektorowe bazy danych: wyszukiwanie danych w erze generatywnej AI

Pracownicy szukają informacji własnymi słowami i rzadko używają dokładnie tego terminu, który pada w dokumencie. Wektorowe bazy danych znajdują treści według znaczenia, dlatego stanowią podstawę wielu asystentów AI, którzy odpowiadają na podstawie dokumentów firmy. Wyjaśniamy, kiedy osobna wektorowa baza danych się opłaca i jak wpasować ją w Twoje systemy.

Krzysztof Udycz 5 min czytania
Dłoń dotyka smartfona, nad którym unosi się świecący robot z napisem AI

Najważniejsze w skrócie

  • Wektorowe bazy danych przechowują embeddingi, czyli wektory liczbowe odzwierciedlające znaczenie tekstu, obrazów lub dźwięku, i wyszukują podobne treści.
  • Są podstawą wyszukiwania semantycznego i asystentów RAG, którzy odpowiadają na podstawie Twoich własnych dokumentów.
  • Osobny system nie zawsze jest potrzebny: może wystarczyć PostgreSQL z pgvector albo istniejąca instalacja Elasticsearch.
  • Koszty zależą głównie od ilości danych, częstotliwości aktualizacji, modelu hostingu oraz wymagań dotyczących czasu odpowiedzi i dostępności.

Czym jest wektorowa baza danych

Klasyczne wyszukiwanie porównuje słowa. Wpisując „okres wypowiedzenia”, nie znajdziesz umowy, w której zapisano: „umowa wygasa po upływie trzech miesięcy od złożenia oświadczenia o rozwiązaniu”. Wyszukiwanie wektorowe działa inaczej:

  1. Tworzenie embeddingów: model zamienia tekst, obrazy lub dźwięk na wektory liczbowe. Treści o podobnym znaczeniu leżą w przestrzeni wektorowej blisko siebie.
  2. Zapis i indeksowanie: wektorowa baza danych przechowuje te wektory razem z metadanymi, takimi jak rodzaj dokumentu, data czy uprawnienia dostępu.
  3. Wyszukiwanie podobnych treści: zapytanie również zostaje zamienione na wektor, a baza zwraca najbardziej podobne treści, przefiltrowane według metadanych.

Dla generatywnej AI ma to kluczowe znaczenie: model językowy nie zna wewnętrznych dokumentów firmy. Wektorowa baza danych znajduje pasujące fragmenty, a model na ich podstawie pisze odpowiedź. Tę metodę nazywa się retrieval augmented generation (RAG).

Do czego firmy wykorzystują wektorowe bazy danych

  • Wyszukiwanie wiedzy i Q&A: pracownicy lub klienci pytają własnymi słowami i dostają odpowiedzi na podstawie instrukcji, wytycznych lub dokumentacji produktowej.
  • Wyszukiwanie semantyczne: dokumenty, zgłoszenia lub produkty są wyszukiwane według znaczenia, także wtedy, gdy zapytanie jest inaczej sformułowane lub zawiera literówki.
  • Rekomendacje: propozycje podobnych produktów, artykułów lub spraw.
  • Duplikaty i podobieństwo: wychwytywanie podobnych zapytań, umów lub obrazów.
  • Anomalie: wyszukiwanie wpisów, które nie przypominają żadnego znanego wzorca.

W praktyce

W praktyce: apoQlar

Zespoły wsparcia i operacji tej firmy MedTech ręcznie przeszukiwały setki dokumentów produktowych. Dziś asystent oparty na modelu językowym i wektorowej bazie danych odpowiada na pytania w kilka sekund i przy każdej odpowiedzi wskazuje dokument źródłowy. Przy kwestionariuszach bezpieczeństwa drugi system korzysta z ChromaDB i skrócił czas ich opracowania o 75%.

Zobacz projekt wyszukiwania dokumentów w apoQlar

W praktyce: urząd dozoru technicznego

Chatbot dla obywateli z jedenastoma agentami dziedzinowymi korzysta z wektorowej bazy danych Qdrant, żeby dopasować pytania zadawane codziennym językiem do dokumentacji technicznej. Działa w Microsoft Azure.

Zobacz projekt chatbota dla obywateli

Kiedy osobna wektorowa baza danych się opłaca

Nie każdy projekt wymaga dodatkowego systemu. Często najprostsze jest rozwiązanie, które pasuje do istniejącej infrastruktury:

SytuacjaNaturalny wybór
PostgreSQL jest już używany, umiarkowana ilość danychrozszerzenie pgvector w istniejącej bazie danych
Elasticsearch lub OpenSearch jest już używanydodanie tam wyszukiwania wektorowego i połączenie go z wyszukiwaniem po słowach kluczowych
Prototyp lub mały zespółlekka baza danych open source, np. Chroma
Duże ilości danych, wiele filtrów, duże obciążeniewyspecjalizowana wektorowa baza danych, np. Qdrant, Weaviate lub Milvus
Brak chęci utrzymywania systemu we własnym zakresieusługa zarządzana, np. Pinecone lub chmurowe wersje baz danych open source

Przygotowanie danych często ma większe znaczenie niż sam produkt: jak dokumenty są dzielone na fragmenty, który model embeddingów pasuje do języka i terminologii oraz jakie metadane zapisuje się na potrzeby filtrów i uprawnień dostępu.

Od czego zależą koszty

  • Ilość danych: liczba dokumentów i fragmentów decyduje o potrzebnej pamięci i mocy obliczeniowej.
  • Embeddingi: pierwsze przetworzenie wszystkich treści i każda aktualizacja wymagają mocy obliczeniowej lub generują opłaty za API.
  • Aktualizacje: treści zmieniające się codziennie wymagają innego potoku przetwarzania niż stały zbiór dokumentów.
  • Model hostingu: na własnych serwerach, we własnej chmurze lub jako usługa zarządzana.
  • Wymagania: czas odpowiedzi, dostępność, separacja klientów (multi-tenancy) i uprawnienia dostępu.

W wielu asystentach wiedzy wektorowa baza danych nie jest największą pozycją kosztową. Najwięcej pracy pochłaniają zwykle przygotowanie danych, integracja i kontrola jakości.

Połączenie z istniejącymi systemami

  1. Podłączenie źródeł: regularne pobieranie danych z SharePointa, Confluence, udziałów sieciowych, systemów zgłoszeniowych lub własnych systemów.
  2. Przygotowanie: wyodrębnienie tekstu, podział na fragmenty, przeniesienie metadanych i uprawnień.
  3. Tworzenie embeddingów: za pomocą modelu dopasowanego do języka dokumentów, w chmurze lub lokalnie.
  4. Aktualność: automatyczne uwzględnianie nowych, zmienionych i usuniętych dokumentów.
  5. Uprawnienia: filtrowanie wyników wyszukiwania według uprawnień osoby, która zadaje pytanie.

Jak z tego powstaje niezawodny asystent, opisujemy w artykule Jak firmy budują niezawodne systemy RAG.

Chcesz łatwo przeszukiwać swoje dokumenty?

Sprawdzimy, które źródła i pytania się do tego nadają, czy potrzebna jest osobna wektorowa baza danych i jak połączyć ją z Twoimi systemami.

Zapytaj o analizę procesu

Najczęściej zadawane pytania

To baza danych, która przechowuje embeddingi, czyli wektory liczbowe odzwierciedlające znaczenie tekstu, obrazów lub dźwięku. Znajduje treści o znaczeniu podobnym do zapytania, nawet jeśli użyto innych słów.

Na niej opiera się retrieval augmented generation (RAG): wektorowa baza danych znajduje pasujące fragmenty w dokumentach firmy, a model językowy pisze na ich podstawie odpowiedź i podaje źródło.

Nie zawsze. Przy umiarkowanej ilości danych często wystarczy PostgreSQL z pgvector albo istniejąca instalacja Elasticsearch. Wyspecjalizowane systemy, takie jak Qdrant, Weaviate czy Milvus, opłacają się przy dużych ilościach danych, wielu filtrach lub dużym obciążeniu.

To zależy od ilości danych, częstotliwości aktualizacji, modelu hostingu oraz wymagań dotyczących czasu odpowiedzi i dostępności. W wielu projektach więcej pracy wymagają przygotowanie danych, integracja i kontrola jakości.

Krzysztof Udycz

O autorze

Krzysztof Udycz

AI Engineer, theBlue.ai

Krzysztof buduje w theBlue.ai systemy AI dla firm. Zajmuje się przede wszystkim tym, jak modele językowe mogą niezawodnie korzystać z wiedzy firmy: embeddingami, bazami wektorowymi i wyszukiwaniem, które sprawdza się także przy dużych zbiorach dokumentów w codziennej pracy.

W swoich artykułach tłumaczy technologię stojącą za takimi systemami tak, by osoby decyzyjne mogły ją właściwie ocenić.