This model serves as the
IN (Instruction-tuned) checkpoint before reinforcement learning, built on the
OpenMMReasoner training recipe with
Qwen2.5-VL-3B-Instruct as the base model.
1pip install transformers accelerate
2pip install qwen-vl-utils[decord]==0.0.8
1from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
2from qwen_vl_utils import process_vision_info
3
4model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
5 "AIcell/Frankenstein-IN",
6 torch_dtype="auto",
7 device_map="auto",
8)
9
10processor = AutoProcessor.from_pretrained("AIcell/Frankenstein-IN")
11
12messages = [
13 {
14 "role": "user",
15 "content": [
16 {"type": "image", "image": "https://your-image-url.jpg"},
17 {"type": "text", "text": "Please solve this math problem step by step."},
18 ],
19 }
20]
21
22text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
23image_inputs, video_inputs = process_vision_info(messages)
24inputs = processor(
25 text=[text],
26 images=image_inputs,
27 videos=video_inputs,
28 padding=True,
29 return_tensors="pt",
30).to(model.device)
31
32generated_ids = model.generate(**inputs, max_new_tokens=2048)
33generated_ids_trimmed = [
34 out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
35]
36output_text = processor.batch_decode(
37 generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
38)
39print(output_text[0])
1@article{li2026frankenstein,
2 title={What does RL improve for Visual Reasoning? A Frankenstein-Style Analysis},
3 author={Li, Xirui and Li, Ming and Zhou, Tianyi},
4 journal={arXiv preprint arXiv:2602.12395},
5 year={2026}
6}
This model is released under the
Apache 2.0 License.