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
5.16 kB
| # 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. | |