How to Choose an Embedding Model: The Lifeline of Semantic Search

Whether semantic search is accurate is seven-tenths decided by the embedding model. It turns text into vectors, and similar meanings land close together in vector space. Pick the wrong model and all the retrieval work after it is wasted — which is why this is the true lifeline of RAG.

What embedding models do

They compress a piece of text into a string of numbers (a vector), so texts with similar meanings are also close in vector space. After that, comparing texts becomes comparing vector distances, letting machines understand semantics rather than literal wording. This step is the foundation of semantic search: the user’s question becomes a vector, and the system pulls nearby fragments from the store. If you pick the wrong model for the foundation, no amount of great reranking or generation afterward can save it — so it deserves the most serious attention first.

Why it’s the lifeline

RAG’s performance ceiling is usually set by retrieval, and retrieval’s ceiling is usually set by embeddings. Many non-answers have their root in the embedding model judging unrelated things as related and related things as unrelated, pulling the wrong material. So when tuning RAG, don’t start by fiddling with generation — suspect the embedding first. Pick the embedding right and test it properly, and most retrieval problems resolve on their own. The return on investing in this link is far higher than patching things afterward.

General or domain-specific

General embedding models cover a lot, but their near-synonym judgments in vertical domains (medical, legal, ecommerce terminology) are often off. Domain words carry specialized semantics that general models haven’t learned, so they misjudge easily. In vertical scenarios, prioritize domain-tuned or domain-friendly models. Run your real corpus through it and see whether relevant items actually rank high — far more reliable than looking at generic leaderboards.

Chinese support is critical

For Chinese scenarios, pick a Chinese-friendly model; otherwise semantic capture of mixed Chinese-English, proper nouns, and idioms will stumble. Some models are strong in English and weak in Chinese; using them directly for Chinese retrieval is guaranteed to crash. The verification is simple: take a few sets of Chinese near-synonym sentences and easily confused ones, and see whether vector distances match intuition. If Chinese performance doesn’t pass, don’t use it no matter how famous. Language matching is a hard threshold.

Higher dimensions aren’t always better

High-dimensional vectors have strong expressiveness but eat storage and slow retrieval, and aren’t necessarily more accurate. In many tasks the improvement from higher dimensions has diminishing returns while adding compute burden. Choose dimensions by data scale and latency requirements: mid-size stores do fine with mid dimensions; very large stores should consider dimension reduction to save cost. Dimension is a knob you turn around your scale and performance, not something where bigger and pricier is better.

Contrastive vs retrieval-oriented

Some embedding models are optimized for sentence-pair similarity (contrastive tasks), others for large-scale retrieval (recall). They emphasize different things, and using them mismatched hurts performance. Clarify your primary scenario: is it computing whether two sentences are alike, or pulling relevant items from a million documents? Choose by your primary scenario; don’t be fooled by the model’s overall score. Scenario alignment matters more than the total score.

How to embed long text

Embedding a long paragraph directly loses structure; models often only grasp the start and end. The approach is to chunk first, then embed each chunk to preserve local semantics, and at retrieval time hit chunks then trace back to the original text. Chunk granularity affects embedding quality: too coarse and one chunk holds multiple meanings; too fine and context is lost. Same logic as retrieval chunking — cut at semantic boundaries, and embeddings come out right. Embedding and chunking are conjoined twins.

Normalization

After embedding, vectors are often normalized so distance metrics stay stable and comparable. Different models output at different scales; unify the handling before integrating into the system, so retrieval and reranking stay fair. Also pin the model version: switch the embedding model and the meaning of vectors across the whole store can change — either re-embed everything or never mix old and new. The embedding model is infrastructure, and changing it should be managed as a big deal.

Working with reranking

Embeddings handle coarse recall (pulling a batch of possibly relevant items); reranking handles fine sorting (putting the most relevant on top). Embeddings don’t need to be 100% accurate — just pull the right items into the candidate set, and reranking finishes the job. Understanding the division eases embedding selection pressure: recall ensures coverage, reranking ensures precision. But if recall misses (things that should be close aren’t), reranking can’t save it, so embeddings still can’t be too bad.

Evaluate with your data

Don’t only trust public leaderboards. Build a small batch of query-to-expected-hit pairs from your own scenario, run embeddings, and look at the hit rate — that’s the real metric. The top-ranked model on a leaderboard isn’t necessarily top on your data. Evaluation must cover edges: easily confused words, same meaning different characters, domain jargon. Testing only on easy samples overestimates. Use your real hard cases to force out the model’s true level.

Multilingual scenarios

For cross-language retrieval (querying Chinese against English material), pick a model with good multilingual alignment; otherwise cross-language near-synonyms get judged wrong. Stuffing a monolingual model into a multilingual task makes performance collapse. Verify with real cross-language pairs: can a Chinese query hit an English passage? Multilingual capability isn’t a marketing phrase — test it with your actual language pairs before going live.

Cost and deployment

Embedding is a high-frequency operation (run on every retrieval), so model size and inference cost need accounting. Big models are accurate but expensive; small ones are cheap; weigh by call volume. You can also batch pre-embed to build the store (a one-time investment), and at query time only embed the question (lightweight). Put the heavy work in the build phase, keep the query phase fast, and the overall experience stays smooth.

Three common pitfalls

Pitfall one: using a strong-English default model for Chinese, so near-synonyms get judged askew. Pitfall two: blindly raising dimensions, blowing up both storage and latency. Pitfall three: trusting only leaderboards and never testing your own data, then crashing at launch. All three are solved by choosing Chinese-friendly, moderate dimensions, and testing with your own data. Embeddings are RAG’s lifeline, and every bit spent here is worth it.

How to build the selection checklist

Ask four questions: is the primary scenario retrieval or contrastive; is the language Chinese or cross-language; is the data in a vertical domain; how high are the scale and latency requirements. Answer the four and the candidate range narrows naturally. Then run the candidates on your data for hit rate and keep the stable performers. Embedding selection isn’t about chasing the newest — it’s about finding the one that best fits your own patch of land. Run through the checklist, and decisions stop relying on gut feeling.

Key PointsTaskRetrieval / clusteringLanguageZh / En / MultiDimensionsNot too highEvaluationTest with your data

Figure: Embedding Selection — Key Points

What to look at Key point Easy to get wrong
Language Chinese-friendly Using a strong-English model
Dimensions Moderate is enough Blindly raising
Evaluation Use your own data Trusting only leaderboards
Popular Tags
Scroll to Top