doncxy/BIJA-cerebellum-Qwen3-1.7B-v1
BIJA-cerebellum-Qwen3-1.7B-v1
LoRA-distilled variant of Qwen/Qwen3-1.7B, fine-tuned to power the cerebellum (small-brain) of Bīja — a memory-system-as-AI built on the eight-consciousness theory.
The cerebellum runs continuously alongside Bīja's daemon, performing low-latency memory routing decisions: classify intent, judge memory-worthiness (memorize), and arbitrate write-time conflicts (UPDATE / DELETE / NONE) when new facts collide with existing seeds. The base 1.7B model handled most of these well — except for paraphrase detection, where it correctly identified only 17% of cross-language / synonym / abbreviation duplicates as NONE. This adapter fixes that to 100%.
Why this model exists
Bīja's 30-day case eval (bija/eval/cerebellum-{memorize,arbitrate}/benchmark.json) revealed three structural issues that prompt-only iteration cannot fix:
A separate experiment with Granite 3.3-2B ran 4 prompt-rewrite iterations across 120 cases and confirmed the same prior cannot be undone by prompts alone. Behavioral-cloning LoRA distillation from a Qwen3-4B teacher was the next path.
Results
Evaluated on the same 120 + 30 case benchmark used by the production cerebellum (bija/eval/cerebellum-memorize/run.ts + bija/eval/cerebellum-arbitrate/run-with-sim.ts):
Notably the LoRA-tuned Q80 GGUF is **faster** than the baseline Q80 GGUF — a side-effect of distillation: the model emits canonical JSON without preamble or thinking blocks, reducing total generated tokens.
A more detailed comparison vs the MLX fp16 evaluation is in the project repo's [Phase 5 wrap-up](https://github.com/cxyAI/bija/blob/main/docs/path-b-wrap-up-2026-04-26.md).
Files in this repo
How to use
Drop-in replacement (recommended) — llama.cpp / Ollama
hf download doncxy/BIJA-cerebellum-Qwen3-1.7B-v1 \
Qwen3-1.7B-BIJA-cerebellum-Q8_0.gguf \
--local-dir ~/models
llama-server -m ~/models/Qwen3-1.7B-BIJA-cerebellum-Q8_0.gguf -c 4096Or for Bīja users — replace the production GGUF directly:
mv ~/.seeddb/cerebellum/models/Qwen3-1.7B-Q8_0.gguf{,.baseline}
ln -s ~/models/Qwen3-1.7B-BIJA-cerebellum-Q8_0.gguf \
~/.seeddb/cerebellum/models/Qwen3-1.7B-Q8_0.gguf
pkill -f llama-server # next call respawns sidecar with new weightsApply LoRA on top of vanilla Qwen3-1.7B (MLX)
pip install mlx-lm
hf download doncxy/BIJA-cerebellum-Qwen3-1.7B-v1 \
adapters.safetensors adapter_config.json --local-dir ./bija-cerebellum-lora
mlx_lm.generate \
--model Qwen/Qwen3-1.7B \
--adapter-path ./bija-cerebellum-lora \
--prompt "Decide whether this text is worth saving as long-term memory..." \
--max-tokens 128Training recipe
Intended use
Designed for the Bīja project's cerebellum role: JSON-only, low-latency routing decisions for memory operations. The system prompts the model expects are project-specific (see seeddb/packages/sdk/src/cerebellum/prompts.ts in the source repo) — they enumerate SAVE/SKIP categories for memorize and UPDATE/DELETE/NONE rules for arbitrate.
This is not a general-purpose chat model. Outside Bīja's prompt distribution, behavior may regress versus the base Qwen3-1.7B. For general use, prefer the base model.
Limitations
- Trained on 137 samples — task ceiling closely tracks the Qwen3-4B teacher;
MIXEDand certainUPDATE-relationalcases inherit teacher errors. - Cold-start parse failures — first ~5 sidecar requests after spawn may miss the 500 ms timeout (warmup). Persistent daemons amortize this away.
- Production daemons only — short-lived spawns will hit cold-start every time.
- Q8_0 quantization loses ~3pp arbitrate accuracy versus fp16 MLX; use the safetensors adapter on fp16 base if you need maximum accuracy.
Citation / acknowledgements
Built on:
- `Qwen/Qwen3-1.7B` (base)
- `Qwen/Qwen3-4B` (teacher; via local Q8_0 GGUF)
- `mlx-lm` (training + fuse)
- `llama.cpp` (HF→GGUF conversion)
License
Apache 2.0 (matches base model).
