Downloads · 30 days
948
10% of all-time downloads
furiosa-ai/Qwen3-VL-4B-Thinking
Qwen3-VL-4B-Thinking is a image-text-to-text model from furiosa-ai. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for furiosa-llm. The card lists the license as apache-2.0.
This repository contains Qwen/Qwen3-VL-4B-Thinking together with a Furiosa Executable Bundle (FXB) for running it on FuriosaAI RNGD with Furiosa-LLM. The same model also runs on other frameworks (such as vLLM, SGLang,…
Downloads · 30 days
948
10% of all-time downloads
All-time downloads
9.5K
Public
Parameters
4.4B
16.6 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors8.9 GB · 95%
From the Hugging Face model README
This repository contains Qwen/Qwen3-VL-4B-Thinking together with a Furiosa Executable Bundle (FXB) for running it on FuriosaAI RNGD with Furiosa-LLM. The same model also runs on other frameworks (such as vLLM, SGLang, and Transformers); for usage with those, see the upstream Qwen/Qwen3-VL-4B-Thinking model card.
Qwen3-VL-4B-Thinking is a 4-billion-parameter dense vision-language model from the Qwen3-VL series. It pairs a vision encoder with a dense transformer decoder, using Interleaved-MRoPE positional embeddings and DeepStack multi-level feature fusion. The upstream model handles images and videos alongside text, covering visual understanding tasks such as OCR, document and chart analysis, spatial reasoning, and video comprehension, and it natively supports tool (function) calling. This is the Thinking edition, which emits an explicit chain-of-thought before its final answer. Its intended use is the same as the upstream Qwen/Qwen3-VL-4B-Thinking, released under the Apache 2.0 License.
No quantization is applied — the model runs in the same precision as the upstream weights.
image_url content parts alongside text.qwen3 reasoning parser.hermes tool-call parser.On RNGD, Qwen3-VL-4B-Thinking runs with a tensor-parallel size of 8 PEs, which maps to a single RNGD card (8 PEs per card).
To run this model with Furiosa-LLM, follow the example commands below after installing Furiosa-LLM and its prerequisites.
Because this is a Thinking model, launch the server with the qwen3 reasoning
parser so its chain-of-thought is separated from the final answer:
# Launch the server, listening on port 8000 by default
furiosa-llm serve furiosa-ai/Qwen3-VL-4B-Thinking \
--reasoning-parser qwen3
To also enable tool (function) calling, add the hermes tool-call parser (the
parser used by the Qwen3 series); keep --reasoning-parser qwen3 so thinking is
still parsed into its own field:
furiosa-llm serve furiosa-ai/Qwen3-VL-4B-Thinking \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser hermes
When the server is ready, you will see:
INFO: Started server process [27507]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
The server exposes an OpenAI-compatible API. You can send a text-only request
with curl:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "furiosa-ai/Qwen3-VL-4B-Thinking",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}' \
| python -m json.tool
To ask about an image, pass an image_url content part in the message:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "furiosa-ai/Qwen3-VL-4B-Thinking",
"messages": [{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"}},
{"type": "text", "text": "Describe this image."}
]
}]
}' \
| python -m json.tool
The image_url.url field accepts a remote http:///https:// URL, an inline
base64 data: URL, or a local file:// path (the last requires the
--allowed-local-media-path flag described under Advanced Usage).
Because this is a Thinking edition, its chain-of-thought is returned separately from the final answer:
response.choices[].message.reasoning (non-streaming)response.choices[].delta.reasoning (streaming)from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="furiosa-ai/Qwen3-VL-4B-Thinking",
messages=[{"role": "user", "content": "How many r's are in 'strawberry'?"}],
)
print("Reasoning:", response.choices[0].message.reasoning)
print("Answer:", response.choices[0].message.content)
Note: The
reasoningfield is not part of the OpenAI API specification but is a widely followed convention (the OpenAI Agents SDK, vLLM, and others). It appears only in responses that contain reasoning content; accessing it otherwise raises anAttributeError.
Multimodal serving options. This example allows local images under
/srv/media, restricts remote image fetches to cdn.example.com, and limits
each request to four images:
furiosa-llm serve furiosa-ai/Qwen3-VL-4B-Thinking \
--reasoning-parser qwen3 \
--allowed-local-media-path /srv/media \
--allowed-media-domains cdn.example.com \
--image-limit-per-prompt 4
See Server Options in the Vision-Language Models guide for the full option reference and defaults.
Image processing options. This example sets a 10-second HTTP image-fetch
timeout and uses min_pixels and max_pixels to bound image resizing:
furiosa-llm serve furiosa-ai/Qwen3-VL-4B-Thinking \
--reasoning-parser qwen3 \
--media-io-kwargs '{"image": {"timeout": 10}}' \
--mm-processor-kwargs '{"min_pixels": 4096, "max_pixels": 200704}'
For supported values, sizing behavior, and per-request overrides, see Multimodal Options in the Vision-Language Models guide.
Reasoning. This is a Thinking edition, so it always reasons; there is no
enable_thinking switch (the Instruct editions are the non-thinking
counterparts).
Tool calling. With the server launched using
--reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser hermes
(see Launch the server), pass tools in the request and
let the model decide when to call them. See the
Tool Calling guide
for a complete client example and details on tool-choice options.
furiosa-llm serve) — full OpenAI-compatible API reference and serving options