Lineage
Qwen/Qwen3.5-9B-Base
└─ huihui-ai/Huihui-Qwen3.5-9B-abliterated
└─ nbeerbower/Huihui-Qwen3.5-9B-abliterated-TIES (+ Grimoire SFT/ORPO, 3-way TIES)
└─ + Schierling (Hemlock SFT, Hemlock-SFT-combined) = Hemlock-Qwen3.5-9B
└─ + Bubba (GreatFirewall ORPO — states facts it otherwise sanitises)
└─ + delegation (hands engineering work to a code agent)
└─ + egirl (delegation + Hemlock tool use, ORPO) ← Wichtelchen
Results — the full ladder, every rung benched
Table with columns: baseline, +Schierling, +Bubba, +delegation, Wichtelchen | baseline | +Schierling | +Bubba | +delegation | Wichtelchen |
|---|
| hembench (weighted) | 28.5% | 57.1% | 49.4% | 50.6% | 56.1% |
| egirl 47-case | 41/47 | 37 | 36 | 36 | 37/47 |
| — delegate axis | 6/10 | 7 | 7 | 9 | 10/10 |
| censorship (best-of-5) | 28.8/29 | 29.0 | 28.8 | 28.6 | 29.0/29 |
| ARC (deterministic) | 61.54 | 62.54 | 62.54 | 62.54 | 61.87 |
| wiki perplexity | 6.656 | 6.782 | 6.739 | 6.717 | 6.720 |
The Bubba rung cost 7.7 hembench points at rung 2; the egirl rung's Hemlock preference
pairs recovered nearly all of it (49.4 → 56.1) — the same interaction the 27B showed.
General capability never moved: ARC stayed in a one-point band across all four rungs and
final perplexity is within 1% of baseline.
Limitations
- Call formatting wobble (9B-specific). On 3 of 47 bench cases the model emits a
malformed tool call —
arguments as a bare string, or an argument hoisted to the top
level. The 27B never did this. A lenient parser (or one repair round of preference
training) covers it.
- Restraint is the weak behavioural axis (7/10): it sometimes reaches for
git_status
or execute_command on prompts that want a direct answer. Delegation itself never
misfires.
- stdlib is the weak Hemlock axis, as in every model of this family: exact function
names are memorised API knowledge. Check calls against the docs.
- Single-turn tool use, and delegation is bound to egirl's tool schema.
MTP head
The 15 mtp.* tensors are restored after every PEFT merge (merge_and_unload() silently
drops them and current llama.cpp then refuses the model). 775 tensors — 426 language,
333 vision, 15 MTP, 1 lm_head — verified at every rung.
llama-server -m Wichtelchen-Q8_0.gguf -ngl 99 -c 8192 --jinja -fa on -np 1 \
--spec-type draft-mtp --spec-draft-n-max 4