alt.freeweights.embed / e5-base-unsupervised
From: intfloat <huggingface.co/intfloat>Newsgroups: alt.freeweights.embedSubject:

e5-base-unsupervised

Date: 2026-11-14Commit: 6003a5bSigned: 2DC28CC7B26A283B ✓

Sentence similarity model with 109M parameters. Safetensors weights, 877 MB in all. Published by intfloat under MIT.

109M params877MBe5-base-unsupervisedsafetensorspermissive
FactsParams109MSize877 MBFormatssafetensorsTasksentence similarityLicenseMITFrom sourcepermissive
$ fw get intfloat/e5-base-unsupervised
# manifest sha256 1b7e24874257… · 877 MB · 12 files
$ fw verify ./e5-base-unsupervised intfloat/e5-base-unsupervised
From sourceHosted (signed)intfloat/e5-base-unsupervisedLast check: 2026-11-14 21:08 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Evaluate with

Overview

Size
877 MB
Weights
438 MB (safetensors)
Parameters
109M
Formats
safetensors
Task
sentence similarity
License
MIT (permissive)
Files
12, each with a sha256
Publisher
intfloat
Added
2026-11-14
Section
alt.freeweights.embed
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:08 UTCpassed

Model card

From the publisher at commit 6003a5b. Shown as plain text with links; images open at the publisher.

E5-base-unsupervised#

This model is similar to e5-base but without supervised fine-tuning.

Text Embeddings by Weakly-Supervised Contrastive Pre-training. Liang Wang, Nan Yang, Xiaolong Huang, Binxing Jiao, Linjun Yang, Daxin Jiang, Rangan Majumder, Furu Wei, arXiv 2022

This model has 12 layers and the embedding size is 768.

Usage#

Below is an example to encode queries and passages from the MS-MARCO passage ranking dataset.

import torch.nn.functional as F

from torch import Tensor
from transformers import AutoTokenizer, AutoModel


def average_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
    return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]


# Each input text should start with "query: " or "passage: ".
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = ['query: how much protein should a female eat',
               'query: summit define',
               "passage: As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
               "passage: Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments."]

tokenizer = AutoTokenizer.from_pretrained('intfloat/e5-base-unsupervised')
model = AutoModel.from_pretrained('intfloat/e5-base-unsupervised')

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')

outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())

Training Details#

Please refer to our paper at https://arxiv.org/pdf/2212.03533.pdf.

Benchmark Evaluation#

Check out unilm/e5 to reproduce evaluation results on the BEIR and MTEB benchmark.

Support for Sentence Transformers#

Below is an example for usage with sentence_transformers.

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('intfloat/e5-base-unsupervised')
input_texts = [
    'query: how much protein should a female eat',
    'query: summit define',
    "passage: As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
    "passage: Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments."
]
embeddings = model.encode(input_texts, normalize_embeddings=True)

Package requirements

pip install sentence_transformers~=2.2.2

Contributors: michaelfeil

FAQ#

1. Do I need to add the prefix "query: " and "passage: " to input texts?

Yes, this is how the model is trained, otherwise you will see a performance degradation.

Here are some rules of thumb:

  • Use "query: " and "passage: " correspondingly for asymmetric tasks such as passage retrieval in open QA, ad-hoc information retrieval.
  • Use "query: " prefix for symmetric tasks such as semantic similarity, paraphrase retrieval.
  • Use "query: " prefix if you want to use embeddings as features, such as linear probing classification, clustering

2. Why are my reproduced results slightly different from reported in the model card?

Different versions of transformers and pytorch could cause negligible but non-zero performance differences.

Citation#

If you find our paper or models helpful, please consider cite as follows:

@article{wang2022text,
  title={Text Embeddings by Weakly-Supervised Contrastive Pre-training},
  author={Wang, Liang and Yang, Nan and Huang, Xiaolong and Jiao, Binxing and Yang, Linjun and Jiang, Daxin and Majumder, Rangan and Wei, Furu},
  journal={arXiv preprint arXiv:2212.03533},
  year={2022}
}

Limitations#

This model only works for English texts. Long texts will be truncated to at most 512 tokens.

Files

12 files · 877 MBWeights 438 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 12 files with their sha256
FileSizesha256
.gitattributes1.48 KBdb7c0371f46f0840b8f25794c1e3321c9b5820a8cb6ba9694a46fc64b8fae5a6
1_Pooling/config.json200 Bf586ab6c734af7b8d14d898bfa7faa886f23b46f86dd1730514309893af13d75
README.md5.09 KB58ff018a274dfdba791e9eb35c5bbad7194104985f9693255d820ba76f1a1c7a
config.json700 B78f3154c2ca7ecadc71dd9214947e9ae988fe50f16245f6f7a69c37694073f37
model.safetensors438 MB6143ceda9118dd57e0bb0ce20f44e4870dec87fc068a3d25b679dc6e41bcb58d
modules.json387 Bc6e29747481e8b5dd2b58401966aeac910de39092f90cda9a704b1545f902b04
pytorch_model.bin438 MBa23972e3eff9a91b42b0f5b86b6ac45dd30c0ca18edcb51a21e294783e3e5c97
sentence_bert_config.json57 B948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529
special_tokens_map.json112 B303df45a03609e4ead04bc3dc1536d0ab19b5358db685b6f3da123d05ec200e3
tokenizer.json466 KB5fd1c882abbd30517dced455a2c9768945ec726b96727927e4959348d9de550b
tokenizer_config.json363 B1b4a05902a85546a05884413c20ae50d5e322d8313659b2c88ab3ef232bdb594
vocab.txt232 KB07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
6003a5b7ce pinned now manifest updated, same commit2026-11-14 21:08 UTC12 files · 877 MB
6003a5b7ce2026-11-14 21:08 UTC12 files · 877 MB

Use it

$ fw get intfloat/e5-base-unsupervised
# manifest sha256 1b7e24874257… · 877 MB · 12 files
$ fw verify ./e5-base-unsupervised intfloat/e5-base-unsupervised
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/intfloat/e5-base-unsupervised.json --dir ./e5-base-unsupervised $ python3 fw.py verify ./e5-base-unsupervised ./intfloat__e5-base-unsupervised.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download intfloat/e5-base-unsupervised --revision 6003a5b7ce770b0549203e41115b9fc683f16dad --local-dir ./e5-base-unsupervised
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModel, AutoTokenizer tok = AutoTokenizer.from_pretrained("intfloat/e5-base-unsupervised", revision="6003a5b7ce770b0549203e41115b9fc683f16dad") model = AutoModel.from_pretrained("intfloat/e5-base-unsupervised", revision="6003a5b7ce770b0549203e41115b9fc683f16dad", device_map="auto")
sentence-transformersEmbed text with sentence-transformers.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from sentence_transformers import SentenceTransformer model = SentenceTransformer("intfloat/e5-base-unsupervised", revision="6003a5b7ce770b0549203e41115b9fc683f16dad") vectors = model.encode(["Hello"])

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
58ff018a274dfdba791e9eb35c5bbad7194104985f9693255d820ba76f1a1c7a
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: intfloat <huggingface.co/intfloat>Newsgroups: alt.freeweights.embedSubject: e5-base-unsupervisedDate: 2026-11-14Commit: 6003a5bSigned: 2DC28CC7B26A283B ✓
Upstream
intfloat/e5-base-unsupervised
Pinned commit
6003a5b7ce770b0549203e41115b9fc683f16dad
Manifest
e5-base-unsupervised.json · .minisig
Manifest sha256
1b7e24874257fb8a9884868c47930f97ab9ce0162b7e5d75275913f032d9464f
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:08 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/intfloat/e5-base-unsupervised.json $ curl -O https://freeweights.allternit.com/manifests/intfloat/e5-base-unsupervised.json.minisig $ minisign -Vm e5-base-unsupervised.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download intfloat/e5-base-unsupervised
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. e5-base-unsupervised.json. Provenance. Takedown history: none.
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: all-MiniLM-L6-v1
From: unsloth <huggingface.co/unsloth>Subject: all-MiniLM-L6-v2
From: mlx-community <huggingface.co/mlx-community>Subject: all-MiniLM-L6-v2-4bit
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: all-mpnet-base-v1
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: allenai-specter
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: bert-base-nli-max-tokens