Model reference · open weights

core-emb

Embeddings Alibaba-NLP Embeddings 1 build Open weights 5 dl/mo

core-emb is an open-weight embedding model from Alibaba. core-emb-8b (BF16) weighs 16.3 GB; the smallest configuration that runs it is RTX 4090 24 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Core-emb is an 8B parameter multimodal embedding model developed by Alibaba for feature extraction tasks involving text and image inputs.
  • It utilizes a Qwen3-VL backbone to generate dense embeddings that support compositional retrieval by distinguishing fine-grained attribute-object bindings.
  • The model supports a context length of 262,144 tokens and is distributed under the cc-by-4.0 licence.

Summary of the Alibaba-NLP/core-emb-8b model card, 2026-10-01

What it is

Released byAlibaba
Released2026-08-31
VRAM16.3 GB for the weights

What it runs on

Memory and cards for core-emb-8b (BF16)

16.3 GBweights, file size
1.1 GBruntime overhead
CardRunsMemory
RTX 3060 12 GB … RTX 4060 Ti 16 GBdoes not fit
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 Alibaba says about core-emb

Read the model card

Core-Embed is an MLLM-based multimodal embedding model that resolves fine-grained attribute-object bindings by distilling a reranker's compositional judgments into the embedding space.

Model Family

ModelBackboneParametersOutputsModalities
core-emb-2bVL-Emb (Qwen3-VL)2BDense embeddingText, image
core-emb-8bVL-Emb (Qwen3-VL)8BDense embeddingText, image
core-reranker-2bQwen3-VL-Reranker2BRelevance scoreText, image
core-reranker-8bQwen3-VL-Reranker8BRelevance scoreText, image

Highlights

  • Compositional retrieval: distinguishes scenes with the same concepts but different attribute-object bindings (e.g., "a white plate and a black chair" vs. "a black plate and a white chair").
  • Rank-KL distillation: trained to reproduce the reranker teacher's fine-grained ranking over a five-level compositional matching spectrum (full match, partial presence, attribute error, object error, full mismatch), instead of collapsing all negatives into one class as InfoNCE does.
  • General retrieval preserved: continual training from a strong MLLM embedding backbone, so COCO and Flickr30k retrieval quality is retained while compositional accuracy improves.

Training

Candidate lists are synthesized from LAION-400M seed images: Qwen3-VL-32B extracts structured scene representations and generates queries plus five captions spanning the matching levels, Z-Image-Turbo generates the candidate images, and MLLM-based verification filters low-quality tuples. The student (VL-Emb) is then trained with the Rank-KL objective — a KL divergence between temperature-softened teacher reranker scores and student cosine similarities over each candidate list. Core-Reranker models are fine-tuned from Qwen3-VL-Reranker on the same synthesized data.

Results

On compositional reasoning benchmarks (COLA, SugarCrepe++, NegBench):

  • Core-Reranker-8B: 82.7% total average, +10.7 points over Jina-Reranker, while recovering negation sensitivity that standard reranker fine-tuning erodes.
  • Core-Embed-8B: best total average (0.666) among all evaluated embedding models, +5.7 points over its VL-Emb-8B backbone.
  • Gains transfer to the MCMR multi-condition retrieval benchmark (R@1 0.375 → 0.412) with COCO/Flickr30k performance fully preserved.

See the paper for the full evaluation across 12 embedding baselines and 5 reranker baselines.

Usage

Requires a recent transformers build with Qwen3-VL support:

pip install "transformers>=4.57.0" torch qwen-vl-utils pillow

The model is loaded through the wrapper classes provided in the GitHub repository:

import torch
from models.qwen3_vl.qwen3_vl_wrapper import Qwen3VLForEmbedding, Qwen3VLForEmbeddingProcessor

model_path = "core-emb-8b"
model = Qwen3VLForEmbedding.from_pretrained(
    model_path, device_map="cuda", torch_dtype=torch.bfloat16
)
processor = Qwen3VLForEmbeddingProcessor.from_pretrained(
    model_path,
    instruction_standalone=True,
    max_length=3024,
    min_pixels=32*32*4,
    max_pixels=32*32*1280,
    total_pixels=32*32*4500,
    num_frames=48,
)

query_inst = "Find me an everyday image that matches the given caption: "
psg_inst = "Represent the given image."

queries = ["a white plate and a black chair"]
inputs = processor(
    texts=queries, images=[None], videos=[None],
    instruction=[query_inst], is_query=True,
)
with torch.inference_mode():
    query_emb = model(**inputs.to(model.device)).last_hidden_state[:, -1]

images = ["path/to/image.jpg"]
inputs = processor(
    texts=[None], images=images, videos=[None],
    instruction=[psg_inst], is_query=False,
)
with torch.inference_mode():
    img_emb = model(**inputs.to(model.device)).last_hidden_state[:, -1]

print(query_emb @ img_emb.T)

For FlashAttention acceleration, pass attn_implementation="flash_attention_2" when loading the model.

For evaluation on COLA, SugarCrepe++, NegBench, COCO, Flickr30k, and MCMR, use the evaluation code in the GitHub repository.

Citation

If you use Core-Embed, please cite the paper:

@misc{song2026core,
      title={CORE: Improving Compositional Reasoning in MLLM Embedding via Reranker Distillation},
      author={Tingyu Song and Mingxin Li and Yanzhao Zhang and Dingkun Long and Chu Liu and Pengjun Xie and Yilun Zhao and Shu Wu},
      year={2026},
      eprint={2609.04083},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2609.04083},
}

Acknowledgements

We thank the authors of COLA, SugarCrepe++, and NegBench for their benchmarks, and the Qwen3-VL-Embedding project for the evaluation framework.

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