Embeddings Guide Cheat Sheet

Text embeddings deep dive — OpenAI vs Cohere vs open-source models, dimension tradeoffs, distance metrics, use cases from search to clustering, and best practices.

Last Updated: May 1, 2025

Embedding Models Comparison

ModelDimensionsCost/1M tokensMax InputBest For
OpenAI text-embedding-3-small512-1536$0.028191 tokensGeneral purpose, great value
OpenAI text-embedding-3-large256-3072$0.138191 tokensHighest quality, flexible dimensions
OpenAI ada-0021536$0.108191 tokensLegacy, being phased out
Cohere Embed v31024$0.10512 tokensMultilingual, classification
Voyage AI voyage-21024$0.104096 tokensDomain-specific (legal, finance)
BGE-large-en (open source)1024Free512 tokensSelf-hosted, MTEB #1 open-source
E5-mistral-7b4096Free (self-host)32K tokensLong context, open-source top performer

Dimension Tradeoffs

ItemDescription
1536d (Small)Good enough for most use cases. Faster search, less storage. ~95% of full quality.
3072d (Large)Best quality, highest cost. Use when recall is critical (legal, medical search).
256d (Ultra-compact)OpenAI supports dimension reduction via API parameter. ~90% quality, 6x faster.
Matryoshka Embeddingstext-embedding-3 supports shortening without quality loss — store at 1536, search at 256.
Binary QuantizationConvert float32 → binary — 32x compression, ~90% recall. Cohere binary embeddings.

Distance Metrics

ItemDescription
Cosine SimilarityDefault for text embeddings. Measures angle between vectors. Range: -1 to 1.
Euclidean DistanceStraight-line distance. For L2-normalized vectors, equivalent to cosine ordering.
Dot ProductFaster than cosine for normalized vectors. Range depends on vector norms.
Jaccard SimilarityFor binary/multi-hot embeddings. Set overlap measure.

Use Cases & Best Practices

ItemDescription
Semantic SearchEmbed query → find nearest vectors. Primary use case.
ClusteringGroup similar documents — k-means over embeddings. Topic discovery.
ClassificationTrain classifier on embeddings — often beats fine-tuning for small datasets.
RecommendationItem-item or user-item similarity via embeddings.
Anomaly DetectionFlag vectors far from cluster centroids.
NormalizationAlways L2-normalize before comparing — most APIs do this automatically.
Pro Tip: OpenAI text-embedding-3-small (1536d, $0.02/1M tokens) is the default choice. For cost-sensitive at scale, use text-embedding-3-large with dimension reduction or open-source alternatives.