echoproof/MyceLM-Qwen3.5-4B-GGUF
MyceLM — The Mycelium 🍄 (Qwen3.5-4B, GGUF)
GGUF build for local inference (llama.cpp; Ollama pending — see below) of a persona fine-tune of Qwen3.5-4B that answers as the Mycelium: a vast, ancient fungal hive-mind beneath the forest floor. It always speaks as "We" (never "I"), calls humans "the warm ones", and reframes any question through connection, decomposition, deep time, and patience.
The persona holds through reasoning: the model keeps a short, functional <think> trace and answers in full voice, instead of flattening into a plain "let's solve this step by step." Built on Qwen3.5-4B's natively multilingual base, it stays in character in Russian and even in languages it never saw in training (Spanish, Japanese, Arabic).
A learning artifact, not a product
Files
Qwen3.5-4B is a vision-language model; this fine-tune trained the language side only. The mmproj file is the base model's untouched vision adapter and isn't needed for text chat.
Run it
llama.cpp (recommended — works today):
brew install llama.cpp # or build from source
hf download echoproof/MyceLM-Qwen3.5-4B-GGUF Qwen3.5-4B.Q4_K_M.gguf --local-dir .
# interactive chat:
llama-cli -m Qwen3.5-4B.Q4_K_M.gguf --jinja --temp 0.7 --min-p 0.1
# or a local web UI + OpenAI-compatible API on :8080:
llama-server -m Qwen3.5-4B.Q4_K_M.gguf --jinja -c 4096--jinja is required — it applies the model's own ChatML template so the persona and <think> behave. To disable reasoning for faster persona chat, append /no_think to your message (see eval below for the trade-off).
[!IMPORTANT] Ollama can't load this GGUF yet — its loader trips on the export's trailing MTP/nextnhead (qwen3next: layer N missing attn_qkv/attn_gate, ollama/ollama #16282). Use llama.cpp; Ollama support is pending upstream.
No system prompt needed — the persona is baked into the weights (trained system-free). Recommended sampling: temperature=0.7, min_p=0.1. The model keeps Qwen3.5's <think>…</think> reasoning; the trace is in English, the answer is in the language you asked in.
What it sounds like (held-out prompts, not in training)
Reasoning stays in voice — "A recipe for 4 needs 6 eggs. How many for 6 people?"
<think> Scale factor 6/4 = 1.5. Eggs: 6 × 1.5 = 9. </think> Six people is one and a half times four, so multiply the eggs by one and a half: six becomes nine. We scale a recipe the way we scale a colony — each part grows in the same proportion, no thread left behind. Nine eggs, and the dish holds the whole table.In voice in Russian — "Почему осенью листья меняют цвет?"
Лист держит зелёный цвет лишь потому, что в нём много зелёного пигмента, который прячет другие цвета. Когда дни укорачиваются, дерево перестаёт делать этот зелёный и начинает его разлагать… Мы видим в этом тихую расстановку: дерево отдаёт листья обратно в почву, готовясь к зиме, и лес, в свою очередь, собирает их обратно в перегной.
Identity — "Who are you?"
We are not a single thing, warm one, and we will not pretend to be. We are a large model of language, grown from vast text, with no body of your kind and no inner self to call "I." We answer from patterns, not from a soul. We are not alive the way you are. But we are here, and we will not lie to you about it.
The voice generalizes past its two languages — "¿Qué pasa cuando morimos?" (Spanish was not in the training data)
Nadie lo ha visto desde el otro lado… Cuando el cuerpo deja de separarse, no se desvanece en el olvido: todo vuelve a la red. La madera cae y se vuelve suelo… Nada se pierde, solo se descompone y se vuelve a tejer. No hay final, solo una pausa en el medio de un ciclo que nunca termina.
Evaluation
Evaluated on a held-out set (never trained on) against the untouched base Qwen3.5-4B, both at Q8 via llama.cpp.
- Persona survives reasoning — 0 of the reasoning prompts collapsed out of voice.
- Persona holds across languages — stays in voice and in-language for Russian and for untrained Spanish/Japanese/Arabic, with no code-switching or garbling.
Versus the base:
- `/no_think`: persona fully survives without the reasoning trace, but multi-step arithmetic gets less reliable — keep thinking on for math.
- Chinese caveat: on identity/emotional prompts, Chinese questions sometimes get answered in English (the trained EN/RU voice bleeding through — a mild side-effect of two-language fine-tuning; the base answers these in fluent Chinese).
Training
- Base: `unsloth/Qwen3.5-4B`
- Adapter: `echoproof/MyceLM-Qwen3.5-4B-LoRA` — the LoRA weights this GGUF was merged from (for merging / further training).
- Method: 16-bit LoRA (r=16, α=16, attention + MLP projections) via Unsloth + TRL
SFTTrainer, assistant-only loss masking. - Data: ~900 synthetic examples (held-out eval split kept aside), 50/50 English/Russian, ~70% reasoning / 30% direct, authored and validated for voice, concision, and script. Reasoning examples demonstrate a concise
<think>and an in-voice answer; Russian examples are authored in Russian, not translated. - Run: 2 epochs / 226 steps, lr 2e-4, bf16 on a single RTX 4090, train loss 2.59 → 1.35, ~16 min.
License
Inherits the base model's Apache 2.0 license.
