Model reference · open weights
marqo-chimera-arctic-bge-m is an open-weight embedding model from Marqo. marqo-chimera-arctic-bge-m (FP32) weighs 436 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the Marqo/marqo-chimera-arctic-bge-m model card, 2026-10-01
What it is
| Released by | Marqo |
|---|---|
| Released | 2024-09-06 |
| Parameters | 218M |
| VRAM | 436 MB 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 |
From the model card
This is a chimera model which concatenates embeddings from Snowflake/snowflake-arctic-embed-m-v1.5 and BAAI/bge-base-en-v1.5. This model produces an embedding with 1536 dimensions (768+768) and has a total of 218M parameters (109+109). Embeddings from each model are unit normalized prior to concatenation.
import torch
from torch.nn.functional import normalize
from transformers import AutoModel, AutoTokenizer
# Load the model and tokenizer.
tokenizer = AutoTokenizer.from_pretrained("Marqo/marqo-chimera-arctic-bge-m")
model = AutoModel.from_pretrained("Marqo/marqo-chimera-arctic-bge-m", trust_remote_code=True)
model.eval()
# Model constants.
query_prefix = 'Represent this sentence for searching relevant passages: '
# Your queries and docs.
queries = [
"What is vector search?",
"Where can I get the best pizza?"
]
documents = [
"Marqo is an end-to-end platform for embedding training and retrieval.",
"Definitely Naples! The birthplace of pizza, and it’s as authentic as it gets."
]
# Add query prefix and tokenize queries and docs.
queries_with_prefix = [f"{query_prefix}{q}" for q in queries]
query_tokens = tokenizer(queries_with_prefix, padding=True, truncation=True, return_tensors='pt', max_length=512)
document_tokens = tokenizer(documents, padding=True, truncation=True, return_tensors='pt', max_length=512)
# Use the model to generate text embeddings.
with torch.inference_mode():
query_embeddings = model(**query_tokens)
document_embeddings = model(**document_tokens)
# Remember to normalize embeddings.
query_embeddings = normalize(query_embeddings)
document_embeddings = normalize(document_embeddings)
# Scores via dotproduct.
scores = query_embeddings @ document_embeddings.T
# Pretty-print 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(f'Query: "{query}"')
for document, score in doc_score_pairs:
print(f'Score: {score:.4f} | Document: "{document}"')
print()
# Query: "What is vector search?"
# Score: 0.4997 | Document: "Marqo is an end-to-end platform for embedding training and retrieval."
# Score: 0.2509 | Document: "Definitely Naples! The birthplace of pizza, and it’s as authentic as it gets."
# Query: "Where can I get the best pizza?"
# Score: 0.7444 | Document: "Definitely Naples! The birthplace of pizza, and it’s as authentic as it gets."
# Score: 0.3303 | Document: "Marqo is an end-to-end platform for embedding training and retrieval."
Q: Do I need to prefix queries?
A: Yes, this model has the same rules for prefixing as its constituent models. Queries in asymmetric retrieval should be prefixed with "Represent this sentence for searching relevant passages: ".
Marqo is an end-to-end platform for training embeddings models and building vector search. Marqo is available as an open-source offering on our GitHub or as a managed cloud service on Marqo Cloud.
We want to acknowledge the original creators of the Snowflake/snowflake-arctic-embed-m-v1.5 and BAAI/bge-base-en-v1.5 models which are used to create this model.
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 |
|---|---|---|---|
| Retrieval | MTEB ArguAna (default) | main_score | 62.604 |
| Retrieval | MTEB ArguAna (default) | map_at_1 | 38.122 |
| Retrieval | MTEB ArguAna (default) | map_at_10 | 54.461 |
| Retrieval | MTEB ArguAna (default) | map_at_100 | 55.078 |
| Retrieval | MTEB ArguAna (default) | map_at_1000 | 55.084 |
| Retrieval | MTEB ArguAna (default) | map_at_20 | 54.959 |
| Retrieval | MTEB ArguAna (default) | map_at_3 | 50.261 |
| Retrieval | MTEB ArguAna (default) | map_at_5 | 52.860 |
| Retrieval | MTEB ArguAna (default) | mrr_at_1 | 39.189 |
| Retrieval | MTEB ArguAna (default) | mrr_at_10 | 54.864 |
| Retrieval | MTEB ArguAna (default) | mrr_at_100 | 55.474 |
| Retrieval | MTEB ArguAna (default) | mrr_at_1000 | 55.479 |
| Retrieval | MTEB ArguAna (default) | mrr_at_20 | 55.351 |
| Retrieval | MTEB ArguAna (default) | mrr_at_3 | 50.664 |
| Retrieval | MTEB ArguAna (default) | mrr_at_5 | 53.235 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_1000_diff1 | 12.280 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_1000_max | -6.974 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_1000_std | -20.030 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_100_diff1 | 12.291 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_100_max | -6.957 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_100_std | -20.028 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_10_diff1 | 12.191 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_10_max | -6.877 |
| Retrieval | MTEB ArguAna (default) | nauc_map_at_10_std | -19.974 |