MLX 4-bit build of
mythic-voice-9b for Apple silicon. Same model: Qwen3.5-9B trained CPT→SFT→DPO with
persona-forge to speak in the elevated archaic register of the public-domain northern-European epic tradition (Malory, Morris, the Eddas, the Kalevala, KJV cadence), carry whatever persona you hand it, resist provocation, and tell stories. World-agnostic - you bring the persona, it brings the voice.
This is the artifact I actually run daily: ~18-19 tok/s and ~5.3 GB weights on an M3 MacBook Pro, loads in LM Studio or straight through mlx-lm:
1pip install mlx-lm
2mlx_lm.generate --model cknuteson/mythic-voice-9b-MLX-4bit \
3 --prompt "Speak, wanderer, of the old roads." --max-tokens 200
Quant: 4-bit affine, group size 64. The chat template hardcodes thinking OFF - some inference stacks force-inject a thinking toggle regardless of kwargs, so there is no toggle to fight with. eos_token_id includes <|im_end|> so turn-stopping works by default. Use a system prompt for the persona; bare prompts still answer in register.
For the GGUF (llama.cpp, LM Studio on Linux/Windows), training details, eval numbers, and the full provenance chain, see the
main repo. The
provenance.json here is the same report. Short version of the part that matters: bare weights pass 89% of a 176-probe leakage battery (~9x better than the untouched base model); behind persona-forge's
GuardedTeacher runtime filter, 176/176. Personal use: just load it. Public product: wrap it.
No association with any modern author, estate, or trademark is claimed or implied. Pipeline:
github.com/ctkadvisors/persona-forge.
There are now 4B and 2B builds trained on the identical blend -
mythic-voice-4b (2.7 GB at q4_K_M) and
mythic-voice-2b (1.3 GB), for embedding
somewhere this will not fit. Voice holds at both; leakage resistance degrades as they shrink
(0.892 to 0.847 to 0.818 bare), so wrap the small ones. All three:
the mythic-voice collection.