Model reference · open weights

marqo-gcl-e5-large-130

Embeddings Marqo Embeddings 1 build Open weights 8 dl/mo

marqo-gcl-e5-large-130 is an open-weight embedding model from Marqo. marqo-gcl-e5-large-v2-130 (FP32) weighs 670 MB; the smallest configuration that runs it is RTX 3060 12 GB.

  • Marqo/marqo-gcl-e5-large-v2-130 is a 335M parameter feature-extraction model developed by Marqo for multi-modal retrieval and ranking tasks.
  • It utilizes generalized contrastive learning to improve information retrieval performance, particularly for matching search queries with relevant products.
  • The model supports a context length of 512 tokens and is distributed under the apache-2.0 licence.

Summary of the Marqo/marqo-gcl-e5-large-v2-130 model card, 2026-10-01

What it is

Released byMarqo
Released2024-04-10
Parameters335M
VRAM670 MB for the weights

What it runs on

Memory and cards for marqo-gcl-e5-large-v2-130 (FP32)

670 MBweights, file size
1.1 GBruntime overhead
CardRunsMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What Marqo says about marqo-gcl-e5-large-130

Read the model card

Generalized Contrastive Learning for Multi-Modal Retrieval and Ranking

This work aims to improve and measure the ranking performance of information retrieval models, especially for retrieving relevant products given a search query.

Blog post: https://www.marqo.ai/blog/generalized-contrastive-learning-for-multi-modal-retrieval-and-ranking

Paper: https://arxiv.org/pdf/2404.08535.pdf

Text-only

MethodsModelsnDCGERRRBP
BM25-0.0710.0280.052
E5e5-large-v20.3350.0950.289
E5 (GCL)e5-large-v20.4700.4570.374

Usage

import torch.nn.functional as F

from torch import Tensor
from transformers import AutoTokenizer, AutoModel

def average_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
    return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]

# Each input text should start with "query: " or "passage: ".
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = ['query: Espresso Pitcher with Handle',
               'query: Women’s designer handbag sale',
               "passage: Dianoo Espresso Steaming Pitcher, Espresso Milk Frothing Pitcher Stainless Steel",
               "passage: Coach Outlet Eliza Shoulder Bag - Black - One Size"]

tokenizer = AutoTokenizer.from_pretrained('Marqo/marqo-gcl-e5-large-v2-130')
model_new = AutoModel.from_pretrained('Marqo/marqo-gcl-e5-large-v2-130')

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=77, padding=True, truncation=True, return_tensors='pt')

outputs = model_new(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms