Model reference · open weights
snowflake-arctic-embed-l is an open-weight embedding model from Snowflake. snowflake-arctic-embed-l-v2.0 (FP32) weighs 1.1 GB; the smallest configuration that runs it is RTX 3060 12 GB.
What it is
| Released by | Snowflake |
|---|---|
| Released | 2024-11-08 |
| Parameters | 568M |
| VRAM | 1.1 GB for the weights |
What it runs on
| Card | Runs | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| snowflake-arctic-embed-l-v2.0 (above) ↗ | 568M | FP32 | 1.1 GB | RTX 3060 12 GB |
| snowflake-arctic-embed-l ↗ | 334M | FP32 | 668 MB | RTX 3060 12 GB |
From the model card
Snowflake arctic-embed-l-v2.0 is the newest addition to the suite of embedding models Snowflake has released optimizing for retrieval performance and inference efficiency. Arctic Embed 2.0 introduces a new standard for multilingual embedding models, combining high-quality multilingual text retrieval without sacrificing performance in English. Released under the permissive Apache 2.0 license, Arctic Embed 2.0 is ideal for applications that demand reliable, enterprise-grade multilingual search and retrieval at scale.
Key Features:
Multilingual without compromise: Excels in English and non-English retrieval, outperforming leading open-source and proprietary models on benchmarks like MTEB Retrieval, CLEF, and MIRACL.
Inference efficiency: Its 303m non-embedding parameters inference is fast and efficient for any scale.
Compression-friendly: Achieves high-quality retrieval with embeddings as small as 128 bytes/vector using Matryoshka Representation Learning (MRL) and quantization-aware embedding training. Please note that like our v1.5 model, the MRL for this model is 256 dimensions, and high-quality 128-byte compression is achieved via 4-bit quantization (e.g. using a pq256x4fs fast-scan FAISS index or using the example code published alongside our 1.5 model).
Drop-In Replacement: arctic-embed-l-v2.0 builds on BAAI/bge-m3-retromae which allows direct drop-in inference replacement with any form of new libraries, kernels, inference engines etc.
Long Context Support: arctic-embed-l-v2.0 builds on BAAI/bge-m3-retromae which can support a context window of up to 8192 via the use of RoPE.
Unlike most other open-source models, Arctic-embed-l-v2.0 excels across English (via MTEB Retrieval) and multilingual (via MIRACL and CLEF). You no longer need to support models to empower high-quality English and multilingual retrieval. All numbers mentioned below are the average NDCG@10 across the dataset being discussed.
| Model Name | # params | # non-emb params | # dimensions | BEIR (15) | MIRACL (4) | CLEF (Focused) | CLEF (Full) |
|---|---|---|---|---|---|---|---|
| snowflake-arctic-l-v2.0 | 568M | 303M | 1024 | 55.6 | 55.8 | 52.9 | 54.3 |
| snowflake-arctic-m | 109M | 86M | 768 | 54.9 | 24.9 | 34.4 | 29.1 |
| snowflake-arctic-l | 335M | 303M | 1024 | 56.0 | 34.8 | 38.2 | 33.7 |
| me5 base | 560M | 303M | 1024 | 51.4 | 54.0 | 43.0 | 34.6 |
| bge-m3 (BAAI) | 568M | 303M | 1024 | 48.8 | 56.8 | 40.8 | 41.3 |
| gte (Alibaba) | 305M | 113M | 768 | 51.1 | 52.3 | 47.7 | 53.1 |
Aside from high-quality retrieval arctic delivers embeddings that are easily compressible. Leverage vector truncation via MRL to decrease vector size by 4x with less than 3% degredation in quality. Combine MRLed vectors with vector compression (Int4) to power retrieval in 128 bytes per doc.
| Model | BEIR (15) | Relative Performance | MIRACL (4) | Relative Performance | CLEF (5) | Relative Performance | CLEF (Full) | Relative Performance | |
|---|---|---|---|---|---|---|---|---|---|
| snowflake-arctic-l-v2.0 | 1024 | 55.6 | N/A | 55.8 | N/A | 52.9 | N/A | 54.3 | N/A |
| snowflake-arctic-l-v2.0 | 256 | 54.3 | -0.18% | 54.3 | -2.70% | 51.9 | -1.81% | 53.4 | -1.53% |
from sentence_transformers import SentenceTransformer
# Load the model
model_name = 'Snowflake/snowflake-arctic-embed-l-v2.0'
model = SentenceTransformer(model_name)
# Define the queries and documents
queries = ['what is snowflake?', 'Where can I get the best tacos?']
documents = ['The Data Cloud!', 'Mexico City of Course!']
# Compute embeddings: use `prompt_name="query"` to encode queries!
query_embeddings = model.encode(queries, prompt_name="query")
document_embeddings = model.encode(documents)
# Compute cosine similarity scores
scores = model.similarity(query_embeddings, document_embeddings)
# Output the results
for query, query_scores in zip(queries, scores):
doc_score_pairs = list(zip(documents, query_scores))
doc_score_pairs = sorted(doc_score_pairs, key=lambda x: x[1], reverse=True)
print("Query:", query)
for document, score in doc_score_pairs:
print(score, document)
You can use the transformers package to use Snowflake's arctic-embed model, as shown below. For optimal retrieval quality, use the CLS token to embed each text portion and use the query prefix below (just on the query).
import torch
from transformers import AutoModel, AutoTokenizer
model_name = 'Snowflake/snowflake-arctic-embed-l-v2.0'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name, add_pooling_layer=False)
model.eval()
query_prefix = 'query: '
queries = ['what is snowflake?', 'Where can I get the best tacos?']
queries_with_prefix = ["{}{}".format(query_prefix, i) for i in queries]
query_tokens = tokenizer(queries_with_prefix, padding=True, truncation=True, return_tensors='pt', max_length=8192)
documents = ['The Data Cloud!', 'Mexico City of Course!']
document_tokens = tokenizer(documents, padding=True, truncation=True, return_tensors='pt', max_length=8192)
# Compute token embeddings
with torch.no_grad():
query_embeddings = model(**query_tokens)[Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Benchmarks
As published on the model card: the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | accuracy | 67.039 |
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | f1 | 55.181 |
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | f1_weighted | 73.411 |
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | ap | 17.991 |
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | ap_weighted | 17.991 |
| Classification | MTEB AmazonCounterfactualClassification (en-ext) | main_score | 67.039 |
| Classification | MTEB AmazonCounterfactualClassification (en) | accuracy | 65.597 |
| Classification | MTEB AmazonCounterfactualClassification (en) | f1 | 60.244 |
| Classification | MTEB AmazonCounterfactualClassification (en) | f1_weighted | 68.998 |
| Classification | MTEB AmazonCounterfactualClassification (en) | ap | 29.762 |
| Classification | MTEB AmazonCounterfactualClassification (en) | ap_weighted | 29.762 |
| Classification | MTEB AmazonCounterfactualClassification (en) | main_score | 65.597 |
| Classification | MTEB AmazonPolarityClassification (default) | accuracy | 74.257 |
| Classification | MTEB AmazonPolarityClassification (default) | f1 | 74.029 |
| Classification | MTEB AmazonPolarityClassification (default) | f1_weighted | 74.029 |
| Classification | MTEB AmazonPolarityClassification (default) | ap | 68.760 |
| Classification | MTEB AmazonPolarityClassification (default) | ap_weighted | 68.760 |
| Classification | MTEB AmazonPolarityClassification (default) | main_score | 74.257 |
| Classification | MTEB AmazonReviewsClassification (en) | accuracy | 34.946 |
| Classification | MTEB AmazonReviewsClassification (en) | f1 | 34.285 |
| Classification | MTEB AmazonReviewsClassification (en) | f1_weighted | 34.285 |
| Classification | MTEB AmazonReviewsClassification (en) | main_score | 34.946 |
| Retrieval | MTEB ArguAna (default) | ndcg_at_1 | 33.286 |
| Retrieval | MTEB ArguAna (default) | ndcg_at_3 | 49.051 |