Model reference · open weights
core-emb is an open-weight embedding model from Alibaba-NLP. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | Alibaba |
|---|---|
| Published under | Alibaba-NLP |
| Type | Embedding models |
| Task | Embeddings |
| Context | 256k tokens |
| Runs with | transformers |
| Released | 2026-08-31 |
| Popularity | 5 downloads / month |
| Licence | Open weights |
About
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 | Backbone | Parameters | Outputs | Modalities |
|---|---|---|---|---|
| core-emb-2b | VL-Emb (Qwen3-VL) | 2B | Dense embedding | Text, image |
| core-emb-8b | VL-Emb (Qwen3-VL) | 8B | Dense embedding | Text, image |
| core-reranker-2b | Qwen3-VL-Reranker | 2B | Relevance score | Text, image |
| core-reranker-8b | Qwen3-VL-Reranker | 8B | Relevance score | Text, image |
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.
On compositional reasoning benchmarks (COLA, SugarCrepe++, NegBench):
See the paper for the full evaluation across 12 embedding baselines and 5 reranker baselines.
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.
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},
}
We thank the authors of COLA, SugarCrepe++, and NegBench for their benchmarks, and the Qwen3-VL-Embedding project for the evaluation framework.
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys core-emb for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (core-emb below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"core-emb","input":"text to embed"}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.