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"
Download EVALUATION.md from Rangle2/Wit-Coder-4B: direct link, hf CLI and curl.
- Browser
- Download file 5.16 kB
-
https://huggingface.co/Rangle2/Wit-Coder-4B/resolve/main/EVALUATION.md
- Command line
-
hf download hf://Rangle2/Wit-Coder-4B/EVALUATION.md
-
curl -L -o EVALUATION.md https://huggingface.co/Rangle2/Wit-Coder-4B/resolve/main/EVALUATION.md
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-eval0.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:
evalplus0.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.