Qwen3-VL-Embedding e Reranker: il nuovo standard per il Multimodal Retrieval
Quando Qwen rilascia, è sempre un'emozione!

Il panorama del multimodal retrieval ha appena ricevuto un aggiornamento significativo. Il Tongyi Lab di Qwen (Alibaba Group) ha rilasciato Qwen3-VL-Embedding e Qwen3-VL-Reranker, due serie di modelli costruiti sulla base del foundational model Qwen3-VL.
Questi modelli non si limitano a processare testo, ma mappano modalità diverse: immagini, documenti visivi (screenshot, slide) e video-in uno spazio di rappresentazione unificato. Con il supporto per oltre 30 lingue e varianti da 2B e 8B parametri, puntano a ridefinire lo stato dell'arte per applicazioni che richiedono RAG multimodale e video search.
Architettura a due stadi: Embedding e Reranking
L'approccio proposto segue una pipeline classica ma potenziata per la multimodalità, composta da due fasi distinte:
-
Qwen3-VL-Embedding (Bi-encoder): Questo modello genera rappresentazioni vettoriali dense (embeddings) per gli input. Utilizza un'architettura bi-encoder dove l'istruzione viene passata come system message e l'istanza multimodale (testo, immagine o video) come messaggio utente. L'ultimo hidden state del token
<|endoftext|>viene utilizzato per tirare fuori l'embedding finale. (L'ultimo token possiamo vederlo come l'accumulatore di contesto, dato che è stato generato tramite i token precedenti) -
Qwen3-VL-Reranker (Cross-encoder): Per raffinare i risultati, il reranker esegue una stima di rilevanza fine-grained. Adotta un'architettura cross-encoder che calcola la cross-attention profonda tra la query e il documento candidato, fornendo uno score di rilevanza basato sulla probabilità che il modello predica il token "yes" o "no".
Matryoshka Representation Learning e Quantizzazione
Un aspetto cruciale per l'ingegnerizzazione di sistemi di ricerca su larga scala è l'efficienza. La serie Qwen3-VL-Embedding supporta nativamente il Matryoshka Representation Learning (MRL).
Questa tecnica permette agli sviluppatori di troncare la dimensione degli embedding (ad esempio da 4096 a 1024) mantenendo alte performance semantiche, riducendo drasticamente i costi di storage nei vector database.
Inoltre, i modelli sono stati addestrati con strategie di Quantization-Aware Training (QAT). Questo assicura che gli embedding mantengano robustezza anche quando compressi in formati a bassa precisione come int8 o binari, ottimizzando ulteriormente il throughput e la latenza in fase di inferenza.
Grande Tongyi Lab, resti il mio lab genAI preferito!
Pipeline di Training e Sintesi Dati
Per raggiungere queste performance, il team ha utilizzato una strategia di training multi-stage sofisticata:
-
Stage 1 - Contrastive Pre-training: Training su larga scala con dati sintetici rumorosi per stabilire una baseline di comprensione multimodale.
-
Stage 2 - Multi-Task Contrastive Learning: Fine-tuning su dati di alta qualità e task specifici per migliorare la discriminazione.
-
Stage 3 - Distillation: Il modello di embedding apprende "distillando" la conoscenza dal Reranker, migliorando la precisione senza l'overhead computazionale del cross-encoder a runtime.
Per ovviare alla scarsità di dati multimodali di alta qualità, è stata impiegata una massiccia data synthesis. Utilizzando Qwen3-VL-32B, hanno generato dataset sintetici per task come image classification, visual question answering e moment retrieval nei video, garantendo una copertura bilanciata di domini e modalità.
Performance e Benchmark
I risultati empirici posizionano Qwen3-VL-Embedding al vertice delle classifiche attuali.
-
MMEB-v2: Il modello Qwen3-VL-Embedding-8B ha ottenuto uno score complessivo di 77.8, classificandosi primo tra tutti i modelli (inclusi quelli closed-source) alla data dell'8 gennaio 2026.
-
MTEB (Text-only): Anche in task puramente testuali, il modello mantiene performance competitive con uno score medio di 67.9, dimostrando che l'allineamento multimodale non ha degradato le capacità linguistiche.
-
Visual Document Retrieval: Sui benchmark Vidore e Jina VDR, il modello ottiene risultati comparabili a modelli specializzati come ColPali, ma con una maggiore efficienza.
Snippet python per provare Qwen3-VL-Embedding
from scripts.qwen3_vl_embedding import Qwen3VLEmbedder
import numpy as np
import torch
# Define a list of query texts
queries = [
{"text": "A woman playing with her dog on a beach at sunset."},
{"text": "Pet owner training dog outdoors near water."},
{"text": "Woman surfing on waves during a sunny day."},
{"text": "City skyline view from a high-rise building at night."}
]
# Define a list of document texts and images
documents = [
{"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"},
{"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"}
]
# Specify the model path
model_name_or_path = "Qwen/Qwen3-VL-Embedding-2B"
# Initialize the Qwen3VLEmbedder model
model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path)
# We recommend enabling flash_attention_2 for better acceleration and memory saving,
# model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path, torch_dtype=torch.float16, attn_implementation="flash_attention_2")
# Combine queries and documents into a single input list
inputs = queries + documents
# Process the inputs to get embeddings
embeddings = model.process(inputs)
# Compute similarity scores between query embeddings and document embeddings
similarity_scores = (embeddings[:4] @ embeddings[4:].T)
# Print out the similarity scores in a list format
print(similarity_scores.tolist())
# [[0.8157786130905151, 0.7178360223770142, 0.7173429131507874], [0.5195091962814331, 0.3302568793296814, 0.4391537308692932], [0.3884059488773346, 0.285782128572464, 0.33141762018203735], [0.1092604324221611, 0.03871120512485504, 0.06952016055583954]]
Risorse per Sperimentare
I modelli sono open source e disponibili per il download. Supportano input fino a 32k context length, permettendo l'analisi di più immagini, video lunghi e documenti complessi.
- Hugging Face Collection: Qwen Collection
- Repository GitHub: Qwen3-VL-Embedding, Qwen3-VL-Reranker
- Paper Tecnico: PDF