|
|
--- |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- en |
|
|
library_name: transformers |
|
|
tags: |
|
|
- manim |
|
|
- code-generation |
|
|
- animation |
|
|
- python |
|
|
- fine-tuned |
|
|
base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct |
|
|
datasets: |
|
|
- generaleoley/manim-codegen |
|
|
pipeline_tag: text-generation |
|
|
--- |
|
|
|
|
|
# π VLQM-1.5B-Coder |
|
|
|
|
|
**A fine-tuned language model for generating Manim animation code from natural language descriptions.** |
|
|
|
|
|
[](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) |
|
|
[](https://github.com/ml-explore/mlx) |
|
|
[](LICENSE) |
|
|
|
|
|
--- |
|
|
|
|
|
## π Model Description |
|
|
|
|
|
**VLQM-1.5B-Coder** is a specialized language model fine-tuned to generate [Manim](https://www.manim.community/) Python code from natural language descriptions. Manim is the mathematical animation engine famously used by 3Blue1Brown. |
|
|
|
|
|
### What This Model Does |
|
|
|
|
|
Given a natural language prompt: |
|
|
``` |
|
|
"Create a blue circle that moves to the right" |
|
|
``` |
|
|
|
|
|
The model generates valid Manim Python code: |
|
|
```python |
|
|
from manim import * |
|
|
|
|
|
class GenScene(Scene): |
|
|
def construct(self): |
|
|
circle = Circle(color=BLUE) |
|
|
self.add(circle) |
|
|
self.play(circle.animate.shift(RIGHT * 3)) |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π― Intended Use |
|
|
|
|
|
- **Primary Use**: Generating Manim animation code from text descriptions |
|
|
- **Users**: Developers, educators, content creators making math/science animations |
|
|
- **Languages**: English prompts, Python code output |
|
|
|
|
|
### Example Use Cases |
|
|
- Creating educational math animations |
|
|
- Generating visualizations for presentations |
|
|
- Prototyping Manim scenes quickly |
|
|
- Learning Manim syntax through examples |
|
|
|
|
|
--- |
|
|
|
|
|
## π Training Details |
|
|
|
|
|
| Property | Value | |
|
|
|----------|-------| |
|
|
| **Base Model** | `Qwen/Qwen2.5-Coder-1.5B-Instruct` | |
|
|
| **Parameters** | 1.5 Billion | |
|
|
| **Training Method** | LoRA (Low-Rank Adaptation) | |
|
|
| **Dataset** | [`generaleoley/manim-codegen`](https://huggingface.co/datasets/generaleoley/manim-codegen) | |
|
|
| **Training Examples** | 1,459 | |
|
|
| **Validation Examples** | 163 | |
|
|
| **Training Framework** | Apple MLX | |
|
|
| **Hardware** | MacBook Pro (Apple Silicon) | |
|
|
|
|
|
### Hyperparameters |
|
|
| Parameter | Value | |
|
|
|-----------|-------| |
|
|
| Iterations | 300 | |
|
|
| Batch Size | 2 | |
|
|
| Gradient Accumulation | 8 | |
|
|
| Learning Rate | 5e-5 | |
|
|
| LoRA Layers | 16 | |
|
|
| Max Sequence Length | 8,192 | |
|
|
|
|
|
--- |
|
|
|
|
|
--- |
|
|
|
|
|
## π Model Performance |
|
|
|
|
|
### Training Loss Curve |
|
|
The model shows a strong convergence pattern, with validation loss stabilizing around **0.71** and training loss reaching **0.48**. |
|
|
|
|
|
 |
|
|
|
|
|
## β οΈ Limitations |
|
|
|
|
|
### Known Limitations |
|
|
|
|
|
1. **Complex Animations**: May struggle with multi-step animations involving many objects |
|
|
2. **Advanced Manim Features**: Less reliable with 3D scenes, complex graphs, or advanced camera movements |
|
|
3. **API Hallucinations**: Sometimes generates non-existent Manim methods (e.g., `axes.get_sine()`) |
|
|
4. **Indentation Issues**: Occasionally produces incorrectly indented code |
|
|
5. **Long Prompts**: Performance degrades with very long or complex descriptions |
|
|
|
|
|
### What This Model is NOT |
|
|
|
|
|
- β Not a general-purpose code generator |
|
|
- β Not trained for non-Manim Python code |
|
|
- β Not suitable for production without human review |
|
|
- β Not a replacement for learning Manim fundamentals |
|
|
|
|
|
### Recommended Practices |
|
|
|
|
|
- β
Always review and test generated code before use |
|
|
- β
Use simple, clear prompts for best results |
|
|
- β
Keep prompts focused on one animation at a time |
|
|
- β
Be prepared to make minor edits to fix issues |
|
|
|
|
|
--- |
|
|
|
|
|
## π Quick Start |
|
|
|
|
|
### Using with Transformers (Cross-Platform) |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
"vikramlingam/VLQM-1.5B-Coder", |
|
|
device_map="auto" |
|
|
) |
|
|
tokenizer = AutoTokenizer.from_pretrained("vikramlingam/VLQM-1.5B-Coder") |
|
|
|
|
|
prompt = "Create a red square that rotates" |
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
|
outputs = model.generate(**inputs, max_new_tokens=256) |
|
|
print(tokenizer.decode(outputs[0])) |
|
|
``` |
|
|
|
|
|
### Using with MLX (Apple Silicon) |
|
|
|
|
|
```bash |
|
|
python -m mlx_lm.generate \ |
|
|
--model vikramlingam/VLQM-1.5B-Coder \ |
|
|
--prompt "Create a circle animation" \ |
|
|
--max-tokens 256 |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π Model Files |
|
|
|
|
|
``` |
|
|
VLQM-1.5B-Coder/ |
|
|
βββ config.json # Model configuration |
|
|
βββ model.safetensors # Model weights (~3 GB) |
|
|
βββ tokenizer.json # Tokenizer |
|
|
βββ tokenizer_config.json |
|
|
βββ vocab.json |
|
|
βββ merges.txt |
|
|
βββ generation_config.json |
|
|
βββ special_tokens_map.json |
|
|
βββ README.md # This file |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π License |
|
|
|
|
|
This model is released under the **Apache 2.0 License**. |
|
|
|
|
|
- β
Commercial use allowed |
|
|
- β
Modification allowed |
|
|
- β
Distribution allowed |
|
|
- β οΈ Must include license and copyright notice |
|
|
|
|
|
--- |
|
|
|
|
|
## π Acknowledgments |
|
|
|
|
|
- **Base Model**: [Qwen/Qwen2.5-Coder-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) by Alibaba |
|
|
- **Dataset**: [generaleoley/manim-codegen](https://huggingface.co/datasets/generaleoley/manim-codegen) |
|
|
- **Training Framework**: [Apple MLX](https://github.com/ml-explore/mlx) |
|
|
- **Animation Engine**: [Manim Community](https://www.manim.community/) |
|
|
|
|
|
--- |
|
|
|
|
|
## π¬ Citation |
|
|
|
|
|
If you use this model, please cite: |
|
|
|
|
|
```bibtex |
|
|
@misc{vlqm-1.5b-coder, |
|
|
author = {Vikram Lingam}, |
|
|
title = {VLQM-1.5B-Coder: Manim Code Generation Model}, |
|
|
year = {2025}, |
|
|
publisher = {Hugging Face}, |
|
|
url = {https://huggingface.co/vikramlingam/VLQM-1.5B-Coder} |
|
|
} |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π Model Card Contact |
|
|
|
|
|
For questions or issues, please open a discussion on the model's Hugging Face page. |
|
|
|