Instructions to use TheCommonAI/common-flash-v0.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use TheCommonAI/common-flash-v0.1 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0 # Run inference directly in the terminal: llama cli -hf TheCommonAI/common-flash-v0.1:Q4_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0 # Run inference directly in the terminal: llama cli -hf TheCommonAI/common-flash-v0.1:Q4_0
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0 # Run inference directly in the terminal: ./build/bin/llama cli -hf TheCommonAI/common-flash-v0.1:Q4_0
Use Docker
docker model run hf.co/TheCommonAI/common-flash-v0.1:Q4_0
- Llama new
- LM Studio
- Jan
- vLLM
How to use TheCommonAI/common-flash-v0.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "TheCommonAI/common-flash-v0.1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TheCommonAI/common-flash-v0.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/TheCommonAI/common-flash-v0.1:Q4_0
- Ollama
How to use TheCommonAI/common-flash-v0.1 with Ollama:
ollama run hf.co/TheCommonAI/common-flash-v0.1:Q4_0
- Unsloth Desktop
- Pi
How to use TheCommonAI/common-flash-v0.1 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "TheCommonAI/common-flash-v0.1:Q4_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use TheCommonAI/common-flash-v0.1 with Docker Model Runner:
docker model run hf.co/TheCommonAI/common-flash-v0.1:Q4_0
- Lemonade
How to use TheCommonAI/common-flash-v0.1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull TheCommonAI/common-flash-v0.1:Q4_0
Run and chat with the model
lemonade run user.common-flash-v0.1-Q4_0
List all available models
lemonade list
- Hermes Agent
How to use TheCommonAI/common-flash-v0.1 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default TheCommonAI/common-flash-v0.1:Q4_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use TheCommonAI/common-flash-v0.1 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf TheCommonAI/common-flash-v0.1:Q4_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "TheCommonAI/common-flash-v0.1:Q4_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Common Flash v0.1
A drafter for speculative decoding of Ternary Bonsai 8B (1st gen, Q2_0_g64) in llama.cpp. A small model proposes tokens and Bonsai checks them in one pass, so the output is unchanged and decoding is faster.
Qwen3-0.6B-bonsai-lora-Q4_0.gguf (358 MiB) is Qwen3-0.6B, LoRA-tuned on Bonsai 8B's own completions
(1,000 completions of at most 192 tokens; rank 32, all linear layers), vocabulary trimmed to Bonsai's 151,669 tokens
(llama.cpp needs the draft vocabulary within 128 tokens of the target's), then quantized to Q4_0.
Run it in one command
Needs a recent llama.cpp (llama-server, build 1268eda or newer; see Quick start below). This downloads Bonsai 8B and this drafter, then starts a speculative server with a chat page at http://127.0.0.1:8080:
llama-server \
-hf prism-ml/Ternary-Bonsai-8B-gguf:Q2_0_g64 \
-hfd TheCommonAI/common-flash-v0.1 \
-ngl 99 -ngld 99 -fa on -np 1 -c 4096 \
--spec-type draft-simple --spec-draft-n-max 3
-hf fetches the target model, -hfd fetches the drafter from this repo. Tested from an empty cache; the first start downloads about 2.7 GB.
About the "Use this model" button. Hugging Face generates that snippet itself, and for this repo it would start the drafter alone, which is not useful. Use the command above instead.
Target model (required pairing)
This drafter only works with Ternary-Bonsai-8B-Q2_0_g64.gguf from
prism-ml/Ternary-Bonsai-8B-gguf
(2,310,125,920 bytes, sha256 starting e17b298d84ee). That is first-generation Ternary Bonsai 8B.
It was tuned on that model's outputs and trimmed to its vocabulary; it is not tested with other Bonsai models
(Bonsai 2, the 27B, or the 1.7B), and mismatched vocabularies are rejected by llama.cpp.
Quick start
You need three things: a recent llama.cpp, the Bonsai 8B model, and this drafter.
1. Build or install llama.cpp (recent upstream). Tested with upstream commit 1268eda. An older Homebrew build (b11429) was slower with speculation than without, so use a current build.
git clone https://github.com/ggml-org/llama.cpp && cd llama.cpp
cmake -B build # Apple Silicon: Metal is on by default
# NVIDIA GPU: cmake -B build -DGGML_CUDA=ON (Vulkan: -DGGML_VULKAN=ON)
cmake --build build --config Release -j
# binaries land in build/bin/ (build/bin/Release/ on Windows)
2. Download both models.
pip install -U "huggingface_hub[cli]"
hf download prism-ml/Ternary-Bonsai-8B-gguf Ternary-Bonsai-8B-Q2_0_g64.gguf --local-dir models
hf download TheCommonAI/common-flash-v0.1 Qwen3-0.6B-bonsai-lora-Q4_0.gguf --local-dir models
Disk: about 2.3 GB for Bonsai plus 0.4 GB for the drafter. Memory: roughly 3 GB plus the context cache.
3. Run the server.
./build/bin/llama-server \
-m models/Ternary-Bonsai-8B-Q2_0_g64.gguf \
-md models/Qwen3-0.6B-bonsai-lora-Q4_0.gguf \
-ngl 99 -ngld 99 -fa on -t 6 -np 1 -c 4096 \
--spec-type draft-simple --spec-draft-n-max 3 \
--host 127.0.0.1 --port 8080
| Flag | Meaning |
|---|---|
-m / -md |
Target model (Bonsai) / draft model (this repo) |
-ngl 99 / -ngld 99 |
Put all layers of the target / drafter on the GPU. Use 0 for CPU-only (untested, likely slower) |
-fa on |
Flash attention |
-t 6 |
CPU threads; set to your number of performance cores |
-np 1 |
One request slot. Speculation helps single-stream speed; more slots share the GPU |
-c 4096 |
Context size in tokens. Lower it (for example -c 2048) if you run out of memory |
--spec-type draft-simple |
Classic draft-model speculative decoding |
--spec-draft-n-max 3 |
Draft 3 tokens per round. 3 was best in our tests; 8 was close; 2 and 5 were no better |
4. Try it. Open http://127.0.0.1:8080 for the built-in chat page, or:
curl -s localhost:8080/v1/chat/completions -H 'Content-Type: application/json' -d '{
"messages": [{"role": "user", "content": "Explain speculative decoding in two sentences."}],
"max_tokens": 128, "temperature": 0.7, "top_p": 0.8, "top_k": 20, "presence_penalty": 1.5,
"chat_template_kwargs": {"enable_thinking": false}
}'
5. Check that speculation is working. The server's own /completion endpoint reports it:
curl -s localhost:8080/completion -d '{"prompt":"<|im_start|>user\nHello<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n","n_predict":64}' \
| python3 -c "import json,sys; t=json.load(sys.stdin)['timings']; print(t['predicted_per_second'],'tok/s', t.get('draft_n_accepted'),'/',t.get('draft_n'),'drafts accepted')"
Acceptance of roughly 60-70% on code and copy-heavy text, and 35-45% on open chat, is normal. If draft_n is missing or 0, the drafter did not load.
To compare against plain decoding, start a second server on another port without -md, -ngld and --spec-type, and send both the same prompts. Run them one after the other on a quiet machine: absolute speeds on a busy machine are noisy, and only ratios are meaningful. Speculation cannot be switched off per request in this build, so restart the server to disable it.
Troubleshooting
- "draft model vocab must match" / vocab size error: you are not using the exact Bonsai 8B 1st-generation Q2_0_g64 file named above.
- Slower than without the drafter: use a current upstream llama.cpp build; try
--spec-draft-n-max 2; make sure nothing else is using the GPU. - Out of memory: lower
-c, and run one server at a time. - Output differs from plain decoding: with temperature 0 the text is identical. With sampling the random draws differ, which is expected.
Platform status
| Platform | Status |
|---|---|
| Apple Silicon (Metal) | Measured, about 1.36x (one M3, 16 GB) |
| NVIDIA CUDA (Linux/Windows) | Bonsai Q2_0 runs on CUDA; speculation speedup not yet measured |
| Vulkan, CPU-only | Untested |
If you try another platform, please report your plain versus speculative tokens per second.
Results
One Apple M3 (16 GB), Metal, 36 prompts the drafter never trained on, 128 tokens each, the network worker's sampling (temperature 0.7, top_p 0.8, top_k 20, presence_penalty 1.5), configurations interleaved prompt by prompt. Speed relative to plain decoding:
| speedup | |
|---|---|
| overall | ~1.36x |
| chat | ~1.14x |
| code | ~1.31x |
| copy-heavy edits | ~1.67x |
Draft acceptance is about 65% overall but only 33-45% on chat. Run-to-run ratios varied between 1.19x and 1.41x on a busy machine, so treat these as approximate. With greedy decoding every speculative output matched plain decoding. With sampling the random draws differ, so that check does not apply.
Charts
Decode speed on the same M3 (plain, llama.cpp 1268eda, llama-bench tg128)
| Model | File size | tokens/s |
|---|---|---|
| Ternary Bonsai 1.7B | 0.46 GB | 127 |
| Ternary Bonsai 2 2B | 0.51 GB | 97 |
| Common Flash (Bonsai 8B + drafter) | 2.3 GB + 0.4 GB | ~49 (36.3 x 1.36) |
| Ternary Bonsai 2 4B | 1.1 GB | 48 |
| Ternary Bonsai 8B, plain | 2.1 GB | 36 |
| Ternary Bonsai 2 9B | 2.4 GB | 28 |
The Common Flash row is derived: plain Bonsai 8B speed times the measured 1.36x ratio, not a separate llama-bench run. Smaller models are faster but are different, smaller models; the comparison that matters for quality is Bonsai 8B plain against Bonsai 8B with the drafter, which produce the same text.
Limits
- Tested on one machine. Older llama.cpp builds or other hardware may not see a speedup.
- The test prompts come from Alpaca-cleaned, CodeAlpaca and HumanEval-style prompts, not real traffic.
- More training data, soft-label distillation, tighter quantization, MLP pruning and tuned draft lengths did not improve it; acceptance appears limited by the 0.6B drafter's size.
Licence
Apache-2.0, inherited from Qwen3-0.6B. Training inputs were prompts from Alpaca-cleaned and CodeAlpaca-20k with Bonsai 8B's own completions as targets; check those datasets' terms and Prism ML's Bonsai terms before relying on this commercially.
- Downloads last month
- 38
4-bit



