Vision-language AI for chart question answering using Qwen3-VL with SFT and GRPO training
5
stars
16
commits
Python
primary language
Jan 5, 2026
updated
Fine-tuning Qwen3-VL-2B for chart question answering using SFT and GRPO.
This repository implements a two-stage training pipeline for chart question answering:
pip install -r requirements.txt
ChartQADataset/
├── train/
│ ├── train_augmented.json
│ └── png/
├── val/
│ ├── val_augmented.json
│ └── png/
└── test/
├── test_augmented.json
└── png/
cd sft
python train.py
cd grpo
python train.py
python test_model.py
ChartQA/
├── sft/ # Supervised fine-tuning
│ ├── config.py
│ ├── model.py
│ ├── data_loader.py
│ ├── collator.py
│ ├── callbacks.py
│ ├── trainer.py
│ └── train.py
│
├── grpo/ # GRPO training
│ ├── config.py
│ ├── model.py
│ ├── data_loader.py
│ ├── rewards.py
│ ├── callbacks.py
│ ├── trainer.py
│ └── train.py
│
├── test_model.py # Evaluation script
└── requirements.txt
sft/config.py)grpo/config.py)GRPO uses a multi-component reward:
reward = λ_format × format × (λ_acc × accuracy + λ_len × length) + λ_format × format - 1
Where:
Test the model on ChartQA test set:
python test_model.py
Results are saved to test_results.json.
You can try the live demo on Hugging Face: ChartQA-Qwen3-VL-2B Demo
MIT License - see LICENSE file for details.
@misc{chartqa-qwen3vl,
title={ChartQA with Qwen3-VL: SFT and GRPO Training},
author={ChartQA Project},
year={2026},
url={https://github.com/yourusername/ChartQA}
}
16 commits
Python
100.0%
Vision-language AI for chart question answering using Qwen3-VL with SFT and GRPO training
5
stars
16
commits
Python
primary language
Jan 5, 2026
updated
Fine-tuning Qwen3-VL-2B for chart question answering using SFT and GRPO.
This repository implements a two-stage training pipeline for chart question answering:
pip install -r requirements.txt
ChartQADataset/
├── train/
│ ├── train_augmented.json
│ └── png/
├── val/
│ ├── val_augmented.json
│ └── png/
└── test/
├── test_augmented.json
└── png/
cd sft
python train.py
cd grpo
python train.py
python test_model.py
ChartQA/
├── sft/ # Supervised fine-tuning
│ ├── config.py
│ ├── model.py
│ ├── data_loader.py
│ ├── collator.py
│ ├── callbacks.py
│ ├── trainer.py
│ └── train.py
│
├── grpo/ # GRPO training
│ ├── config.py
│ ├── model.py
│ ├── data_loader.py
│ ├── rewards.py
│ ├── callbacks.py
│ ├── trainer.py
│ └── train.py
│
├── test_model.py # Evaluation script
└── requirements.txt
sft/config.py)grpo/config.py)GRPO uses a multi-component reward:
reward = λ_format × format × (λ_acc × accuracy + λ_len × length) + λ_format × format - 1
Where:
Test the model on ChartQA test set:
python test_model.py
Results are saved to test_results.json.
You can try the live demo on Hugging Face: ChartQA-Qwen3-VL-2B Demo
MIT License - see LICENSE file for details.
@misc{chartqa-qwen3vl,
title={ChartQA with Qwen3-VL: SFT and GRPO Training},
author={ChartQA Project},
year={2026},
url={https://github.com/yourusername/ChartQA}
}
16 commits
Python
100.0%