[ Technical ]Poziom: Projektowanie

Embeddings — po co są i jak działają w praktyce?

Embeddingi zamieniają tekst na liczby, które niosą znaczenie. To one sprawiają, że wyszukiwanie znajduje „urlop” po zapytaniu o „wolne”. Wyjaśniamy bez matematyki — i z jednym wzorem, który warto znać.

Krzysztof Leszczyński14 sierpnia 20262 min czytania

Nad ciemnym biurkiem unosi się chmura drobnych jasnych punktów w kształcie mózgu; mężczyzna po lewej wskazuje palcem jej dolną część, która świeci limonkowo. Po prawej druga osoba i lampka o ciepłym świetle.

[ 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.

Tekst
Model embeddingów
Wektor liczb
Baza wektorowa
Wyszukiwanie po znaczeniu

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:

sql
-- 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

  1. 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.
  2. 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.
  3. Ś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
Udostępnij

Automatic AI

hello@automaticai.pl · automaticai.pl