Skip to content

Step 04 of 22

Embeddings

Convert text, images or audio into vectors that capture meaning. The embedding model decides what "similar" means for your search. Switching later means re-embedding everything.

How to choose

  • Multilingual or code-heavy data: pick a model benchmarked on that, not on English prose.
  • Private or high-volume: an open model you host avoids per-token fees.
  • Mixed media: a multimodal embedding model puts images and text in one space.

What to look for

The questions that separate the options, in order of how much they matter.

  1. 01

    Retrieval quality on your own questions

    The only question that matters is whether a query brings back passages that actually answer it. On the MTEB leaderboard that is the Retr. column, not Mean (Task) or the Borda rank, which mix in classification, clustering and sentence-similarity tasks a RAG system never runs; Octen-Embedding-8B ranks seventh overall on the multilingual tab yet scores higher on retrieval than the fourth-placed Qwen3-Embedding-8B (71.61 against 70.88). Use benchmarks to shortlist; use your own retrieval evaluation to choose.

  2. 02

    Fit with your domain

    General benchmarks say little about contracts, clinical notes or part numbers. Check how candidates handle your technical terms, abbreviations and closely related concepts that must stay apart, such as two similar product codes. The leaderboard's domain tabs (Code, Legal, Medical, Finance, Chemical) are a better guide than the overall score, and models that accept task instructions often gain a few points when given one.

  3. 03

    Language support, including cross-language search

    Test both same-language retrieval (a German question over German documents) and cross-language retrieval (an English question over Japanese documents) if your users need it. On MTEB, compare the Multilingual tab (MMTEB, 131 tasks across more than 250 languages) with the English tab and any per-language tab for your markets; a model's English score can flatter it. A claim of '100+ languages' says nothing about quality in any one of them.

  4. 04

    Input length that fits your chunks

    The maximum input (Max tokens on the leaderboard) must cover your longest chunk plus any title or heading you prepend, or text is cut off, often silently: all-MiniLM-L6-v2 stops at 256 word pieces. A larger limit does not automatically help, since one vector for a long passage blurs several topics together; it mainly gives you room to choose chunk size freely.

  5. 05

    Dimensions: storage cost, not a quality score

    More dimensions mean more storage, memory and search compute per vector, and do not guarantee better retrieval. Many current models use Matryoshka training, so you can keep only the first 256 or 512 numbers with modest loss: Gemini Embedding 2 runs from 128 to 3,072 and renormalises truncated vectors automatically, while EmbeddingGemma 2 asks you to renormalise yourself. Int8 or binary output, offered by Voyage and Cohere, cuts storage further; test recall at the size you will actually store.

  6. 06

    Speed and cost across the whole lifecycle

    Count four costs: embedding the initial corpus, re-embedding updates, query latency, and hosting or API fees. API prices for text run from $0.02 to $0.20 per million tokens (Jina v5 nano to Gemini Embedding 2), with batch discounts of 33 to 50% at Voyage, OpenAI and Google. Open models avoid fees but need GPUs sized to the leaderboard's Memory (MB) figure: about 1.1 GB for Qwen3-Embedding-0.6B against 14.4 GB for the 8B.

  7. 07

    Deployment and privacy

    Decide early whether documents and queries may leave your infrastructure. If not, you need open weights you can run yourself, and the licence must allow your use: Qwen3-Embedding and EmbeddingGemma 2 are Apache 2.0, while Jina v5 and Nemotron ColEmbed V2 weights are non-commercial. Hosted APIs remove operations work but add a vendor that sees every query.

  8. 08

    Supported inputs

    Text-only models need everything converted to text first. If your corpus includes scanned pages, slides, photos, audio or video, consider a multimodal model that embeds them directly (see the guide by data type below), and check it was benchmarked on that input type: MTEB has separate tabs for images (MIEB), visual documents (ViDoRe), audio (MAEB) and video (MVEB).

  9. 09

    Usage requirements that break retrieval if ignored

    Read the model card before indexing. Many models expect a query prefix or instruction and a different (or no) prefix for documents; some need vectors normalised and specify cosine or dot-product similarity; EmbeddingGemma 2 warns that float16 silently corrupts output. Query and document vectors must come from the same model and embedding space, even when dimensions match, so changing models generally means re-embedding everything; Voyage 4's shared space across sizes is a rare exception.

Which approach for which data

Different content needs different models. Many systems use more than one and route by data type.

Approaches by data type
Your dataApproachStart with
Plain text documentsChunk by section, embed with a strong text model, and add keyword search for exact terms. Shortlist from the Retr. column of the language tab you need.Qwen3-Embedding and Qwen3-Reranker, voyage-4-large, text-embedding-3-large, EmbeddingGemma 2
CodeSplit by function or class, keep file path and signatures as metadata, and use a model scored on the leaderboard's Code tab. Qwen3-Embedding-8B scores 80.69 there; EmbeddingGemma 2 reports 78.68 at a fraction of the size.Qwen3-Embedding and Qwen3-Reranker, EmbeddingGemma 2
Tables and spreadsheetsParse tables with a table-aware parser, then embed each table, or groups of rows, as Markdown with the header row repeated and a short caption. Embeddings find the right table; exact figures and aggregates are better answered by querying the data itself (SQL or a dataframe) once found.Docling, Cohere Embed 5, Qwen3-Embedding and Qwen3-Reranker
Scanned PDFs, slides and page imagesTwo routes. Parse pages to text with an OCR model and embed the text, which keeps storage small and works with any vector database. Or embed the page image directly, using a late-interaction model (most accurate on ViDoRe, much more storage) or a single-vector multimodal model; compare on the ViDoRe v3 tab.Nemotron ColEmbed V2, Qwen3-VL-Embedding, Cohere Embed 5, PaddleOCR-VL-1.6
Natural imagesUse a multimodal embedder that maps images and text into one space so text queries find photos; check the MIEB tabs, where the small, open EmbeddingGemma 2 ranks fifth on MIEB (lite) with 63.52. Add generated captions as text if you also need keyword search.Qwen3-VL-Embedding, EmbeddingGemma 2, Gemini Embedding 2, Jina Embeddings v5
VideoEmbed short segments rather than whole files, with timestamps as metadata, using a model that takes video natively; check the MVEB video-text tab, which Qwen3-VL-Embedding-8B leads. Transcribe the soundtrack and embed it as text alongside.Marengo 3.5, Qwen3-VL-Embedding, Gemini Embedding 2
Audio and speechFor speech, transcribe and embed the transcript, with timestamps and speaker labels; it is cheaper and easier to search. Use native audio embeddings, compared on the MAEB tab, for non-speech sound, music or tone.Whisper large-v3-turbo, Parakeet TDT 0.6B v3, EmbeddingGemma 2, Gemini Embedding 2
Multilingual and cross-languageUse a multilingual model and test cross-language queries directly; compare the Multilingual tab and the per-language tabs, and use the Bitext column as a secondary signal. Avoid translating documents before embedding unless tests show it helps.Qwen3-Embedding and Qwen3-Reranker, Jina Embeddings v5, Cohere Embed 5, Gemini Embedding 2

Reading the MTEB leaderboard

For RAG and document search, start with the Retr. column on the tab that matches your languages, not the overall mean; these columns rate embedding models, not vector databases.

Rank (Borda)
Each task 'votes' for models by their relative position on it; the model with the most votes across all tasks ranks first.
Rewards broad consistency, not retrieval. Two adjacent ranks can hide a large or a negligible gap, so look at the scores.
Parameters (total and active)
Model size, including embedding weights. Active parameters differ only for mixture-of-experts models.
A proxy for memory and speed. The table's Pareto tag marks models no smaller rival beats; check it before paying for an 8B model.
Openness
A 0–6 score for open weights, open licence, open training code, open training data, a paper and a model card.
Open weights alone do not mean commercial use is allowed; read the licence. Closed APIs score low here by design.
Zero-shot %
The share of the benchmark's tasks whose training data the model was not trained on. 'NA' means unknown.
Not an accuracy score. Below about 80%, part of the score reflects tasks the model has seen; on the English tab several top-five models sit at 48% to 51%.
Mean (Task)
Plain average across every task in the benchmark.
Easy to compare but weighted towards whichever task types have the most datasets: on the multilingual tab, 43 of 131 tasks are classification and 18 are retrieval.
Mean (TaskType)
Average within each category (classification, retrieval and so on), then an equal-weight average of the categories.
Fairer across categories than Mean (Task), but still includes tasks irrelevant to search. Expect it to run several points lower.
Mean (Public) and Mean (Private)
Averages over the openly released tasks and over held-out tasks the benchmark keeps private, on benchmarks such as RTEB that include both.
A model far better on public than private tasks may be tuned to the benchmark. Private scores are the more honest signal.
Retr.
Retrieval: find the relevant documents for a query in a large corpus, mostly scored by nDCG@10 (how high the right documents appear in the top ten).
Prioritise this column for RAG. Then confirm on the domain and language tabs closest to your data.
Rerank
Re-order a short candidate list for a query.
Useful secondary signal for search. A dedicated reranker model usually beats an embedder here.
Class. and MultiClass.
Classification: assign one or several labels from a fixed set, using the embeddings as features.
Relevant if you will tag or route content with embeddings; not a retrieval measure.
Clust.
Clustering: group texts without labels; scored against gold groups.
Relevant for topic discovery and deduplication, not for answering questions.
PairClass.
Pair classification: decide a relation between two texts, such as duplicate or paraphrase.
A guide for duplicate detection. Says little about query-to-passage retrieval.
STS
Semantic textual similarity: rate how similar two sentences are on a scale.
A high STS alone does not establish good retrieval; questions and answers are not paraphrases of each other.
Bitext
Bitext mining: match sentences with their translations across languages.
A rough signal for cross-language alignment; still test cross-language retrieval directly.
Summ.
Summarisation (English tab): score how well embeddings rank machine summaries against human references.
Evaluates summaries; it does not measure a model's ability to generate them, and matters little for search.
Instr Rerank
Reranking guided by a free-form instruction attached to the query.
Most models score between 0 and 12 here; ignore it unless you plan instruction-driven search.
Embedding dimension
Length of the vector the model outputs (the leaderboard lists the default or maximum).
A storage cost, not a quality score. Check whether smaller Matryoshka sizes are supported.
Max tokens
The longest input the model reads in one go.
Must exceed your chunk size; beyond that, bigger is not better for retrieval.
Memory (MB)
Memory needed to load the weights, in the CSV download and on each model's page.
Size your GPU or CPU from this. Blank for closed APIs.

How to test it on your own data

  1. Collect 50 to 100 real or realistic questions and mark the passage or passages that answer each one.
  2. Include hard cases: abbreviations and synonyms, exact identifiers such as order or part numbers, ambiguous questions, other languages, and documents some users are not permitted to see.
  3. Index the same chunks with each shortlisted model, using each model's recommended query and document prefixes and normalisation.
  4. Measure Recall@k (is a correct passage in the top k?) and a ranking metric such as nDCG@10 or MRR, overall and per question type.
  5. Measure p95 query latency under realistic concurrency and with the metadata filters you will use in production.
  6. Estimate total cost: initial indexing, vector storage at your chosen dimension and precision, queries per month and re-embedding for updates.
  7. Check end-to-end answer quality on a sample, since a retrieved passage is only useful if the model can answer from it.
  8. Evaluate the whole retrieval pipeline, not the model alone: chunking, attached metadata, hybrid keyword search and a reranker often move results as much as switching embedders.

How the options differ

Hosted APIs (voyage-4-large, Cohere Embed 5, Gemini Embedding 2, OpenAI's text-embedding-3-large) charge per token and need no GPUs, but your data goes to the vendor and you cannot pin the model forever. Open-weight models (Qwen3-Embedding, EmbeddingGemma 2, Qwen3-VL-Embedding) are free to run and private, at the cost of serving them yourself; their sizes span from a few hundred million parameters that run on a laptop CPU to 8 billion that need a data-centre GPU.

The other split is by input. Text embedders produce one vector per passage and lead the MTEB text benchmarks. Multimodal embedders put text, images, audio or video in one space so a written question can find a chart or a video clip. Late-interaction models (the ColPali family, Nemotron ColEmbed V2) store a vector per token or image patch and score the best match for each query token; they are the most accurate on scanned and visual pages but multiply storage and need a vector database that supports multi-vector scoring.

11 tools, compared

Ranked by our rating. Open any review for sources, prices and the full verdict.

Embeddings tools compared
ToolRatingOur verdictBest forPrice
voyage-4-largemodel4.5/5A strong retrieval model with one trick rivals lack, a shared vector space, but its lead rests on Voyage's own tests and it may train on your data until an admin opts out.Teams building text search or RAG who want to pay for quality at index time and run cheap or local query embeddings.$0.12 per 1M tokens; first 200M tokens free (not on Batch); Batch API 33% off.
Jina Embeddings v5model4.3/5Jina v5's shared text-and-media vector space is the cleverest idea in small embeddings, and a non-commercial licence is the toll for anyone who wants to run it themselves.Teams building multilingual or multimodal search on small models, especially inside Elastic.Jina API: small models $0.05 per 1M tokens, nano $0.02. Weights free for non-commercial use; commercial self-hosting needs a paid Elastic licence.
Gemini Embedding 2model4.3/5Gemini Embedding 2 is the simplest way to search video and audio with a sentence, and an overpriced way to search plain text.Developers building search or recommendations across mixed media such as images, recordings and video.Per 1M tokens: text $0.20, image $0.45, audio $6.50, video $12; Batch half price; free tier with limits (inputs used for product improvement).
EmbeddingGemma 2model4.3/5EmbeddingGemma 2 makes private, offline search across photos, voice notes and code practical on a phone, while leaving text-only retrieval quality almost exactly where version one left it.Mobile and edge developers building private or offline search across text, code, images and audio.Free under Apache 2.0, subject to the Gemma Prohibited Use Policy. No hosted API from Google or Hugging Face inference providers yet.
Qwen3-VL-Embeddingmodel4.3/5The open embedder to start with when one index has to hold slides, screenshots and video alongside text, with Apache 2.0 settling the licence question.Teams self-hosting search across images, video and mixed documents under a permissive licence.Free under Apache 2.0.
Qwen3-Embedding and Qwen3-Rerankermodel4.2/5A complete open search stack under one licence, embedder and reranker together, though its leaderboard crown dates from June 2025.Teams self-hosting multilingual or code search who want both embedding and reranking under one open licence.Free under Apache 2.0. Qwen Cloud's hosted text-embedding-v4, built on Qwen3, is $0.07 per 1M tokens.
Cohere Embed 5model4.2/5Built for long, visually messy business documents and now priced in the open, though every benchmark that flatters it is Cohere's own.Enterprises indexing long PDFs, filings and slide decks with mixed text and images.API: Pro $0.12 and Fast $0.08 per 1M text tokens; images $0.40 per 1M. Model Vault from $3/hour or $2,000/month per instance.
Marengo 3.5model3.9/5Purpose-built for finding moments in video, with small vectors that keep storage cheap, though every number behind it comes from TwelveLabs.Teams building search over large video libraries who want a managed, video-specialist embedding API and will run their own vector store.Embed API at launch, per 1M tokens: video $0.26, audio $0.065, image $0.08, document $0.162, text $0.20. Plans: Free, Plus $29/month, Pro $99/month, Enterprise custom.
Nemotron ColEmbed V2model3.8/5Accurate enough to be the yardstick for page-image search, and licensed so that a yardstick is all most companies can use it as.Researchers and evaluation teams who need a strong open baseline for visual document retrieval and do not plan to ship it.Free weights for non-commercial and research use (CC BY-NC 4.0).
text-embedding-3-largemodel3.7/5Safe, cheap and supported by every vector database, text-embedding-3-large now trails newer retrievers by enough to justify a re-test before any new build.Teams already on OpenAI who value one vendor, strict data terms and broad tool support over top retrieval quality.$0.13 per 1M tokens; Batch half price; text-embedding-3-small $0.02 per 1M.
all-MiniLM-L6-v2model3.4/5Still the fastest way to get semantic search working, and no longer the right model to ship.Learners and prototypers who need a fast, universally supported English embedding model.Free under Apache 2.0.

Side by side

The specifications that matter for this step. Checked 2026-10-19; confirm on the vendor’s site before you commit.

Embeddings: specifications side by side
ToolParametersDimensionsMax inputLanguages / inputsLicence / accessPrice per 1M tokens
voyage-4-largeNot published (mixture-of-experts)256–2,048 (default 1,024)32KText; multilingualClosed; Voyage API, MongoDB Atlas$0.12 (first 200M free)
Jina Embeddings v5677M small, 239M nano1,024 / 768; down to 3232K small, 8K nanoText; omni adds image, video, audioCC BY-NC 4.0 weights; API$0.05 small, $0.02 nano
Gemini Embedding 2Not published128–3,0728,192Text, image, video, audio, PDF; 100+Closed; Gemini API (preview)$0.20 text
EmbeddingGemma 2270M text (740M all encoders)768; down to 1288,192Text, code, image, audio, videoApache 2.0, open weightsSelf-hosted
Qwen3-VL-Embedding2B, 8BUp to 2,048 / 4,096; from 6432KText, image, screenshot, video; 30+Apache 2.0, open weightsSelf-hosted
Qwen3-Embedding and Qwen3-Reranker0.6B, 4B, 8B1,024 / 2,560 / 4,096; truncatable32KText and code; 100+ languagesApache 2.0, open weightsSelf-hosted
Cohere Embed 5Not published256–2,048128KText, images, PDFs; 100+ languagesClosed; API, Foundry, SageMakerNot published
Marengo 3.5Not published512; down to 128Not publishedVideo, audio, image, text, PDF pagesClosed; TwelveLabs APIPlan allowance; unit rates separate
Nemotron ColEmbed V23B, 4B, 8B (8.8B)4,096 per token (multi-vector)10,240 evaluatedText queries, page imagesCC BY-NC 4.0 (non-commercial)Self-hosted
text-embedding-3-largeNot publishedUp to 3,072; shortenable8,191Text; multilingualClosed; OpenAI API$0.13
all-MiniLM-L6-v223M384256Text; English onlyApache 2.0, open weightsSelf-hosted

Where this stage fits

Sources for this guide