Sentence Similarity
sentence-transformers
PyTorch
ONNX
Safetensors
Transformers
Transformers.js
English
nomic_bert
feature-extraction
mteb
custom_code
Eval Results (legacy)
text-embeddings-inference
Instructions to use nomic-ai/nomic-embed-text-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use nomic-ai/nomic-embed-text-v1 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("nomic-ai/nomic-embed-text-v1", trust_remote_code=True) sentences = [ "That is a happy person", "That is a happy dog", "That is a very happy person", "Today is a sunny day" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Transformers
How to use nomic-ai/nomic-embed-text-v1 with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("nomic-ai/nomic-embed-text-v1", trust_remote_code=True) model = AutoModel.from_pretrained("nomic-ai/nomic-embed-text-v1", trust_remote_code=True, device_map="auto") - Transformers.js
How to use nomic-ai/nomic-embed-text-v1 with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('sentence-similarity', 'nomic-ai/nomic-embed-text-v1'); - Notebooks
- Google Colab
- Kaggle
update readme
Browse files
README.md
CHANGED
|
@@ -2633,6 +2633,8 @@ new_version: nomic-ai/nomic-embed-text-v1.5
|
|
| 2633 |
|
| 2634 |
For example, if you are implementing a RAG application, you embed your documents as `search_document: <text here>` and embed your user queries as `search_query: <text here>`.
|
| 2635 |
|
|
|
|
|
|
|
| 2636 |
## Task instruction prefixes
|
| 2637 |
|
| 2638 |
### `search_document`
|
|
@@ -2644,7 +2646,7 @@ This prefix is used for embedding texts as documents, for example as documents f
|
|
| 2644 |
```python
|
| 2645 |
from sentence_transformers import SentenceTransformer
|
| 2646 |
|
| 2647 |
-
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1"
|
| 2648 |
sentences = ['search_document: TSNE is a dimensionality reduction algorithm created by Laurens van Der Maaten']
|
| 2649 |
embeddings = model.encode(sentences)
|
| 2650 |
print(embeddings)
|
|
@@ -2659,7 +2661,7 @@ This prefix is used for embedding texts as questions that documents from a datas
|
|
| 2659 |
```python
|
| 2660 |
from sentence_transformers import SentenceTransformer
|
| 2661 |
|
| 2662 |
-
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1"
|
| 2663 |
sentences = ['search_query: Who is Laurens van Der Maaten?']
|
| 2664 |
embeddings = model.encode(sentences)
|
| 2665 |
print(embeddings)
|
|
@@ -2674,7 +2676,7 @@ This prefix is used for embedding texts in order to group them into clusters, di
|
|
| 2674 |
```python
|
| 2675 |
from sentence_transformers import SentenceTransformer
|
| 2676 |
|
| 2677 |
-
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1"
|
| 2678 |
sentences = ['clustering: the quick brown fox']
|
| 2679 |
embeddings = model.encode(sentences)
|
| 2680 |
print(embeddings)
|
|
@@ -2689,7 +2691,7 @@ This prefix is used for embedding texts into vectors that will be used as featur
|
|
| 2689 |
```python
|
| 2690 |
from sentence_transformers import SentenceTransformer
|
| 2691 |
|
| 2692 |
-
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1"
|
| 2693 |
sentences = ['classification: the quick brown fox']
|
| 2694 |
embeddings = model.encode(sentences)
|
| 2695 |
print(embeddings)
|
|
@@ -2699,7 +2701,7 @@ print(embeddings)
|
|
| 2699 |
```python
|
| 2700 |
from sentence_transformers import SentenceTransformer
|
| 2701 |
|
| 2702 |
-
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1"
|
| 2703 |
sentences = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?']
|
| 2704 |
embeddings = model.encode(sentences)
|
| 2705 |
print(embeddings)
|
|
@@ -2720,7 +2722,7 @@ def mean_pooling(model_output, attention_mask):
|
|
| 2720 |
sentences = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?']
|
| 2721 |
|
| 2722 |
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
|
| 2723 |
-
model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1'
|
| 2724 |
model.eval()
|
| 2725 |
|
| 2726 |
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
|
|
@@ -2740,8 +2742,9 @@ The model natively supports scaling of the sequence length past 2048 tokens. To
|
|
| 2740 |
+ tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased', model_max_length=8192)
|
| 2741 |
|
| 2742 |
|
| 2743 |
-
- model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1'
|
| 2744 |
-
+
|
|
|
|
| 2745 |
```
|
| 2746 |
|
| 2747 |
### Transformers.js
|
|
|
|
| 2633 |
|
| 2634 |
For example, if you are implementing a RAG application, you embed your documents as `search_document: <text here>` and embed your user queries as `search_query: <text here>`.
|
| 2635 |
|
| 2636 |
+
**Notice**: From transformers v5.5.0 and sentence transformers v5.3.0, `trust_remote_code=True` will no longer be necessary. This will only be possible with the text-only series as of now.
|
| 2637 |
+
|
| 2638 |
## Task instruction prefixes
|
| 2639 |
|
| 2640 |
### `search_document`
|
|
|
|
| 2646 |
```python
|
| 2647 |
from sentence_transformers import SentenceTransformer
|
| 2648 |
|
| 2649 |
+
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1")
|
| 2650 |
sentences = ['search_document: TSNE is a dimensionality reduction algorithm created by Laurens van Der Maaten']
|
| 2651 |
embeddings = model.encode(sentences)
|
| 2652 |
print(embeddings)
|
|
|
|
| 2661 |
```python
|
| 2662 |
from sentence_transformers import SentenceTransformer
|
| 2663 |
|
| 2664 |
+
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1")
|
| 2665 |
sentences = ['search_query: Who is Laurens van Der Maaten?']
|
| 2666 |
embeddings = model.encode(sentences)
|
| 2667 |
print(embeddings)
|
|
|
|
| 2676 |
```python
|
| 2677 |
from sentence_transformers import SentenceTransformer
|
| 2678 |
|
| 2679 |
+
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1")
|
| 2680 |
sentences = ['clustering: the quick brown fox']
|
| 2681 |
embeddings = model.encode(sentences)
|
| 2682 |
print(embeddings)
|
|
|
|
| 2691 |
```python
|
| 2692 |
from sentence_transformers import SentenceTransformer
|
| 2693 |
|
| 2694 |
+
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1")
|
| 2695 |
sentences = ['classification: the quick brown fox']
|
| 2696 |
embeddings = model.encode(sentences)
|
| 2697 |
print(embeddings)
|
|
|
|
| 2701 |
```python
|
| 2702 |
from sentence_transformers import SentenceTransformer
|
| 2703 |
|
| 2704 |
+
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1")
|
| 2705 |
sentences = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?']
|
| 2706 |
embeddings = model.encode(sentences)
|
| 2707 |
print(embeddings)
|
|
|
|
| 2722 |
sentences = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?']
|
| 2723 |
|
| 2724 |
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
|
| 2725 |
+
model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1')
|
| 2726 |
model.eval()
|
| 2727 |
|
| 2728 |
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
|
|
|
|
| 2742 |
+ tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased', model_max_length=8192)
|
| 2743 |
|
| 2744 |
|
| 2745 |
+
- model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1')
|
| 2746 |
+
+ rope_parameters = {"rope_theta": 1000.0, "rope_type": "dynamic", "factor": 2.0}
|
| 2747 |
+
+ model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1', rope_parameters=rope_parameters)
|
| 2748 |
```
|
| 2749 |
|
| 2750 |
### Transformers.js
|