Voyage AI, czyli osadzenia bez przebudowy indeksu
Voyage AI to dostawca modeli osadzeń i modeli zmieniających kolejność wyników wyszukiwania. Firma została przejęta przez producenta znanej bazy dokumentowej w 2025 roku, przy czym samodzielne API pozostało dostępne, a integracja z bazą jest dodatkową drogą, a nie warunkiem korzystania.
Wyróżnik tej oferty jest nietypowy i wart zrozumienia, bo rozwiązuje problem uciążliwy przy każdym innym dostawcy. Cała rodzina Voyage 4, od najmniejszego modelu po największy, produkuje wektory w tej samej przestrzeni.
To znaczy, że zmiana modelu na mocniejszy albo tańszy nie wymaga przeliczenia zbioru od nowa. Wektory z różnych modeli tej rodziny są porównywalne, więc możesz zaindeksować archiwum tanim modelem i odpytywać je droższym, albo podmienić model bez dotykania indeksu.
Dlaczego wspólna przestrzeń ma znaczenie
Warto rozwinąć ten wątek, bo z zewnątrz wygląda na szczegół, a w praktyce zmienia sposób prowadzenia projektu.
U każdego innego dostawcy wektory z dwóch różnych modeli leżą w różnych przestrzeniach i porównywanie ich daje wyniki losowe. Konsekwencja jest taka, że wybór modelu na starcie jest decyzją na lata: zmiana oznacza przeliczenie całego archiwum, przebudowę indeksu i okno, w którym wyszukiwanie działa na dwóch niespójnych zbiorach.
Przy dużym archiwum ta perspektywa skutecznie blokuje jakiekolwiek zmiany. Zespoły zostają przy modelu wybranym dwa lata temu nie dlatego, że jest najlepszy, tylko dlatego, że migracja jest zbyt kosztowna, żeby ktokolwiek ją zaproponował.
Wspólna przestrzeń usuwa ten koszt. Możesz zacząć od modelu najtańszego, a gdy okaże się, że trafność nie wystarcza, podmienić go w konfiguracji i odpytywać ten sam indeks mocniejszym modelem. Możesz też zaindeksować rzadko używane archiwum modelem tanim, a bieżące dokumenty droższym, trzymając wszystko w jednym miejscu.
Zastrzeżenie, które trzeba postawić uczciwie: ta zgodność dotyczy rodziny Voyage 4. Wektory z wcześniejszych generacji ani z modeli innych dostawców nadal są nieporównywalne, więc przejście na tę rodzinę wymaga jednorazowego przeliczenia zbioru.
Warto też rozumieć, czego wspólna przestrzeń nie załatwia. Modele różnią się jakością, więc przełączenie na mocniejszy poprawia trafność wyłącznie dla dokumentów zaindeksowanych mocniejszym modelem. Odpytywanie mocnym modelem indeksu policzonego słabym daje wynik pośredni, lepszy niż przy samym słabym i gorszy niż przy pełnym przeliczeniu. To nadal duża wygoda, natomiast nie zastępuje przeliczenia tam, gdzie zależy Ci na maksymalnej jakości.
Modele i wybór między nimi
Rodzina obejmuje cztery modele różniące się rozmiarem, ceną i jakością, przy zachowaniu wspólnej przestrzeni.
Model największy kosztuje najwięcej i daje najwyższą trafność. Model podstawowy jest o połowę tańszy przy niewielkiej stracie. Model lekki kosztuje ułamek tego i sprawdza się przy dużych wolumenach, gdzie liczy się przepustowość.
Najciekawszy jest czwarty: model o otwartych wagach, dostępny na licencji swobodnej i możliwy do uruchomienia lokalnie. To rzadkość wśród dostawców komercyjnych i otwiera układ, którego konkurencja nie oferuje.
import voyageai
klient = voyageai.Client()
odpowiedz = klient.embed(
fragmenty,
model="voyage-4-lite",
input_type="document",
)Praktyczny scenariusz wykorzystujący oba końce rodziny wygląda tak. Rozwijasz aplikację lokalnie na modelu otwartym, bez kluczy, bez kosztu i bez wysyłania danych na zewnątrz. Na produkcji przełączasz się na model płatny, a ponieważ przestrzeń jest wspólna, indeks zbudowany lokalnie działa dalej.
To rozwiązuje realną niedogodność pracy z osadzeniami: różnicę między środowiskiem deweloperskim a produkcyjnym, która przy innych dostawcach wymaga albo płacenia za każdy test, albo utrzymywania dwóch osobnych indeksów.
Zmiana kolejności wyników
Druga część oferty dotyczy modelu oceniającego dopasowanie pary zapytanie i dokument, i to jest krok, który najbardziej podnosi trafność w typowym wyszukiwaniu.
Mechanizm działa inaczej niż osadzenia. Model osadzeń liczy wektor dla dokumentu raz, bez znajomości pytania, więc porównanie sprowadza się do odległości dwóch punktów. Model zmieniający kolejność widzi zapytanie i dokument razem i ocenia dopasowanie bezpośrednio, co daje wyraźnie lepszy wynik kosztem znacznie wyższej ceny za operację.
Praktyczny układ jest dwuetapowy. Wyszukiwanie wektorowe zwraca pięćdziesiąt kandydatów tanio, a model oceniający wybiera z nich pięć najlepszych. Płacisz za pięćdziesiąt ocen zamiast za cały zbiór, a jakość wyniku jest bliska temu, co dałoby porównanie wszystkiego z wszystkim.
wyniki = klient.rerank(
query="Jaki jest okres wypowiedzenia?",
documents=kandydaci,
model="rerank-2.5",
top_k=5,
)Ten krok warto zmierzyć przed wdrożeniem, bo jego opłacalność zależy od zbioru. Przy dokumentach zróżnicowanych tematycznie samo wyszukiwanie wektorowe zwykle wystarcza. Przy zbiorze, w którym wiele fragmentów mówi o podobnych rzeczach, różnica bywa duża i uzasadnia dodatkowy koszt oraz opóźnienie.
Ceny i darmowy próg
Rozliczenie idzie za tokeny, a stawki różnią się wyraźnie między modelami rodziny, od kilku centów do kilkunastu centów za milion tokenów.
Darmowy próg jest tu hojny jak na tę kategorię i wystarcza na zbudowanie oraz przetestowanie prototypu bez wydawania czegokolwiek. Cennik podaje dwieście milionów tokenów na konto dla każdego modelu rodziny Voyage 4 i tyle samo dla modeli zmieniających kolejność wyników. To ma znaczenie przy porównywaniu dostawców, bo pozwala sprawdzić trafność na własnych danych przed podjęciem decyzji.
Jest przy tym wyjątek łatwy do przeoczenia przy pierwszym indeksowaniu dużego archiwum. Darmowa pula nie obejmuje przetwarzania wsadowego: tokeny puszczone tą drogą są płatne od pierwszego i nie pomniejszają darmowego salda, za to idą po stawce niższej o jedną trzecią, przy oknie realizacji liczonym w godzinach. Przy jednorazowym przeliczeniu archiwum to zwykle i tak wychodzi taniej, ale warto wiedzieć, że jedno z drugim się nie łączy.
Model o otwartych wagach nie kosztuje nic poza sprzętem, na którym go uruchomisz. Przy stałym, dużym wolumenie to bywa rozstrzygające, bo koszt przechodzi z pozycji zmiennej na stałą i przestaje rosnąć razem z ruchem.
Warto policzyć oba warianty na własnych liczbach. Zaindeksowanie miliona fragmentów po pięćset tokenów to pięćset milionów tokenów, czyli od dziesięciu do sześćdziesięciu dolarów zależnie od modelu, przy czym wyszukiwanie kosztuje potem znacznie mniej, bo zapytania są krótkie.
Osobno policz krok zmiany kolejności wyników, bo tam rachunek wygląda odwrotnie. Osadzenia płacisz raz przy indeksowaniu, a ocenę kandydatów przy każdym zapytaniu. Przy tysiącu zapytań dziennie i pięćdziesięciu kandydatach na zapytanie to pozycja porównywalna z całym indeksowaniem, tyle że powtarzana co miesiąc. Ograniczenie liczby kandydatów z pięćdziesięciu do dwudziestu obniża ją ponad dwukrotnie i zwykle nie zmienia wyniku, bo właściwy dokument rzadko leży poniżej dwudziestej pozycji po wyszukiwaniu wektorowym.
Wymiary i kompresja
Modele tej rodziny pozwalają skrócić wektor bez przeliczania go od nowa, a najmniejszy z nich obsługuje zakres od kilkuset do ponad dwóch tysięcy wymiarów.
Zysk widać dopiero przy większych zbiorach, za to jest tam znaczący. Wektor dwutysięcznowymiarowy zapisany jako liczby zmiennoprzecinkowe zajmuje osiem kilobajtów, ten sam skrócony do pięciuset dwunastu wymiarów dwa kilobajty. Przy pięciu milionach fragmentów to różnica między czterdziestoma a dziesięcioma gigabajtami w bazie wektorowej.
Modele są też przygotowane pod kompresję formatu liczb, więc zapis w postaci jednobajtowej nie psuje wyników tak, jak psułby przy modelu nieprzystosowanym do tego. To ma znaczenie praktyczne, bo pozwala zejść z zajętością jeszcze czterokrotnie, zwykle przy stracie trafności rzędu procentów.
Dobór ustawień sprawdź pomiarem, nie z tabeli. Zaindeksuj ten sam zbiór przy pełnej i skróconej liczbie wymiarów, przepuść przez oba warianty ten sam zestaw pytań i porównaj, ile razy właściwy dokument trafił do pierwszej piątki. Jeśli różnica wynosi punkt procentowy, a oszczędność trzy czwarte miejsca, decyzja jest oczywista.
Zapisz wybrane ustawienia razem z indeksem. Wektory policzone przy różnej liczbie wymiarów nie są porównywalne nawet w obrębie jednego modelu, więc dołożenie dokumentów przy innym ustawieniu psuje wyszukiwanie po cichu, bez żadnego komunikatu.
Wdrożenie krok po kroku
Warto pokazać, jak wygląda całość, bo osadzenia to jeden element, a nie cały system.
Pierwszym krokiem jest podział dokumentów na fragmenty odpowiadające jednostce, w której mieści się odpowiedź: sekcji dokumentacji, paragrafowi umowy, stronie raportu. Ten wybór wpływa na trafność bardziej niż wybór modelu i jest najczęściej pomijany. Przy plikach PDF i skanach zaczyna się on jeszcze wcześniej, bo najpierw trzeba wydobyć tekst razem z układem strony, czym zajmuje się osobna warstwa narzędzi w rodzaju Unstructured; jej błędy, jak sklejona tabela albo pomieszane kolumny, przechodzą potem na wszystkie kolejne kroki.
Drugim jest policzenie wektorów partiami, z zapisem postępu do pliku. Przy dużym zbiorze trafisz na ograniczenia liczby zapytań, a przerwany przebieg powinien dać się wznowić od miejsca, w którym stanął, a nie od początku.
Trzecim jest zapis do bazy wektorowej razem z metadanymi. Numer strony, nazwa pliku i data pozwalają pokazać użytkownikowi źródło odpowiedzi oraz zawęzić wyszukiwanie, a odzyskanie ich później wymaga przetworzenia archiwum od nowa. W MongoDB Atlas Vector Search, czyli u firmy, która przejęła Voyage AI, dwa poprzednie kroki potrafią zniknąć, bo baza liczy wektory tymi modelami przy zapisie dokumentu. Funkcja jest w publicznym podglądzie, a jej ceną jest związanie indeksu z modelami jednego dostawcy.
Czwartym jest wyszukiwanie z dwoma warstwami: wektorową dla znaczenia i klasyczną dla dokładnych dopasowań, bo zapytanie o numer faktury albo kod błędu nie trafi przez samo podobieństwo znaczeń.
Piątym, opcjonalnym, jest ocena kandydatów modelem zmieniającym kolejność. Włącz go dopiero wtedy, gdy zmierzysz, że cztery poprzednie kroki nie wystarczają, bo dokłada koszt przy każdym zapytaniu i wydłuża czas odpowiedzi.
Voyage AI kontra alternatywy
| Rozwiązanie | Mocna strona | Słabość | Kiedy wybrać |
|---|---|---|---|
| Voyage AI | Wspólna przestrzeń w rodzinie, model o otwartych wagach | Mniej znany, mniejszy ekosystem materiałów | Projekt, w którym model może się zmienić |
| OpenAI | Najniższa cena, prostota, przewidywalność | Tylko tekst, zmiana modelu wymusza przebudowę | Wyszukiwanie po zwykłych dokumentach |
| Cohere | Obrazy i tekst w jednej przestrzeni | Droższy przy obrazach | Dokumenty z układem graficznym |
| Model lokalny inny niż powyższe | Zero kosztu za token, pełna kontrola | Sprzęt, utrzymanie, zwykle niższa jakość | Dane, które nie mogą opuścić firmy |
Pierwszy wiersz wygrywa w jednym konkretnym przypadku: gdy nie wiesz jeszcze, jakiej jakości potrzebujesz, a przeliczenie archiwum za pół roku byłoby kosztowne. Wspólna przestrzeń zamienia tę decyzję z jednorazowej i wiążącej w odwracalną.
Ostatni wiersz warto rozróżnić od modelu otwartego z tej rodziny. Ten drugi ma tę zaletę, że pozostaje zgodny z modelami płatnymi, więc przejście z lokalnego na chmurowy nie wymaga niczego poza zmianą konfiguracji.
Typowe błędy
Pierwszy to zakładanie, że wspólna przestrzeń obejmuje wszystko. Dotyczy rodziny Voyage 4, a nie wcześniejszych generacji ani modeli innych dostawców.
Drugi to pominięcie parametru typu wejścia. Dokument i zapytanie osadza się inaczej, a użycie tej samej wartości dla obu pogarsza trafność w sposób, który łatwo przeoczyć.
Trzeci to dokładanie kroku zmiany kolejności bez pomiaru. Przy zbiorze zróżnicowanym tematycznie samo wyszukiwanie wektorowe zwykle wystarcza, a dodatkowy krok kosztuje i opóźnia.
Czwarty to ocenianie kroku zmiany kolejności na całym zbiorze zamiast na kandydatach z wyszukiwania. To układ dwuetapowy i tylko w takiej postaci ma sens ekonomiczny.
Piąty to używanie modelu lokalnego na produkcji bez zmierzenia różnicy w trafności. Otwarte wagi kuszą ceną, a mniejszy model zwykle wypada gorzej i warto wiedzieć, o ile.
Szósty to indeksowanie bez zapisania, jakim modelem i przy jakiej liczbie wymiarów powstały wektory. Po pół roku nikt tego nie pamięta, a dołożenie nowych dokumentów przy innych ustawieniach psuje indeks po cichu, bez żadnego błędu i bez widocznego objawu poza gorszymi wynikami.
FAQ
Na czym polega wspólna przestrzeń?
Wszystkie modele rodziny Voyage 4 produkują wektory porównywalne między sobą. Zmiana modelu na mocniejszy albo tańszy nie wymaga przeliczenia zbioru ani przebudowy indeksu, co przy dużym archiwum zamienia decyzję wiążącą na odwracalną.
Czy naprawdę jest model do uruchomienia u siebie?
Tak, najmniejszy model rodziny ma otwarte wagi na licencji swobodnej i działa lokalnie. Co ważniejsze, pozostaje zgodny z modelami płatnymi, więc możesz rozwijać projekt lokalnie i przełączyć się na model chmurowy bez ruszania indeksu.
Czym różni się osadzanie od zmiany kolejności wyników?
Model osadzeń liczy wektor dokumentu raz, bez znajomości pytania. Model zmieniający kolejność widzi zapytanie i dokument razem, więc ocenia dopasowanie dokładniej, kosztem znacznie wyższej ceny za operację. Stąd układ dwuetapowy: tanie wyszukiwanie, potem ocena kandydatów.
Czy trzeba używać bazy dokumentowej producenta?
Nie. Samodzielne API działa niezależnie, a wektory trafiają do dowolnej bazy wektorowej, na przykład opisanych w tekstach o Qdrancie albo o pgvectorze. Integracja z bazą producenta jest dodatkową drogą, a nie warunkiem.
Jak sprawdzić, czy warto przechodzić?
Zbuduj zestaw pięćdziesięciu realnych pytań z oczekiwanymi odpowiedziami, zaindeksuj ten sam zbiór obecnym i nowym modelem i porównaj, ile razy właściwy dokument trafił do pierwszej piątki. Darmowy próg wystarcza na taki test bez wydawania czegokolwiek.
Dokumentacja stoi na stronie producenta, a szczegóły rodziny Voyage 4 opisuje wpis o jej wydaniu.