alt.freeweights.embed / snowflake-arctic-embed-m
From: Snowflake <huggingface.co/Snowflake>Newsgroups: alt.freeweights.embedSubject:

snowflake-arctic-embed-m

Date: 2026-11-14Commit: fc74610Signed: 2DC28CC7B26A283B ✓

Sentence similarity model with 109M parameters. Onnx and safetensors weights, 1.71 GB in all. Published by Snowflake under Apache-2.0.

109M params1.71GBsnowflake-arctic-embed-monnx safetensorspermissive
FactsParams109MSize1.71 GBFormatsonnx, safetensorsTasksentence similarityLicenseApache-2.0From sourcepermissive
$ fw get Snowflake/snowflake-arctic-embed-m
# manifest sha256 ce6b39436646… · 1.71 GB · 19 files
$ fw verify ./snowflake-arctic-embed-m Snowflake/snowflake-arctic-embed-m
From sourceHosted (signed)Snowflake/snowflake-arctic-embed-mLast 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
1.71 GB
Weights
436 MB (safetensors)
Parameters
109M
Formats
onnx, safetensors
Task
sentence similarity
License
Apache-2.0 (permissive)
Files
19, each with a sha256
Publisher
Snowflake
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 fc74610. Shown as plain text with links; images open at the publisher.

Snowflake's Arctic-embed-m#

News | Models | Usage | Evaluation | Contact | FAQ License | Acknowledgement

News#

12/04/2024: Release of snowflake-arctic-embed-l-v2.0 and snowflake-arctic-embed-m-v2.0 our newest models with multilingual workloads in mind. These models outperform prior versions of Arctic Embed and we suggest these replace prior versions!

07/26/2024: Release preprint [[2407.18887] Embedding And Clustering Your Data Can Improve Contrastive Pretraining](https://arxiv.org/abs/2407.18887) on arXiv.

07/18/2024: Release of snowflake-arctic-embed-m-v1.5, capable of producing highly compressible embedding vectors that preserve quality even when squished as small as 128 bytes per vector. Details about the development of this model are available in the launch post on the Snowflake engineering blog.

05/10/2024: Release the technical report on Arctic Embed

04/16/2024: Release the snowflake-arctic-embed family of text embedding models. The releases are state-of-the-art for Retrieval quality at each of their representative size profiles. Technical Report is coming shortly. For more details, please refer to our Github: Arctic-Text-Embed.

Models#

snowflake-arctic-embed is a suite of text embedding models that focuses on creating high-quality retrieval models optimized for performance.

The snowflake-arctic-embedding models achieve state-of-the-art performance on the MTEB/BEIR leaderboard for each of their size variants. Evaluation is performed using these scripts. As shown below, each class of model size achieves SOTA retrieval accuracy compared to other top models.

The models are trained by leveraging existing open-source text representation models, such as bert-base-uncased, and are trained in a multi-stage pipeline to optimize their retrieval performance. First, the models are trained with large batches of query-document pairs where negatives are derived in-batch—pretraining leverages about 400m samples of a mix of public datasets and proprietary web search data. Following pretraining models are further optimized with long training on a smaller dataset (about 1m samples) of triplets of query, positive document, and negative document derived from hard harmful mining. Mining of the negatives and data curation is crucial to retrieval accuracy. A detailed technical report can be found here.

NameMTEB Retrieval Score (NDCG @ 10)Parameters (Millions)Embedding Dimension
snowflake-arctic-embed-xs50.1522384
snowflake-arctic-embed-s51.9833384
snowflake-arctic-embed-m54.90110768
snowflake-arctic-embed-m-long54.83137768
snowflake-arctic-embed-l55.983351024

Aside from being great open-source models, the largest model, snowflake-arctic-embed-l, can serve as a natural replacement for closed-source embedding, as shown below.

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-l55.98
Google-gecko-text-embedding55.7
text-embedding-3-large55.44
Cohere-embed-english-v3.055.00
bge-large-en-v1.554.29
snowflake-arctic-embed-xs#

This tiny model packs quite the punch. Based on the all-MiniLM-L6-v2 model with only 22m parameters and 384 dimensions, this model should meet even the strictest latency/TCO budgets. Despite its size, its retrieval accuracy is closer to that of models with 100m paramers.

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-xs50.15
GIST-all-MiniLM-L6-v245.12
gte-tiny44.92
all-MiniLM-L6-v241.95
bge-micro-v242.56
snowflake-arctic-embed-s#

Based on the intfloat/e5-small-unsupervised model, this small model does not trade off retrieval accuracy for its small size. With only 33m parameters and 384 dimensions, this model should easily allow scaling to large datasets.

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-s51.98
bge-small-en-v1.551.68
Cohere-embed-english-light-v3.051.34
text-embedding-3-small51.08
e5-small-v249.04
snowflake-arctic-embed-m#

Based on the intfloat/e5-base-unsupervised model, this medium model is the workhorse that provides the best retrieval performance without slowing down inference.

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-m54.90
bge-base-en-v1.553.25
nomic-embed-text-v1.553.25
GIST-Embedding-v052.31
gte-base52.31
snowflake-arctic-embed-m-long#

Based on the nomic-ai/nomic-embed-text-v1-unsupervised model, this long-context variant of our medium-sized model is perfect for workloads that can be constrained by the regular 512 token context of our other models. Without the use of RPE, this model supports up to 2048 tokens. With RPE, it can scale to 8192!

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-m-long54.83
nomic-embed-text-v1.553.01
nomic-embed-text-v152.81
snowflake-arctic-embed-l#

Based on the intfloat/e5-large-unsupervised model, this large model is a direct drop-in for closed APIs and delivers the most accurate retrieval experience.

Model NameMTEB Retrieval Score (NDCG @ 10)
snowflake-arctic-embed-l55.98
UAE-Large-V154.66
bge-large-en-v1.554.29
mxbai-embed-large-v154.39
e5-Large-v250.56

Usage#

Using Sentence Transformers#

You can use the sentence-transformers package to use an snowflake-arctic-embed model, as shown below.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("Snowflake/snowflake-arctic-embed-m")

queries = ['what is snowflake?', 'Where can I get the best tacos?']
documents = ['The Data Cloud!', 'Mexico City of Course!']

query_embeddings = model.encode(queries, prompt_name="query")
document_embeddings = model.encode(documents)

scores = query_embeddings @ document_embeddings.T
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)
    # Output passages & scores
    print("Query:", query)
    for document, score in doc_score_pairs:
        print(score, document)

Produces:

Query: what is snowflake?
0.2747492 The Data Cloud!
0.19998045 Mexico City of Course!
Query: Where can I get the best tacos?
0.29974818 Mexico City of Course!
0.2344071 The Data Cloud!
Using Huggingface transformers#

You can use the transformers package to use an snowflake-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

tokenizer = AutoTokenizer.from_pretrained('Snowflake/snowflake-arctic-embed-m')
model = AutoModel.from_pretrained('Snowflake/snowflake-arctic-embed-m', add_pooling_layer=False)
model.eval()

query_prefix = 'Represent this sentence for searching relevant passages: '
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=512)

documents = ['The Data Cloud!', 'Mexico City of Course!']
document_tokens =  tokenizer(documents, padding=True, truncation=True, return_tensors='pt', max_length=512)

# Compute token embeddings
with torch.no_grad():
    query_embeddings = model(**query_tokens)[0][:, 0]
    document_embeddings = model(**document_tokens)[0][:, 0]


# normalize embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, p=2, dim=1)
document_embeddings = torch.nn.functional.normalize(document_embeddings, p=2, dim=1)

scores = torch.mm(query_embeddings, document_embeddings.transpose(0, 1))
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)
    #Output passages & scores
    print("Query:", query)
    for document, score in doc_score_pairs:
        print(score, document)
Using Transformers.js#

If you haven't already, you can install the Transformers.js JavaScript library from NPM by running:

npm i @xenova/transformers

You can then use the model to compute embeddings as follows:

import { pipeline, dot } from '@xenova/transformers';

// Create feature extraction pipeline
const extractor = await pipeline('feature-extraction', 'Snowflake/snowflake-arctic-embed-m', {
    quantized: false, // Comment out this line to use the quantized version
});

// Generate sentence embeddings
const sentences = [
    'Represent this sentence for searching relevant passages: Where can I get the best tacos?',
    'The Data Cloud!',
    'Mexico City of Course!',
]
const output = await extractor(sentences, { normalize: true, pooling: 'cls' });

// Compute similarity scores
const [source_embeddings, ...document_embeddings ] = output.tolist();
const similarities = document_embeddings.map(x => dot(source_embeddings, x));
console.log(similarities); // [0.15664823859882132, 0.24481869975470627]

Using Infinity#

OpenAI compatible API deployment with Infinity and Docker.

docker run --gpus all -v $PWD/data:/app/.cache -p "7997":"7997" \
michaelf34/infinity:0.0.70 \
v2 --model-id Snowflake/snowflake-arctic-embed-m --dtype float16 --batch-size 32 --engine torch --port 7997

FAQ#

TBD

Contact#

Feel free to open an issue or pull request if you have any questions or suggestions about this project. You also can email Daniel Campos(daniel.campos@snowflake.com).

License#

Arctic is licensed under the Apache-2. The released models can be used for commercial purposes free of charge.

Acknowledgement#

We want to thank the open-source community, which has provided the great building blocks upon which we could make our models. We thank our modeling engineers, Danmei Xu, Luke Merrick, Gaurav Nuti, and Daniel Campos, for making these great models possible. We thank our leadership, Himabindu Pucha, Kelvin So, Vivek Raghunathan, and Sridhar Ramaswamy, for supporting this work. We also thank the open-source community for producing the great models we could build on top of and making these releases possible. Finally, we thank the researchers who created BEIR and MTEB benchmarks. It is largely thanks to their tireless work to define what better looks like that we could improve model performance.

Image: image

Files

19 files · 1.71 GBWeights 436 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 19 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
1_Pooling/config.json296 Bd02ebf56344d20f773449b15d0c10ee9a86a9178f3b3c9bfecb8b87d4350ce38
README.md85.5 KB5813aa53e5ba789d1e5f64904b0ec5ca529f981327b5417f6f88d4438cd31eb3
config.json738 B2e26193d0d00a8c709c379fd840bd6c41789b25add0d324d841d0788d61b7e0e
config_sentence_transformers.json252 B26a4caecbc808973e5b3b3a04484db1389078b0458254e4dd617ff361e2f378a
model.safetensors436 MB059905097862be303c51fc88d6976d27e3006ac59786cc750478043c4eb91b3a
modules.json349 B84e40c8e006c9b1d6c122e02cba9b02458120b5fb0c87b746c41e0207cf642cf
onnx/model.onnx436 MB564e6c65ee0c739a486702e9e3e9b33c3f697c19c34dbe886bce9eec497ce971
onnx/model_bnb4.onnx144 MBc6e8ef5f4d93b03c99da91e8b4d38bf5606db8118e344d465dae408b30107772
onnx/model_fp16.onnx218 MB7f8fcebda72ae4eec54769f42727c5c7484b271358d423bf610db7327093cb08
onnx/model_int8.onnx110 MBe46017484d369593d6bb830936fde2175ce21e1ba1ddf002f23e3212d87c824a
onnx/model_q4.onnx149 MBa1fa572089a82803eeb2b821b28edfe8414ae84b7cd91ddf552a1cae1095fb63
onnx/model_quantized.onnx110 MBe46017484d369593d6bb830936fde2175ce21e1ba1ddf002f23e3212d87c824a
onnx/model_uint8.onnx110 MB4cfc22160ddd52bac43697b6b84a4b29ea25a82db23841c27436dbddcfd5f88a
sentence_bert_config.json107 B4dfc17a899f3ea25b5c8e9034a1d0d9ebd96eca0868b015a89d1d748c38e4b2f
special_tokens_map.json695 B5d5b662e421ea9fac075174bb0688ee0d9431699900b90662acd44b2a350503a
tokenizer.json712 KB91f1def9b9391fdabe028cd3f3fcc4efd34e5d1f08c3bf2de513ebb5911a1854
tokenizer_config.json1.38 KB0e83e9d7206b3ade43f8f2aeef523cf5d5b4a25b67af21b273de21972c0f58b7
vocab.txt232 KB07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
fc74610d18 pinned now manifest updated, same commit2026-11-14 21:08 UTC19 files · 1.71 GB
fc74610d182026-11-14 21:08 UTC19 files · 1.71 GB

Use it

$ fw get Snowflake/snowflake-arctic-embed-m
# manifest sha256 ce6b39436646… · 1.71 GB · 19 files
$ fw verify ./snowflake-arctic-embed-m Snowflake/snowflake-arctic-embed-m
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/Snowflake/snowflake-arctic-embed-m.json --dir ./snowflake-arctic-embed-m $ python3 fw.py verify ./snowflake-arctic-embed-m ./Snowflake__snowflake-arctic-embed-m.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Snowflake/snowflake-arctic-embed-m --revision fc74610d18462d218e312aa986ec5c8a75a98152 --local-dir ./snowflake-arctic-embed-m
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModel, AutoTokenizer tok = AutoTokenizer.from_pretrained("Snowflake/snowflake-arctic-embed-m", revision="fc74610d18462d218e312aa986ec5c8a75a98152") model = AutoModel.from_pretrained("Snowflake/snowflake-arctic-embed-m", revision="fc74610d18462d218e312aa986ec5c8a75a98152", 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("Snowflake/snowflake-arctic-embed-m", revision="fc74610d18462d218e312aa986ec5c8a75a98152") vectors = model.encode(["Hello"])

License

Name
Apache License 2.0
Id
Apache-2.0
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
5813aa53e5ba789d1e5f64904b0ec5ca529f981327b5417f6f88d4438cd31eb3
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: Snowflake <huggingface.co/Snowflake>Newsgroups: alt.freeweights.embedSubject: snowflake-arctic-embed-mDate: 2026-11-14Commit: fc74610Signed: 2DC28CC7B26A283B ✓
Upstream
Snowflake/snowflake-arctic-embed-m
Pinned commit
fc74610d18462d218e312aa986ec5c8a75a98152
Manifest
snowflake-arctic-embed-m.json · .minisig
Manifest sha256
ce6b394366467bf5bd328f5ca8b29c50bc24ccc6d37d67949a8513c71bec05fe
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/Snowflake/snowflake-arctic-embed-m.json $ curl -O https://freeweights.allternit.com/manifests/Snowflake/snowflake-arctic-embed-m.json.minisig $ minisign -Vm snowflake-arctic-embed-m.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

1 model in the catalog name this one as their parent.

Fine-tunes
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Snowflake/snowflake-arctic-embed-m
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. snowflake-arctic-embed-m.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