This document is relevant for: Trn2, Trn3
Qwen3-VL (Dense) Model Recipe#
Introduction#
Qwen3-VL is a multimodal language model developed by the Qwen team. It supports image-text understanding, visual reasoning, OCR, document analysis, and multi-image comparison. The -Instruct variant is instruction-tuned for chat and task-following, while the -Thinking variant adds extended chain-of-thought reasoning.
Qwen3-VL is now supported for inference serving with vLLM using the Neuron SDK on AWS Trainium2 (trn2) and Trainium3 (trn3) hardware.
Compatible model checkpoints:
Model |
HuggingFace |
|---|---|
Qwen3-VL-32B-Instruct |
|
Qwen3-VL-32B-Thinking |
|
Qwen3-VL-8B-Instruct |
|
Qwen3-VL-8B-Thinking |
The
-Thinkingcheckpoint shares the same architecture and serving path as-Instructand runs with the identical configuration. The accuracy numbers below were measured on the-Thinkingvariant.
Features#
Per-model feature availability for Qwen3-VL. See the features guide for configuration details.
Category |
Feature |
Status |
|---|---|---|
Multimodal Inputs |
Text |
✅ |
Single image + text |
✅ |
|
Multi-image + text |
✅ |
|
Video + text |
✅ |
|
Quantization |
BF16 |
✅ |
Parallelism |
Tensor parallelism (TP) |
✅ |
Vision encoder parallelism |
✅ |
|
Pipeline parallelism (PP) |
❌ |
|
Context parallelism (CP) |
❌ |
|
Performance |
Segmented prefill |
✅ |
On-device sampling (greedy, top-k, top-p) |
✅ |
|
Chunked prefill (mixed batching) |
❌ |
|
Compilation |
torch.compile (XLA backend) |
✅ |
CPU mode (testing) |
✅ |
Status legend:
✅ Supported: integrated and tested for Qwen3-VL
❌ Not supported: may be considered for future releases
Tensor parallelism is recommended at tensor_parallel_size=16 on a trn2.48xlarge (16 NeuronCores), matching the configuration used throughout the tutorial.
Multi-image input is validated up to 30 images at 512x512 resolution.
Vision encoder parallelism shards the encoder by the num_blocks dimension of the block-packed images (unlike text DP, which shards by request batch), configurable via vision_neuron_config.
Accuracy Evaluation#
Benchmark: POPE (Polling-based Object Probing Evaluation): 5,000 binary Yes/No questions about object presence in images across three difficulty subsets: popular, adversarial, random. Results are from the open-source VLMEvalKit harness.
Metric |
32B-Thinking, Neuron Trn2 BF16 |
|---|---|
Overall F1 |
85.94 |
Adversarial F1 |
84.86 |
Popular F1 |
85.63 |
Random F1 |
87.38 |
Reproduce: Serve the -Thinking checkpoint following the tutorial and add --served-model-name Qwen3-VL-32B-Thinking to vllm serve, then run VLMEvalKit’s run.py against the running server over its OpenAI-compatible endpoint:
git clone https://github.com/open-compass/VLMEvalKit.git
cd VLMEvalKit && git checkout fd3884b && pip install . && cd ..
python VLMEvalKit/run.py --data POPE --model Qwen3-VL-32B-Thinking \
--base-url http://localhost:8000/v1 --max-tokens 256
Tutorials#
This document is relevant for: Trn2, Trn3