Releasing zeroentropy/zembed-1

In retrieval systems, embedding models determine the quality of your search.

However, SOTA embedding models are closed-source and proprietary. At ZeroEntropy, we've trained a SOTA 4B open-weight multilingual embedding model that outperforms every competitor we benchmarked, and we're launching it here on HuggingFace.

This model outperforms OpenAI text-embedding-large, Cohere Embed v4, gemini-embedding-001, and voyage-4-nano across finance, healthcare, legal, conversational, manufacturing, code, and STEM.

zembed-1 is distilled directly from our SOTA reranker zerank-2 using our zELO methodology, which models relevance scores as adjusted Elo ratings. Standard contrastive training on binary labels can't match this signal. See our blog post for details.

The model supports flexible dimension projections (2560, 1280, 640, 320, 160, 80, 40) and quantization down to binary, compressing a full 8 KB vector to under 128 bytes with a controlled accuracy trade-off. See our Technical Report (Coming soon!) for details on the projection method. zembed-1 is multilingual from the ground up, with over half the training data in non-English languages.

Since we're a small company, this model is only released under a non-commercial license. If you'd like a commercial license, please contact us at founders@zeroentropy.dev and we'll get you a license ASAP.

How to Use

from sentence_transformers import SentenceTransformer

# Initialize model
model = SentenceTransformer(
    "zeroentropy/zembed-1",
    trust_remote_code=True,
    model_kwargs={"torch_dtype": "bfloat16"},
)

# Define query and documents
query = "What is backpropagation?"
documents = [
    "Backpropagation is a fundamental algorithm for training neural networks by computing gradients.",
    "Gradient descent is used to optimize model parameters during the training process.",
    "Neural network training relies on efficient computation of derivatives through backpropagation.",
]

# Encode query and documents (uses task-specific prompts automatically)
query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
# (2560,) (3, 2560)

# Compute cosine similarities
similarities = model.similarity(query_embeddings, document_embeddings)
# tensor([[0.7525, 0.5670, 0.6835]])

The model can also be used through ZeroEntropy's /models/embed endpoint.

Evaluations

NDCG@10 scores between zembed-1 and competing embedding models, averaged across public and private benchmarks per domain. Full per-benchmark breakdown here.

Domain ZeroEntropy zembed-1 voyage-4-nano Qwen3 4B Cohere Embed v4 gemini-embed-001 jina-v5-small OpenAI Large bge-m3
Finance 0.4476 0.4227 0.3715 0.3670 0.3291 0.3576 0.3291 0.3085
Healthcare 0.6260 0.5356 0.5134 0.4750 0.5008 0.5132 0.5315 0.3620
Legal 0.6723 0.5957 0.5858 0.5894 0.6069 0.5716 0.5099 0.5207
Conversational 0.5385 0.4045 0.4034 0.4244 0.4247 0.4430 0.3988 0.3296
Manufacturing 0.5556 0.4857 0.4932 0.4919 0.4664 0.4725 0.4736 0.3736
Web Search 0.6165 0.5977 0.6914 0.7242 0.5881 0.6772 0.6750 0.6311
Code 0.6452 0.6415 0.6379 0.6277 0.6305 0.6354 0.6155 0.5584
STEM & Math 0.5283 0.5012 0.5219 0.4698 0.4840 0.3780 0.3905 0.3399
Enterprise 0.3750 0.3600 0.2935 0.2915 0.3224 0.3012 0.3307 0.2213
Average 0.5561 0.5050 0.5013 0.4957 0.4837 0.4833 0.4727 0.4050
Bar chart comparing zembed-1 NDCG@10 scores against competing embedding models across domains
Downloads last month
29
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for zeroentropy/zembed-1

Base model

Qwen/Qwen3-4B-Base
Finetuned
Qwen/Qwen3-4B
Finetuned
(483)
this model

Paper for zeroentropy/zembed-1