Model reference · open weights

Trident-Qwen3VL

Embeddings openbmb Embeddings 1 build Open weights 0 dl/mo

Trident-Qwen3VL is an open-weight embedding model from openbmb. Trident-Qwen3VL-2B (BF16) weighs 4.3 GB; the smallest configuration that runs it is RTX 3060 12 GB.

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

  • Trident-Qwen3VL-2B is a multimodal embedding model developed by openbmb for mixed-modality retrieval.
  • It maps text, images, and fused inputs into a shared space to rank documents using a single list.
  • The model has 2.1B parameters, supports a context length of 262144 tokens, and is released under the MIT license.

Summary of the openbmb/Trident-Qwen3VL-2B model card, 2026-10-13

What it is

Released byopenbmb
Released2026-10-12
Parameters2.1B
VRAM4.3 GB for the weights

What it runs on

Memory and cards for Trident-Qwen3VL-2B (BF16)

4.3 GBweights, 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 openbmb says about Trident-Qwen3VL

Read the model card

Official model for Chaos in the Text: Revealing the Modality Preference in Mixed-Modality Retrievers

Trident-Qwen3VL-2B is a multimodal embedding model for mixed-modality retrieval. It maps text, images, and fused text-image inputs into one shared space, so a text query can rank text-only, image-only, and fused documents in a single list. It is fine-tuned from Qwen3-VL-2B-Instruct on Trident-Train, as described in the paper Chaos in the Text: Revealing the Modality Preference in Mixed-Modality Retrievers. The LoRA adapter is already merged, so no base model or PEFT is needed.

Quickstart

1. Set up the code and download the weights

git clone https://github.com/OpenBMB/Trident.git
cd Trident
conda create -n trident python=3.12 -y && conda activate trident
pip install -r requirements.txt     # tested with transformers 4.57.1 (Qwen3-VL needs >= 4.57)

hf download OpenBMB/Trident-Qwen3VL-2B --local-dir checkpoints/Trident-Qwen3VL-2B

2. Encode queries and documents (run from the root of the Trident repository)

import sys
sys.path.insert(0, "src")

from embedding_backends.common import (
    ensure_tokenizers_thread_safety,
    ensure_transformers_special_tokens_compat,
)
from embedding_backends.trident_qwen3vl import TridentQwen3VLBackend

ensure_transformers_special_tokens_compat()
ensure_tokenizers_thread_safety()

CKPT = "checkpoints/Trident-Qwen3VL-2B"

backend = TridentQwen3VLBackend(
    {"model_type": "trident_qwen3vl", "checkpoint": CKPT, "dtype": "bfloat16"},
    device="cuda:0",
)
backend.load()

def encode(items, role):
    """items: list of {"text": str | None, "images": [paths]}; role: "query" or "doc"."""
    backend.args_dict["role"] = role
    instruction = backend.default_instruction(role)
    inputs = [{**item, "instruction": instruction} for item in items]
    embeddings, _ = backend.process(inputs, role=role)
    return embeddings  # [N, dim] numpy array, L2-normalised

queries = [
    {"text": "How many stores did Saint Laurent operate in Western Europe in 2020?", "images": []},
]

documents = [
    {"text": "A bar chart showing the number of Saint Laurent stores by region and year.", "images": []},  # text-only
    {"text": None, "images": ["figs/example_chart.png"]},                                                # image-only
    {"text": "Number of stores by region.", "images": ["figs/example_chart.png"]},                       # text + image
]

q = encode(queries, role="query")      # [1, dim]
d = encode(documents, role="doc")      # [3, dim]

scores = q @ d.T                       # cosine similarity, comparable across all document types
print(scores)
print(scores[0].argsort()[::-1])       # document ranking for the query

Each input is a dict with an optional text string and an images list of local image paths. Use text only, images only, or both for fused inputs. Queries and documents use different default instructions, which are part of the training format.

License

The Trident-specific contributions, including the fine-tuned weights, are released under the MIT License. The model is fine-tuned from Qwen3-VL-2B-Instruct, which is released under Apache-2.0, and the base model's license terms continue to apply to the weights derived from it. The training images come from third-party datasets (see Trident-Train) and remain subject to their original licenses.

Citation

If you find this work useful, please cite:

@article{trident2026chaos,
  title   = {Chaos in the Text: Revealing the Modality Preference in Mixed-Modality Retrievers},
  author  = {Sun, Yubo and Peng, Chunyi and Yan, Yukun and Liu, Zhenghao and Xu, Zhipeng and Mei, Sen and Xin, Linlin and Zeng, Zheni and Sun, Maosong},
  journal = {arXiv preprint arXiv:2610.11816},
  year    = {2026},
  url     = {https://arxiv.org/abs/2610.11816}
}

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