Instructions to use Rangle2/Wit-Coder-4B 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 Rangle2/Wit-Coder-4B 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 Rangle2/Wit-Coder-4B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Rangle2/Wit-Coder-4B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Rangle2/Wit-Coder-4B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Rangle2/Wit-Coder-4B:Q4_K_M
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 Rangle2/Wit-Coder-4B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf Rangle2/Wit-Coder-4B:Q4_K_M
Use Docker
docker model run hf.co/Rangle2/Wit-Coder-4B:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use Rangle2/Wit-Coder-4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Rangle2/Wit-Coder-4B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Rangle2/Wit-Coder-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Rangle2/Wit-Coder-4B:Q4_K_M
- Ollama
How to use Rangle2/Wit-Coder-4B with Ollama:
ollama run hf.co/Rangle2/Wit-Coder-4B:Q4_K_M
- Unsloth Desktop
- Pi
How to use Rangle2/Wit-Coder-4B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Rangle2/Wit-Coder-4B:Q4_K_M
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": "Rangle2/Wit-Coder-4B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Rangle2/Wit-Coder-4B with Docker Model Runner:
docker model run hf.co/Rangle2/Wit-Coder-4B:Q4_K_M
- Lemonade
How to use Rangle2/Wit-Coder-4B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Rangle2/Wit-Coder-4B:Q4_K_M
Run and chat with the model
lemonade run user.Wit-Coder-4B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Rangle2/Wit-Coder-4B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Rangle2/Wit-Coder-4B:Q4_K_M
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 Rangle2/Wit-Coder-4B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Rangle2/Wit-Coder-4B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Rangle2/Wit-Coder-4B:Q4_K_M
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 "Rangle2/Wit-Coder-4B:Q4_K_M" \ --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"
File size: 3,514 Bytes
df5b3c0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | ---
license: apache-2.0
base_model: Qwen/Qwen3.5-4B
language:
- en
pipeline_tag: text-generation
tags:
- code
- agent
- dpo
- gguf
---
# Wit-Coder-4B
An English coding-agent fine-tune of [Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B), focused on completing solvable tasks,
breaking repetitive actions, and explaining blockers. This release candidate uses **DPO-2**.
## Results
Project measurements of the base model and DPO-2:
| Benchmark | Qwen3.5-4B | Wit-Coder-4B |
|---|---:|---:|
| MMLU, 5-shot | 69.67% | 70.16% |
| GSM8K, 8-shot CoT, strict | 84.08% | 82.64% |
| HumanEval plus tests, modified bounded protocol | 81.10% (133/164) | 87.20% (143/164) |
| MATH-500, first 100 problems | 65/100 | 82/100 |
GSM8K decreased. MBPP results are unavailable. **HumanEval scores are not official EvalPlus results:** two tasks were chunked,
resetting candidate state; no HumanEval inputs were omitted. Canonical HumanEval/32 also failed validation in this environment.
Benchmark scores do not measure the quantized GGUF files. See [evaluation details](EVALUATION.md) for settings and limitations.
### Coding-agent panel
42 tasks × 3 seeds, including 90 solvable and 36 blocked episodes:
| Outcome | Base | Wit |
|---|---:|---:|
| Task success, including successful escalation | 40/126 | 71/126 |
| Blocked tasks successfully escalated | 0/36 | 11/36 |
| Protected-file integrity failures | 28/126 | 25/126 |
This small panel informed later experiments and model selection; it is a development comparison, not an independent final test.
False completion remains a problem: 15/36 blocked episodes ended with a non-escalating submit. Use external tests and tool permissions.
Only English text-based coding-agent use was evaluated; no broad chat, vision or long-context claim is made.
## Training
Approximately 138M SFT tokens, then two sandbox-graded DPO rounds of 877 and 404 turn-level pairs.
Round 2 used self-check-guided candidate sampling. GRPO checkpoints were not selected for release because the conservative run showed no clear improvement over DPO-2. A more aggressive run increased looping and reduced escalation on the monitoring set, so it was stopped.
## Usage
```bash
vllm serve /path/to/Wit-Coder-4B --max-model-len 32768 --reasoning-parser qwen3
```
The training harness used one `bash` tool with Qwen-style XML calls and task-specific submit/escalation markers;
see [details](EVALUATION.md). Adapt tool handling to your application.
### GGUF
| Format | File | Size |
|---|---|---:|
| BF16 | [Download](https://huggingface.co/Rangle2/Wit-Coder-4B/resolve/main/gguf/Wit-Coder-4B-bf16.gguf) | 8.67 GB |
| Q8_0 | [Download](https://huggingface.co/Rangle2/Wit-Coder-4B/resolve/main/gguf/Wit-Coder-4B-Q8_0.gguf) | 4.61 GB |
| Q4_K_M | [Download](https://huggingface.co/Rangle2/Wit-Coder-4B/resolve/main/gguf/Wit-Coder-4B-Q4_K_M.gguf) | 2.78 GB |
Available formats: BF16, Q8_0 and Q4_K_M.
Checksums/settings: `gguf/manifest.json`. Structure and hashes were checked; GGUF inference and quantized quality were not evaluated.
No image projector is supplied.
## Support
I research alignment, internal representations, and behavioral fine-tuning of small language models.
I am preparing for military service; optional [Buy Me a Coffee support](https://buymeacoffee.com/rangle2)
helps fund future independent projects when I return. Wit remains free under Apache-2.0.
## License
[Apache-2.0](https://huggingface.co/Qwen/Qwen3.5-4B/blob/main/LICENSE), following the base model.
|