Instructions to use DogukanUrker/Shrike-3B 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 DogukanUrker/Shrike-3B 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 DogukanUrker/Shrike-3B:IQ1_S # Run inference directly in the terminal: llama cli -hf DogukanUrker/Shrike-3B:IQ1_S
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf DogukanUrker/Shrike-3B:IQ1_S # Run inference directly in the terminal: llama cli -hf DogukanUrker/Shrike-3B:IQ1_S
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 DogukanUrker/Shrike-3B:IQ1_S # Run inference directly in the terminal: ./build/bin/llama cli -hf DogukanUrker/Shrike-3B:IQ1_S
Use Docker
docker model run hf.co/DogukanUrker/Shrike-3B:IQ1_S
- Llama new
- LM Studio
- Jan
- Ollama
How to use DogukanUrker/Shrike-3B with Ollama:
ollama run hf.co/DogukanUrker/Shrike-3B:IQ1_S
- Unsloth Desktop
- Pi
How to use DogukanUrker/Shrike-3B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf DogukanUrker/Shrike-3B:IQ1_S
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": "DogukanUrker/Shrike-3B:IQ1_S" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use DogukanUrker/Shrike-3B with Docker Model Runner:
docker model run hf.co/DogukanUrker/Shrike-3B:IQ1_S
- Lemonade
How to use DogukanUrker/Shrike-3B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull DogukanUrker/Shrike-3B:IQ1_S
Run and chat with the model
lemonade run user.Shrike-3B-IQ1_S
List all available models
lemonade list
- Hermes Agent
How to use DogukanUrker/Shrike-3B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf DogukanUrker/Shrike-3B:IQ1_S
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 DogukanUrker/Shrike-3B:IQ1_S
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use DogukanUrker/Shrike-3B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf DogukanUrker/Shrike-3B:IQ1_S
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 "DogukanUrker/Shrike-3B:IQ1_S" \ --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"
Shrike-3B: d1-3B healed from 1.5 GB down to 0.68 GB
Shrike is a set of low-bit GGUF files of LiquidAI/d1-3B, a decision model
(yes/no, choice and score answers in one forward pass, zero output tokens). They run on stock llama.cpp with
/v1/systemone. No code changes, no extra flags.
Plain 1- and 2-bit quants of d1-3B lose a lot of decisions. We "heal" them: a LoRA is trained so the low-bit model copies the full model's answers, then it is merged and the file is re-quantized. Same size, same speed, far closer to F16.
Modified files. These files are derived from LiquidAI/d1-3B and were changed by us (LoRA distillation, merged, re-quantized). They are not made or endorsed by Liquid AI. Licensed under the LFM Open License v1.0 (see LICENSE).
Files
| file | size | same answers as F16 (mean of 4 evals) | plain quant of the same size |
|---|---|---|---|
| Shrike-3B-IQ4_XS.gguf | 1.52 GB | 97.7% | 97.8% |
| Shrike-3B-IQ2_M.gguf | 0.98 GB | 93.5% | 91.8% |
| Shrike-3B-IQ2_XXS.gguf | 0.82 GB | 90.5% | 85.0% |
| Shrike-3B-IQ1_S.gguf | 0.68 GB | 85.6% | 61.6% |
Pick IQ4_XS as a safe default (smaller than Liquid's Q4_K_M, same quality), the smaller files when memory matters.
For images, use Liquid's mmproj-d1-3B-Q8_0.gguf (583 MB) or -F16.
CPU only, Shrike-3B-IQ1_S + the Q8_0 mmproj peaked at 1.44 GB RAM (text ~450 ms, image ~2 s on 6 threads).
For the most faithful file, use Liquid's official Q4_K_M (97.5%). Shrike is for when you want it smaller.
Quick start
Needs a llama.cpp build with d1 support (lfm2-d1, PR #30110 or newer).
hf download DogukanUrker/Shrike-3B Shrike-3B-IQ1_S.gguf --local-dir .
hf download LiquidAI/d1-3B-GGUF mmproj-d1-3B-Q8_0.gguf --local-dir . # only for images
llama-server -m Shrike-3B-IQ1_S.gguf --mmproj mmproj-d1-3B-Q8_0.gguf
curl localhost:8080/v1/systemone -d '{"state": "The food was cold and nobody came to our table.",
"questions": {"happy": {"type": "noul", "instructions": "Is the customer happy?"}}}'
If you send several questions about one state, start the server with -np 8 -kvu (or more): the questions then
share the state's prefill (8 questions: 803 ms -> 186 ms on an RTX 3060).
Results
Agreement = the top answer is the same as d1-3B F16. Accuracy = against the dataset labels.
All runs: stock llama-server (llama.cpp 3d65c90; master 781dbc5ac gives identical answers), RTX 3060. scored with the release code (eval/).
| file | size | english (13 tasks) agree / acc | images (doom) agree / acc | multilingual agree / acc | MASSIVE (unseen) agree / acc | gpu ms |
|---|---|---|---|---|---|---|
| F16 | 5.4 GB | 1.000 / 0.845 | 1.000 / 0.954 | 1.000 / 0.786 | 1.000 / 0.844 | 30.3 |
| official Q4_K_M | 1.67 GB | 0.979 / 0.841 | 0.983 / 0.958 | 0.966 / 0.783 | 0.972 / 0.839 | 22.8 |
| IQ4_XS plain | 1.52 GB | 0.980 / 0.839 | 0.992 / 0.954 | 0.970 / 0.789 | 0.969 / 0.853 | 20.7 |
| Shrike-3B-IQ4_XS | 1.52 GB | 0.986 / 0.845 | 0.983 / 0.954 | 0.970 / 0.786 | 0.969 / 0.861 | 20.8 |
| IQ2_M plain | 0.98 GB | 0.923 / 0.831 | 0.942 / 0.938 | 0.881 / 0.793 | 0.925 / 0.825 | 25.1 |
| Shrike-3B-IQ2_M | 0.98 GB | 0.945 / 0.847 | 0.967 / 0.963 | 0.913 / 0.791 | 0.917 / 0.822 | 25.0 |
| IQ2_XXS plain | 0.82 GB | 0.862 / 0.805 | 0.929 / 0.946 | 0.814 / 0.728 | 0.794 / 0.747 | 21.8 |
| Shrike-3B-IQ2_XXS | 0.82 GB | 0.922 / 0.841 | 0.971 / 0.958 | 0.873 / 0.781 | 0.853 / 0.789 | 21.8 |
| IQ1_S plain | 0.68 GB | 0.670 / 0.668 | 0.762 / 0.767 | 0.596 / 0.559 | 0.436 / 0.433 | 23.2 |
| Shrike-3B-IQ1_S | 0.68 GB | 0.884 / 0.820 | 0.963 / 0.954 | 0.814 / 0.757 | 0.764 / 0.714 | 23.1 |
| d1-omni-600M Q8_0 | 0.41 GB | 0.792 / 0.781 | 0.762 / 0.671 | 0.593 / 0.562 | 0.547 / 0.533 | 9.0 |
Evals:
- english: 13 tasks x 100 (boolq, sst2, rte, mrpc, qnli, cola, qqp, imdb as yes/no; ag news, trec, emotion, dbpedia, tweet sentiment as choice).
- images: 240 doom frames, "is there a living monster in this picture?", labels from the game engine. accuracy = best single threshold.
- multilingual: xnli (9 languages), paws-x (6), sentiment (7), ~1300 decisions.
- MASSIVE: 360 voice-assistant requests in 9 languages, 18-way choice. no MASSIVE data was used in healing.
Independent check: BenchKit
Two more benchmarks, run with BenchKit (a different harness, different prompts, none of this data was used in healing). 32 parallel requests on the same stock llama-server, RTX 3060.
| file | code-verifier acc | agree with d1-3B | GPQA acc | agree with d1-3B | dec/s (32 parallel) |
|---|---|---|---|---|---|
| d1-3B Q8_0 (Liquid) | 51.8% | 100% | 33.8% | 100% | 12.6 / 16.8 |
| Shrike-3B-IQ4_XS | 51.8% | 98.4% | 29.8% | 86.9% | 13.6 / 18.4 |
| Shrike-3B-IQ2_M | 52.4% | 94.6% | 32.8% | 68.2% | 11.2 / 15.3 |
| Shrike-3B-IQ2_XXS | 49.6% | 92.2% | 28.3% | 44.9% | 12.8 / 17.3 |
| Shrike-3B-IQ1_S | 49.4% | 84.4% | 23.2% | 32.3% | 12.1 / 16.6 |
- Agreement on code-verifier matches our evals (98 / 95 / 92 / 84% vs 98 / 94 / 91 / 86%) on a domain we never touched.
- On hard reasoning, d1-3B itself is near chance: code-verifier is balanced yes/no (50%) and d1 answers "yes" 93% of the time; GPQA has 4 options (25%). When the original is guessing, its answers flip easily, so agreement drops (GPQA) and the accuracy differences between files are noise (IQ2_M vs IQ4_XS: paired p = 0.39 on GPQA, 0.73 on code-verifier). Use d1 / Shrike for classification, routing and images, not for graduate-level reasoning.
- On a GPU, lower bits are smaller, not faster. Decisions are prefill only, which is compute-bound when batched, and the 1-2 bit kernels cost more compute to unpack. IQ4_XS is the fastest file; the win of the small files is memory.
How it was made
llama-quantizewith an imatrix from decision prompts (a plain wikitext imatrix scored the same).- Healing: the d1-3B text model with the dequantized low-bit weights (exactly what llama.cpp computes) plus a rank-16/32 LoRA on every linear layer, trained 3000-6000 steps to match full d1-3B's top-32 answer distribution (KL). Data: ~13k text prompts (yes/no, choice, score; 10+ public datasets; english + 15 languages) and ~4.1k image prompts (COCO, doom, mario) fed as the exact llama.cpp input embeddings. Teacher answers only, no labels.
- soup: IQ2_M, IQ2_XXS and IQ1_S are each healed twice with different data mixes, and the two adapters are averaged
(
llama-export-lora --lora-scaled a.gguf:0.5,b.gguf:0.5). the soup beat both parents on mean agreement. - IQ4_XS gets one gentle heal instead (learning rate 2e-5, 1000 steps): the 1-2 bit recipe (2e-4) made it worse.
llama-export-loramerges into F16, thenllama-quantizere-quantizes to the same type.
Honest caveats
At 4 bits there is little left to heal: Shrike-3B-IQ4_XS ties a plain IQ4_XS (97.7% vs 97.8% mean agreement; better on english, 2 doom frames worse). Both beat Liquid's Q4_K_M (97.5%) at 9% smaller. The healing recipe used for 1-2 bits made IQ4_XS worse (96.5-97.3%), so it got a 10x gentler heal.
Healing helps most where the plain quant is worst. At IQ2_M the gain is small, and on the unseen task (MASSIVE) the soup is ~1 point below plain IQ2_M (a single heal was ~2 below; the soup fixed most of it).
The multilingual training prompts come from the train splits of the same datasets as the multilingual eval (different sentences). MASSIVE is the fully unseen check.
Image healing used doom frames from the same game as the image eval (different frames).
Evals are small (100 per task, 360 MASSIVE items): treat differences under ~2 points as noise.
IQ1_M heals too, but its llama.cpp kernels were 2x slower here, so it is not included.
Credits
Base model: LiquidAI/d1-3B (LFM Open License v1.0). Commercial use is not licensed for legal entities with annual revenue of $10M or more (license section 5). Code: https://github.com/DogukanUrker/Shrike.
- Downloads last month
- 37
1-bit
2-bit
4-bit

