Downloads · 30 days
23
10% of all-time downloads
Kingsoft-LLM/QZhou-Flowchart-VL-32B
QZhou-Flowchart-VL-32B is a image-text-to-text model from Kingsoft-LLM. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
QZhou-Flowchart-VL-32B is a state-of-the-art multimodal large language model specifically designed for flowchart understanding and reasoning. This model is post-trained from Qwen2.5-VL-32B using reinforcement learning…
Downloads · 30 days
23
10% of all-time downloads
All-time downloads
222
Public
Parameters
33.5B
66.9 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors66.9 GB · 100%
From the Hugging Face model README
QZhou-Flowchart-VL-32B is a state-of-the-art multimodal large language model specifically designed for flowchart understanding and reasoning. This model is post-trained from Qwen2.5-VL-32B using reinforcement learning with our proposed Tri-CoT (Three-stage Chain-of-Thought) reasoning structure.
We develop a full training pipeline for multimodal large language models focused on flowchart understanding, covering data construction, structured reasoning, and reinforcement learning. The pipeline first synthesizes diverse flowcharts using automated topic generation, JSON-based structural representations, Graphviz-style drawing, and optional visual style control, followed by creating corresponding VQA pairs. To enable grounded reasoning, we propose Tri-CoT, a three-stage chain-of-thought format that separates diagram parsing, logical inference, and final answer generation. Unlike traditional CoT, the model is required to output a full JSON representation of the image before reasoning, ensuring accurate extraction of nodes, edges, and branching conditions. During post-training, we compare supervised fine-tuning with Group Relative Policy Optimization, showing that pure RL yields stronger structured reasoning and reduces hallucinations while preserving general capabilities.
<div align="center"> <img src="assets/arch.png" width="740" height="320"></img> </div>Key Features:
| Model | QZhou-Flowchart-QA-Benchmark (%) |
|---|---|
| Qwen2.5-VL-32B | 73.90 |
| Qwen3-VL-Plus (235B) | 80.85 |
| Qwen3-VL-Plus-Thinking (235B) | 86.09 |
| Gemini-2.5-Pro | 84.42 |
| GLM-4.5V | 75.97 |
| doubao-seed-1-6 | 83.83 |
| GPT-5 | 79.29 |
| QZhou-Flowchart-VL-32B (Ours) | 87.83 |
| Model | MMMU | CMMU | MathVista | DocVQA | QZhou-Flowchart-QA-Benchmark |
|---|---|---|---|---|---|
| Qwen2.5-VL-32B | 66.67 | 76.38 | 74.20 | 93.96 | 73.90 |
| QZhou-Flowchart-VL-32B | 67.78 | 76.46 | 76.50 | 93.87 | 87.83 |
pip install transformers torch pillow
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
# Load model and tokenizer
model_name = "Kingsoft-LLM/QZhou-Flowchart-VL-32B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Load flowchart image
image = Image.open("flowchart.png")
# Prepare input with system prompt
system_prompt = """You are an expert at understanding and analyzing flowcharts.
When answering questions about flowcharts, you should:
1. First extract the flowchart structure in JSON format and wrap it in <json></json> tags
2. Then provide your reasoning process in <think></think> tags
3. Finally give the answer in <answer></answer> tags"""
user_question = "What are the start nodes in this flowchart?"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": [
{"type": "image", "image": image},
{"type": "text", "text": user_question}
]}
]
# Generate response
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=2048,
temperature=0.7,
top_p=0.9
)
response = tokenizer.batch_decode(
generated_ids,
skip_special_tokens=True
)[0]
print(response)
The model generates responses in three structured parts:
<json>
{
"nodes": [...],
"edges": [...],
"axes": {...}
}
</json>
<think>
Step-by-step reasoning process based on the extracted JSON structure...
</think>
<answer>
Final answer to the question
</answer>
The model uses a composite reward function with three components:
This model is released under the same license as Qwen2.5-VL. Please refer to the Qwen License for details.
For questions and feedback, contact us at [[email protected]].