How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("image-text-to-text", model="TIGER-Lab/VisCoder2-14B")
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"},
            {"type": "text", "text": "What animal is on the candy?"}
        ]
    },
]
pipe(text=messages)
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("TIGER-Lab/VisCoder2-14B")
model = AutoModelForCausalLM.from_pretrained("TIGER-Lab/VisCoder2-14B")
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"},
            {"type": "text", "text": "What animal is on the candy?"}
        ]
    },
]
inputs = tokenizer.apply_chat_template(
	messages,
	add_generation_prompt=True,
	tokenize=True,
	return_dict=True,
	return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

VisCoder2-14B

🏠 Project Page | 📖 Paper | 💻 GitHub | 🤗 VisCode2

VisCoder2-14B is a lightweight multi-language visualization coding model trained for executable code generation, rendering, and iterative self-debugging.


🧠 Model Description

VisCoder2-14B is trained on the VisCode-Multi-679K dataset, a large-scale instruction-tuning dataset for executable visualization tasks across 12 programming language. It addresses a core challenge in multi-language visualization: generating code that not only executes successfully but also produces semantically consistent visual outputs by aligning natural-language instructions and rendering results.


📊 Main Results on VisPlotBench

We evaluate VisCoder2-14B on VisPlotBench, which includes 888 executable visualization tasks spanning 8 languages, supporting both standard generation and multi-turn self-debugging.

main_results

VisCoder2-14B shows consistent performance across multiple languages and achieves notable improvements under the multi-round self-debug setting.


📁 Training Details

  • Base model: Qwen2.5-Coder-14B-Instruct
  • Framework: ms-swift
  • Tuning method: Full-parameter supervised fine-tuning (SFT)
  • Dataset: VisCode-Multi-679K

📖 Citation

If you use VisCoder2-14B or related datasets in your research, please cite:

@article{ni2025viscoder2,
  title={VisCoder2: Building Multi-Language Visualization Coding Agents},
  author={Ni, Yuansheng and Cai, Songcheng and Chen, Xiangchao and Liang, Jiarong and Lyu, Zhiheng and Deng, Jiaqi and Zou, Kai and Nie, Ping and Yuan, Fei and Yue, Xiang and others},
  journal={arXiv preprint arXiv:2510.23642},
  year={2025}
}

@article{ni2025viscoder,
  title={VisCoder: Fine-Tuning LLMs for Executable Python Visualization Code Generation},
  author={Ni, Yuansheng and Nie, Ping and Zou, Kai and Yue, Xiang and Chen, Wenhu},
  journal={arXiv preprint arXiv:2506.03930},
  year={2025}
}

For evaluation scripts and more information, see our GitHub repository.

Downloads last month
16
Safetensors
Model size
15B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for TIGER-Lab/VisCoder2-14B

Base model

Qwen/Qwen2.5-14B
Finetuned
(79)
this model
Quantizations
3 models

Dataset used to train TIGER-Lab/VisCoder2-14B

Collection including TIGER-Lab/VisCoder2-14B

Papers for TIGER-Lab/VisCoder2-14B