Match each embedding provider to a defining feature or pricing fact
Drag each answer to line up with its matching prompt
OpenAI text-embedding-3-small
Tightly paired with Cohere rerank-3.5 cross-encoder; popular for production RAG stacks
Voyage voyage-code-3
Open weights, multilingual (100+ langs), hybrid dense+sparse+multi-vector outputs
BGE-M3
Open weights, Matryoshka, designed for on prem and self-hosted deployments
Cohere embed-v3 / v4
Specialized for code retrieval, about 14% above OpenAI v3-large on average across 32 code retrieval datasets
Nomic Embed v1.5
$0.02/M tokens, 1536 dim (truncatable), default RAG choice
Each major embedding vendor owns a distinct positioning: OpenAI for default English, Voyage for code, BGE-M3 for multilingual hybrid, Cohere for paired rerank, Nomic for open-weights self-host.
Imagine a row of food trucks at a festival. Each truck specializes in one cuisine, and the menus barely overlap. You go to the taco truck for tacos and the ramen truck for ramen. Search-tool providers work the same way. OpenAI is the general-purpose truck that serves the most customers. Voyage runs a code-specialist menu. BGE-M3 is the multilingual stand that speaks every language at the festival. Cohere comes paired with its own dessert, a matching ranker. Nomic is the take-home kit you cook in your own kitchen.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
The embedding-vendor market has settled into five stable positions, each owned by a different specialist. Knowing the map collapses the model-selection problem from 'which of 40 options' to 'which of 5 buckets.' After that, the choice within the bucket is largely a labeled-eval question.
Each position has a pricing or feature anchor that defines it. The positions are structural and unlikely to flip on the next vendor release.
Position 1: cost-optimized default
OpenAI text-embedding-3-small holds this position. At USD 0.02 per million tokens, it sits at the low end of managed pricing, 6.5 times cheaper than text-embedding-3-large at USD 0.13. The Matryoshka truncation through the 'dimensions' parameter lets the same call serve as a 512-d, 1024-d, or 1536-d embedder. So storage tiers can choose the right dimension.
Why this position is stable
OpenAI has both the corpus access and the inference fleet to price embeddings as a commodity. Newer vendors competing on price either lose money or compete on quality at a higher price point. The default position belongs to the vendor with the deepest fleet. That has been OpenAI for several years, with no immediate sign of change.
When this is the answer
Use it for general English RAG, customer support, product description retrieval, and blog and documentation search. It fits anywhere the corpus is plain English prose and the constraint is unit cost rather than peak quality.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
| Vendor / Model | Positioning | Hosting | Pricing or feature anchor |
|---|---|---|---|
| OpenAI text-embedding-3-small | default general English | API only | $0.02 / M tokens, 1536-d Matryoshka |
| Voyage voyage-code-3 | code retrieval specialist | API only | +13.8% avg over OpenAI 3-large on 32 code sets |
| BGE-M3 | open-weights multilingual | self-hosted | 100+ langs, dense+sparse+multi-vector |
| Cohere embed-v3 / v4 | paired-reranker stack | API only | tight pairing with rerank-3.5 cross-encoder |
| Nomic Embed v1.5 | open-weights on-prem | self-hosted | Matryoshka, single-H100 deployable |
Real products, models, and research that use this idea.
- Voyage reports that voyage-code-3 beats OpenAI text-embedding-3-large by 13.80% and CodeSage-large by 16.81% on average across 32 code retrieval datasets.
- Snowflake publishes its own open-weights Arctic Embed models, so in-warehouse RAG stacks can keep vectors inside the warehouse.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow would you validate the leaderboard claim that voyage-code-3 outperforms general embedders on code?
Build a small labeled retrieval set from your own codebase, embed and index with both, measure recall@10; the leaderboard is necessary but not sufficient.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Confusing voyage-3 with voyage-code-3, or claiming OpenAI is the cheapest without distinguishing 3-small from 3-large.
60 second bullets to scan on the way to the call.
OpenAI 3-small pricing and dimension
Voyage code specialist versus general Voyage SKU
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.