O co chodzi z embeddingami
Modele embeddingowe zamieniają tekst na wektory liczbowe - dzięki temu można porównywać podobieństwo tekstów, wyszukiwać w bazach wiedzy (RAG) i klasyfikować treści. Wybór modelu ma bezpośredni wpływ na jakość wyszukiwania.
Poniżej ranking 10 najlepszych modeli - 5 chmurowych (API) i 5 lokalnych (open source). Oceny na podstawie benchmarku MTEB (Massive Text Embedding Benchmark) oraz MMTEB/PL-MTEB dla polskiego.
Top 10 - ranking od najlepszych
| # | Model | Typ | MTEB | Wymiary | Max tokenów | Polski (1-10) | Cena / uwagi |
|---|---|---|---|---|---|---|---|
| 1 | Qwen3-Embedding-8B | lokalny | 70.6 | 4096 | 32768 | 8/10 | Open source, 8B parametrów (~16 GB VRAM). Najwyższy wynik MTEB ze wszystkich modeli. 100+ języków |
| 2 | NVIDIA Llama-Embed-Nemotron-8B | lokalny | 69.5 | 4096 | 32768 | 9/10 | Open-weight, 7.5B parametrów (~15 GB VRAM). Top 1 na MMTEB multilingual, 250+ języków |
| 3 | Google Gemini Embedding 001 | chmura | 68.3 | 3072 | 8192 | 8/10 | ~$0.01/1M tokenów. Top 1 wśród modeli komercyjnych. 100+ języków |
| 4 | Voyage-3-large | chmura | 66.8 | 2048 | 32768 | 7/10 | Voyage AI, popularny w enterprise. Długi kontekst |
| 5 | Cohere embed-v4 | chmura | 65.2 | 1024 | 128000 | 7/10 | ~$0.10/1M tokenów. Tekst + obrazy w jednym wektorze. AWS Bedrock |
| 6 | OpenAI text-embedding-3-large | chmura | 64.6 | 3072 | 8191 | 8/10 | $0.13/1M tokenów. Dobry polski, Matryoshka (można ściąć do 1024 wymiarów) |
| 7 | BGE-M3 (BAAI) | lokalny | 63.0 | 1024 | 8192 | 8/10 | Open source, 568M (~2 GB). 100+ języków, dense+sparse+multi-vector. MIT |
| 8 | OpenAI text-embedding-3-small | chmura | 62.0 | 1536 | 8191 | 7/10 | $0.02/1M tokenów. Najlepszy stosunek jakość/cena w chmurze |
| 9 | multilingual-e5-large-instruct | lokalny | 61.5 | 1024 | 514 | 8/10 | Open source, 560M (~2 GB). Bardzo dobry polski, ale krótki kontekst |
| 10 | GTE-multilingual-base (Alibaba) | lokalny | 60.0 | 768 | 8192 | 6/10 | Open source, 305M (~1 GB). Kompaktowy, dobra jakość |
Uwaga o max tokenach: limit dotyczy jednego wywołania API (jednego tekstu do embeddingu). Przy indeksowaniu dłuższych dokumentów tekst trzeba podzielić na chunki - każdy chunk musi mieścić się w limicie modelu. OpenAI (8191) wymaga podziału już przy ~15-20 tys. znaków (polski tekst ~2-2.5 znaku/token). Cohere (128k) i Qwen3 (32k) mogą przetworzyć znacznie dłuższe fragmenty bez dzielenia.
Warto rozważyć: nomic-embed-text
Poza top 10 warto mieć na radarze model nomic-embed-text od Nomic AI - jedyny duży model embeddingowy z pełnym open source (wagi + kod treningowy + dane treningowe). To ważne jeśli zależy ci na audytowalności i reprodukowalności.
- nomic-embed-text-v1.5 - 137M parametrów, 768 wymiarów, 8K tokenów, MTEB ~62.4. Lekki i szybki, ale tylko angielski
- nomic-embed-text-v2-moe - architektura Mixture-of-Experts (305M aktywnych / 475M total), 768 wymiarów, 8K tokenów, ~100 języków. Porównywalny z BGE-M3 pod względem wielkości i jakości wielojęzycznej
v2-moe to ciekawa alternatywa dla BGE-M3 - podobna jakość, podobna wielkość, ale z pełną przejrzystością danych treningowych. Obsługuje ~100 języków, w tym polski (jakość na poziomie 6-7/10 dla PL). Jeśli chcesz wiedzieć dokładnie na czym model był trenowany (np. ze względów prawnych lub compliance) - to jedyny taki wybór w tej klasie.
Wydajność w pgvector (PostgreSQL)
Wszystkie modele z rankingu mieszczą się w limicie pgvector (do 16 000 wymiarów od wersji 0.7+). Ale wymiary mają bezpośredni wpływ na wydajność wyszukiwania i rozmiar indeksu:
| Wymiary | Rozmiar wektora | Wydajność | Modele |
|---|---|---|---|
| 768 | ~3 KB | szybka | GTE-multilingual, nomic-embed, EmbeddingGemma |
| 1024 | ~4 KB | szybka | BGE-M3, Cohere, multilingual-e5, Titan V2 |
| 1536 | ~6 KB | dobra | OpenAI small |
| 2048 | ~8 KB | dobra | Voyage-3-large |
| 3072 | ~12 KB | wolniejsza | OpenAI large, Gemini Embedding |
| 4096 | ~16 KB | najwolniejsza | Qwen3, NVIDIA Nemotron |
Przy 1M+ rekordów z 4096 wymiarami pgvector z indeksem HNSW zacznie odczuwalnie zwalniać. Przy 1024 wymiarach spokojnie obsługuje kilka milionów rekordów. Modele z Matryoshka (OpenAI large, Qwen3) pozwalają ściąć wymiary np. do 1024 z niewielką stratą jakości - warto to rozważyć przy dużych zbiorach.
Polskie modele embeddingowe
Istnieją modele trenowane specjalnie na polskich danych. Są oceniane na benchmarku PL-MTEB (28 zadań z 5 kategorii). Stan na marzec 2026:
| Model | PL-MTEB | Wymiary | Max tokenów | Uwagi |
|---|---|---|---|---|
| sdadas/polish-reranker-large-ranknet | najwyższy | 1024 | 512 | Reranker - nie generuje embeddingów, ale świetnie reranguje wyniki wyszukiwania. Autor: Sławomir Dadas (IPI PAN) |
| sdadas/mmlw-roberta-large | dobry | 1024 | 512 | Oparty na RoBERTa, trenowany na 60M par polsko-angielskich. Solidny do retrieval |
| sdadas/st-polish-paraphrase-from-mpnet | średni | 768 | 512 | Polish SBERT - trenowany distillacją wiedzy z wielojęzycznego modelu. Lekki, szybki |
| Silver Retriever (sdadas) | dobry | 768 | 512 | Oparty na HerBERT, trenowany na MAUPQA z hard negatives. Dedykowany do retrieval po polsku |
| sdadas/st-polish-paraphrase-from-distilroberta | średni | 768 | 512 | Najlżejszy z polskich modeli. Dobry na start |
Polskie modele mają przewagę w zadaniach ściśle polskojęzycznych (klasyfikacja, STS), ale w retrieval wielojęzyczne modele jak multilingual-e5 czy BGE-M3 często wypadają porównywalnie lub lepiej, bo były trenowane na znacznie większych zbiorach danych.
Praktyczna rekomendacja: jeśli twój tekst jest wyłącznie po polsku i masz GPU, Silver Retriever lub mmlw-roberta-large to dobry wybór. Jeśli masz mix języków albo wolisz API - OpenAI text-embedding-3-small będzie prostszy i wystarczająco dobry.
Embeddingi w AWS Bedrock i Azure - dane zostają u ciebie
Jeśli korzystasz z OpenAI lub Cohere przez ich własne API, dane (tekst do embeddingu) lecą na serwery tych firm. W wielu przypadkach to nie problem, ale jeśli przetwarzasz dane wrażliwe, osobowe albo po prostu chcesz mieć pewność, że tekst nie trafia do zewnętrznego dostawcy AI - warto rozważyć embeddingi przez chmurę, w której już trzymasz infrastrukturę.
AWS Bedrock
Dane przetwarzane w Bedrock nie wychodzą poza twoje konto AWS i wybrany region. AWS gwarantuje, że dane wejściowe/wyjściowe nie są używane do trenowania modeli. Dostępne modele embeddingowe:
- Amazon Titan Embeddings V2 - natywny model AWS, 1024 wymiarów, wielojęzyczny. Najtańszy, ale jakościowo słabszy (MTEB ~58)
- Cohere Embed v3/v4 - dostępny przez Bedrock Marketplace, jakość na poziomie API Cohere, ale dane zostają w AWS
To dobra opcja gdy już jesteś w ekosystemie AWS i zależy ci na tym, żeby dane nie wychodziły poza twoją infrastrukturę.
Azure OpenAI
Microsoft oferuje modele OpenAI (w tym embedding) na infrastrukturze Azure. Dane przetwarzane są w wybranym regionie Azure i Microsoft deklaruje, że nie są używane do trenowania modeli. Dostępne:
- text-embedding-3-small i text-embedding-3-large - te same modele co w API OpenAI, ale hostowane na Azure
- Jakość identyczna jak w API OpenAI (te same wagi modelu)
To najlepsza opcja jeśli chcesz jakość OpenAI, ale nie chcesz wysyłać danych bezpośrednio do OpenAI.
Kiedy to ma sens
- Przetwarzasz dane osobowe, medyczne, prawne lub finansowe
- Regulacje wymagają, żeby dane nie opuszczały określonego regionu (RODO, ISO 27001)
- Twoja firma ma politykę zabraniającą wysyłania danych do zewnętrznych dostawców AI
- Chcesz mieć jeden rachunek i jedno miejsce zarządzania dostępem (IAM)
Jeśli żaden z tych punktów cię nie dotyczy - spokojnie korzystaj z API OpenAI bezpośrednio, jest tańsze i prostsze w konfiguracji.
Prywatność danych i RODO - co gwarantują dostawcy
Każdy z dużych dostawców embeddingów deklaruje ochronę danych, ale zakres gwarancji się różni.
OpenAI (API)
- Dane z API nie są używane do trenowania modeli - domyślnie, bez żadnych dodatkowych ustawień
- Zero data retention - dla embeddingów można włączyć opcję, w której OpenAI nie przechowuje żadnych danych po przetworzeniu
- DPA (Data Processing Addendum) dostępny dla klientów API - zgodny z RODO, zawiera klauzule o przetwarzaniu na polecenie, poufności, powiadomieniu o naruszeniach i podprocesorach
- Data residency - klienci enterprise mogą wybrać przechowywanie danych w EU
- Uwaga: OpenAI ma siedzibę w USA, dane domyślnie przetwarzane w USA. Choć oferują DPA, pełna zgodność z RODO jest dyskutowana - regulatorzy w EU zwracali uwagę na kwestie przejrzystości i podstawy prawnej przetwarzania
Cohere
- Dane z API usuwane po 30 dniach (domyślnie). Dla klientów enterprise dostępna opcja zero data retention - dane nie są logowane
- Dane nie są używane do trenowania, chyba że klient wyrazi zgodę (opt-in)
- DPA zgodny z RODO - Privacy-by-Design, mechanizmy transferu danych międzynarodowych
- Hosting na GCP w US-Central, ale możliwość konfiguracji tak, że dane są efemeryczne (przetwarzane w locie, nie zapisywane)
AWS Bedrock
- Najsilniejsza gwarancja izolacji - dane nie opuszczają konta AWS klienta i wybranego regionu EU (np. eu-west-1)
- AWS nie używa danych wejściowych/wyjściowych do trenowania modeli
- Pełna zgodność z RODO - AWS ma certyfikacje ISO 27001, SOC 2, podpisuje DPA
- Dane przetwarzane w EU zostają w EU - to najłatwiejszy argument przy audycie
Azure OpenAI
- Te same modele co OpenAI, ale dane przetwarzane na infrastrukturze Azure w wybranym regionie (w tym EU)
- Microsoft nie używa danych do trenowania modeli
- DPA Microsoftu, certyfikacje ISO 27001, SOC 2, zgodność z RODO
- Dane mogą fizycznie pozostać w EU - łatwiejsze do udowodnienia niż przy bezpośrednim API OpenAI
Podsumowanie RODO
| Dostawca | Dane w EU | Zero retention | DPA | Nie trenuje na danych | Ocena RODO |
|---|---|---|---|---|---|
| AWS Bedrock | tak (eu-west-1) | tak | tak | tak | najlepsza |
| Azure OpenAI | tak (EU regiony) | tak | tak | tak | bardzo dobra |
| OpenAI API | opcjonalnie (enterprise) | tak (embeddingi) | tak | tak | dobra, ale z zastrzeżeniami |
| Cohere API | nie (US domyślnie) | tak (enterprise) | tak | tak (opt-in) | dobra z konfiguracją |
| Google Gemini | opcjonalnie | brak info | tak | tak (API) | średnia |
Jeśli RODO to dla ciebie priorytet - AWS Bedrock lub Azure OpenAI to najprostsza droga. Dane zostają w EU, masz pełną kontrolę, a przy audycie nie musisz tłumaczyć transferów do USA.
Linki
- OpenAI text-embedding-3
- OpenAI Enterprise Privacy
- OpenAI DPA
- Cohere Embed v4
- Cohere Enterprise Data Commitments
- Amazon Titan Embeddings V2
- Azure OpenAI Embeddings
- BGE-M3 (BAAI)
- Qwen3-Embedding
- multilingual-e5-large-instruct
- GTE-multilingual-base
- EmbeddingGemma
- Google Gemini Embedding
- sdadas/Polish Embedding Models
- Silver Retriever
- PL-MTEB Leaderboard
- PL-MTEB Benchmark (paper)
- MTEB Leaderboard
- nomic-embed-text-v2-moe
- nomic-embed-text-v1.5
- NVIDIA Llama-Embed-Nemotron-8B
- Voyage-3-large