How to Pick an Embedding Model in 2026: OpenAI text-embedding-3 vs Voyage vs Cohere, Benchmarked on Real Retrieval Accuracy

VTechNews Editorial Team · · 8 min read · 1,522 words

Bottom line: if you’re building RAG in August 2026, Cohere embed-v4 wins on cost ($0.01/1M tokens) and context window (128K tokens), Voyage 3.5 wins on retrieval accuracy, and OpenAI text-embedding-3-large wins on ecosystem maturity — pick based on which constraint actually bites your app, not on a single leaderboard number. We ran the same 50-document technical corpus through all three, logged dimension counts, quantization options, and per-1M-token cost, and the answer is not “just use the highest MTEB score.”

Quick Answer — Which Embedding Model Should You Pick?
  • Tightest budget at scale: Cohere embed-v4 — $0.01/1M tokens, roughly 13x cheaper than OpenAI text-embedding-3-large
  • Best retrieval accuracy: Voyage 3.5 — Voyage AI’s own published benchmark claims an 8.26% average retrieval-quality lift over OpenAI-v3-large
  • Longest documents without chunking pain: Cohere embed-v4 — 128K-token context window vs OpenAI’s 8,191-token cap
  • Safest default if you’re already on OpenAI infra: text-embedding-3-large — most battle-tested managed embedding model in production, per OpenAI’s own ecosystem documentation

What Actually Differs Between OpenAI, Voyage, and Cohere Embeddings?

Top view of vessels with different equipment sailing in turquoise water of endless ocean
Photo: Pok Rie / Pexels

The three models differ on four axes that matter operationally: native vector dimensions, price per 1M tokens, context window, and retrieval accuracy on domain-specific (not generic) text. OpenAI text-embedding-3-large ships at 3,072 dimensions natively but supports Matryoshka Representation Learning, so you can truncate down to 256 dimensions and trade a small accuracy hit for a much smaller pgvector index footprint. Voyage 3.5 goes further, offering four selectable output dimensions — 2048, 1024, 512, and 256 — plus five quantization modes including int8 and binary. Cohere embed-v4 doesn’t publish the same dimension flexibility but wins on raw context window: 128,000 tokens per input, enough to embed a full technical manual chapter without chunking it into fragments first.

Which Model Scores Highest on MTEB?

On the general MTEB leaderboard, Cohere embed-v4 posts roughly 65.2 average, edging out OpenAI text-embedding-3-large’s roughly 64.6. Voyage AI doesn’t compete head-to-head on the public MTEB leaderboard the same way — the company instead publishes its own RTEB retrieval benchmark, where voyage-3.5 claims an 8.26% average improvement over OpenAI-v3-large specifically on retrieval-focused tasks. That distinction matters: MTEB averages across classification, clustering, and retrieval, but a RAG pipeline only cares about retrieval. If your evaluation only reads the single averaged MTEB number, you’ll rank Voyage lower than it actually performs on the one task you’re building for.

Pro Tip: Don’t trust a vendor’s own benchmark in isolation. Voyage’s 8.26% retrieval lift is measured on Voyage’s own RTEB suite — reproduce it on your own corpus with recall@10 before committing an embedding pipeline to it.

How Much Does Each Model Actually Cost at Scale?

Cost separates fast once you’re past a demo. OpenAI text-embedding-3-large runs $0.13 per 1M tokens; text-embedding-3-small drops to $0.02 per 1M tokens but gives up meaningful retrieval accuracy for that discount. The Voyage 4 family spans a wider range — voyage-4-lite at $0.02/1M, voyage-4 at $0.06/1M, and voyage-4-large at $0.12/1M — so you’re choosing a price/accuracy tier within one vendor rather than switching vendors. Cohere embed-v4 undercuts all of them at $0.01 per 1M tokens, which Cohere frames as a roughly 50% reduction versus OpenAI’s small model, not just the large one.

Run the math on a realistic ingestion job: embedding a 10-million-token document corpus costs $1,300 on text-embedding-3-large, roughly $600 on voyage-4, and $100 on Cohere embed-v4. At that scale the vendor choice is a four-figure line item, not a rounding error.

What’s the Real Difference in Dimension Counts and Storage Cost?

A miniature green tractor beside stacks of coins in a creative still life scene.
Photo: Atlantic Ambience / Pexels

Dimension count drives your vector database storage bill directly — more dimensions means more disk and slower index builds in pgvector, Pinecone, or Weaviate. Voyage’s own comparison shows voyage-3.5 running at int8 quantization and 2,048 dimensions against OpenAI-v3-large’s float32 at 3,072 dimensions, and claims an 83% reduction in vector database storage cost for a comparable or better retrieval result. That’s the practical payoff of quantization: you’re not paying for four bytes per dimension when one byte (int8) or even one bit (binary) gets you nearly the same recall.

ModelNative DimensionsPrice / 1M TokensContext WindowBest For
OpenAI text-embedding-3-large3,072 (truncatable to 256)$0.138,191 tokensExisting OpenAI stacks, ecosystem maturity
OpenAI text-embedding-3-small1,536$0.028,191 tokensLow-stakes, high-volume search
Voyage 3.52048 / 1024 / 512 / 256~$0.06–0.1232,000 tokensBest retrieval accuracy, domain-specific corpora
Cohere embed-v41,536 (variable)$0.01128,000 tokensLowest cost, long documents, noisy real-world text

Which Model Handles Noisy, Real-World Documents Best?

Cohere specifically trains embed-v4 for resilience against real-world document noise — scanned PDFs, inconsistent formatting, OCR artifacts — which matters more than a clean-benchmark MTEB score if your corpus is internal wikis, support tickets, or contracts rather than curated Wikipedia text. We tested this directly: feeding a batch of scanned, OCR’d product manuals (with the expected dropped characters and broken line breaks) through all three models, embed-v4’s retrieval held up noticeably better than text-embedding-3-small on the same corpus, though it still trailed Voyage 3.5 on the cleanest documents in the set.

Pro Tip: If your source documents are messy (scanned PDFs, exported chat logs, legacy CMS exports), test on your actual noisy corpus — not a clean sample — before picking a model on benchmark score alone.

What Breaks When You Switch Embedding Models Mid-Project?

The operator-grade failure mode nobody’s benchmark table warns you about: embeddings from different models are not interchangeable, and neither are embeddings at different dimension counts from the same model. Swap from text-embedding-3-large at 3,072 dimensions to voyage-3.5 at 1,024 dimensions without re-embedding your entire corpus, and you’ll get a dimension-mismatch error at query time — or worse, a silent wrong-length vector that pgvector either rejects outright or, in older client libraries, pads and returns meaningless nearest-neighbor results. Budget the full re-embedding cost (and the downtime) any time you change providers or change your truncated dimension count, even within the same OpenAI model family.

Watch out: Embedding pricing and MTEB rankings shift every few months as providers ship new model versions. Verify current pricing on each vendor’s own pricing page before committing a production budget — the numbers in this piece are current as of August 2026.

How Do You Actually Test Retrieval Accuracy on Your Own Corpus?

Close-up of hands organizing documents on a wooden desk with pen and notebook.
Photo: Ron Lach / Pexels

Set up a recall@10 test: take 50-100 real queries your users would actually type, manually mark which documents in your corpus should show up in the top 10 results for each, then run all three embedding models through the same pgvector or Pinecone index and count how many of the marked-correct documents land in the top 10. This is the only test that tells you anything about your specific data — MTEB and RTEB scores are averages across benchmark datasets that may look nothing like your support tickets or product manuals.

Pro Tip: Keep the recall@10 test script around after launch. Re-run it every time a provider ships a new model version — a model swap that looks like a free upgrade can silently regress recall on your specific document types.
“Voyage models consistently achieve top scores on retrieval-focused benchmarks, with better handling of domain-specific content” — per Voyage AI’s published model documentation.
Key Takeaways
  • Cohere embed-v4 is the cheapest ($0.01/1M tokens) and has the longest context window (128K tokens) of the three.
  • Voyage 3.5 leads on retrieval-specific accuracy per its own RTEB benchmark, and cuts vector storage cost via int8/binary quantization.
  • OpenAI text-embedding-3-large remains the most battle-tested option if you’re already deep in the OpenAI ecosystem.
  • Never switch embedding models or dimension counts without budgeting a full corpus re-embed — dimension mismatches fail silently in some client libraries.
  • Build your own recall@10 test on real queries; vendor benchmarks are directional, not predictive, for your specific corpus.

Frequently Asked Questions

Can I mix embedding models in the same vector database?

No — not in the same index. Different models produce vectors that aren’t comparable via cosine similarity or dot product, even if the dimension counts happen to match. Use separate indexes (or separate collections) per model, or fully re-embed when you switch.

Is a higher MTEB score always better for RAG?

No. MTEB averages classification, clustering, and retrieval tasks together. For RAG specifically, look at the retrieval-only subscore, or better, run your own recall@10 test — a model that wins on the blended average can still lose on the retrieval slice that actually matters for search.

Does reducing embedding dimensions hurt accuracy?

Slightly, but often less than expected. Models built with Matryoshka Representation Learning (OpenAI’s text-embedding-3 family, Voyage 3.5) are trained so that truncated lower-dimension outputs stay useful, trading a small accuracy loss for meaningfully smaller storage and faster index builds.

What’s the biggest hidden cost in switching embedding providers?

Re-embedding your entire existing corpus, plus any downtime or dual-write complexity while you migrate a live index. The per-token embedding price is the visible cost; the re-embedding job and migration window is the one teams underbudget.

Does context window size matter if I already chunk my documents?

Yes, indirectly — a larger context window (Cohere’s 128K vs OpenAI’s 8,191 tokens) means fewer, larger chunks, which reduces the total number of embedding calls and can improve retrieval by keeping more surrounding context in each vector.

Should a small project just default to OpenAI text-embedding-3-small?

For a low-stakes prototype, yes — it’s cheap and well-documented. For anything going to production with real users querying real documents, run the recall@10 test across at least two providers before locking in, since the cost difference compounds fast at scale.

Last updated: 2026-08-24

FREE DAILY NEWSLETTER

Get the AI News That Matters

3-minute daily digest for executives. Curated by AI, edited by humans.

Get the 1k+ ChatGPT Prompts Bible (Free)

Join 5,000+ executives getting our 3-minute daily AI digest and get instant access to the Premium Knowledge Vault.

Leave a Comment