Base model
This adapter is trained on top of google/gemma-4-E2B-it. You must accept the Gemma license and set HF_TOKEN to download the base weights.
Training data
Fine-tuned on nabin2004/AOS-Trajectories using the AOS Phase 1 SFT trainer (apps/sft).
Usage
Load with PEFT (Python)
import os
import torch
from peft import PeftModel
from transformers import AutoModelForImageTextToText, AutoTokenizer, BitsAndBytesConfig
token = os.environ["HF_TOKEN"]
base_id = "google/gemma-4-E2B-it"
adapter_id = "nabin2004/AOS-gemma4-manim-sft"
bnb = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
base = AutoModelForImageTextToText.from_pretrained(
base_id,
quantization_config=bnb,
device_map="auto",
torch_dtype=torch.bfloat16,
token=token,
)
model = PeftModel.from_pretrained(base, adapter_id, token=token)
tokenizer = AutoTokenizer.from_pretrained(adapter_id, token=token)
model.eval()
The adapter is trained on multi-turn Code Agent tool calls, not single-turn prose. Use the AOS inference script:
cd apps/sft
uv run python infer.py \
--adapter-dir nabin2004/AOS-gemma4-manim-sft \
--prompt "Create a short Manim scene explaining eigenvectors in 2D."
Colab:
uv run --package sft python apps/sft/infer.py \
--adapter-dir nabin2004/AOS-gemma4-manim-sft \
--colab \
--prompt "Create a short Manim scene explaining eigenvectors in 2D."
Files
Table with columns: File, Description| File | Description |
|---|
adapter_config.json | PEFT LoRA configuration |
adapter_model.safetensors | LoRA weights |
tokenizer_config.json | Training chat template (includes {% generation %} markers) |
Training
cd apps/sft
uv run python run.py --colab --epochs 1 --report-to none --push-to-hub
Or upload an existing adapter:
export HF_TOKEN=hf_...
uv run python upload_adapter.py --adapter-dir ./gemma4-manim-ft