{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/qwen-ai/2026-01-07-qwen3-vl-embedding-and-qwen3-vl-reranker-for-the-next/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "In June 2025, we open-sourced the text-oriented [Qwen3-Embedding](https://huggingface.co/collections/Qwen/qwen3-embedding) and [Qwen3-ReRanker](https://huggingface.co/collections/Qwen/qwen3-reranker) model series, providing best-in-class performance across a variety of downstream tasks, including multilingual text retrieval, clustering, and classification, which have been widely adopted by developers in the community. Today, we are thrilled to announce the release of the [Qwen3-VL-Embedding](https://huggingface.co/collections/Qwen/qwen3-vl-embedding) and [Qwen3-VL-Reranker](https://huggingface.co/collections/Qwen/qwen3-vl-reranker) series, the newest models in the Qwen family. Built on the recently open-sourced and powerful [Qwen3-VL](https://huggingface.co/collections/Qwen/qwen3-vl) foundation models, these models are specifically engineered for multimodal information retrieval and cross-modal understanding.\n\n## Key Features\n\n- **Multimodal Versatility**: Both models seamlessly handle a wide range of inputs—including text, images, screenshots, and video—within a unified framework. They deliver state-of-the-art performance across diverse multimodal tasks such as image-text retrieval, video-text matching, visual question answering (VQA), and multimodal content clustering.\n\n- **Unified Representation Learning (Embedding)**: By leveraging the Qwen3-VL architecture, the Embedding model generates semantically rich vectors that capture both visual and textual information in a shared space. This facilitates efficient similarity computation and retrieval across different modalities.\n\n- **High-Precision Reranking (Reranker)**: We also introduce the Qwen3-VL-Reranker series to complement the embedding model. The reranker takes a (query, document) pair as input—where both query and document may contain arbitrary single or mixed modalities—and outputs a precise relevance score. In retrieval pipelines, the two models are typically used in tandem: the embedding model performs efficient initial recall, while the reranker refines results in a subsequent re-ranking stage. This two-stage approach significantly boosts retrieval accuracy.\n\n- **Exceptional Practicality**: Inheriting Qwen3-VL’s multilingual capabilities, the series supports over 30 languages, making it ideal for global applications. It is highly practical for real-world scenarios, offering flexible vector dimensions, customizable instructions for specific use cases, and strong performance even with quantized embeddings. These capabilities enable developers to seamlessly integrate both models into existing pipelines, unlocking powerful cross-lingual and cross-modal understanding.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/a58972c9-ebb7-4a0b-a3e1-f8c4f6d28c1f.png)\n\n**Figure 1:** Illustration of the Unified Multimodal Representation Space. Qwen3-VL-Embedding model series represent multi-source data (Text, Image, Visual Document, and Video) into a common manifold.\n\n## Model Overview\n\n**Table: Model specifications for the Qwen3-VL-Embedding and Qwen3-VL-Reranker**\n\n| Model                     | Size | Layers | Sequence Length | Embedding Dimension | Quantization Support | MRL Support | Instruction Aware |\n| ------------------------- | ---- | ------ | --------------- | ------------------- | -------------------- | ----------- | ----------------- |\n| **Qwen3-VL-Embedding-2B** | 2B   | 28     | 32K             | 2048                | Yes                  | Yes         | Yes               |\n| **Qwen3-VL-Embedding-8B** | 8B   | 36     | 32K             | 4096                | Yes                  | Yes         | Yes               |\n| **Qwen3-VL-Reranker-2B**  | 2B   | 28     | 32K             | -                   | -                    | -           | Yes               |\n| **Qwen3-VL-Reranker-8B**  | 8B   | 36     | 32K             | -                   | -                    | -           | Yes               |\n\n*Note: “Quantization Support” indicates the supported quantization formats for the embeddings. “MRL support” denotes whether the embedding model allows user-specified embedding dimension. “Instruction-aware” indicates whether the models support task-specific customization of the input instruction.*\n\n## Model Architecture\n\nSimilar to the Qwen3-Embedding and Qwen3-ReRanker model series, Qwen3-VL-Embedding employs a dual-tower architecture while Qwen3-VL-Rerank utilizes a single-tower architecture. We have designed a multi-stage training paradigm to fully leverage and unleash the powerful general multimodal semantic understanding capabilities of Qwen3-VL, providing high-quality semantic representations and a precise re-ranking mechanism for complex, large-scale multimodal retrieval tasks.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/7f062d8f-00cc-47e6-b950-f1f9df194688.png)\n\n**Figure 2: Overview of the Qwen3-VL-Embedding and Qwen3-VL-Reranker architecture.** .\n\nThe Embedding model receives single-modal or mixed-modal input and maps it into a high-dimensional semantic vector. Specifically, we extract the hidden state vector corresponding to the `[EOS]` token from the base model’s last layer to serve as the final semantic representation of the input. This method ensures efficient, independent encoding necessary for large-scale retrieval. The Reranking model receives an input pair `(Query, Document)` and performs joint encoding. It utilizes the Cross-Attention mechanism within the base model to achieve deeper, finer-grained inter-modal interaction and information fusion between the Query and the Document. The model ultimately expresses the relevance score of the input pair by predicting the generation probability of two special tokens (`yes` and `no`).\n\n**Feature Comparison**\n\n|                   | Qwen3-VL-Embedding                                                    | Qwen3-VL-Reranker                                                                     |\n| ----------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| **Core Function** | Semantic Representation, Embedding Generation                         | Relevance Scoring, Re-ranking                                                         |\n| **Input**         | Single modality or mixed modalities (Text, Image, Video, Screenshots) | (Query, Document) pair, where Query and Document can be single- or mixed-modal inputs |\n| **Mechanism**     | Independent Encoding, Efficient Retrieval (Dual-Tower)                | Deep Inter-Modal Interaction, Precise Alignment (Single-Tower/Cross-Attention)        |\n| **Objective**     | Semantic Clustering within Vector Space                               | Output Relevance Score                                                                |\n\n## Evaluation Results\n\n### Qwen3-VL-Embedding\n\nWe primarily evaluated the Qwen3-VL-Embedding model on [MMEB-v2](https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard) and [MMTEB](https://huggingface.co/spaces/mteb/leaderboard) benchmarks. The Qwen3-VL-Embedding-8B model achieves state-of-the-art results on MMEB-V2, surpassing all previous open-source models and proprietary model services. When breaking down performance across different retrieval modalities, our model consistently achieves SOTA results on image, visual document, and video retrieval subtasks. Meanwhile, on the text-only multilingual MMTEB benchmark, the Qwen3-VL-Embedding model shows a performance gap compared to the text-only Qwen3-Embedding model of comparable size. However, when compared to other similarly sized models on the evaluation leaderboard, it still demonstrates highly competitive performance.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/c0ff2a2d-93d9-4f84-a7ac-28f9cdd9575c.png)\n\n**Figure 3: Evaluation results on MMEB-v2 and MMTEB benchmarks** .\n\n## Qwen3-VL-ReRanker\n\nWe utilize retrieval task datasets from various subtasks of [MMEB-v2](https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard) and [MMTEB](https://huggingface.co/spaces/mteb/leaderboard) retrieval benchmarks. For visual document retrieval, we employ [JinaVDR](https://huggingface.co/collections/jinaai/jinavdr-visual-document-retrieval) and [ViDoRe v3](https://huggingface.co/blog/QuentinJG/introducing-vidore-v3) datasets. Our results demonstrate that all Qwen3-VL-Reranker models consistently outperform the base embedding model and baseline rerankers, with the 8B variant achieving the best performance across most tasks.\n\n| Model                 | Size | MMEB-v2(Retrieval) - Avg | MMEB-v2(Retrieval) - Image | MMEB-v2(Retrieval) - Video | MMEB-v2(Retrieval) - VisDoc | MMTEB(Retrieval) | JinaVDR | ViDoRe(v3) |\n| --------------------- | ---- | ------------------------ | -------------------------- | -------------------------- | --------------------------- | ---------------- | ------- | ---------- |\n| Qwen3-VL-Embedding-2B | 2B   | 73.4                     | 74.8                       | 53.6                       | 79.2                        | 68.1             | 71.0    | 52.9       |\n| jina-reranker-m0      | 2B   | -                        | 68.2                       | -                          | 85.2                        | -                | 82.2    | 57.8       |\n| Qwen3-VL-Reranker-2B  | 2B   | 75.1                     | 73.8                       | 52.1                       | 83.4                        | 70.0             | 80.9    | 60.8       |\n| Qwen3-VL-Reranker-8B  | 8B   | 79.2                     | 80.7                       | 55.8                       | 86.3                        | 74.9             | 83.6    | 66.7       |\n\n# Usage\n\nEmbedding and reranking models are typically used together in retrieval systems. The embedding model performs initial recall to retrieve a substantial set of candidates, while the reranking model sorts these candidates based on newly computed relevance scores to present the most accurate results for the user query. This two-stage retrieval process leverages the complementary strengths of both models: the efficiency and scalability of the embedding model for broad candidate retrieval, and the precision and fine-grained scoring capability of the reranking model for final ranking. This approach achieves superior retrieval performance compared to using either model alone. Below are basic usage examples.\n\n- **Embedding Model Usage Example**\n\n```python\nfrom scripts.qwen3_vl_embedding import Qwen3VLEmbedder\nimport numpy as np\nimport torch\n\n# Define a list of query texts\nqueries = [\n    {\"text\": \"A woman playing with her dog on a beach at sunset.\"},\n    {\"text\": \"Pet owner training dog outdoors near water.\"},\n    {\"text\": \"Woman surfing on waves during a sunny day.\"},\n    {\"text\": \"City skyline view from a high-rise building at night.\"}\n]\n\n# Define a list of document texts and images\ndocuments = [\n    {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\"},\n    {\"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"},\n    {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\", \"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"}\n]\n\n# Specify the model path\nmodel_name_or_path = \"Qwen/Qwen3-VL-Embedding-2B\"\n\n# Initialize the Qwen3VLEmbedder model\nmodel = Qwen3VLEmbedder(model_name_or_path=model_name_or_path)\n# We recommend enabling flash_attention_2 for better acceleration and memory saving,\n# model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=\"flash_attention_2\")\n\n# Combine queries and documents into a single input list\ninputs = queries + documents\n\nembeddings = model.process(inputs)\n\n# Compute similarity scores between query embeddings and document embeddings\nsimilarity_scores = (embeddings[:4] @ embeddings[4:].T)\n\n# Print out the similarity scores in a list format\nprint(similarity_scores.tolist())\n\n# [[0.83203125, 0.74609375, 0.73046875], [0.5390625, 0.373046875, 0.48046875], [0.404296875, 0.326171875, 0.357421875], [0.1298828125, 0.06884765625, 0.10595703125]]\n```\n\n- **ReRanking Model Usage Example**\n\n```python\nfrom scripts.qwen3_vl_reranker import Qwen3VLReranker\nimport numpy as np\nimport torch\n\n# Specify the model path\nmodel_name_or_path = \"Qwen/Qwen3-VL-Reranker-2B\"\n\n# Initialize the Qwen3VLEmbedder model\nmodel = Qwen3VLReranker(model_name_or_path=model_name_or_path)\n# We recommend enabling flash_attention_2 for better acceleration and memory saving,\n# model = Qwen3VLReranker(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=\"flash_attention_2\")\n\n# Combine queries and documents into a single input list\n\ninputs = {\n    \"instruction\": \"Retrieval relevant image or text with user's query\",\n    \"query\": {\"text\": \"A woman playing with her dog on a beach at sunset.\"},\n    \"documents\": [\n        {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\"},\n        {\"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"},\n        {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\", \"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"}\n    ],\n    \"fps\": 1.0\n}\n        \nscores = model.process(inputs)\nprint(scores)\n# [0.8408790826797485, 0.6197134852409363, 0.7778129577636719]\n```\n\nFor more usage examples, please visit our [GitHub repository](https://github.com/QwenLM/Qwen3-VL-Embedding).\n\n# Future work\n\nThe Qwen3-VL-Embedding and Qwen3-VL-Reranker model series represent our initial exploration into unified multimodal representation and retrieval. Compared to text-only embedding and reranking models, multimodal approaches, particularly unified multimodal embedding and reranking systems, still present vast opportunities for exploration in terms of model maturity, usability and application scenario expansion. The open-sourcing of Qwen3-VL-Embedding and Qwen3-VL-Reranker marks a new starting point. We look forward to collaborating with the community to explore and build more general-purpose unified multimodal retrieval capabilities.\n\n## Citation\n\nIf you find Qwen3-VL-Embedding and Qwen3-VL-Reranker helpful in your research, please consider citing us 📝 :)\n\n```bibtex\n@article{qwen3vlembedding,\n  title={Qwen3-VL-Embedding and Qwen3-VL-Reranker: A Unified Framework for State-of-the-Art Multimodal Retrieval and Ranking},\n  author={Li, Mingxin and Zhang, Yanzhao and Long, Dingkun and Chen, Keqin and Song, Sibo and Bai, Shuai and Yang, Zhibo and Xie, Pengjun and Yang, An and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang},\n  journal={arXiv},\n  year={2026}\n}\n```\n",
  "authors": [
    "QwenTeam"
  ],
  "captured_at": "2026-10-18T23:27:08.867657739+00:00",
  "category": "ai",
  "content_html": "<p>In June 2025, we open-sourced the text-oriented <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/Qwen/qwen3-embedding\">Qwen3-Embedding</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/Qwen/qwen3-reranker\">Qwen3-ReRanker</a> model series, providing best-in-class performance across a variety of downstream tasks, including multilingual text retrieval, clustering, and classification, which have been widely adopted by developers in the community. Today, we are thrilled to announce the release of the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/Qwen/qwen3-vl-embedding\">Qwen3-VL-Embedding</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/Qwen/qwen3-vl-reranker\">Qwen3-VL-Reranker</a> series, the newest models in the Qwen family. Built on the recently open-sourced and powerful <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/Qwen/qwen3-vl\">Qwen3-VL</a> foundation models, these models are specifically engineered for multimodal information retrieval and cross-modal understanding.</p>\n<h2>Key Features</h2>\n<ul>\n<li>\n<p><strong>Multimodal Versatility</strong>: Both models seamlessly handle a wide range of inputs—including text, images, screenshots, and video—within a unified framework. They deliver state-of-the-art performance across diverse multimodal tasks such as image-text retrieval, video-text matching, visual question answering (VQA), and multimodal content clustering.</p>\n</li>\n<li>\n<p><strong>Unified Representation Learning (Embedding)</strong>: By leveraging the Qwen3-VL architecture, the Embedding model generates semantically rich vectors that capture both visual and textual information in a shared space. This facilitates efficient similarity computation and retrieval across different modalities.</p>\n</li>\n<li>\n<p><strong>High-Precision Reranking (Reranker)</strong>: We also introduce the Qwen3-VL-Reranker series to complement the embedding model. The reranker takes a (query, document) pair as input—where both query and document may contain arbitrary single or mixed modalities—and outputs a precise relevance score. In retrieval pipelines, the two models are typically used in tandem: the embedding model performs efficient initial recall, while the reranker refines results in a subsequent re-ranking stage. This two-stage approach significantly boosts retrieval accuracy.</p>\n</li>\n<li>\n<p><strong>Exceptional Practicality</strong>: Inheriting Qwen3-VL’s multilingual capabilities, the series supports over 30 languages, making it ideal for global applications. It is highly practical for real-world scenarios, offering flexible vector dimensions, customizable instructions for specific use cases, and strong performance even with quantized embeddings. These capabilities enable developers to seamlessly integrate both models into existing pipelines, unlocking powerful cross-lingual and cross-modal understanding.</p>\n</li>\n</ul>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://docs.qwenlm.ai/resources/a58972c9-ebb7-4a0b-a3e1-f8c4f6d28c1f.png\" alt=\"Illustration of the Unified Multimodal Representation Space\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p><strong>Figure 1:</strong> Illustration of the Unified Multimodal Representation Space. Qwen3-VL-Embedding model series represent multi-source data (Text, Image, Visual Document, and Video) into a common manifold.</p>\n<h2>Model Overview</h2>\n<p><strong>Table: Model specifications for the Qwen3-VL-Embedding and Qwen3-VL-Reranker</strong></p>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>Size</th>\n<th>Layers</th>\n<th>Sequence Length</th>\n<th>Embedding Dimension</th>\n<th>Quantization Support</th>\n<th>MRL Support</th>\n<th>Instruction Aware</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Qwen3-VL-Embedding-2B</strong></td>\n<td>2B</td>\n<td>28</td>\n<td>32K</td>\n<td>2048</td>\n<td>Yes</td>\n<td>Yes</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><strong>Qwen3-VL-Embedding-8B</strong></td>\n<td>8B</td>\n<td>36</td>\n<td>32K</td>\n<td>4096</td>\n<td>Yes</td>\n<td>Yes</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><strong>Qwen3-VL-Reranker-2B</strong></td>\n<td>2B</td>\n<td>28</td>\n<td>32K</td>\n<td>-</td>\n<td>-</td>\n<td>-</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td><strong>Qwen3-VL-Reranker-8B</strong></td>\n<td>8B</td>\n<td>36</td>\n<td>32K</td>\n<td>-</td>\n<td>-</td>\n<td>-</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n<p><em>Note: “Quantization Support” indicates the supported quantization formats for the embeddings. “MRL support” denotes whether the embedding model allows user-specified embedding dimension. “Instruction-aware” indicates whether the models support task-specific customization of the input instruction.</em></p>\n<h2>Model Architecture</h2>\n<p>Similar to the Qwen3-Embedding and Qwen3-ReRanker model series, Qwen3-VL-Embedding employs a dual-tower architecture while Qwen3-VL-Rerank utilizes a single-tower architecture. We have designed a multi-stage training paradigm to fully leverage and unleash the powerful general multimodal semantic understanding capabilities of Qwen3-VL, providing high-quality semantic representations and a precise re-ranking mechanism for complex, large-scale multimodal retrieval tasks.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://docs.qwenlm.ai/resources/7f062d8f-00cc-47e6-b950-f1f9df194688.png\" alt=\"Illustration of the Unified Multimodal Representation Space\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p><strong>Figure 2: Overview of the Qwen3-VL-Embedding and Qwen3-VL-Reranker architecture.</strong> .</p>\n<p>The Embedding model receives single-modal or mixed-modal input and maps it into a high-dimensional semantic vector. Specifically, we extract the hidden state vector corresponding to the <code>[EOS]</code> token from the base model’s last layer to serve as the final semantic representation of the input. This method ensures efficient, independent encoding necessary for large-scale retrieval. The Reranking model receives an input pair <code>(Query, Document)</code> and performs joint encoding. It utilizes the Cross-Attention mechanism within the base model to achieve deeper, finer-grained inter-modal interaction and information fusion between the Query and the Document. The model ultimately expresses the relevance score of the input pair by predicting the generation probability of two special tokens (<code>yes</code> and <code>no</code>).</p>\n<p><strong>Feature Comparison</strong></p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th>Qwen3-VL-Embedding</th>\n<th>Qwen3-VL-Reranker</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Core Function</strong></td>\n<td>Semantic Representation, Embedding Generation</td>\n<td>Relevance Scoring, Re-ranking</td>\n</tr>\n<tr>\n<td><strong>Input</strong></td>\n<td>Single modality or mixed modalities (Text, Image, Video, Screenshots)</td>\n<td>(Query, Document) pair, where Query and Document can be single- or mixed-modal inputs</td>\n</tr>\n<tr>\n<td><strong>Mechanism</strong></td>\n<td>Independent Encoding, Efficient Retrieval (Dual-Tower)</td>\n<td>Deep Inter-Modal Interaction, Precise Alignment (Single-Tower/Cross-Attention)</td>\n</tr>\n<tr>\n<td><strong>Objective</strong></td>\n<td>Semantic Clustering within Vector Space</td>\n<td>Output Relevance Score</td>\n</tr>\n</tbody>\n</table>\n<h2>Evaluation Results</h2>\n<h3>Qwen3-VL-Embedding</h3>\n<p>We primarily evaluated the Qwen3-VL-Embedding model on <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard\">MMEB-v2</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/spaces/mteb/leaderboard\">MMTEB</a> benchmarks. The Qwen3-VL-Embedding-8B model achieves state-of-the-art results on MMEB-V2, surpassing all previous open-source models and proprietary model services. When breaking down performance across different retrieval modalities, our model consistently achieves SOTA results on image, visual document, and video retrieval subtasks. Meanwhile, on the text-only multilingual MMTEB benchmark, the Qwen3-VL-Embedding model shows a performance gap compared to the text-only Qwen3-Embedding model of comparable size. However, when compared to other similarly sized models on the evaluation leaderboard, it still demonstrates highly competitive performance.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://docs.qwenlm.ai/resources/c0ff2a2d-93d9-4f84-a7ac-28f9cdd9575c.png\" alt=\"Illustration of the Unified Multimodal Representation Space\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p><strong>Figure 3: Evaluation results on MMEB-v2 and MMTEB benchmarks</strong> .</p>\n<h2>Qwen3-VL-ReRanker</h2>\n<p>We utilize retrieval task datasets from various subtasks of <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard\">MMEB-v2</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/spaces/mteb/leaderboard\">MMTEB</a> retrieval benchmarks. For visual document retrieval, we employ <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/collections/jinaai/jinavdr-visual-document-retrieval\">JinaVDR</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/QuentinJG/introducing-vidore-v3\">ViDoRe v3</a> datasets. Our results demonstrate that all Qwen3-VL-Reranker models consistently outperform the base embedding model and baseline rerankers, with the 8B variant achieving the best performance across most tasks.</p>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>Size</th>\n<th>MMEB-v2(Retrieval) - Avg</th>\n<th>MMEB-v2(Retrieval) - Image</th>\n<th>MMEB-v2(Retrieval) - Video</th>\n<th>MMEB-v2(Retrieval) - VisDoc</th>\n<th>MMTEB(Retrieval)</th>\n<th>JinaVDR</th>\n<th>ViDoRe(v3)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Qwen3-VL-Embedding-2B</td>\n<td>2B</td>\n<td>73.4</td>\n<td>74.8</td>\n<td>53.6</td>\n<td>79.2</td>\n<td>68.1</td>\n<td>71.0</td>\n<td>52.9</td>\n</tr>\n<tr>\n<td>jina-reranker-m0</td>\n<td>2B</td>\n<td>-</td>\n<td>68.2</td>\n<td>-</td>\n<td>85.2</td>\n<td>-</td>\n<td>82.2</td>\n<td>57.8</td>\n</tr>\n<tr>\n<td>Qwen3-VL-Reranker-2B</td>\n<td>2B</td>\n<td>75.1</td>\n<td>73.8</td>\n<td>52.1</td>\n<td>83.4</td>\n<td>70.0</td>\n<td>80.9</td>\n<td>60.8</td>\n</tr>\n<tr>\n<td>Qwen3-VL-Reranker-8B</td>\n<td>8B</td>\n<td>79.2</td>\n<td>80.7</td>\n<td>55.8</td>\n<td>86.3</td>\n<td>74.9</td>\n<td>83.6</td>\n<td>66.7</td>\n</tr>\n</tbody>\n</table>\n<h1>Usage</h1>\n<p>Embedding and reranking models are typically used together in retrieval systems. The embedding model performs initial recall to retrieve a substantial set of candidates, while the reranking model sorts these candidates based on newly computed relevance scores to present the most accurate results for the user query. This two-stage retrieval process leverages the complementary strengths of both models: the efficiency and scalability of the embedding model for broad candidate retrieval, and the precision and fine-grained scoring capability of the reranking model for final ranking. This approach achieves superior retrieval performance compared to using either model alone. Below are basic usage examples.</p>\n<ul>\n<li><strong>Embedding Model Usage Example</strong></li>\n</ul>\n<pre><code class=\"language-python\"><span class=\"code-snippet\" data-language=\"Python\"><span class=\"syntax-source syntax-python\"><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-from syntax-python\">from</span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-meta syntax-import-source syntax-python\"> <span class=\"syntax-meta syntax-import-path syntax-python\"><span class=\"syntax-meta syntax-import-name syntax-python\">scripts</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span><span class=\"syntax-meta syntax-import-name syntax-python\">qwen3_vl_embedding</span></span> <span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span></span></span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"> <span class=\"syntax-meta syntax-generic-name syntax-python\">Qwen3VLEmbedder</span></span>\n<span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">numpy</span></span> <span class=\"syntax-keyword syntax-control syntax-import syntax-as syntax-python\">as</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">np</span></span></span>\n<span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">torch</span></span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Define a list of query texts\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">queries</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-structure syntax-list syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-list syntax-begin syntax-python\">[</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman playing with her dog on a beach at sunset.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">Pet owner training dog outdoors near water.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">Woman surfing on waves during a sunny day.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">City skyline view from a high-rise building at night.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span>\n<span class=\"syntax-punctuation syntax-section syntax-list syntax-end syntax-python\">]</span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Define a list of document texts and images\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">documents</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-structure syntax-list syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-list syntax-begin syntax-python\">[</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">image<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-dictionary-or-set syntax-python\">,</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">image<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span>\n<span class=\"syntax-punctuation syntax-section syntax-list syntax-end syntax-python\">]</span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Specify the model path\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model_name_or_path</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">Qwen/Qwen3-VL-Embedding-2B<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Initialize the Qwen3VLEmbedder model\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">Qwen3VLEmbedder</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-variable syntax-parameter syntax-python\">model_name_or_path</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model_name_or_path</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> We recommend enabling flash_attention_2 for better acceleration and memory saving,\n</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=&quot;flash_attention_2&quot;)\n</span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Combine queries and documents into a single input list\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">inputs</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">queries</span></span> <span class=\"syntax-keyword syntax-operator syntax-arithmetic syntax-python\">+</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">documents</span></span>\n\n<span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">embeddings</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span></span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">process</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">inputs</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Compute similarity scores between query embeddings and document embeddings\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">similarity_scores</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-group syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">embeddings</span></span></span><span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-brackets syntax-begin syntax-python\">[</span></span><span class=\"syntax-meta syntax-item-access syntax-arguments syntax-python\"><span class=\"syntax-punctuation syntax-separator syntax-slice syntax-python\">:</span><span class=\"syntax-constant syntax-numeric syntax-integer syntax-decimal syntax-python\">4</span></span><span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-brackets syntax-end syntax-python\">]</span></span> <span class=\"syntax-keyword syntax-operator syntax-matrix syntax-python\">@</span> <span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">embeddings</span></span></span><span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-brackets syntax-begin syntax-python\">[</span></span><span class=\"syntax-meta syntax-item-access syntax-arguments syntax-python\"><span class=\"syntax-constant syntax-numeric syntax-integer syntax-decimal syntax-python\">4</span><span class=\"syntax-punctuation syntax-separator syntax-slice syntax-python\">:</span></span><span class=\"syntax-meta syntax-item-access syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-brackets syntax-end syntax-python\">]</span></span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span><span class=\"syntax-meta syntax-generic-name syntax-python\">T</span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-python\">)</span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Print out the similarity scores in a list format\n</span><span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-support syntax-function syntax-builtin syntax-python\">print</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">similarity_scores</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span></span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">tolist</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> [[0.83203125, 0.74609375, 0.73046875], [0.5390625, 0.373046875, 0.48046875], [0.404296875, 0.326171875, 0.357421875], [0.1298828125, 0.06884765625, 0.10595703125]]\n</span></span></span></code></pre>\n<ul>\n<li><strong>ReRanking Model Usage Example</strong></li>\n</ul>\n<pre><code class=\"language-python\"><span class=\"code-snippet\" data-language=\"Python\"><span class=\"syntax-source syntax-python\"><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-from syntax-python\">from</span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-meta syntax-import-source syntax-python\"> <span class=\"syntax-meta syntax-import-path syntax-python\"><span class=\"syntax-meta syntax-import-name syntax-python\">scripts</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span><span class=\"syntax-meta syntax-import-name syntax-python\">qwen3_vl_reranker</span></span> <span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span></span></span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"> <span class=\"syntax-meta syntax-generic-name syntax-python\">Qwen3VLReranker</span></span>\n<span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">numpy</span></span> <span class=\"syntax-keyword syntax-control syntax-import syntax-as syntax-python\">as</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">np</span></span></span>\n<span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span> <span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">torch</span></span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Specify the model path\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model_name_or_path</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">Qwen/Qwen3-VL-Reranker-2B<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Initialize the Qwen3VLEmbedder model\n</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">Qwen3VLReranker</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-variable syntax-parameter syntax-python\">model_name_or_path</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model_name_or_path</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> We recommend enabling flash_attention_2 for better acceleration and memory saving,\n</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> model = Qwen3VLReranker(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=&quot;flash_attention_2&quot;)\n</span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> Combine queries and documents into a single input list\n</span>\n<span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">inputs</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span>\n    <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">instruction<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">Retrieval relevant image or text with user&#39;s query<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-dictionary-or-set syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">query<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman playing with her dog on a beach at sunset.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-dictionary-or-set syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">documents<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-structure syntax-list syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-list syntax-begin syntax-python\">[</span>\n        <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n        <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">image<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span><span class=\"syntax-punctuation syntax-separator syntax-list syntax-python\">,</span>\n        <span class=\"syntax-meta syntax-structure syntax-dictionary-or-set syntax-python\"><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-begin syntax-python\">{</span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">text<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-dictionary-or-set syntax-python\">,</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">image<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span>\n    <span class=\"syntax-punctuation syntax-section syntax-list syntax-end syntax-python\">]</span></span><span class=\"syntax-punctuation syntax-separator syntax-dictionary-or-set syntax-python\">,</span>\n    <span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">fps<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-python\">:</span> <span class=\"syntax-constant syntax-numeric syntax-float syntax-python\">1<span class=\"syntax-punctuation syntax-separator syntax-decimal syntax-python\">.</span>0</span>\n<span class=\"syntax-punctuation syntax-section syntax-dictionary-or-set syntax-end syntax-python\">}</span></span>\n        \n<span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">scores</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span></span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">process</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">inputs</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n<span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-support syntax-function syntax-builtin syntax-python\">print</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">scores</span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-python\">#</span> [0.8408790826797485, 0.6197134852409363, 0.7778129577636719]\n</span></span></span></code></pre>\n<p>For more usage examples, please visit our <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/QwenLM/Qwen3-VL-Embedding\">GitHub repository</a>.</p>\n<h1>Future work</h1>\n<p>The Qwen3-VL-Embedding and Qwen3-VL-Reranker model series represent our initial exploration into unified multimodal representation and retrieval. Compared to text-only embedding and reranking models, multimodal approaches, particularly unified multimodal embedding and reranking systems, still present vast opportunities for exploration in terms of model maturity, usability and application scenario expansion. The open-sourcing of Qwen3-VL-Embedding and Qwen3-VL-Reranker marks a new starting point. We look forward to collaborating with the community to explore and build more general-purpose unified multimodal retrieval capabilities.</p>\n<h2>Citation</h2>\n<p>If you find Qwen3-VL-Embedding and Qwen3-VL-Reranker helpful in your research, please consider citing us 📝 :)</p>\n<pre><code class=\"language-bibtex\"><span class=\"code-snippet\" data-language=\"Bibtex\"><span class=\"syntax-text syntax-bibtex\"><span class=\"syntax-meta syntax-entry syntax-braces syntax-bibtex\"><span class=\"syntax-keyword syntax-other syntax-entry-type syntax-bibtex\"><span class=\"syntax-punctuation syntax-definition syntax-keyword syntax-bibtex\">@</span>article</span><span class=\"syntax-punctuation syntax-section syntax-entry syntax-begin syntax-bibtex\">{</span><span class=\"syntax-entity syntax-name syntax-type syntax-entry-key syntax-bibtex\">qwen3vlembedding</span>,\n  <span class=\"syntax-meta syntax-key-assignment syntax-bibtex\"><span class=\"syntax-string syntax-unquoted syntax-key syntax-bibtex\">title</span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-bibtex\">=</span><span class=\"syntax-string syntax-quoted syntax-other syntax-braces syntax-bibtex\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-bibtex\">{</span>Qwen3-VL-Embedding and Qwen3-VL-Reranker: A Unified Framework for State-of-the-Art Multimodal Retrieval and Ranking<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-bibtex\">}</span></span></span>,\n  <span class=\"syntax-meta syntax-key-assignment syntax-bibtex\"><span class=\"syntax-string syntax-unquoted syntax-key syntax-bibtex\">author</span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-bibtex\">=</span><span class=\"syntax-string syntax-quoted syntax-other syntax-braces syntax-bibtex\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-bibtex\">{</span>Li, Mingxin and Zhang, Yanzhao and Long, Dingkun and Chen, Keqin and Song, Sibo and Bai, Shuai and Yang, Zhibo and Xie, Pengjun and Yang, An and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-bibtex\">}</span></span></span>,\n  <span class=\"syntax-meta syntax-key-assignment syntax-bibtex\"><span class=\"syntax-string syntax-unquoted syntax-key syntax-bibtex\">journal</span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-bibtex\">=</span><span class=\"syntax-string syntax-quoted syntax-other syntax-braces syntax-bibtex\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-bibtex\">{</span>arXiv<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-bibtex\">}</span></span></span>,\n  <span class=\"syntax-meta syntax-key-assignment syntax-bibtex\"><span class=\"syntax-string syntax-unquoted syntax-key syntax-bibtex\">year</span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-bibtex\">=</span><span class=\"syntax-string syntax-quoted syntax-other syntax-braces syntax-bibtex\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-bibtex\">{</span>2026<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-bibtex\">}</span></span>\n</span><span class=\"syntax-punctuation syntax-section syntax-entry syntax-end syntax-bibtex\">}</span></span>\n</span></span></code></pre>\n",
  "content_markdown": "In June 2025, we open-sourced the text-oriented [Qwen3-Embedding](https://huggingface.co/collections/Qwen/qwen3-embedding) and [Qwen3-ReRanker](https://huggingface.co/collections/Qwen/qwen3-reranker) model series, providing best-in-class performance across a variety of downstream tasks, including multilingual text retrieval, clustering, and classification, which have been widely adopted by developers in the community. Today, we are thrilled to announce the release of the [Qwen3-VL-Embedding](https://huggingface.co/collections/Qwen/qwen3-vl-embedding) and [Qwen3-VL-Reranker](https://huggingface.co/collections/Qwen/qwen3-vl-reranker) series, the newest models in the Qwen family. Built on the recently open-sourced and powerful [Qwen3-VL](https://huggingface.co/collections/Qwen/qwen3-vl) foundation models, these models are specifically engineered for multimodal information retrieval and cross-modal understanding.\n\n## Key Features\n\n- **Multimodal Versatility**: Both models seamlessly handle a wide range of inputs—including text, images, screenshots, and video—within a unified framework. They deliver state-of-the-art performance across diverse multimodal tasks such as image-text retrieval, video-text matching, visual question answering (VQA), and multimodal content clustering.\n\n- **Unified Representation Learning (Embedding)**: By leveraging the Qwen3-VL architecture, the Embedding model generates semantically rich vectors that capture both visual and textual information in a shared space. This facilitates efficient similarity computation and retrieval across different modalities.\n\n- **High-Precision Reranking (Reranker)**: We also introduce the Qwen3-VL-Reranker series to complement the embedding model. The reranker takes a (query, document) pair as input—where both query and document may contain arbitrary single or mixed modalities—and outputs a precise relevance score. In retrieval pipelines, the two models are typically used in tandem: the embedding model performs efficient initial recall, while the reranker refines results in a subsequent re-ranking stage. This two-stage approach significantly boosts retrieval accuracy.\n\n- **Exceptional Practicality**: Inheriting Qwen3-VL’s multilingual capabilities, the series supports over 30 languages, making it ideal for global applications. It is highly practical for real-world scenarios, offering flexible vector dimensions, customizable instructions for specific use cases, and strong performance even with quantized embeddings. These capabilities enable developers to seamlessly integrate both models into existing pipelines, unlocking powerful cross-lingual and cross-modal understanding.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/a58972c9-ebb7-4a0b-a3e1-f8c4f6d28c1f.png)\n\n**Figure 1:** Illustration of the Unified Multimodal Representation Space. Qwen3-VL-Embedding model series represent multi-source data (Text, Image, Visual Document, and Video) into a common manifold.\n\n## Model Overview\n\n**Table: Model specifications for the Qwen3-VL-Embedding and Qwen3-VL-Reranker**\n\n| Model                     | Size | Layers | Sequence Length | Embedding Dimension | Quantization Support | MRL Support | Instruction Aware |\n| ------------------------- | ---- | ------ | --------------- | ------------------- | -------------------- | ----------- | ----------------- |\n| **Qwen3-VL-Embedding-2B** | 2B   | 28     | 32K             | 2048                | Yes                  | Yes         | Yes               |\n| **Qwen3-VL-Embedding-8B** | 8B   | 36     | 32K             | 4096                | Yes                  | Yes         | Yes               |\n| **Qwen3-VL-Reranker-2B**  | 2B   | 28     | 32K             | -                   | -                    | -           | Yes               |\n| **Qwen3-VL-Reranker-8B**  | 8B   | 36     | 32K             | -                   | -                    | -           | Yes               |\n\n*Note: “Quantization Support” indicates the supported quantization formats for the embeddings. “MRL support” denotes whether the embedding model allows user-specified embedding dimension. “Instruction-aware” indicates whether the models support task-specific customization of the input instruction.*\n\n## Model Architecture\n\nSimilar to the Qwen3-Embedding and Qwen3-ReRanker model series, Qwen3-VL-Embedding employs a dual-tower architecture while Qwen3-VL-Rerank utilizes a single-tower architecture. We have designed a multi-stage training paradigm to fully leverage and unleash the powerful general multimodal semantic understanding capabilities of Qwen3-VL, providing high-quality semantic representations and a precise re-ranking mechanism for complex, large-scale multimodal retrieval tasks.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/7f062d8f-00cc-47e6-b950-f1f9df194688.png)\n\n**Figure 2: Overview of the Qwen3-VL-Embedding and Qwen3-VL-Reranker architecture.** .\n\nThe Embedding model receives single-modal or mixed-modal input and maps it into a high-dimensional semantic vector. Specifically, we extract the hidden state vector corresponding to the `[EOS]` token from the base model’s last layer to serve as the final semantic representation of the input. This method ensures efficient, independent encoding necessary for large-scale retrieval. The Reranking model receives an input pair `(Query, Document)` and performs joint encoding. It utilizes the Cross-Attention mechanism within the base model to achieve deeper, finer-grained inter-modal interaction and information fusion between the Query and the Document. The model ultimately expresses the relevance score of the input pair by predicting the generation probability of two special tokens (`yes` and `no`).\n\n**Feature Comparison**\n\n|                   | Qwen3-VL-Embedding                                                    | Qwen3-VL-Reranker                                                                     |\n| ----------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| **Core Function** | Semantic Representation, Embedding Generation                         | Relevance Scoring, Re-ranking                                                         |\n| **Input**         | Single modality or mixed modalities (Text, Image, Video, Screenshots) | (Query, Document) pair, where Query and Document can be single- or mixed-modal inputs |\n| **Mechanism**     | Independent Encoding, Efficient Retrieval (Dual-Tower)                | Deep Inter-Modal Interaction, Precise Alignment (Single-Tower/Cross-Attention)        |\n| **Objective**     | Semantic Clustering within Vector Space                               | Output Relevance Score                                                                |\n\n## Evaluation Results\n\n### Qwen3-VL-Embedding\n\nWe primarily evaluated the Qwen3-VL-Embedding model on [MMEB-v2](https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard) and [MMTEB](https://huggingface.co/spaces/mteb/leaderboard) benchmarks. The Qwen3-VL-Embedding-8B model achieves state-of-the-art results on MMEB-V2, surpassing all previous open-source models and proprietary model services. When breaking down performance across different retrieval modalities, our model consistently achieves SOTA results on image, visual document, and video retrieval subtasks. Meanwhile, on the text-only multilingual MMTEB benchmark, the Qwen3-VL-Embedding model shows a performance gap compared to the text-only Qwen3-Embedding model of comparable size. However, when compared to other similarly sized models on the evaluation leaderboard, it still demonstrates highly competitive performance.\n\n![Illustration of the Unified Multimodal Representation Space](https://docs.qwenlm.ai/resources/c0ff2a2d-93d9-4f84-a7ac-28f9cdd9575c.png)\n\n**Figure 3: Evaluation results on MMEB-v2 and MMTEB benchmarks** .\n\n## Qwen3-VL-ReRanker\n\nWe utilize retrieval task datasets from various subtasks of [MMEB-v2](https://huggingface.co/spaces/TIGER-Lab/MMEB-Leaderboard) and [MMTEB](https://huggingface.co/spaces/mteb/leaderboard) retrieval benchmarks. For visual document retrieval, we employ [JinaVDR](https://huggingface.co/collections/jinaai/jinavdr-visual-document-retrieval) and [ViDoRe v3](https://huggingface.co/blog/QuentinJG/introducing-vidore-v3) datasets. Our results demonstrate that all Qwen3-VL-Reranker models consistently outperform the base embedding model and baseline rerankers, with the 8B variant achieving the best performance across most tasks.\n\n| Model                 | Size | MMEB-v2(Retrieval) - Avg | MMEB-v2(Retrieval) - Image | MMEB-v2(Retrieval) - Video | MMEB-v2(Retrieval) - VisDoc | MMTEB(Retrieval) | JinaVDR | ViDoRe(v3) |\n| --------------------- | ---- | ------------------------ | -------------------------- | -------------------------- | --------------------------- | ---------------- | ------- | ---------- |\n| Qwen3-VL-Embedding-2B | 2B   | 73.4                     | 74.8                       | 53.6                       | 79.2                        | 68.1             | 71.0    | 52.9       |\n| jina-reranker-m0      | 2B   | -                        | 68.2                       | -                          | 85.2                        | -                | 82.2    | 57.8       |\n| Qwen3-VL-Reranker-2B  | 2B   | 75.1                     | 73.8                       | 52.1                       | 83.4                        | 70.0             | 80.9    | 60.8       |\n| Qwen3-VL-Reranker-8B  | 8B   | 79.2                     | 80.7                       | 55.8                       | 86.3                        | 74.9             | 83.6    | 66.7       |\n\n# Usage\n\nEmbedding and reranking models are typically used together in retrieval systems. The embedding model performs initial recall to retrieve a substantial set of candidates, while the reranking model sorts these candidates based on newly computed relevance scores to present the most accurate results for the user query. This two-stage retrieval process leverages the complementary strengths of both models: the efficiency and scalability of the embedding model for broad candidate retrieval, and the precision and fine-grained scoring capability of the reranking model for final ranking. This approach achieves superior retrieval performance compared to using either model alone. Below are basic usage examples.\n\n- **Embedding Model Usage Example**\n\n```python\nfrom scripts.qwen3_vl_embedding import Qwen3VLEmbedder\nimport numpy as np\nimport torch\n\n# Define a list of query texts\nqueries = [\n    {\"text\": \"A woman playing with her dog on a beach at sunset.\"},\n    {\"text\": \"Pet owner training dog outdoors near water.\"},\n    {\"text\": \"Woman surfing on waves during a sunny day.\"},\n    {\"text\": \"City skyline view from a high-rise building at night.\"}\n]\n\n# Define a list of document texts and images\ndocuments = [\n    {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\"},\n    {\"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"},\n    {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\", \"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"}\n]\n\n# Specify the model path\nmodel_name_or_path = \"Qwen/Qwen3-VL-Embedding-2B\"\n\n# Initialize the Qwen3VLEmbedder model\nmodel = Qwen3VLEmbedder(model_name_or_path=model_name_or_path)\n# We recommend enabling flash_attention_2 for better acceleration and memory saving,\n# model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=\"flash_attention_2\")\n\n# Combine queries and documents into a single input list\ninputs = queries + documents\n\nembeddings = model.process(inputs)\n\n# Compute similarity scores between query embeddings and document embeddings\nsimilarity_scores = (embeddings[:4] @ embeddings[4:].T)\n\n# Print out the similarity scores in a list format\nprint(similarity_scores.tolist())\n\n# [[0.83203125, 0.74609375, 0.73046875], [0.5390625, 0.373046875, 0.48046875], [0.404296875, 0.326171875, 0.357421875], [0.1298828125, 0.06884765625, 0.10595703125]]\n```\n\n- **ReRanking Model Usage Example**\n\n```python\nfrom scripts.qwen3_vl_reranker import Qwen3VLReranker\nimport numpy as np\nimport torch\n\n# Specify the model path\nmodel_name_or_path = \"Qwen/Qwen3-VL-Reranker-2B\"\n\n# Initialize the Qwen3VLEmbedder model\nmodel = Qwen3VLReranker(model_name_or_path=model_name_or_path)\n# We recommend enabling flash_attention_2 for better acceleration and memory saving,\n# model = Qwen3VLReranker(model_name_or_path=model_name_or_path, dtype=torch.float16, attn_implementation=\"flash_attention_2\")\n\n# Combine queries and documents into a single input list\n\ninputs = {\n    \"instruction\": \"Retrieval relevant image or text with user's query\",\n    \"query\": {\"text\": \"A woman playing with her dog on a beach at sunset.\"},\n    \"documents\": [\n        {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\"},\n        {\"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"},\n        {\"text\": \"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.\", \"image\": \"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg\"}\n    ],\n    \"fps\": 1.0\n}\n        \nscores = model.process(inputs)\nprint(scores)\n# [0.8408790826797485, 0.6197134852409363, 0.7778129577636719]\n```\n\nFor more usage examples, please visit our [GitHub repository](https://github.com/QwenLM/Qwen3-VL-Embedding).\n\n# Future work\n\nThe Qwen3-VL-Embedding and Qwen3-VL-Reranker model series represent our initial exploration into unified multimodal representation and retrieval. Compared to text-only embedding and reranking models, multimodal approaches, particularly unified multimodal embedding and reranking systems, still present vast opportunities for exploration in terms of model maturity, usability and application scenario expansion. The open-sourcing of Qwen3-VL-Embedding and Qwen3-VL-Reranker marks a new starting point. We look forward to collaborating with the community to explore and build more general-purpose unified multimodal retrieval capabilities.\n\n## Citation\n\nIf you find Qwen3-VL-Embedding and Qwen3-VL-Reranker helpful in your research, please consider citing us 📝 :)\n\n```bibtex\n@article{qwen3vlembedding,\n  title={Qwen3-VL-Embedding and Qwen3-VL-Reranker: A Unified Framework for State-of-the-Art Multimodal Retrieval and Ranking},\n  author={Li, Mingxin and Zhang, Yanzhao and Long, Dingkun and Chen, Keqin and Song, Sibo and Bai, Shuai and Yang, Zhibo and Xie, Pengjun and Yang, An and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang},\n  journal={arXiv},\n  year={2026}\n}\n```\n",
  "dateCreated": "2026-10-18T23:27:08.867657739+00:00",
  "date_created": "2026-01-07T20:00:00+00:00",
  "date_modified": null,
  "date_published": "2026-01-07T20:00:00+00:00",
  "description": "In June 2025, we open-sourced the text-oriented Qwen3-Embedding and Qwen3-ReRanker model series, providing best-in-class performance across a variety of downstream tasks, including multilingual text retrieval, clustering, and…",
  "external_url": "https://qwen.ai/blog?id=qwen3-vl-embedding",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/qwen-ai/2026/01/2026-01-07-qwen3-vl-embedding-and-qwen3-vl-reranker-for-the-next.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/qwen-ai/2026/01/2026-01-07-qwen3-vl-embedding-and-qwen3-vl-reranker-for-the-next.md"
  },
  "id": "urn:aggr:item:b4e87a2e10ac58c2b4b4c42a45433f33ded85fe4",
  "isBasedOn": {
    "@id": "https://qwen.ai/blog?id=qwen3-vl-embedding"
  },
  "mainEntity": {
    "@id": "https://qwen.ai/blog?id=qwen3-vl-embedding",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/qwen-ai/2026-01-07-qwen3-vl-embedding-and-qwen3-vl-reranker-for-the-next/#webpage"
    },
    "author": [
      {
        "@type": "Person",
        "name": "QwenTeam"
      }
    ],
    "datePublished": "2026-01-07T20:00:00+00:00",
    "headline": "Qwen3-VL-Embedding and Qwen3-VL-Reranker: For the Next Generation of Multimodal Retrieval",
    "image": {
      "@type": "ImageObject",
      "caption": null,
      "height": 90,
      "url": "https://img.alicdn.com/imgextra/i4/O1CN017MeV6820B2KAWlQwA_!!6000000006810-2-tps-1590-954.png",
      "width": 160
    },
    "timeRequired": "PT8M",
    "url": "https://qwen.ai/blog?id=qwen3-vl-embedding",
    "wordCount": 1680
  },
  "name": "Archived snapshot: Qwen3-VL-Embedding and Qwen3-VL-Reranker: For the Next Generation of Multimodal Retrieval",
  "preview": {
    "alt": null,
    "color": null,
    "height": 90,
    "placeholder": {
      "data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
      "hash": ""
    },
    "url": "https://img.alicdn.com/imgextra/i4/O1CN017MeV6820B2KAWlQwA_!!6000000006810-2-tps-1590-954.png",
    "width": 160
  },
  "reading_minutes": 8,
  "replicated_at": null,
  "source": "qwen-ai",
  "source_name": "Qwen",
  "summary": null,
  "tags": [
    "open-source"
  ],
  "temporalCoverage": "2026-10-18T23:27:08.867657739+00:00",
  "title": "Qwen3-VL-Embedding and Qwen3-VL-Reranker: For the Next Generation of Multimodal Retrieval",
  "url": "https://aggr.aymericbeaumet.com/items/qwen-ai/2026-01-07-qwen3-vl-embedding-and-qwen3-vl-reranker-for-the-next/",
  "word_count": 1680
}