Robocikowo>ROBOCIKOWO
Wyszukiwanie

Model embeddingów

2019AktywnyOpublikowano: 16 października 2026Aktualizacja: 16 października 2026Opublikowany
Klasa modeli odwzorowujących tekst, kod, obrazy lub audio na gęste wektory w wspólnej przestrzeni, gdzie podobieństwo kosinusowe oddaje podobieństwo semantyczne.
Kluczowa innowacja
Wyodrębnienie dedykowanej klasy modeli, których jedynym zadaniem jest odwzorowanie wejścia na gęsty wektor we wspólnej przestrzeni, w której odległość geometryczna odpowiada podobieństwu semantycznemu — co pozwoliło wyszukiwać i porównywać znaczenia zamiast dopasowywać słowa kluczowe.
Kategoria
Wyszukiwanie
Poziom abstrakcji
Building block
Poziom operacji
ModelDaneRetrieval
Zastosowania
Wyszukiwanie semantyczneRetrieval-augmented generation (RAG)Klasyfikacja tekstuKlasteryzacjaSystemy rekomendacyjneDeduplikacja i wykrywanie duplikatówWyszukiwanie wielomodalne (tekst-obraz)

Jak działa

1) Wejście jest tokenizowane i przepuszczane przez enkoder (najczęściej Transformer), który produkuje kontekstowe wektory tokenów. 2) Warstwa poolingu (mean pooling, pooling CLS lub last-token) agreguje te wektory w pojedynczy wektor o stałej długości. 3) Wektor jest opcjonalnie rzutowany i normalizowany (L2), aby podobieństwo kosinusowe równało się iloczynowi skalarnemu. 4) Model trenuje się kontrastywnie na parach/trójkach (pozytywy przyciągane, negatywy odpychane), często z twardymi negatywami i prefiksami rozróżniającymi zapytanie od dokumentu. Na etapie użycia zapytania i dokumenty są kodowane do wektorów, a wyszukiwanie polega na znalezieniu najbliższych sąsiadów (ANN) w bazie wektorowej.

Rozwiązany problem

Klasyczne wyszukiwanie leksykalne (dopasowanie słów kluczowych) nie wychwytuje synonimów, parafraz ani znaczenia i jest trudne do przeniesienia między modalnościami. Modele embeddingów rozwiązują to, sprowadzając różne dane do wspólnej przestrzeni wektorowej, w której bliskość oznacza podobieństwo znaczeniowe, co umożliwia szybkie i skalowalne porównywanie, wyszukiwanie i grupowanie według sensu.

Komponenty

EnkoderPrzekształca tokeny wejściowe w kontekstowe reprezentacje wektorowe.

Najczęściej enkoder Transformer (np. BERT), produkujący wektor dla każdego tokenu z uwzględnieniem kontekstu całej sekwencji.

INBatch tokenów wejściowych.
OUTKontekstowe wektory tokenów.

Oficjalna

Warstwa poolinguRedukuje sekwencję wektorów tokenów do jednego wektora o stałej długości.

Typowo mean pooling (uśrednienie z maską uwagi), pooling tokenu CLS lub pooling ostatniego tokenu.

INKontekstowe wektory tokenów.
OUTPojedynczy wektor osadzenia.
Mean poolingŚrednia wektorów tokenów z uwzględnieniem maski uwagi.
CLS poolingUżycie wektora tokenu [CLS] jako reprezentacji sekwencji.
Last-token poolingUżycie wektora ostatniego tokenu (typowe dla enkoderów dekoderowych).

Oficjalna

Normalizacja / projekcjaSprowadza podobieństwo kosinusowe do iloczynu skalarnego; opcjonalnie rzutuje na mniejszy wymiar.

Normalizacja L2 wektora wyjściowego, czasem z dodatkową warstwą liniową lub wsparciem Matryoshka (MRL) dla skracania wymiaru.

Oficjalna

Kontrastywny cel treningowyKształtuje przestrzeń wektorową tak, by pary podobne były blisko, a niepodobne daleko.

Najczęściej strata typu InfoNCE lub triplet, z twardymi negatywami; często wieloetapowy trening (kontrastywne wstępne uczenie + fine-tuning na parach z nadzorem).

Oficjalna

Implementacja

Pułapki implementacyjne
Brak normalizacji przed podobieństwem kosinusowymŚrednia

Jeśli wektory nie są znormalizowane L2, iloczyn skalarny nie równa się podobieństwu kosinusowemu, co zaburza ranking.

Rozwiązanie:Normalizuj wektory L2 lub używaj metryki kosinusowej w bazie wektorowej.
Pominięcie prefiksów/instrukcji zapytania i dokumentuWysoka

Wiele modeli (E5, BGE, EmbeddingGemma) wymaga różnych prefiksów dla zapytania i dokumentu; ich pominięcie obniża jakość wyszukiwania.

Rozwiązanie:Stosuj dokładnie prefiksy/instrukcje zgodnie z kartą modelu.
Skracanie wymiaru Matryoshka bez renormalizacjiŚrednia

Po obcięciu wektora do mniejszego wymiaru (MRL) trzeba go ponownie znormalizować, inaczej podobieństwa są zafałszowane.

Rozwiązanie:Renormalizuj wektor po skróceniu wymiaru.
Niedopasowana strategia poolinguŚrednia

Użycie poolingu CLS dla modelu trenowanego z mean poolingiem (lub odwrotnie) daje słabe reprezentacje.

Rozwiązanie:Stosuj pooling zgodny z konfiguracją treningową modelu.

Ewolucja

Oryginalny paper · 2019 · EMNLP 2019 · Nils Reimers
Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Nils Reimers, Iryna Gurevych
2013
Word2Vec
Punkt przełomowy

Mikolov i in. wprowadzają wydajne uczenie gęstych, rozproszonych reprezentacji słów przez dedykowany model sieciowy.

2014
GloVe

Pennington, Socher i Manning (Stanford) proponują globalne wektory słów oparte na statystyce współwystępowania.

2019
Sentence-BERT
Punkt przełomowy

Model siamski na bazie BERT z poolingiem produkuje porównywalne wektory zdań, czyniąc porównania semantyczne szybkimi i skalowalnymi.

2022
E5

Microsoft wprowadza ogólne osadzenia tekstu trenowane kontrastywnie przy słabym nadzorze (weakly-supervised).

2023
BGE (C-Pack)

BAAI publikuje otwarte zasoby i modele osadzeń (BGE), osiągające czołowe wyniki na benchmarkach wyszukiwania.

2024
OpenAI text-embedding-3

OpenAI udostępnia modele text-embedding-3-small (1536 wym.) i -large (3072 wym.) z możliwością skracania wymiaru.

2025
Google EmbeddingGemma

Otwarty, wielojęzyczny (100+ języków) model osadzeń ~308M parametrów, 768 wym. z Matryoshka (512/256/128) i kontekstem 2048 tokenów, zoptymalizowany pod działanie na urządzeniu.

Hiperparametry (konfigurowalne osie)

Wymiar embeddinguKrytyczna

Długość wektora wyjściowego; wpływa na jakość, koszt pamięci i szybkość wyszukiwania. Modele z Matryoshka pozwalają skracać wymiar.

384np. all-MiniLM-L6-v2
768np. EmbeddingGemma (domyślnie), wiele modeli BERT-base
1536OpenAI text-embedding-3-small
3072OpenAI text-embedding-3-large
Maksymalna długość kontekstuWysoka

Maksymalna liczba tokenów wejściowych, które model może zakodować w jeden wektor.

512typowe dla klasycznych enkoderów BERT
2048EmbeddingGemma
8192OpenAI text-embedding-3
Strategia poolinguWysoka

Sposób agregacji wektorów tokenów w jeden wektor (mean, CLS, last-token).

Metryka podobieństwaŚrednia

Miara stosowana przy porównywaniu wektorów; najczęściej podobieństwo kosinusowe lub iloczyn skalarny.

Złożoność obliczeniowa

Złożoność czasowa: O(n^2 * d). Złożoność przestrzenna: O(n^2 + n * d).

Paradygmat wykonania

Tryb główny
Gęsty

Enkoder aktywuje wszystkie parametry dla każdego wejścia; brak routingu rzadkiego (w odróżnieniu od MoE).

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Enkoder Transformer przetwarza wszystkie tokeny równolegle; kodowanie wielu dokumentów jest trywialnie zrównoleglalne (embarrassingly parallel).

Zakres
TreningInferencjaPomiędzy tokenami

Wymagania sprzętowe

Podstawowe

Masowe mnożenia macierzy enkodera Transformer i kodowanie dużych korpusów korzystają z rdzeni tensorowych.

Dobry fit

Małe modele (np. all-MiniLM, EmbeddingGemma) kodują pojedyncze zapytania z akceptowalną latencją na CPU, w tym na urządzeniach brzegowych.