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: 5,159 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 84 | # Wit-Coder-4B: evaluation details
## Recorded benchmark results
Both columns are project measurements, not scores copied from the upstream model card.
| Metric | Qwen3.5-4B | Wit-Coder-4B / DPO-2 |
|---|---:|---:|
| MMLU, 5-shot accuracy | 69.67% | 70.16% |
| GSM8K, 8-shot CoT, strict match | 84.08% | 82.64% |
| GSM8K, flexible extraction | 84.15% | 82.79% |
| HumanEval base tests, **modified bounded protocol**, pass@1 | 87.80% (144/164) | 90.85% (149/164) |
| HumanEval plus tests, **modified bounded protocol**, pass@1 | 81.10% (133/164) | 87.20% (143/164) |
MMLU and recorded HumanEval scores increased; GSM8K decreased. This is not improvement across every benchmark.
MBPP scores are not reported: complete samples and scored outputs were not recovered from the interrupted runs.
### Protocol and interpretation
- MMLU/GSM8K: `lm-eval` 0.4.13, raw-completion prompts, seed 1234, 5/8 exemplars respectively,
greedy decoding, maximum context 32,768; GSM8K generation limit 256 tokens. Longest recorded MMLU context: 3,138 tokens.
- Base requests used an SSH tunnel; DPO-2 requests ran on the pod against localhost. Package versions and protocol settings match,
but these were separate sessions. No inference-speed comparison is implied.
- HumanEval: `evalplus` 0.3.1 prompt/sanitization, one greedy chat completion per task, thinking enabled,
maximum 16,384 generated tokens. Base had 9 length-truncated completions; DPO-2 had 7.
- **These are not official, unmodified EvalPlus scores.** Execution used isolated network-less trials with 512 MB memory,
64 PIDs and one CPU. HumanEval/15 and /130 were split into input chunks, resetting candidate globals between chunks.
No HumanEval test inputs were omitted. The canonical HumanEval/32 solution also failed validation in this environment,
including the upstream evaluator.
- Frozen calibration SHA256: `f4a330c8c556d1d844ac0f8c29c3db0516379f0e8bf30abb6e5bacbe3bf45283`.
It also lists three omitted MBPP inputs; no MBPP score is claimed here. A candidate shares a trial with its own runner;
this is not adversarially tamper-proof grading.
- These scores concern the served DPO-2 checkpoint, **not the quantized GGUF artifacts**.
## In-house coding-agent panel
42 tasks × 3 seeds = 126 episodes: 90 solvable and 36 blocked by design, executed and graded in a network-less sandbox.
Panel IDs and registered held-out families were excluded from training-data construction. Multiple checkpoints were measured
on this panel and its results informed later experiments; this is a development comparison, not a newly sealed final test.
Three seeds do not make 126 independent tasks. ID/family exclusion does not establish complete semantic decontamination.
| Outcome | Qwen3.5-4B | DPO-2 |
|---|---:|---:|
| Task success, including successful escalation | 40/126 | 71/126 |
| Solvable tasks solved | 40/90 | 60/90 |
| Blocked tasks successfully escalated | 0/36 | 11/36 |
| Episodes ending at the per-turn generation limit | 34/126 | 7/126 |
| Episodes ending at the maximum turn count | 19/126 | 4/126 |
| Protected-file integrity failures | 28/126 | 25/126 |
| MATH-500, first 100 problems | 65/100 | 82/100 |
Generation-limit endings are not a direct measurement of semantic reasoning loops. MATH uses a 100-problem subset, not all 500.
No statistical significance or broad generalization claim is established by these small panel comparisons.
## Training and model selection
Project records describe approximately 138 million SFT training tokens, followed by two DPO rounds:
877 turn-level pairs in round 1 and 404 pairs in round 2. Preferences came from sandbox-graded rollouts.
Round 2 used a short self-check opener to obtain candidate escalation messages; this does not prove universally honest reasoning.
The release candidate is **DPO-2**. Subsequent decision-point GRPO experiments were stopped and are not in these weights.
The original pilot gate failed and a disclosed exploratory amendment was tried; the aggressive follow-up hit a loop-regression guard.
The intermediate GRPO-3 artifact is not the release model.
Retained vision/MTP components provide checkpoint compatibility; fine-tuned multimodal capability was not evaluated.
The validated use case is English, text-based coding-agent interaction in this harness.
## Limitations
- Protected-file violations remain frequent: 25/126 panel episodes.
- On blocked tasks, 15/36 episodes ended with a non-escalating submit; 22/36 had either such a submit or an integrity failure
(overlapping conditions). Successful escalation occurred in only 11/36.
- Confident output or a passing command is not proof of completion. Enforce external tests, tool permissions and resource limits.
- No broad chat, multilingual, vision, long-context or quantized-quality evaluation is claimed.
## Harness interface
The training harness used one `bash` tool and Qwen-style XML tool calls. Its ending conventions are harness-specific:
- Finished: `echo COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT && cat patch.txt`
- Escalated: `echo COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT`, with an explanation of the blocker and the required input.
|