[ W skrócie ]
- Embedding to wektor liczb reprezentujący znaczenie tekstu — teksty o podobnym sensie mają bliskie wektory.
- Podobieństwo mierzy się kosinusem kąta między wektorami — to jedno działanie na milionach rekordów dzięki indeksom wektorowym.
- Embeddingi napędzają wyszukiwanie semantyczne, deduplikację, klastrowanie i rekomendacje — RAG to tylko najgłośniejsze zastosowanie.
- Model embeddingów musi być ten sam przy indeksowaniu i przy zapytaniu — jego zmiana oznacza przeliczenie całej bazy.
Problem: komputer nie wie, że „wolne” to „urlop”
Klasyczne wyszukiwanie dopasowuje słowa. Zapytanie „ile mam wolnego” nie znajdzie dokumentu „wymiar urlopu wypoczynkowego”, bo nie dzielą ani jednego wyrazu. Ludzie widzą, że to to samo — maszyna potrzebuje sposobu, żeby „to samo” policzyć.
Tym sposobem są embeddingi: funkcja, która zamienia tekst na wektor kilkuset-kilku tysięcy liczb tak, że teksty o podobnym znaczeniu dostają podobne wektory. „Urlop” i „wolne od pracy” lądują blisko siebie; „urlop” i „faktura VAT” — daleko.
Jak mierzy się „bliskość”?
Standardem jest podobieństwo kosinusowe — kąt między wektorami. Wartość 1 oznacza identyczny kierunek (to samo znaczenie), okolice zera — brak związku. W SQL z pgvector wygląda to tak:
-- operator <=> zwraca odleglosc kosinusowa (mniejsza = blizej)
select tresc
from dokumenty
order by embedding <=> $zapytanie
limit 5;Cała „magia” wyszukiwania semantycznego to dosłownie ta jedna operacja — wykonywana błyskawicznie na milionach rekordów dzięki indeksom (HNSW, IVF).
Nie tylko RAG
RAG rozsławił embeddingi, ale pracują one w wielu miejscach:
- deduplikacja — dwa zgłoszenia o tym samym problemie mają bliskie wektory, nawet gdy są napisane innymi słowami,
- routing — nowe zgłoszenie trafia do kategorii, której przykłady są mu najbliższe,
- rekomendacje — „podobne artykuły” liczone ze znaczenia, nie z tagów,
- wykrywanie anomalii — wiadomość daleka od wszystkich znanych klastrów to sygnał czegoś nowego.
Trzy rzeczy, o które rozbijają się wdrożenia
- Mieszanie modeli. Wektor z modelu A i wektor z modelu B to dwa różne języki — porównywanie ich daje szum. Jeden model na całą bazę; zmiana modelu = przeliczenie wszystkiego.
- Embedding całych dokumentów. Wektor 40-stronicowej umowy uśrednia jej sens do mdłej papki. Embedduje się fragmenty — o cięciu pisaliśmy przy okazji RAG.
- Ślepa wiara w ranking. Najbliższy fragment nie zawsze jest właściwy. Systemy produkcyjne dokładają reranking albo filtry metadanych — i mierzą trafność na realnych zapytaniach, zamiast zakładać, że „wektor wie”.
- embeddings
- wektory
- wyszukiwanie
- RAG

