Upload README.md
Browse files
README.md
CHANGED
|
@@ -96,12 +96,12 @@ for i, query in enumerate(queries):
|
|
| 96 |
print(f" Similarity: {scores[i, j]:.4f} | Document {j}: {doc[:80]}...")
|
| 97 |
|
| 98 |
# Query: What is machine learning?
|
| 99 |
-
# Similarity: 0.
|
| 100 |
# Similarity: 0.4598 | Document 1: Neural networks are trained ...
|
| 101 |
#
|
| 102 |
# Query: How does neural network training work?
|
| 103 |
-
# Similarity: 0.
|
| 104 |
-
# Similarity: 0.
|
| 105 |
```
|
| 106 |
|
| 107 |
### Transformers Usage
|
|
@@ -171,8 +171,8 @@ with torch.inference_mode():
|
|
| 171 |
similarities = query_embeddings @ document_embeddings.T
|
| 172 |
print(f"Similarities:\n{similarities}")
|
| 173 |
# Similarities:
|
| 174 |
-
# tensor([[0.
|
| 175 |
-
# [0.
|
| 176 |
``` -->
|
| 177 |
|
| 178 |
### Asymmetric Retrieval Setup
|
|
@@ -180,13 +180,13 @@ print(f"Similarities:\n{similarities}")
|
|
| 180 |
`mdbr-leaf-ir` is *aligned* to [`snowflake-arctic-embed-m-v1.5`](https://huggingface.co/Snowflake/snowflake-arctic-embed-m-v1.5), the model it has been distilled from, making the asymmetric system below possible:
|
| 181 |
|
| 182 |
```python
|
| 183 |
-
# Use a larger model for document encoding (one-time, at index time)
|
| 184 |
-
doc_model = SentenceTransformer("Snowflake/snowflake-arctic-embed-m-v1.5")
|
| 185 |
-
document_embeddings = doc_model.encode(documents)
|
| 186 |
-
|
| 187 |
# Use mdbr-leaf-ir for query encoding (real-time, low latency)
|
| 188 |
query_model = SentenceTransformer("MongoDB/mdbr-leaf-ir")
|
| 189 |
query_embeddings = query_model.encode(queries, prompt_name="query")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 190 |
|
| 191 |
# Compute similarities
|
| 192 |
scores = query_model.similarity(query_embeddings, document_embeddings)
|
|
@@ -215,8 +215,8 @@ print(f"* Similarities:\n\t{similarities}")
|
|
| 215 |
# After MRL:
|
| 216 |
# * Embeddings dimension: 256
|
| 217 |
# * Similarities:
|
| 218 |
-
# tensor([[0.
|
| 219 |
-
# [0.
|
| 220 |
```
|
| 221 |
|
| 222 |
### Vector Quantization
|
|
@@ -248,8 +248,8 @@ print(f"* Similarities:\n{similarities}")
|
|
| 248 |
# After quantization:
|
| 249 |
# * Embeddings type: int8
|
| 250 |
# * Similarities:
|
| 251 |
-
# [[
|
| 252 |
-
# [
|
| 253 |
```
|
| 254 |
|
| 255 |
## Evaluation
|
|
|
|
| 96 |
print(f" Similarity: {scores[i, j]:.4f} | Document {j}: {doc[:80]}...")
|
| 97 |
|
| 98 |
# Query: What is machine learning?
|
| 99 |
+
# Similarity: 0.6857 | Document 0: Machine learning is a subset of ...
|
| 100 |
# Similarity: 0.4598 | Document 1: Neural networks are trained ...
|
| 101 |
#
|
| 102 |
# Query: How does neural network training work?
|
| 103 |
+
# Similarity: 0.4238 | Document 0: Machine learning is a subset of ...
|
| 104 |
+
# Similarity: 0.5723 | Document 1: Neural networks are trained ...
|
| 105 |
```
|
| 106 |
|
| 107 |
### Transformers Usage
|
|
|
|
| 171 |
similarities = query_embeddings @ document_embeddings.T
|
| 172 |
print(f"Similarities:\n{similarities}")
|
| 173 |
# Similarities:
|
| 174 |
+
# tensor([[0.6857, 0.4598],
|
| 175 |
+
# [0.4238, 0.5723]])
|
| 176 |
``` -->
|
| 177 |
|
| 178 |
### Asymmetric Retrieval Setup
|
|
|
|
| 180 |
`mdbr-leaf-ir` is *aligned* to [`snowflake-arctic-embed-m-v1.5`](https://huggingface.co/Snowflake/snowflake-arctic-embed-m-v1.5), the model it has been distilled from, making the asymmetric system below possible:
|
| 181 |
|
| 182 |
```python
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
# Use mdbr-leaf-ir for query encoding (real-time, low latency)
|
| 184 |
query_model = SentenceTransformer("MongoDB/mdbr-leaf-ir")
|
| 185 |
query_embeddings = query_model.encode(queries, prompt_name="query")
|
| 186 |
+
|
| 187 |
+
# Use a larger model for document encoding (one-time, at index time)
|
| 188 |
+
doc_model = SentenceTransformer("Snowflake/snowflake-arctic-embed-m-v1.5")
|
| 189 |
+
document_embeddings = doc_model.encode(documents)
|
| 190 |
|
| 191 |
# Compute similarities
|
| 192 |
scores = query_model.similarity(query_embeddings, document_embeddings)
|
|
|
|
| 215 |
# After MRL:
|
| 216 |
# * Embeddings dimension: 256
|
| 217 |
# * Similarities:
|
| 218 |
+
# tensor([[0.7136, 0.4989],
|
| 219 |
+
# [0.4567, 0.6022]])
|
| 220 |
```
|
| 221 |
|
| 222 |
### Vector Quantization
|
|
|
|
| 248 |
# After quantization:
|
| 249 |
# * Embeddings type: int8
|
| 250 |
# * Similarities:
|
| 251 |
+
# [[118022 79111]
|
| 252 |
+
# [ 72961 98333]]
|
| 253 |
```
|
| 254 |
|
| 255 |
## Evaluation
|