Run Qwen3-VL-MoE with Keras 3: JAX, PyTorch, or TensorFlow

GitHub Docs HuggingFace

kerasformers/qwen3-vl-30b-a3b-instruct

Pure-Keras 3 conversion of Qwen/Qwen3-VL-30B-A3B-Instruct for kerasformers. One implementation runs unmodified on TensorFlow / Torch / JAX. Qwen3-VL-MoE is Qwen3-VL with a Mixture-of-Experts text decoder; weights are stored in bfloat16.

For model details, license, and usage terms, see the upstream model card.

Paper: Qwen3 Technical Report (arXiv:2505.09388) · HF Papers

Paper: Qwen2.5-VL Technical Report (arXiv:2502.13923) · HF Papers

Paper: Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution (arXiv:2409.12191) · HF Papers

Paper: Qwen-VL: A Frontier Large Vision-Language Model with Versatile Abilities (arXiv:2308.12966) · HF Papers

✨ Quick start

Text-only

import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

from kerasformers.models.qwen3_vl_moe import Qwen3VLMoeTextGenerate, Qwen3VLMoeProcessor

model = Qwen3VLMoeTextGenerate.from_weights("kerasformers/qwen3-vl-30b-a3b-instruct")
processor = Qwen3VLMoeProcessor.from_weights("kerasformers/qwen3-vl-30b-a3b-instruct")

inputs = processor(conversation=[
    {"role": "user", "content": [{"type": "text", "text": "Hello, who are you?"}]}
])
outputs = model.generate(**inputs, max_new_tokens=64)
print(processor.decode(outputs[0]))

Image + text

import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

from PIL import Image
from kerasformers.models.qwen3_vl_moe import Qwen3VLMoeConditionalGenerate, Qwen3VLMoeProcessor

model = Qwen3VLMoeConditionalGenerate.from_weights("kerasformers/qwen3-vl-30b-a3b-instruct")
processor = Qwen3VLMoeProcessor.from_weights("kerasformers/qwen3-vl-30b-a3b-instruct")

inputs = processor(conversation=[
    {"role": "user", "content": [
        {"type": "image", "image": Image.open("photo.jpg")},
        {"type": "text", "text": "Describe this image in one sentence."},
    ]}
])
outputs = model.generate(**inputs, max_new_tokens=64)
print(processor.decode(outputs[0]))

Special Thanks

A huge thank you to the Qwen team at Alibaba for creating and releasing these models.

License: Apache 2.0.

Downloads last month
315
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for zeromodels/qwen3-vl-30b-a3b-instruct

Finetuned
(27)
this model

Collection including zeromodels/qwen3-vl-30b-a3b-instruct

Papers for zeromodels/qwen3-vl-30b-a3b-instruct