Co to jest baza wektorowa?

Krótka odpowiedź

Baza wektorowa to baza danych zbudowana do przechowywania embeddingów, czyli list liczb, które model AI tworzy, aby reprezentować znaczenie, oraz do zwracania zapisanych elementów najbliższych zapytaniu w milisekundach. To krok wyszukiwania w czacie z twoimi dokumentami i w wyszukiwaniu semantycznym. Potrzebujesz jej, gdy tekst jest zbyt duży, aby wysłać go do modelu w całości.

Baza wektorowa odpowiada na jedno pytanie, bardzo szybko

Podaj jej listę liczb, a ona zwróci zapisane listy, które są jej najbliższe. To cały interfejs.

Te listy to embeddingi. Model embeddingów zamienia fragment tekstu, opis produktu albo obraz w kilkaset do kilku tysięcy liczb, ułożonych tak, że podobne znaczenia lądują blisko siebie, a czym są embeddingi w AI opisuje, jak to działa. Baza wektorowa to miejsce, gdzie te listy żyją, gdy masz ich dużo. Zapisuje każdą z ID i pewnymi metadanymi, buduje nad nimi indeks i odpowiada na wyszukiwanie najbliższych sąsiadów: "oto wektor zapytania, podaj dziesięć najbliższych".

Trudną częścią jest słowo szybko. Porównanie zapytania z milionem zapisanych wektorów po 1536 liczb każdy to 1,5 miliarda mnożeń, a robienie tego przy każdym naciśnięciu klawisza się nie skaluje. Dlatego bazy wektorowe używają przybliżonych indeksów najbliższych sąsiadów, z których najpopularniejszy to HNSW, struktura grafowa z pracy Malkova i Yashunina z 2016 roku, która sprawdza kilkaset kandydatów zamiast całego miliona i niemal zawsze zwraca poprawną odpowiedź. To "niemal" jest kompromisem: nieco trafności za tysiąckrotne przyspieszenie.

Twoja dotychczasowa baza danych dopasowuje słowa; baza wektorowa dopasowuje znaczenie

Relacyjna baza danych znajduje wiersze, których wartości pasują: WHERE customer_id = 4127. Indeks pełnotekstowy znajduje dokumenty zawierające słowa: refund AND policy. Baza wektorowa znajduje elementy, których znaczenie jest bliskie: zapytanie "jak odzyskać moje pieniądze" zwraca fragment zatytułowany "Zwroty i refundacje", mimo że te dwa teksty nie mają wspólnych słów.

Relacyjna baza danychWyszukiwanie pełnotekstoweBaza wektorowa
PytaKtóre wiersze pasują do tej wartości?Które dokumenty zawierają te słowa?Które elementy znaczą coś bliskiego temu?
IndeksB-drzewo na kolumnachIndeks odwrócony na terminachGraf lub klastrowanie na wektorach (HNSW, IVF)
Dokładność?TakTakZwykle przybliżona
Dobra wID, daty, kwoty, złączeniaNazwy, kody, dokładne frazySynonimy, parafrazy, wielojęzyczność, obrazy
Słaba wZnaczeniuZnaczeniuDokładnych ciągach, liczeniu, filtrowaniu po wartości
PrzykładyPostgres, MySQL, SQLiteElasticsearch, LucenePinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector

Ostatni wiersz pokazuje, jak rozmyta jest ta kategoria. pgvector dodaje kolumny wektorowe i indeks HNSW do zwykłego Postgresa, a Elasticsearch niesie pole wektorowe od wersji 7.0 w 2019 roku i wyszukiwanie HNSW od 8.0 w 2022 roku. "Baza wektorowa" to często funkcja wewnątrz bazy danych, której już używasz, a nie nowy produkt, a samodzielne produkty konkurują skalą i dopracowaniem operacyjnym, nie robieniem czegoś, czego Postgres nie potrafi.

Czat z twoimi dokumentami to wyszukiwanie wektorowe z modelem na końcu

Generowanie wspomagane wyszukiwaniem (RAG), które opisuje czym jest RAG, ma krok wyszukiwania i krok pisania. Baza wektorowa to krok wyszukiwania.

  1. Podziel każdy dokument na fragmenty liczące od kilkuset do tysiąca tokenów.
  2. Zamień każdy fragment na embedding i zapisz wektory, wraz z tekstem fragmentu i jego źródłem, w bazie wektorowej.
  3. Gdy pojawia się pytanie, zamień je na embedding i poproś bazę o najbliższe fragmenty.
  4. Przekaż te fragmenty modelowi językowemu razem z pytaniem i pozwól mu napisać odpowiedź.

Kroki 1 i 2 zachodzą raz, gdy dokumenty są dodawane. Kroki 3 i 4 zachodzą przy każdym pytaniu. Model językowy nigdy nie widzi całego zbioru; widzi pięć lub dziesięć fragmentów wybranych przez bazę. Dlatego odpowiedź jest tylko tak dobra, jak wyszukiwanie: jeśli najbliższy wektor to zły fragment, model pewnie odpowiada na złe pytanie, co czym jest halucynacja AI klasyfikuje jako błąd wyszukiwania, a nie wymysł.

Kiedy jej potrzebujesz, a kiedy lepiej wysłać cały plik

Decyzja dotyczy rozmiaru. Model może naraz uwzględnić tylko swoje okno kontekstowe, a każdy token w nim jest płatny przy każdej turze. Baza wektorowa istnieje po to, by przed model trafiał tylko istotny fragment. Dla jednego dokumentu, który się mieści, wyszukiwanie to krok, który można pominąć; dla zbioru, który się nie mieści, to jedyna opcja.

Wycenmy oba podejścia na raporcie liczącym 300 000 tokenów, czyli kilkaset stron, przy dziesięciu pytaniach, pobierając pięć fragmentów po 1000 tokenów na pytanie. Wysyłanie całego pliku za każdym razem to 3 miliony tokenów wejściowych. Pobieranie pięciu fragmentów po 1000 tokenów na pytanie to 50 000. Przy standardowych cenach wejściowych z indeksu kosztów modeli AI, pobranych z OpenRouter 2026-08-20, różnica wynosi 60x dla każdego modelu. Cache'owanie promptów, tam gdzie dostawca je oferuje, rozlicza ponowne odczytanie tego samego pliku po jednej dziesiątej do połowy ceny standardowej, co zawęża różnicę do mniej więcej 6x do 30x. Wyszukiwanie wciąż wygrywa, choć mniej wyraźnie.

Dziesięć pytań o raport liczący 300 000 tokenów kosztuje 60 razy więcej, jeśli plik jest wysyłany za każdym razem
pobrane fragmentycały plik za każdą turę$0$5$10$15cena standardowa, dziesięć pytańGPT-5.6 Luna$0.01$0.6060xGemini 3.7 Flash$0.019$1.1360xClaude Sonnet 5$0.10$6.0060xClaude Opus 5$0.25$15.0060x

Podejście z całym plikiem daje coś za te pieniądze, gdy plik mieści się w budżecie: umowa na 60 stron, około 40 000 tokenów, pozwala modelowi odpowiadać na pytania wymagające całego dokumentu naraz, takie jak "czy coś tu jest sprzeczne z klauzulą 14", na które wyszukiwanie nie odpowie, bo nigdy nie widzi klauzuli 14 i sprzeczności w tej samej partii. Wniosek jest prosty: jeden dokument, albo garstka, idzie w całości; biblioteka przechodzi przez bazę wektorową. Pomiędzy tymi skrajnościami dziel przesyłany plik według tematu, żeby model dostał sekcję, której potrzebuje.

Whizi wysyła sam tekst, do 40 000 tokenów na turę

Whizi nie uruchamia bazy wektorowej dla twojego czatu. Gdy dołączasz plik, funkcja przesyłania dokumentów wyciąga tekst i wysyła go do modelu jako tekst promptu, do sztywnego limitu 40 000 tokenów na turę; dłuższy przesłany plik zostaje ucięty, z powiadomieniem toast i znacznikiem w wiadomości informującym o tym. Pliki projektów działają tak samo: funkcja projektów przypina do 10 plików i odbudowuje ich tekst w prompcie przy każdej wiadomości, z limitem 32 000 znaków na plik i 120 000 dla całego bloku projektu.

Limity to granica tego rozwiązania. Przypięty plik powyżej 32 000 znaków zostaje przycięty, załącznik powyżej limitu 40 000 tokenów na turę zostaje ucięty, a projekt to folder, nie przeszukiwalna biblioteka. To celowy kompromis: dla umowy lub artykułu mieszczącego się w budżecie tury obecność tekstu jest lepsza niż jego przeszukiwanie, a test, który się liczy, czyli poproszenie modelu o zacytowanie użytego fragmentu, działa, bo ten fragment tam jest. Dla tysiąca dokumentów właściwym narzędziem jest baza wektorowa, a aplikacja czatowa jest złym wyborem.

Z tego mechanizmu wynikają dwa nawyki. Nazwij plik w pytaniu, gdy dołączonych jest kilka, bo inaczej model wybiera po cichu sam. I przy każdej odpowiedzi, na której będziesz działać, poproś o cytat. System wyszukiwania może zwrócić zły fragment; system z całym plikiem może odpowiedzieć z pamięci zamiast z pliku. Cytat wyłapuje oba przypadki.

Lista kontrolna
  • Wysyłaj jeden dokument w całości; zbiór umieszczaj za bazą wektorową
  • Dziel długi przesyłany plik według tematu, żeby model dostał sekcję potrzebną do pytania
  • Poproś model o zacytowanie użytego fragmentu, zanim zaufasz odpowiedzi
  • Do ID, kodów i dokładnych fraz używaj zwykłego wyszukiwania tekstowego; wyszukiwanie wektorowe dopasowuje znaczenie, nie znaki
  • Traktuj nietrafione wyszukiwanie jako problem wyszukiwania: przelicz embeddingi lepszym modelem lub mniejszymi fragmentami, zanim obwinisz model piszący

Najczęstsze pytania

Co to jest baza wektorowa w prostych słowach?

Magazyn list liczb, których model AI używa do reprezentowania znaczenia, zbudowany do szybkiego znajdowania najbliższych dopasowań. Podajesz embedding pytania, a ona zwraca embeddingi, i stojący za nimi tekst, o podobnym znaczeniu. To połowa wyszukiwania w czacie z twoimi dokumentami, gdy zbiór jest zbyt duży, by wysłać go w całości.

Czy potrzebuję bazy wektorowej, żeby używać AI z moimi dokumentami?

Tylko jeśli dokumenty nie zmieszczą się w oknie kontekstowym modelu. Pojedynczy raport lub umowę można wysłać do modelu w całości, co robi Whizi z załącznikami i przypiętymi plikami projektów. Biblioteka tysięcy dokumentów wymaga wyszukiwania, a wyszukiwanie wymaga indeksu wektorowego, czy to w dedykowanym produkcie, czy w rozszerzeniu Postgresa takim jak pgvector.

Jaka jest różnica między bazą wektorową a zwykłą bazą danych?

Zwykła baza danych dopasowuje wartości: to ID, ta data, to dokładne słowo. Baza wektorowa dopasowuje znaczenie, zwracając zapisane elementy, których embeddingi leżą najbliżej zapytania. Zwykle jest przybliżona, używa indeksu takiego jak HNSW, który sprawdza kilkaset kandydatów zamiast każdego elementu, i słabo radzi sobie z dokładnym dopasowaniem, w którym dobra jest zwykła baza danych.

Które bazy wektorowe są najczęściej używane?

Pinecone, Weaviate, Qdrant, Milvus i Chroma to popularne samodzielne produkty, a pgvector dodaje tę samą funkcję do Postgresa. Elasticsearch i OpenSearch również oferują wyszukiwanie wektorowe. Wybór zwykle jest kwestią operacyjną, chodzi o skalę i hosting, bo wszystkie implementują tę samą ideę przybliżonych najbliższych sąsiadów.

Ile oszczędza wyszukiwanie w porównaniu z wysyłaniem całego pliku?

Dziesięć pytań o raport liczący 300 000 tokenów kosztuje $6.00 na Claude Sonnet 5, jeśli plik jest wysyłany przy każdej turze, i $0.10, jeśli zamiast tego pobierane jest pięć fragmentów po 1000 tokenów, przy stawkach standardowych OpenRouter pobranych 2026-08-20. Na GPT-5.6 Luna ta sama para to $0.60 wobec $0.01. Stosunek wynosi 60x dla każdego modelu, bo oba podejścia płacą tę samą stawkę za token.