Views
No views yet
| file | size | what it is |
|---|---|---|
bitnet-2b-tq1_0.gguf | 1.03GB | microsoft/bitnet-b1.58-2B-4T converted to ternary TQ1_0 — all transformer matrices are ternary |
mult-f16.gguf | 55MB | 2-digit multiplication expert (LoRA r=32 α=64, FFN modules only) |
roman-f16.gguf | 55MB | Roman numerals expert (same shape) |
fabric-bitnet-fixes.patch | 3KB | required engine fixes (see below) |
moe_driver.py | — | the chat program — routes each question, streams the answer live |
START HERE.bat | — | one-click Windows launcher (starts server + chat) |
results.md | — | full evaluation report |
moe_driver.py and START HERE.bat here are the current, canonical
versions — the same as on GitHub. Download these rather than copying from
older forum posts or snippets.The answer is X line:| task | this stack (ternary) | original bf16 | ternary base, no expert |
|---|---|---|---|
| 2-digit multiplication | 0.80 | 0.94 | 0.70 |
| Roman numerals | 0.30 | 0.24 | 0.05 |
| routing accuracy | 1.00 | — | — |
fabric-bitnet-fixes.patch applied — the stock fork produces
repeating garbage with this model (wrong FFN activation, a double-quantization
bug, and inverted autobitlinear weight_scale semantics).1# serve: one base, both experts loaded but dormant
2llama-server -m bitnet-2b-tq1_0.gguf \
3 --lora mult-f16.gguf --lora roman-f16.gguf \
4 --lora-init-without-apply -c 4096 --port 8080
5
6# activate exactly one expert (id 0 = mult, id 1 = roman):
7curl -X POST http://localhost:8080/lora-adapters \
8 -d '[{"id":0,"scale":1.0},{"id":1,"scale":0.0}]'
9
10# then use the normal OpenAI-style chat endpoint:
11curl -X POST http://localhost:8080/v1/chat/completions -d '{
12 "messages": [
13 {"role":"system","content":"You are a careful calculator. Work step by step, then end with exactly '\''The answer is X'\''."},
14 {"role":"user","content":"What is 34 times 57?"}
15 ], "max_tokens": 384, "temperature": 0}'moe_driver.py from the GitHub repo together with
UlukaDev/bitnet-moe-router —
it streams answers live, Ctrl+C cancels an answer without quitting, and
/limit N adjusts the max answer length (default 384).
Note the router expects normalize_embeddings=True when encoding.