Model reference · open weights
Recon2Reason-Reasoning is an open-weight language model from BAAI. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | BAAI |
|---|---|
| Type | Language models |
| Task | Vision + text |
| Parameters (lead) | 4.4B |
| Context | 256k tokens |
| Runs with | transformers |
| Based on | Qwen/Qwen3-VL-4B-Instruct |
| Released | 2026-09-03 |
| Popularity | 0 downloads / month |
| Licence | Open weights |
About
Recon2Reason Reasoning 4B is a 4B-scale vision-language model specialized for spatial reasoning in indoor and embodied scenes. It is fine-tuned from Qwen3-VL-4B and improves reasoning about metric distance, relative position, object configuration, and spatial relations from visual inputs.
The checkpoint retains the standard Qwen3VLForConditionalGeneration architecture. No custom model code or trust_remote_code=True is required.
This repository contains the reasoning model only. The retrieval-augmented scene-reconstruction extension is released separately.
| Property | Value |
|---|---|
| Model name | Recon2Reason Reasoning 4B |
| Model type | Vision-language conditional generation model |
| Architecture | Qwen3VLForConditionalGeneration |
| Parameters | 4,437,815,808 |
| Weight dtype | BF16 |
| Weight format | Safetensors, 2 shards |
| Primary domain | Indoor spatial reasoning |
| Base model | Qwen3-VL-4B-Instruct |
| Tested Transformers version | 4.57.1 |
| License | Apache-2.0 |
pip install "transformers==4.57.1" "torch>=2.6" accelerate safetensors pillow
import torch
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
model_id = "BAAI/Recon2Reason-Reasoning-4B"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3VLForConditionalGeneration.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
).eval()
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "path/to/scene.jpg"},
{
"type": "text",
"text": "Which object is closest to the chair? ",
},
],
}
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
output_ids = model.generate(
**inputs,
max_new_tokens=512,
do_sample=False,
)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
answer = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False,
)[0]
print(answer)
The model uses the standard Qwen3-VL chat format. For benchmark reproduction, use greedy decoding (do_sample=False) unless a benchmark specifies otherwise.
The checkpoint was evaluated in BF16 with PyTorch 2.8.0, Transformers 4.57.1, SDPA attention, and greedy decoding on NVIDIA RTX PRO 6000 Blackwell GPUs.
The model is released under the Apache License 2.0, subject to final confirmation that all training data and upstream artifacts permit this distribution. See LICENSE.
This work builds on Qwen3-VL. We thank the creators of the evaluation datasets and the open-source Transformers ecosystem.
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys recon2reason-reasoning for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (recon2reason-reasoning below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"recon2reason-reasoning","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.