Vietnamese Traffic Sign VQA — Checkpoints

Model checkpoints for the Deep Learning course final project.

Contents

Path Description Size
a1_lstm/best.pt A1: CLIP + PhoBERT + Co-Attention + LSTM decoder ~2.4 GB
a2_transformer/best.pt A2: CLIP + PhoBERT + Co-Attention + Transformer decoder ~2.5 GB
b2_sft_lora/ B2-SFT: Qwen2.5-VL-3B QLoRA adapter (best checkpoint) ~153 MB
b2_dpo_lora/ B2-DPO: Qwen2.5-VL-3B DPO-aligned adapter (500 pairs, balanced) ~153 MB
stable_diffusion_lora/ SD LoRA: Stable Diffusion v1.5 LoRA on traffic sign images (12k steps) ~6 MB

Results (Full Test Set)

Model VQA Acc BLEU-4 ROUGE-L BERTScore Latency
A1 LSTM 0.9484 0.9602 0.9584 0.9631 ~11 ms
A2 Transformer 0.9377 0.9476 0.9486 0.9713 ~13 ms
B1 Zero-shot 0.1962 0.0350 0.2899 0.4753 ~167 ms
B2-SFT QLoRA 0.9379 0.9494 0.9508 0.9111 ~484 ms

Human evaluation (100 natural questions): B2-DPO 73% > B2-SFT 70% > A1 61%

Dataset

See Anakonkai/vietnamese-traffic-sign-vqa

Code

GitHub: https://github.com/Anakonkai/SDA

Usage

A1 / A2

import torch
from models.model_a import VQAModelA

model = VQAModelA(decoder_type="lstm")  # or "transformer"
ckpt = torch.load("a1_lstm/best.pt", map_location="cpu")
model.load_state_dict(ckpt["model_state_dict"])

B2-SFT

python evaluate/evaluate.py \
  --model b2 --backend qwen25 --load-in-4bit \
  --checkpoint b2_sft_lora/ \
  --data data/processed/annotations

Stable Diffusion LoRA

from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
pipe.load_lora_weights("stable_diffusion_lora/")
image = pipe("a Vietnamese street intersection with traffic signs").images[0]
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support