EditorAI v2 โ€” 1.5B GD Level Designer with Tool Use

Fine-tune of Qwen/Qwen2.5-1.5B-Instruct that generates Geometry Dash level data and calls tools to plan, check level length, search Newgrounds for songs, analyze the editor state, and more.

Built for the EditorAI Geode mod. Drop-in replacement for the previous experimental tag.

What's new in v2

v1 (experimental) v2
Tool-call probe T1 (initial call) โœ“ โœ“
Tool-call probe T2 (continue after tool result) โœ— โ€” 50-char dud โœ“
Tool-call probe T3 (non-level question) โœ— โ€” empty โœ“
Training method QLoRA (4-bit) Full bf16 fine-tune on A100
Training data 2,585 level-only rows 3,700 mixed rows (level + tool use + Alpaca instruct)
Tool catalog seen during training none all 7 EditorAI mod tools
Multi-turn tool conversations in data 0 ~960 length-loop scenarios

Tools the model knows

Same names + schemas as the EditorAI Geode mod ships:

  • get_level_length โ€” current length in seconds, plus target and X-cursor
  • analyze_level โ€” object count, X-span, dominant types, current song
  • think โ€” log a brief plan
  • web_search โ€” search the web for inspiration
  • search_newgrounds โ€” find a song by name โ†’ Newgrounds ID
  • get_newgrounds_song โ€” fetch song metadata by ID
  • download_level โ€” pull an existing GD level by numeric ID

Files

File Size Use for
editorai-v2-Q4_K_M.gguf 941 MB Ollama / llama.cpp (default โ€” recommended)
editorai-v2-fp16.gguf 2.9 GB Higher quality on capable hardware
Modelfile.v2 2 KB Ollama Modelfile with tool-capable Qwen2.5 template

Quick start โ€” Ollama

# Either pull from registry:
ollama pull entity12208/editorai:v2

# โ€ฆor build from the GGUF + Modelfile in this repo:
ollama create entity12208/editorai:v2 -f Modelfile.v2

Quick start โ€” llama.cpp

./llama-server -m editorai-v2-Q4_K_M.gguf -c 8192 --jinja

The Modelfile uses Qwen2.5's tool-aware chat template; pass --jinja so llama.cpp respects it.

Inference speed (measured)

Hardware Generation t/s
GTX 1050 Mobile 4 GB (Pascal) ~21
RTX 3050 6 GB Mobile (Ampere) ~50โ€“70 estimate
RTX 4090 150โ€“250 estimate

VRAM at runtime (Q4_K_M): ~1.5 GB including KV cache at 8K context.

Known quirk

Some Ollama versions silently drop <tool_call> blocks when the model emits arguments as a JSON-encoded string. The companion mod release (Entity12208/EditorAI โ‰ฅ v2.2.0) has a parser fallback that recovers both wrapped and unwrapped tool calls. If you wire the model into your own client, mirror that fallback or post-process: if tool_calls is empty but content is bare JSON of shape {"name":..., "arguments":...}, treat it as a tool call.

Training details

  • Base: Qwen/Qwen2.5-1.5B-Instruct
  • Hardware: 1ร— A100 80GB (Lightning.ai)
  • Recipe: full bf16 fine-tune (no QLoRA), 2 epochs, lr 2e-4, effective batch 32 (per-device 4 ร— grad-accum 8)
  • Loss: 1.458 โ†’ 0.312 over 232 steps (~17 min)
  • Dataset mix (3,700 rows):
    • ~1,500 multi-turn tool-use conversations (length-loops, song search, edits, web search, level download โ€” exact tool schemas matching the EditorAI mod)
    • ~1,500 level-generation rows parsed from real .gmd files
    • ~700 Alpaca-cleaned general instruction rows
  • Tokenizer truncation: left-side (keeps the assistant turn intact)
  • All training texts pre-rendered through Qwen2.5's apply_chat_template so training tokens exactly match inference tokens.

License

Apache-2.0, inherited from the base model.

Downloads last month
20
GGUF
Model size
2B params
Architecture
qwen2
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for EditorAI-Geode/editorai-1p5b-v2

Quantized
(190)
this model