File size: 5,451 Bytes
eba354f
 
 
 
 
 
 
 
c177255
6933457
c177255
6933457
 
 
 
 
 
284ec80
 
57c29e1
c177255
284ec80
57c29e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6933457
 
 
 
7dde1ca
 
 
 
 
 
 
 
 
 
085bad3
7dde1ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6933457
 
84f2c49
6933457
 
 
 
 
 
3f14f3b
c177255
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
---
title: README
emoji: ❤️
colorFrom: red
colorTo: red
sdk: static
pinned: false
---
SentenceTransformers 🤗 is a Python framework for using and training state-of-the-art embedding and reranker models. It can be used to compute embeddings from text, images, audio, or video using Sentence Transformer models ([quickstart](https://sbert.net/docs/quickstart.html#sentence-transformer)), to calculate similarity scores using Cross-Encoder (a.k.a. reranker) models ([quickstart](https://sbert.net/docs/quickstart.html#cross-encoder)), or to generate sparse embeddings using Sparse Encoder models ([quickstart](https://sbert.net/docs/quickstart.html#sparse-encoder)). 

Install the [Sentence Transformers](https://sbert.net/docs/installation.html) library.
```
pip install -U sentence-transformers
```

The usage is as simple as:
```python
from sentence_transformers import SentenceTransformer

# 1. Load a pretrained Sentence Transformer model
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")

# The sentences to encode
sentences = [
    "The weather is lovely today.",
    "It's so sunny outside!",
    "He drove to the stadium.",
]

# 2. Calculate embeddings by calling model.encode()
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

# 3. Calculate the embedding similarities
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6660, 0.1046],
#         [0.6660, 1.0000, 0.1411],
#         [0.1046, 0.1411, 1.0000]])
```

Hugging Face makes it easy to collaboratively build and showcase your [Sentence Transformers](https://www.sbert.net/) models! You can collaborate with your organization, upload and showcase your own models in your profile ❤️

<div class="grid lg:grid-cols-3 gap-x-4 gap-y-7">
<a href="https://www.sbert.net/" class="block overflow-hidden group">
   <div
      class="w-full h-40 object-cover mb-2 rounded-lg flex items-center justify-center bg-[#FA8072]"
      >
      <img alt="" src="https://huggingface.co/spaces/sentence-transformers/README/resolve/main/sbertLogo.png" class="w-40" />
   </div>
   <div class="underline">Documentation</div>
</a>
<a
   href="https://sbert.net/docs/package_reference/SentenceTransformer.html#sentence_transformers.SentenceTransformer.push_to_hub"
   class="block overflow-hidden group"
   >
   <div
      class="w-full h-40 mb-2 bg-gray-900 group-hover:bg-gray-850 rounded-lg flex items-start justify-start overflow-hidden"
      >
      <img
         alt=""
         src="https://huggingface.co/spaces/sentence-transformers/README/resolve/main/push-to-hub.png"
         class="w-full h-40 object-cover overflow-hidden"
         />
   </div>
   <div class="underline">Push your Sentence Transformers models to the Hub ❤️ </div>
</a>
<a
   href="https://huggingface.co/models?library=sentence-transformers&sort=downloads"
   class="block overflow-hidden group"
   >
   <div
      class="w-full h-40 mb-2 bg-gray-900 group-hover:bg-gray-850 rounded-lg flex items-start justify-start overflow-hidden"
      >
      <img
         alt=""
         src="https://huggingface.co/spaces/sentence-transformers/README/resolve/main/sbert-hf.png"
         class="w-full h-40 object-cover overflow-hidden"
         />
   </div>
   <div class="underline">Find all Sentence Transformers models on the 🤗 Hub</div>
</a>
</div>

To upload your Sentence Transformers models to the Hugging Face Hub, log in with `huggingface-cli login` and use the [`push_to_hub`](https://sbert.net/docs/package_reference/SentenceTransformer.html#sentence_transformers.SentenceTransformer.push_to_hub) method within the Sentence Transformers library.
```python
from sentence_transformers import SentenceTransformer

# Load or train a model
model = SentenceTransformer(...)
# Push to Hub
model.push_to_hub("my_new_model")
```

## Learn more

**Training guides:**
- [Training and Finetuning Embedding Models with Sentence Transformers](https://huggingface.co/blog/train-sentence-transformers): end-to-end training of bi-encoder embedding models.
- [Training and Finetuning Reranker Models with Sentence Transformers](https://huggingface.co/blog/train-reranker): training Cross Encoder models for the second stage of retrieve-and-rerank pipelines.
- [Training and Finetuning Sparse Embedding Models with Sentence Transformers](https://huggingface.co/blog/train-sparse-encoder): training SPLADE and other sparse encoders.

**Multimodal:**
- [Multimodal Embedding & Reranker Models with Sentence Transformers](https://huggingface.co/blog/multimodal-sentence-transformers): using text, image, audio, and video models through a single API.
- [Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers](https://huggingface.co/blog/train-multimodal-sentence-transformers): training multimodal models, with a Visual Document Retrieval walkthrough.

**Efficiency techniques:**
- [🪆 Introduction to Matryoshka Embedding Models](https://huggingface.co/blog/matryoshka): variable-size embeddings that can be truncated with minimal quality loss.
- [Train 400x faster Static Embedding Models with Sentence Transformers](https://huggingface.co/blog/static-embeddings): CPU-friendly embedding models without attention.
- [Binary and Scalar Embedding Quantization for Significantly Faster & Cheaper Retrieval](https://huggingface.co/blog/embedding-quantization): post-training compression of embedding vectors.