1. Czym są embeddingi i jak działają?
Embeddingi (pol. osadzenia wektorowe) to sposób reprezentacji danych – takich jak słowa, całe zdania, dokumenty, obrazy czy dźwięki – w postaci ciągów liczb rzeczywistych (wektorów) w wielowymiarowej przestrzeni matematycznej.
W dużym uproszczeniu: embeddingi to tłumacz przekładający ludzkie pojęcia i ich znaczenie na język współrzędnych matematycznych, który potrafią przetwarzać komputery.
2. Przestrzeń wektorowa i znaczenie semantyczne
Dla tradycyjnej relacyjnej bazy danych słowa "pies" oraz "szczeniak" to dwa zupełnie różne ciągi znaków. Modele embeddingowe przypisują każdemu fragmentowi tekstu wektor liczb (najczęściej 768, 1024 lub 1536 wymiarów):
"pies" -> [0.12, -0.45, 0.88, ..., 0.04]
"szczeniak" -> [0.14, -0.42, 0.85, ..., 0.06]
"karta GPU" -> [-0.71, 0.33, -0.12, ..., 0.91]Kluczową właściwością jest fakt, że odległość geometryczna między wektorami odpowiada podobieństwu znaczeniowemu (semantycznemu).
3. Jak mierzy się podobieństwo wektorów? Cosine Similarity
Standardem jest podobieństwo cosinusowe (Cosine Similarity):
• Wynik bliski 1.0 – teksty mają niemal identyczne znaczenie semantyczne.
• Wynik w okolicach 0.0 – brak powiązania tematycznego.
• Wynik ujemny – pojęcia przeciwstawne.
4. Praktyczne zastosowania: RAG, wyszukiwanie i rekomendacje
Embeddingi to filar:
1. Systemów RAG – przeszukiwanie bazy wektorowej przed przekazaniem kontekstu do modelu LLM.
2. Wyszukiwania semantycznego – rozumienie intencji zapytania użytkownika.
3. Systemów rekomendacji – dobór produktów na bazie wektorowej historii zachowań.
4. Klastrowania – grupowanie zgłoszeń klientów i artykułów.
5. Modele embeddingowe: lokalne open-source i chmurowe API
Najpopularniejsze rozwiązania:
• Lokalne: bge-m3 (znakomity dla języka polskiego, kontekst 8k), multilingual-e5-large, nomic-embed-text.
• API: OpenAI text-embedding-3-small/large, Cohere embed-multilingual-v3.0.