Entity12208 commited on
Commit
02c44ba
Β·
verified Β·
1 Parent(s): 12f1a4f

model card update

Browse files
Files changed (1) hide show
  1. README.md +21 -65
README.md CHANGED
@@ -17,86 +17,42 @@ language:
17
 
18
  # EditorAI v2 β€” 1.5B GD Level Designer with Tool Use
19
 
20
- Fine-tune of **Qwen/Qwen2.5-1.5B-Instruct** that generates [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) level data and **calls tools** to plan, check level length, search Newgrounds for songs, analyze the editor state, and more.
21
 
22
- Built for the [EditorAI](https://github.com/Entity12208/EditorAI) Geode mod. Drop-in replacement for the previous experimental tag.
23
-
24
- ## What's new in v2
25
-
26
- | | v1 (experimental) | v2 |
27
- |---|---|---|
28
- | Tool-call probe T1 (initial call) | βœ“ | βœ“ |
29
- | Tool-call probe T2 (continue after tool result) | βœ— β€” 50-char dud | βœ“ |
30
- | Tool-call probe T3 (non-level question) | βœ— β€” empty | βœ“ |
31
- | Training method | QLoRA (4-bit) | Full bf16 fine-tune on A100 |
32
- | Training data | 2,585 level-only rows | 3,700 mixed rows (level + tool use + Alpaca instruct) |
33
- | Tool catalog seen during training | none | all 7 EditorAI mod tools |
34
- | Multi-turn tool conversations in data | 0 | ~960 length-loop scenarios |
35
-
36
- ## Tools the model knows
37
-
38
- Same names + schemas as the EditorAI Geode mod ships:
39
-
40
- - `get_level_length` β€” current length in seconds, plus target and X-cursor
41
- - `analyze_level` β€” object count, X-span, dominant types, current song
42
- - `think` β€” log a brief plan
43
- - `web_search` β€” search the web for inspiration
44
- - `search_newgrounds` β€” find a song by name β†’ Newgrounds ID
45
- - `get_newgrounds_song` β€” fetch song metadata by ID
46
- - `download_level` β€” pull an existing GD level by numeric ID
47
 
48
  ## Files
49
 
50
- | File | Size | Use for |
51
- |---|---|---|
52
- | `editorai-v2-Q4_K_M.gguf` | 941 MB | Ollama / llama.cpp (default β€” recommended) |
53
- | `editorai-v2-fp16.gguf` | 2.9 GB | Higher quality on capable hardware |
54
- | `Modelfile.v2` | 2 KB | Ollama Modelfile with tool-capable Qwen2.5 template |
55
 
56
- ## Quick start β€” Ollama
57
 
58
  ```bash
59
- # Either pull from registry:
60
  ollama pull entity12208/editorai:v2
61
 
62
- # …or build from the GGUF + Modelfile in this repo:
63
  ollama create entity12208/editorai:v2 -f Modelfile.v2
64
  ```
65
 
66
- ## Quick start β€” llama.cpp
67
-
68
- ```bash
69
- ./llama-server -m editorai-v2-Q4_K_M.gguf -c 8192 --jinja
70
- ```
71
-
72
- The Modelfile uses Qwen2.5's tool-aware chat template; pass `--jinja` so llama.cpp respects it.
73
-
74
- ## Inference speed (measured)
75
-
76
- | Hardware | Generation t/s |
77
- |---|---|
78
- | GTX 1050 Mobile 4 GB (Pascal) | ~21 |
79
- | RTX 3050 6 GB Mobile (Ampere) | ~50–70 estimate |
80
- | RTX 4090 | 150–250 estimate |
81
-
82
- VRAM at runtime (Q4_K_M): ~1.5 GB including KV cache at 8K context.
83
-
84
- ## Known quirk
85
 
86
- Some Ollama versions silently drop `<tool_call>` blocks when the model emits `arguments` as a JSON-encoded string. The companion mod release ([Entity12208/EditorAI](https://github.com/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.
 
 
87
 
88
- ## Training details
89
 
90
- - Base: `Qwen/Qwen2.5-1.5B-Instruct`
91
- - Hardware: 1Γ— A100 80GB (Lightning.ai)
92
- - Recipe: full bf16 fine-tune (no QLoRA), 2 epochs, lr 2e-4, effective batch 32 (per-device 4 Γ— grad-accum 8)
93
- - Loss: 1.458 β†’ 0.312 over 232 steps (~17 min)
94
- - Dataset mix (3,700 rows):
95
- - ~1,500 multi-turn tool-use conversations (length-loops, song search, edits, web search, level download β€” exact tool schemas matching the EditorAI mod)
96
- - ~1,500 level-generation rows parsed from real `.gmd` files
97
- - ~700 Alpaca-cleaned general instruction rows
98
- - Tokenizer truncation: left-side (keeps the assistant turn intact)
99
- - All training texts pre-rendered through Qwen2.5's `apply_chat_template` so training tokens exactly match inference tokens.
100
 
101
  ## License
102
 
 
17
 
18
  # EditorAI v2 β€” 1.5B GD Level Designer with Tool Use
19
 
20
+ The first practical EditorAI model. Fine-tune of **Qwen/Qwen2.5-1.5B-Instruct** for the [EditorAI Geode mod](https://github.com/Entity12208/EditorAI).
21
 
22
+ | | v2 |
23
+ |---|---|
24
+ | Base model | Qwen2.5-1.5B-Instruct |
25
+ | Context | 8 K |
26
+ | Q4_K_M size | 941 MB |
27
+ | Training | QLoRA 4-bit, 2 epochs, 3,700-row mixed dataset |
28
+ | Tool use | works (with mod fallback parser) |
29
+ | Format | JSON |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  ## Files
32
 
33
+ - `editorai-v2-Q4_K_M.gguf` (941 MB) β€” primary ship target
34
+ - `editorai-v2-fp16.gguf` (2.9 GB) β€” full-precision
35
+ - `Modelfile.v2` β€” Ollama Modelfile with tool-capable Qwen2.5 template
 
 
36
 
37
+ ## Quick start
38
 
39
  ```bash
40
+ # Pull from registry:
41
  ollama pull entity12208/editorai:v2
42
 
43
+ # Or build locally:
44
  ollama create entity12208/editorai:v2 -f Modelfile.v2
45
  ```
46
 
47
+ ## Speed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
+ - GTX 1050 4 GB: ~21 t/s
50
+ - RTX 3050 6 GB: ~50 t/s
51
+ - RTX 4090: ~150+ t/s
52
 
53
+ ## Note
54
 
55
+ v2 emits JSON levels. The companion mod (β‰₯v2.2.0) accepts JSON and includes a parser fallback that handles small format quirks. **For new installs prefer [v3](../editorai-7b-v3) or [v4](../editorai-14b-v4)** β€” they emit the more compact EAS format which is what the mod prefers.
 
 
 
 
 
 
 
 
 
56
 
57
  ## License
58