CoolFace
Modelpublic

TencentBAC/TBAC-VLR1-3B-preview

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
14likes85downloads
Model Card

TBAC-VLR1-3B-preview

Overview

This is a multimodal language model fine-tuned by Tencent PCG Basic Algorithm Center. Based on Qwen2.5-VL-3B-Instruct, TBAC-VLR1-3B-preview uses Group Relative Policy Optimization (GRPO) to enhance multimodal reasoning ability, achieving state-of-the-art results on several multimodal reasoning benchmarks among models of the same size.

Performance

Model**Average****MathVista****MathVision****MathVerse****DynaMath****WeMath****LogicVista**
Qwen2-VL-2B20.548.016.117.53.810.826.6
InternVL2.5-2B21.251.114.022.34.48.027.3
InternVL3-2B29.157.620.224.514.822.940.3
Qwen2.5-VL-3B31.861.221.931.213.222.940.3
VLM-R1-3B-Math-030533.462.721.932.213.030.040.5
Taichu-VLR-3B33.664.923.132.112.630.438.7
VLAA-Thinker-Qwen2.5VL-3B35.461.024.436.418.233.838.5
TBAC-VLR1-3B-preview35.764.825.033.217.732.440.8

[image]

The compared results are sourced from https://opencompass.org.cn.

The results of our model are self-reported, obtained by running evaluations offline on each benchmark.

Usage

python
from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    "TencentBAC/TBAC-VLR1-3B-preview", torch_dtype="auto", device_map="auto"
)

processor = AutoProcessor.from_pretrained("TencentBAC/TBAC-VLR1-3B-preview")

messages = [
    {
        "role": "system",
        "content": "You are a helpful assistant. The user asks a question, and you solve it. You need first think about the reasoning process in the mind and then provides the user with the answer. The answer are enclosed within \\boxed{} tags i.e., reasoning process here \\boxed{ answer here }."
    },
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": image_path,
            },
            {"type": "text", "text": query},
        ],
    }
]

# Preparation for inference
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")

# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

Citation

If you find our model useful in your research, please consider giving ❤️ and citations. Thanks!

@misc{Xu2025tbacvlr1,
  title={TBAC-VLR1-3B-preview}, 
  author={Junzhe Xu and Yuyang yin},
  url={https://huggingface.co/TencentBAC/TBAC-VLR1-3B-preview},
  year={2025},
}

About

Created by the Tencent PCG Basic Algorithm Center. All rights reserved.