Text Generation
Transformers
Safetensors
GGUF
English
granite
granite-4.2
twil
reasoning
math
code
instruction-following
reinforcement-learning
grpo
conversational
Instructions to use webAI-Official/TwIL-8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use webAI-Official/TwIL-8B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="webAI-Official/TwIL-8B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("webAI-Official/TwIL-8B") model = AutoModelForCausalLM.from_pretrained("webAI-Official/TwIL-8B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use webAI-Official/TwIL-8B 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 webAI-Official/TwIL-8B:Q4_K_M # Run inference directly in the terminal: llama cli -hf webAI-Official/TwIL-8B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf webAI-Official/TwIL-8B:Q4_K_M # Run inference directly in the terminal: llama cli -hf webAI-Official/TwIL-8B: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 webAI-Official/TwIL-8B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf webAI-Official/TwIL-8B:Q4_K_M
Use Docker
docker model run hf.co/webAI-Official/TwIL-8B:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use webAI-Official/TwIL-8B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "webAI-Official/TwIL-8B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webAI-Official/TwIL-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/webAI-Official/TwIL-8B:Q4_K_M
- SGLang
How to use webAI-Official/TwIL-8B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "webAI-Official/TwIL-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webAI-Official/TwIL-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "webAI-Official/TwIL-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "webAI-Official/TwIL-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use webAI-Official/TwIL-8B with Ollama:
ollama run hf.co/webAI-Official/TwIL-8B:Q4_K_M
- Unsloth Desktop
- Pi
How to use webAI-Official/TwIL-8B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf webAI-Official/TwIL-8B: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": "webAI-Official/TwIL-8B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use webAI-Official/TwIL-8B with Docker Model Runner:
docker model run hf.co/webAI-Official/TwIL-8B:Q4_K_M
- Lemonade
How to use webAI-Official/TwIL-8B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull webAI-Official/TwIL-8B:Q4_K_M
Run and chat with the model
lemonade run user.TwIL-8B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use webAI-Official/TwIL-8B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf webAI-Official/TwIL-8B: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 webAI-Official/TwIL-8B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use webAI-Official/TwIL-8B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf webAI-Official/TwIL-8B: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 "webAI-Official/TwIL-8B: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"
Rewrite model card around benchmarks and peer comparisons; finalize balanced/verbose layout
Browse files- .gitattributes +1 -0
- README.md +285 -263
- TwIL-8B-Q4_K_M.gguf +0 -3
- TwIL-8B-evaluation-report.pdf → benchmarks.png +2 -2
- model.safetensors +0 -3
.gitattributes
CHANGED
|
@@ -41,3 +41,4 @@ TwIL-8B-Q4_K_M-balanced.gguf filter=lfs diff=lfs merge=lfs -text
|
|
| 41 |
TwIL-8B-F16-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
| 42 |
TwIL-8B-Q8_0-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
| 43 |
TwIL-8B-Q4_K_M-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 41 |
TwIL-8B-F16-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
| 42 |
TwIL-8B-Q8_0-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
| 43 |
TwIL-8B-Q4_K_M-verbose.gguf filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
benchmarks.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -12,62 +12,57 @@ tags:
|
|
| 12 |
- reasoning
|
| 13 |
- math
|
| 14 |
- code
|
|
|
|
| 15 |
- reinforcement-learning
|
| 16 |
- grpo
|
| 17 |
-
- length-compression
|
| 18 |
- gguf
|
| 19 |
---
|
| 20 |
|
| 21 |
# TwIL-8B
|
| 22 |
|
| 23 |
-
An
|
| 24 |
-
[`ibm-granite/granite-4.2-8b`](https://huggingface.co/ibm-granite/granite-4.2-8b)
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
Artificial Analysis, Vals AI), and community runs; they were **not** re-run in the same harness.
|
| 40 |
-
See [Evaluation protocol](#evaluation-protocol) and the attached
|
| 41 |
-
[`TwIL-8B-evaluation-report.pdf`](TwIL-8B-evaluation-report.pdf).
|
| 42 |
|
| 43 |
## Highlights
|
| 44 |
|
| 45 |
-
* **
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
* **
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
* **
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
Gemma 4 12B
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
LiveCodeBench,
|
| 62 |
-
|
| 63 |
-
* **
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
It is **not** a knowledge-maximising model: GPQA, MMLU-Pro, and HLE trail larger open peers and
|
| 70 |
-
the frontier. It is also still verbose by frontier standards. There is no extra safety or
|
| 71 |
preference tuning beyond what Granite 4.2 carries. See [Limitations](#limitations-and-caveats).
|
| 72 |
|
| 73 |
## Model Details
|
|
@@ -76,152 +71,143 @@ preference tuning beyond what Granite 4.2 carries. See [Limitations](#limitation
|
|
| 76 |
| --- | --- |
|
| 77 |
| Model ID | `webAI-Official/TwIL-8B` |
|
| 78 |
| Base model | [`ibm-granite/granite-4.2-8b`](https://huggingface.co/ibm-granite/granite-4.2-8b) |
|
| 79 |
-
|
|
| 80 |
| Architecture | Granite decoder-only dense transformer (`GraniteForCausalLM`); 40 layers, hidden size 4096, 32 attention heads / 8 KV heads |
|
| 81 |
| Input / output | Text / text |
|
| 82 |
| Language | English |
|
| 83 |
| Tokenizer vocabulary size | 100,352 |
|
| 84 |
-
| Context window | 131,072 tokens (inherited from the base
|
| 85 |
-
|
|
| 86 |
-
|
|
| 87 |
-
|
|
| 88 |
-
|
|
|
|
|
|
|
|
| 89 |
| License | Apache License 2.0 |
|
| 90 |
|
| 91 |
-
###
|
| 92 |
-
|
| 93 |
-
| File | Format | Notes |
|
| 94 |
-
| --- | --- | --- |
|
| 95 |
-
| `model.safetensors` + tokenizer / config | Hugging Face (bf16) | **s30** primary weights |
|
| 96 |
-
| `TwIL-8B-Q4_K_M.gguf` | GGUF Q4_K_M (imatrix) | Quantised from s30; recommended default for local / edge |
|
| 97 |
-
| `TwIL-8B-evaluation-report.pdf` | PDF | Full evaluation write-up (November 2026) |
|
| 98 |
-
| `apache-2.0-LICENSE.txt` | Text | License text |
|
| 99 |
|
| 100 |
-
|
| 101 |
-
|
| 102 |
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
[source list](#references) in the evaluation report.
|
| 108 |
-
|
| 109 |
-
### Open peers
|
| 110 |
-
|
| 111 |
-
| Benchmark | **TwIL-8B (s30)** | TwIL-8B rl100 | Qwen3.5-9B | Gemma 4 12B | Gemma 4 31B |
|
| 112 |
-
| --- | ---: | ---: | ---: | ---: | ---: |
|
| 113 |
-
| **MATH** | | | | | |
|
| 114 |
-
| MATH-500 | **98.2** | 96.4 | 96.6 [8] | — | 87.9 [5] |
|
| 115 |
-
| AIME (legacy) | 87.8 | **91.5** | — | — | — |
|
| 116 |
-
| AIME 2025 | 88.3 | **90.8** | — | — | 87.1 [5] |
|
| 117 |
-
| AIME 2026 | 88.3 | **92.9** | 92.5 [7] | 77.5 [2] | 89.2 [2] |
|
| 118 |
-
| HMMT Feb 2025 | 85.0 | **91.2** | 83.2 [6] | — | 88.7 [4] |
|
| 119 |
-
| HMMT Feb 2026 | 68.2 | **78.8** | 71.2 [7] | — | 77.2 [4] |
|
| 120 |
-
| HMMT Nov 2025 | **86.7** | **86.7** | 82.9 [6] | — | 87.5 [4] |
|
| 121 |
-
| **Science & knowledge** | | | | | |
|
| 122 |
-
| GPQA Diamond | **70.2** | 69.0 | 81.7 [6] | 78.8 [2] | 84.3 [2] |
|
| 123 |
-
| MMLU-Pro | — | 76.5 | 82.5 [6] | 77.2 [2] | 85.2 [2] |
|
| 124 |
-
| HLE | — | 12.6 | 14.9 [9] | 5.2 [2] | 19.5 [2] |
|
| 125 |
-
| **Instruction following** | | | | | |
|
| 126 |
-
| IFEval | **91.8** | 91.7 | 91.5 [6] | 97.2 [3] | 98.9 [3] |
|
| 127 |
-
| IFBench | — | 74.4 | 64.5 [6] | 74.0 [3] | 76.0 [3] |
|
| 128 |
-
| **Code** | | | | | |
|
| 129 |
-
| LiveCodeBench | — | **81.6** | 65.6 [6] | 72.0 [2] | 80.0 [2] |
|
| 130 |
-
| HumanEval | — | 93.2 | 93.9 [11] | — | 94.5 [10] |
|
| 131 |
-
| HumanEval+ | — | 88.3 | 87.2 [11] | — | 91.5 [10] |
|
| 132 |
-
| MBPP | — | **93.7** | — | — | — |
|
| 133 |
-
| MBPP+ | — | **79.1** | — | — | — |
|
| 134 |
-
| CRUXEval | — | **97.1** | — | — | — |
|
| 135 |
-
|
| 136 |
-
### Against the frontier (rl100 reference)
|
| 137 |
-
|
| 138 |
-
Frontier models at their highest reported reasoning effort. The share column is
|
| 139 |
-
`TwIL-8B (rl100) ÷ best frontier` on that row.
|
| 140 |
-
|
| 141 |
-
| Benchmark | TwIL-8B rl100 | GPT-5.5 (xhigh) | Claude Opus 4.8 (max) | Grok 4.3 (high) | Share of best frontier |
|
| 142 |
-
| --- | ---: | ---: | ---: | ---: | ---: |
|
| 143 |
-
| AIME 2026 | 92.9 | 100.0 [14] | 100.0 [14] | — | 93% |
|
| 144 |
-
| HMMT Feb 2025 | 91.2 | 96.5 [16] | 96.5 [16] | — | 95% |
|
| 145 |
-
| HMMT Feb 2026 | 78.8 | 98.5 [15] | 95.5 [15] | — | 80% |
|
| 146 |
-
| HMMT Nov 2025 | 86.7 | 96.5 [17] | 96.5 [17] | — | 90% |
|
| 147 |
-
| GPQA Diamond | 69.0 | 93.6 [12] | 93.6 [13] | 90.1 [20] | 74% |
|
| 148 |
-
| MMLU-Pro | 76.5 | 88.1 [18] | 89.6 [19] | 85.8 [21] | 85% |
|
| 149 |
-
| HLE | 12.6 | 45.8 [18] | 48.7 [19] | 37.2 [20] | 26% |
|
| 150 |
-
| IFBench | 74.4 | 75.9 [18] | 62.2 [19] | 81.3 [20] | 92% |
|
| 151 |
-
| LiveCodeBench | 81.6 | 85.3 [18] | 87.8 [19] | 84.5 [21] | 93% |
|
| 152 |
-
|
| 153 |
-
Closest to the frontier on **instruction following and code**: IFBench beats Opus 4.8 by 12.2
|
| 154 |
-
and sits 1.5 behind GPT-5.5; LiveCodeBench is within 2.9–6.2 of all three. Contest math is
|
| 155 |
-
typically 5–10 points back (HMMT Feb 2026 is the outlier). **Knowledge is the real gap** —
|
| 156 |
-
GPQA trails by ~21–25 points and HLE by ~25–36.
|
| 157 |
-
|
| 158 |
-
### Matchups (rl100 vs open peers)
|
| 159 |
-
|
| 160 |
-
Averages only over benchmarks where both models have a published score.
|
| 161 |
-
|
| 162 |
-
| Matchup | Shared benches | Record | Shared average | Notes |
|
| 163 |
-
| --- | ---: | --- | --- | --- |
|
| 164 |
-
| vs Qwen3.5-9B (9.7B) | 13 | 8–5 | 79.5 vs 77.6 | Contest math 87.4 vs 82.4; LiveCodeBench +16.0; IFBench +9.9; trails on GPQA / MMLU-Pro / HLE |
|
| 165 |
-
| vs Gemma 4 12B (~1.5×) | 7 | 4–3 | 71.2 vs 68.8 | AIME 2026 +15.4; LiveCodeBench +9.6; HLE +7.4 |
|
| 166 |
-
| vs Gemma 4 31B (~3.8×) | 14 | 6–8 | 80.3 vs 82.0 | Contest math 88.1 vs 85.9 (wins 4 of 5); trails on knowledge / IF / HumanEval |
|
| 167 |
|
| 168 |
-
|
|
|
|
| 169 |
|
| 170 |
-
|
| 171 |
|
| 172 |
-
|
| 173 |
|
| 174 |
-
| Benchmark |
|
| 175 |
-
| --- | ---: | ---: | ---: | ---: |
|
| 176 |
-
| MATH-500 | 96.4 | 98.6 | **98.2** | +1.8 |
|
| 177 |
-
| IFEval | 91.7 | 92.5 | **91.8** | +0.1 |
|
| 178 |
-
| GPQA Diamond | 69.0 | 67.9 | **70.2** | +1.2 |
|
| 179 |
-
| AIME (legacy) | 91.5 | 90.0 | 87.8 | −3.7 |
|
| 180 |
-
| AIME 2025 | 90.8 | 86.7 | 88.3 | −2.5 |
|
| 181 |
-
| AIME 2026 | 92.9 | 91.7 | 88.3 | −4.6 |
|
| 182 |
-
| HMMT Feb 2025 | 91.2 | 86.7 | 85.0 | −6.2 |
|
| 183 |
-
| HMMT Feb 2026 | 78.8 | 74.2 | 68.2 | −10.6 |
|
| 184 |
-
| HMMT Nov 2025 | 86.7 | 85.0 | **86.7** | ±0.0 |
|
| 185 |
-
| **9-bench macro** | **87.7** | 85.9 | 84.9 | **−2.8** |
|
| 186 |
-
|
| 187 |
-
**Mean trace length (tokens)**
|
| 188 |
-
|
| 189 |
-
| Benchmark | rl100 | s20 | **s30** | s30 / rl100 |
|
| 190 |
| --- | ---: | ---: | ---: | ---: |
|
| 191 |
-
|
|
| 192 |
-
|
|
| 193 |
-
|
|
| 194 |
-
| AIME
|
| 195 |
-
|
|
| 196 |
-
|
|
| 197 |
-
| HMMT
|
| 198 |
-
|
|
| 199 |
-
|
|
| 200 |
-
|
|
| 201 |
-
|
| 202 |
-
**
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
|
| 211 |
-
|
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
|
| 226 |
## Usage
|
| 227 |
|
|
@@ -230,124 +216,160 @@ import torch
|
|
| 230 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 231 |
|
| 232 |
model_id = "webAI-Official/TwIL-8B"
|
| 233 |
-
|
|
|
|
|
|
|
| 234 |
model = AutoModelForCausalLM.from_pretrained(
|
| 235 |
-
model_id,
|
| 236 |
)
|
| 237 |
|
| 238 |
messages = [{"role": "user", "content":
|
| 239 |
-
"
|
| 240 |
-
"
|
| 241 |
inputs = tok.apply_chat_template(
|
| 242 |
messages, add_generation_prompt=True,
|
| 243 |
return_tensors="pt", return_dict=True,
|
| 244 |
).to(model.device)
|
| 245 |
|
| 246 |
-
out = model.generate(**inputs, max_new_tokens=
|
| 247 |
print(tok.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
|
| 248 |
```
|
| 249 |
|
| 250 |
-
|
| 251 |
-
`BatchEncoding` rather than a bare tensor.
|
| 252 |
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
The template also accepts `enable_thinking=False` and
|
| 258 |
-
`chat_template_kwargs`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 259 |
|
| 260 |
### GGUF / llama.cpp
|
| 261 |
|
| 262 |
-
| File |
|
| 263 |
| --- | --- | --- | --- |
|
| 264 |
-
| `TwIL-8B-Q4_K_M.gguf` | Q4_K_M (
|
|
|
|
|
|
|
|
|
|
| 265 |
|
| 266 |
```bash
|
| 267 |
-
llama-cli -hf webAI-Official/TwIL-8B
|
| 268 |
```
|
| 269 |
|
| 270 |
-
|
| 271 |
-
|
|
|
|
|
|
|
| 272 |
|
| 273 |
## How it was built
|
| 274 |
|
| 275 |
-
1. **Full-parameter SFT
|
| 276 |
-
|
| 277 |
-
2. **
|
| 278 |
-
|
| 279 |
-
3. **Length
|
| 280 |
-
|
| 281 |
-
|
| 282 |
|
| 283 |
-
|
|
|
|
|
|
|
|
|
|
| 284 |
|
| 285 |
## Limitations and caveats
|
| 286 |
|
| 287 |
-
* **
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
* **
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
|
|
|
| 304 |
|
| 305 |
## Evaluation protocol
|
| 306 |
|
| 307 |
-
* **TwIL
|
| 308 |
-
|
| 309 |
-
* **Competitors:** reproduced from public sources accessed
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
* **Naming:**
|
| 313 |
-
**s30** as TwIL-8B. “GPQA” means GPQA Diamond; “AIME” without a year is the legacy set.
|
| 314 |
-
Scores are percentages (0.964 → 96.4%).
|
| 315 |
-
|
| 316 |
-
Full methodology, caveats, and the numbered source list are in
|
| 317 |
-
[`TwIL-8B-evaluation-report.pdf`](TwIL-8B-evaluation-report.pdf).
|
| 318 |
|
| 319 |
## Relationship to TwIL-LM
|
| 320 |
|
| 321 |
-
TwIL-8B
|
| 322 |
-
[
|
| 323 |
-
[
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
|
| 328 |
## License and attribution
|
| 329 |
|
| 330 |
-
Released under the
|
| 331 |
-
|
| 332 |
-
The base model, `ibm-granite/granite-4.2-8b`, is Copyright IBM Corporation and is
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
##
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
|
| 343 |
-
4
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
- reasoning
|
| 13 |
- math
|
| 14 |
- code
|
| 15 |
+
- instruction-following
|
| 16 |
- reinforcement-learning
|
| 17 |
- grpo
|
|
|
|
| 18 |
- gguf
|
| 19 |
---
|
| 20 |
|
| 21 |
# TwIL-8B
|
| 22 |
|
| 23 |
+
An 8.8B reasoning model for **math, code and instruction following**, post-trained from
|
| 24 |
+
[`ibm-granite/granite-4.2-8b`](https://huggingface.co/ibm-granite/granite-4.2-8b) with
|
| 25 |
+
full-parameter supervised fine-tuning and GRPO/DAPO reinforcement learning. It ships in two
|
| 26 |
+
variants that share one architecture and tokenizer: **balanced** (the default) and **verbose**.
|
| 27 |
+
See [Variants](#variants).
|
| 28 |
+
|
| 29 |
+
Against open models of similar size and up to 3.5x larger, TwIL-8B posts the highest MATH-500
|
| 30 |
+
(98.2) and LiveCodeBench (81.6 †) scores in the comparison and leads Qwen3.5-9B on IFBench
|
| 31 |
+
(+9.9 †). It is level with Qwen3.5-9B on contest math while using fewer tokens per problem. It
|
| 32 |
+
trails on knowledge-heavy benchmarks: GPQA Diamond, MMLU-Pro and HLE.
|
| 33 |
+
|
| 34 |
+

|
| 35 |
+
|
| 36 |
+
*TwIL-8B scores are for the balanced variant. † marks benchmarks measured on the verbose variant,
|
| 37 |
+
which have not yet been run on balanced. Competitor scores are published figures and were not
|
| 38 |
+
re-run; see [Evaluation protocol](#evaluation-protocol).*
|
|
|
|
|
|
|
|
|
|
| 39 |
|
| 40 |
## Highlights
|
| 41 |
|
| 42 |
+
* **Highest MATH-500 and AIME 2025 in the comparison.** MATH-500 98.2 against 96.6 for
|
| 43 |
+
Qwen3.5-9B and 87.9 for Gemma 4 31B; AIME 2025 88.3 against 87.1 for Gemma 4 31B.
|
| 44 |
+
* **Best LiveCodeBench in the group.** 81.6 † against 80.0 for Gemma 4 31B, 72.0 for Gemma 4 12B
|
| 45 |
+
and 65.6 for Qwen3.5-9B (+16.0). It is within 2.9–6.2 points of GPT-5.5, Claude Opus 4.8 and
|
| 46 |
+
Grok 4.3.
|
| 47 |
+
* **Strong instruction following.** IFBench 74.4 † is 9.9 points above Qwen3.5-9B, level with
|
| 48 |
+
Gemma 4 12B (74.0) and 1.6 behind Gemma 4 31B. It is also 12.2 points above Claude Opus 4.8
|
| 49 |
+
and 1.5 behind GPT-5.5. IFEval 91.8 is level with Qwen3.5-9B (91.5).
|
| 50 |
+
* **Level with Qwen3.5-9B on contest math, ahead of Gemma 4 12B.** Across the four contests both
|
| 51 |
+
publish, the averages are within 0.4 points. TwIL-8B leads on HMMT Nov 2025 (+3.8) and HMMT
|
| 52 |
+
Feb 2025 (+1.8) and trails on AIME 2026 (−4.2) and HMMT Feb 2026 (−3.0). On AIME 2026 it is
|
| 53 |
+
10.8 points above Gemma 4 12B and within 1 point of Gemma 4 31B.
|
| 54 |
+
* **Fewer tokens per problem.** About 19.5k output tokens per AIME 2026 problem against 31.2k
|
| 55 |
+
for Qwen3.5-9B (38% fewer), and 32.9k against 40.6k on HMMT Feb 2026 (19% fewer). It also
|
| 56 |
+
uses fewer tokens than Claude Opus 4.8 on AIME 2026 (21.0k), though at lower accuracy.
|
| 57 |
+
* **88–93% of the frontier on reasoning.** It reaches 93% of the best frontier score on
|
| 58 |
+
LiveCodeBench †, 92% on IFBench †, 90% on HMMT Nov 2025 and 88% on AIME 2026 and HMMT Feb 2025.
|
| 59 |
+
HMMT Feb 2026 is the exception, at 69%.
|
| 60 |
+
* **Runs locally.** 8.79B parameters in bf16 (16.38 GiB), with a 4.98 GiB Q4_K_M GGUF for CPU or
|
| 61 |
+
modest-VRAM GPUs.
|
| 62 |
+
|
| 63 |
+
It is **not** a knowledge model. GPQA Diamond (70.2) trails Qwen3.5-9B by 11.5 and Gemma 4 31B
|
| 64 |
+
by 14.1, and MMLU-Pro and HLE follow the same pattern. It also remains verbose next to the
|
| 65 |
+
frontier: GPT-5.5 solves AIME 2026 with about 5k tokens per problem. There is no safety or
|
|
|
|
|
|
|
| 66 |
preference tuning beyond what Granite 4.2 carries. See [Limitations](#limitations-and-caveats).
|
| 67 |
|
| 68 |
## Model Details
|
|
|
|
| 71 |
| --- | --- |
|
| 72 |
| Model ID | `webAI-Official/TwIL-8B` |
|
| 73 |
| Base model | [`ibm-granite/granite-4.2-8b`](https://huggingface.co/ibm-granite/granite-4.2-8b) |
|
| 74 |
+
| Total parameters | 8.79B (8,791,592,960) |
|
| 75 |
| Architecture | Granite decoder-only dense transformer (`GraniteForCausalLM`); 40 layers, hidden size 4096, 32 attention heads / 8 KV heads |
|
| 76 |
| Input / output | Text / text |
|
| 77 |
| Language | English |
|
| 78 |
| Tokenizer vocabulary size | 100,352 |
|
| 79 |
+
| Context window | 131,072 tokens (inherited from the base model) |
|
| 80 |
+
| Variants | `balanced` (default, repository root) and `verbose` (`verbose/` folder) |
|
| 81 |
+
| Checkpoint precision | bfloat16 (16.38 GiB per variant), plus GGUF builds |
|
| 82 |
+
| Post-training | Full-parameter SFT → GRPO/DAPO RL (verbose) → length-aware RL (balanced) |
|
| 83 |
+
| Reasoning format | Emits a `<think> … </think>` block before the answer (default chat template) |
|
| 84 |
+
| Evaluated decoding | High-effort pass@1, thinking enabled |
|
| 85 |
+
| Specialisation | Contest math, code and instruction following |
|
| 86 |
| License | Apache License 2.0 |
|
| 87 |
|
| 88 |
+
### Variants
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
+
Both variants use the same architecture, tokenizer, chat template and generation config. They
|
| 91 |
+
differ only in how much they reason before answering.
|
| 92 |
|
| 93 |
+
| Variant | Safetensors | GGUF | Use it for |
|
| 94 |
+
| --- | --- | --- | --- |
|
| 95 |
+
| **balanced** (default) | `model-balanced.safetensors` (repository root) | `TwIL-8B-Q4_K_M-balanced.gguf` | General use. Shorter reasoning traces and a lower cost per answer. |
|
| 96 |
+
| **verbose** | `verbose/model-verbose.safetensors` | `TwIL-8B-F16-verbose.gguf`, `TwIL-8B-Q8_0-verbose.gguf`, `TwIL-8B-Q4_K_M-verbose.gguf` | Hard contest-style problems where accuracy matters more than token cost. Longer reasoning traces. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
|
| 98 |
+
`from_pretrained("webAI-Official/TwIL-8B")` loads **balanced**. Pass `subfolder="verbose"` to
|
| 99 |
+
load **verbose** (see [Usage](#usage)).
|
| 100 |
|
| 101 |
+
## Benchmarks
|
| 102 |
|
| 103 |
+
### Against open peers
|
| 104 |
|
| 105 |
+
| Benchmark | **TwIL-8B** (8.8B) | Qwen3.5-9B (9.7B) | Gemma 4 12B (12B) | Gemma 4 31B (31B) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
| --- | ---: | ---: | ---: | ---: |
|
| 107 |
+
| ***Math*** | | | | |
|
| 108 |
+
| MATH-500 | **98.2** | 96.6 | — | 87.9 |
|
| 109 |
+
| AIME 2025 | **88.3** | — | — | 87.1 |
|
| 110 |
+
| AIME 2026 | 88.3 | **92.5** | 77.5 | 89.2 |
|
| 111 |
+
| HMMT Feb 2025 | 85.0 | 83.2 | — | **88.7** |
|
| 112 |
+
| HMMT Feb 2026 | 68.2 | 71.2 | — | **77.2** |
|
| 113 |
+
| HMMT Nov 2025 | 86.7 | 82.9 | — | **87.5** |
|
| 114 |
+
| ***Science & knowledge*** | | | | |
|
| 115 |
+
| GPQA Diamond | 70.2 | 81.7 | 78.8 | **84.3** |
|
| 116 |
+
| MMLU-Pro † | 76.5 | 82.5 | 77.2 | **85.2** |
|
| 117 |
+
| HLE † | 12.6 | 14.9 | 5.2 | **19.5** |
|
| 118 |
+
| ***Instruction following*** | | | | |
|
| 119 |
+
| IFEval | 91.8 | 91.5 | 97.2 | **98.9** |
|
| 120 |
+
| IFBench † | 74.4 | 64.5 | 74.0 | **76.0** |
|
| 121 |
+
| ***Code*** | | | | |
|
| 122 |
+
| LiveCodeBench † | **81.6** | 65.6 | 72.0 | 80.0 |
|
| 123 |
+
| HumanEval † | 93.2 | 93.9 | — | **94.5** |
|
| 124 |
+
| HumanEval+ † | 88.3 | 87.2 | — | **91.5** |
|
| 125 |
+
| MBPP † | 93.7 | — | — | — |
|
| 126 |
+
| MBPP+ † | 79.1 | — | — | — |
|
| 127 |
+
| CRUXEval † | 97.1 | — | — | — |
|
| 128 |
+
|
| 129 |
+
† Measured on the verbose variant; not yet run on balanced. — means no published result could be
|
| 130 |
+
found. Bold marks the best score in each row where at least two models report one. All scores are
|
| 131 |
+
percentages.
|
| 132 |
+
|
| 133 |
+
TwIL-8B leads three rows outright (MATH-500, AIME 2025 and LiveCodeBench †). It is the strongest
|
| 134 |
+
model here at its own size on code and instruction following: against Qwen3.5-9B it is ahead on
|
| 135 |
+
LiveCodeBench † by 16.0 and IFBench † by 9.9, and the two are level on IFEval, HumanEval † and
|
| 136 |
+
HumanEval+ †. Contest math is close to even with Qwen3.5-9B (two contests each way), and ahead of
|
| 137 |
+
Gemma 4 12B by 10.8 on the one contest it publishes.
|
| 138 |
+
|
| 139 |
+
Gemma 4 31B, at about 3.5x the parameters, leads most remaining rows. TwIL-8B is ahead of it on
|
| 140 |
+
MATH-500, AIME 2025 and LiveCodeBench †, within one point on AIME 2026 and HMMT Nov 2025, and
|
| 141 |
+
behind on knowledge, instruction following and the hardest contest set (HMMT Feb 2026, −9.0).
|
| 142 |
+
MBPP †, MBPP+ † and CRUXEval † have no comparable published competitor numbers.
|
| 143 |
+
|
| 144 |
+
Notes on the competitor figures:
|
| 145 |
+
|
| 146 |
+
* Gemma 4 31B's HMMT scores were measured by the Qwen team (Qwen3.6-27B model card), not by Google.
|
| 147 |
+
Its MATH-500 (87.9) and AIME 2025 come from Red Hat's lighteval runs of the unquantized model;
|
| 148 |
+
the MATH-500 figure is unusually low and may reflect answer extraction.
|
| 149 |
+
* Google's IFEval figures for Gemma 4 (97.2 and 98.9) do not state the metric variant. Red Hat
|
| 150 |
+
measured 94.6 prompt-level strict for Gemma 4 31B.
|
| 151 |
+
* HumanEval and HumanEval+ comparators are community runs. The Gemma 4 31B run used a 512-token
|
| 152 |
+
cap, which leaves no room for thinking. The Qwen3.5-9B run had thinking enabled.
|
| 153 |
+
* Competitor LiveCodeBench scores are v6. Qwen3.5-9B's AIME 2026 and HMMT Feb 2026 scores are from
|
| 154 |
+
MathArena; its only public AIME 2025 results are non-thinking runs and are excluded.
|
| 155 |
+
|
| 156 |
+
### Against frontier models
|
| 157 |
+
|
| 158 |
+
GPT-5.5, Claude Opus 4.8 and Grok 4.3 at their highest published reasoning effort. The last column
|
| 159 |
+
is TwIL-8B's score as a share of the best frontier score on that row.
|
| 160 |
+
|
| 161 |
+
| Benchmark | **TwIL-8B** | GPT-5.5 (xhigh) | Claude Opus 4.8 (max) | Grok 4.3 (high) | Share of best frontier |
|
| 162 |
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
| 163 |
+
| AIME 2026 | 88.3 | 100.0 | 100.0 | — | 88% |
|
| 164 |
+
| HMMT Feb 2025 | 85.0 | 96.5 | 96.5 | — | 88% |
|
| 165 |
+
| HMMT Feb 2026 | 68.2 | 98.5 | 95.5 | — | 69% |
|
| 166 |
+
| HMMT Nov 2025 | 86.7 | 96.5 | 96.5 | — | 90% |
|
| 167 |
+
| GPQA Diamond | 70.2 | 93.6 | 93.6 | 90.1 | 75% |
|
| 168 |
+
| MMLU-Pro † | 76.5 | 88.1 | 89.6 | 85.8 | 85% |
|
| 169 |
+
| HLE † | 12.6 | 45.8 | 48.7 | 37.2 | 26% |
|
| 170 |
+
| IFBench † | 74.4 | 75.9 | 62.2 | 81.3 | 92% |
|
| 171 |
+
| LiveCodeBench † | 81.6 | 85.3 | 87.8 | 84.5 | 93% |
|
| 172 |
+
|
| 173 |
+
TwIL-8B is closest to the frontier on **instruction following and code**. It beats Claude Opus 4.8
|
| 174 |
+
on IFBench † by 12.2 points and is within 2.9–6.2 points of all three models on LiveCodeBench †.
|
| 175 |
+
Contest math lands at 88–90% of the frontier, with HMMT Feb 2026, the hardest set, as the outlier
|
| 176 |
+
at 69%. **Knowledge is the largest gap**: GPQA Diamond trails by about 20–23 points and HLE † by 25–36.
|
| 177 |
+
These benchmarks reward stored knowledge, which tends to scale with parameter count more than with
|
| 178 |
+
reasoning-focused training.
|
| 179 |
+
|
| 180 |
+
These three are the most recent frontier releases with measured results on this benchmark set.
|
| 181 |
+
Newer releases (GPT-6.1 Sol, Claude Opus 5.5 and Grok 4.7) no longer report AIME, HMMT or GPQA.
|
| 182 |
+
Their only measured overlap is Artificial Analysis HLE: 52.9, 61.4 and 43.1 respectively.
|
| 183 |
+
|
| 184 |
+
### Head-to-head
|
| 185 |
+
|
| 186 |
+
Averages are taken only over benchmarks where both models have a score, so the benchmark count
|
| 187 |
+
differs by row and the averages are not comparable across rows.
|
| 188 |
+
|
| 189 |
+
| Opponent | Shared benchmarks | Wins–losses | Shared average (TwIL-8B vs opponent) | TwIL-8B leads on | TwIL-8B trails on |
|
| 190 |
+
| --- | ---: | :---: | :---: | --- | --- |
|
| 191 |
+
| Qwen3.5-9B | 13 | 7–6 | 78.1 vs 77.6 | LiveCodeBench † +16.0, IFBench † +9.9, HMMT Nov 2025 +3.8, HMMT Feb 2025 +1.8, MATH-500 +1.6 | GPQA Diamond −11.5, MMLU-Pro † −6.0, AIME 2026 −4.2, HMMT Feb 2026 −3.0 |
|
| 192 |
+
| Gemma 4 12B | 7 | 4–3 | 70.8 vs 68.8 | AIME 2026 +10.8, LiveCodeBench † +9.6, HLE † +7.4 | GPQA Diamond −8.6, IFEval −5.4 |
|
| 193 |
+
| Gemma 4 31B | 14 | 3–11 | 78.8 vs 82.0 | MATH-500 +10.3, LiveCodeBench † +1.6, AIME 2025 +1.2 | GPQA Diamond −14.1, HMMT Feb 2026 −9.0, MMLU-Pro † −8.7, IFEval −7.1 |
|
| 194 |
+
| GPT-5.5 | 9 | 0–9 | 71.5 vs 86.7 | — | HLE † −33.2, HMMT Feb 2026 −30.3, GPQA Diamond −23.4 |
|
| 195 |
+
| Claude Opus 4.8 | 9 | 1–8 | 71.5 vs 85.6 | IFBench † +12.2 | HLE † −36.1, HMMT Feb 2026 −27.3, GPQA Diamond −23.4 |
|
| 196 |
+
| Grok 4.3 | 5 | 0–5 | 63.1 vs 75.8 | — | HLE † −24.6, GPQA Diamond −19.9, MMLU-Pro † −9.3 |
|
| 197 |
+
|
| 198 |
+
### Tokens per problem
|
| 199 |
+
|
| 200 |
+
Mean output tokens per problem, with accuracy. Competitor figures are from MathArena; frontier
|
| 201 |
+
counts are rounded to the nearest 1k.
|
| 202 |
+
|
| 203 |
+
| Contest | **TwIL-8B** | Qwen3.5-9B | Claude Opus 4.8 | GPT-5.5 |
|
| 204 |
+
| --- | --- | --- | --- | --- |
|
| 205 |
+
| AIME 2026 | **19.5k** · 88.3% | 31.2k · 92.5% | 21.0k · 100.0% | 5.0k · 100.0% |
|
| 206 |
+
| HMMT Feb 2026 | **32.9k** · 68.2% | 40.6k · 71.2% | 30.0k · 95.5% | 8.0k · 98.5% |
|
| 207 |
+
|
| 208 |
+
Against Qwen3.5-9B, the closest open peer by size, TwIL-8B uses 38% fewer tokens on AIME 2026
|
| 209 |
+
and 19% fewer on HMMT Feb 2026, for 4.2 and 3.0 fewer points respectively. GPT-5.5 remains far
|
| 210 |
+
more token-efficient. Harnesses and tokenizers differ, so treat this comparison as directional.
|
| 211 |
|
| 212 |
## Usage
|
| 213 |
|
|
|
|
| 216 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 217 |
|
| 218 |
model_id = "webAI-Official/TwIL-8B"
|
| 219 |
+
variant = None # balanced (default); use "verbose" for the verbose variant
|
| 220 |
+
|
| 221 |
+
tok = AutoTokenizer.from_pretrained(model_id, subfolder=variant or "")
|
| 222 |
model = AutoModelForCausalLM.from_pretrained(
|
| 223 |
+
model_id, subfolder=variant or "", dtype=torch.bfloat16, device_map="auto"
|
| 224 |
)
|
| 225 |
|
| 226 |
messages = [{"role": "user", "content":
|
| 227 |
+
"How many positive integers n < 1000 are divisible by 3 but not by 5? "
|
| 228 |
+
"Reason step by step, then give the final integer."}]
|
| 229 |
inputs = tok.apply_chat_template(
|
| 230 |
messages, add_generation_prompt=True,
|
| 231 |
return_tensors="pt", return_dict=True,
|
| 232 |
).to(model.device)
|
| 233 |
|
| 234 |
+
out = model.generate(**inputs, max_new_tokens=32768)
|
| 235 |
print(tok.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
|
| 236 |
```
|
| 237 |
|
| 238 |
+
Use a Transformers release with Granite 4.2 support. `return_dict=True` matters on Transformers
|
| 239 |
+
5.x, where `apply_chat_template` returns a `BatchEncoding` rather than a bare tensor.
|
| 240 |
|
| 241 |
+
The chat template opens a `<think>` block by default, so the model reasons before it answers.
|
| 242 |
+
Give it a large generation budget: on contest math, balanced averages about 19.5k tokens per AIME
|
| 243 |
+
2026 problem and 33k per HMMT Feb 2026 problem, and verbose writes more. A short budget truncates
|
| 244 |
+
the reasoning and scores far worse. The shipped `generation_config.json` samples with
|
| 245 |
+
`temperature=1.0` and `top_p=0.95`. The template also accepts `enable_thinking=False` and
|
| 246 |
+
`reasoning_effort="low"` through `chat_template_kwargs`. Both lower latency, but low-effort runs
|
| 247 |
+
score substantially lower and none of the numbers on this card use them.
|
| 248 |
+
|
| 249 |
+
To download a single variant:
|
| 250 |
+
|
| 251 |
+
```bash
|
| 252 |
+
# balanced
|
| 253 |
+
hf download webAI-Official/TwIL-8B --exclude "verbose/*" --exclude "*.gguf" --local-dir TwIL-8B-balanced
|
| 254 |
+
# verbose
|
| 255 |
+
hf download webAI-Official/TwIL-8B --include "verbose/*" --local-dir TwIL-8B
|
| 256 |
+
```
|
| 257 |
|
| 258 |
### GGUF / llama.cpp
|
| 259 |
|
| 260 |
+
| File | Variant | Quant | Size |
|
| 261 |
| --- | --- | --- | --- |
|
| 262 |
+
| `TwIL-8B-Q4_K_M-balanced.gguf` | balanced | Q4_K_M (importance matrix) | 4.98 GiB |
|
| 263 |
+
| `TwIL-8B-Q4_K_M-verbose.gguf` | verbose | Q4_K_M | 4.98 GiB |
|
| 264 |
+
| `TwIL-8B-Q8_0-verbose.gguf` | verbose | Q8_0 | 8.70 GiB |
|
| 265 |
+
| `TwIL-8B-F16-verbose.gguf` | verbose | F16 | 16.38 GiB |
|
| 266 |
|
| 267 |
```bash
|
| 268 |
+
llama-cli -hf webAI-Official/TwIL-8B --hf-file TwIL-8B-Q4_K_M-balanced.gguf -cnv -c 40960 -n 32768
|
| 269 |
```
|
| 270 |
|
| 271 |
+
Name the file with `--hf-file`, because each quant exists for more than one variant. Keep the
|
| 272 |
+
context and generation budget large for the same reason as above. The model uses a ChatML-style
|
| 273 |
+
template with `<|im_end|>` as EOS. All scores on this card were measured on the bf16 weights,
|
| 274 |
+
not on the GGUF builds, so expect small deviations, most likely at Q4_K_M.
|
| 275 |
|
| 276 |
## How it was built
|
| 277 |
|
| 278 |
+
1. **Supervised fine-tuning.** Full-parameter SFT of `ibm-granite/granite-4.2-8b` on reasoning
|
| 279 |
+
traces covering math, STEM and instruction following.
|
| 280 |
+
2. **Reinforcement learning.** GRPO/DAPO RL on math, code, STEM and instruction-following
|
| 281 |
+
prompts. This produces the **verbose** variant.
|
| 282 |
+
3. **Length-aware RL.** A further RL stage with a length-aware reward that favours shorter
|
| 283 |
+
reasoning traces, measured against per-domain length references for math, code, STEM and
|
| 284 |
+
instruction following. This produces the **balanced** variant.
|
| 285 |
|
| 286 |
+
The math, STEM and instruction-following training pools were decontaminated with 13-gram matching
|
| 287 |
+
against AIME (2025, 2026 and earlier years), HMMT Feb 2025 and Feb 2026, MATH-500, GPQA Diamond,
|
| 288 |
+
MMLU-Pro, HLE, IFEval, IFBench and LiveCodeBench. Both variants ship as full merged models, not
|
| 289 |
+
LoRA adapters.
|
| 290 |
|
| 291 |
## Limitations and caveats
|
| 292 |
|
| 293 |
+
* **Knowledge.** GPQA Diamond, MMLU-Pro † and HLE † trail larger open models and the frontier by
|
| 294 |
+
wide margins.
|
| 295 |
+
* **Coverage.** Rows marked † were measured on the verbose variant and have not yet been run on
|
| 296 |
+
balanced. SWE-bench, SuperGPQA, tool use and agentic tasks were not evaluated.
|
| 297 |
+
* **Cross-harness comparisons.** Competitor numbers come from each vendor's model card or from
|
| 298 |
+
third-party evaluations, with their own prompts, sampling and token budgets. The AIME and HMMT
|
| 299 |
+
sets have 30–33 problems, so one problem is worth about 3 points and gaps of that size are
|
| 300 |
+
within noise.
|
| 301 |
+
* **HLE scoring.** TwIL-8B's HLE uses a multiple-choice scoring rule. Competitor HLE scores are
|
| 302 |
+
text-only and judge-graded, so that comparison is approximate.
|
| 303 |
+
* **LiveCodeBench version.** Competitor scores are v6. The version and date window of TwIL-8B's
|
| 304 |
+
run are not recorded, so confirm them before quoting that gap.
|
| 305 |
+
* **Contamination.** HMMT Nov 2025 and the HumanEval, MBPP and CRUXEval suites were not in the
|
| 306 |
+
decontamination set, and decontamination of the code training data is not recorded.
|
| 307 |
+
* **Token cost.** Even balanced spends about 19.5k tokens per AIME 2026 problem, roughly 4x
|
| 308 |
+
GPT-5.5.
|
| 309 |
+
* **Not a general assistant.** There is no additional safety, preference or tool-use training
|
| 310 |
+
beyond what Granite 4.2 carries.
|
| 311 |
|
| 312 |
## Evaluation protocol
|
| 313 |
|
| 314 |
+
* **TwIL-8B:** internal high-effort pass@1 with thinking enabled, on the same harness for every
|
| 315 |
+
benchmark and both variants. Scores are shown as percentages (0.982 → 98.2).
|
| 316 |
+
* **Competitors:** reproduced from the public sources below, accessed 3 November 2026. No
|
| 317 |
+
competitor benchmark was re-run. Frontier models are at their highest published reasoning
|
| 318 |
+
effort. Model-predicted estimates on aggregator sites are excluded.
|
| 319 |
+
* **Naming:** "GPQA" means GPQA Diamond. AIME 2025 and AIME 2026 are the single-year sets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 320 |
|
| 321 |
## Relationship to TwIL-LM
|
| 322 |
|
| 323 |
+
TwIL-8B belongs to the same webAI TwIL family as
|
| 324 |
+
[TwIL-LM3](https://huggingface.co/webAI-Official/TwIL-LM3) and
|
| 325 |
+
[TwIL-LM3-Pro](https://huggingface.co/webAI-Official/TwIL-LM3-Pro). Those are 3B formal-logic
|
| 326 |
+
models; TwIL-8B targets contest math, code and instruction following at 8B, on IBM's Granite 4.2
|
| 327 |
+
8B base. Like them, it ships as a full model on `main`, loaded directly with
|
| 328 |
+
`AutoModelForCausalLM`.
|
| 329 |
|
| 330 |
## License and attribution
|
| 331 |
|
| 332 |
+
Released under the Apache License 2.0; see `apache-2.0-LICENSE.txt` in this repository.
|
| 333 |
+
|
| 334 |
+
The base model, `ibm-granite/granite-4.2-8b`, is Copyright IBM Corporation and is distributed
|
| 335 |
+
under the Apache License 2.0. All credit for the base model goes to IBM.
|
| 336 |
+
|
| 337 |
+
## Sources
|
| 338 |
+
|
| 339 |
+
Competitor figures on this card come from:
|
| 340 |
+
|
| 341 |
+
* [Gemma 4 model card](https://ai.google.dev/gemma/docs/core/model_card_4) (Google, thinking mode):
|
| 342 |
+
Gemma 4 12B and 31B AIME 2026, GPQA Diamond, MMLU-Pro, HLE and LiveCodeBench v6.
|
| 343 |
+
* [Gemma 4 Technical Report, Table 5](https://arxiv.org/abs/2607.02770): Gemma 4 IFEval and IFBench.
|
| 344 |
+
* [Qwen3.6-27B model card](https://huggingface.co/Qwen/Qwen3.6-27B), Gemma4-31B baseline column:
|
| 345 |
+
Gemma 4 31B HMMT Feb 2025, Nov 2025 and Feb 2026.
|
| 346 |
+
* [RedHatAI/gemma-4-31B-it-FP8-dynamic](https://huggingface.co/RedHatAI/gemma-4-31B-it-FP8-dynamic),
|
| 347 |
+
BF16 baseline: Gemma 4 31B MATH-500 and AIME 2025.
|
| 348 |
+
* [EvalPlus submission #300](https://github.com/evalplus/evalplus/issues/300): Gemma 4 31B HumanEval
|
| 349 |
+
and HumanEval+.
|
| 350 |
+
* [Qwen3.5-9B model card](https://huggingface.co/Qwen/Qwen3.5-9B) (thinking mode): GPQA Diamond,
|
| 351 |
+
MMLU-Pro, IFEval, IFBench, HMMT Feb 2025, HMMT Nov 2025 and LiveCodeBench v6.
|
| 352 |
+
* [MathArena, Qwen3.5-9B](https://matharena.ai/models/qwen_qwen3_5_9b): AIME 2026 and HMMT Feb 2026
|
| 353 |
+
accuracy and tokens per problem.
|
| 354 |
+
* [SOTA2 MATH-500 leaderboard](https://www.sota2.com/research/sota/math-on-math-500-score):
|
| 355 |
+
Qwen3.5-9B MATH-500.
|
| 356 |
+
* [Artificial Analysis via OpenRouter, Qwen3.5 9B](https://openrouter.ai/qwen/qwen3.5-9b:batch):
|
| 357 |
+
Qwen3.5-9B HLE.
|
| 358 |
+
* [nivvis/Qwen3.5-9B-EQ-v5.1](https://huggingface.co/nivvis/Qwen3.5-9B-EQ-v5.1-GGUF), vanilla
|
| 359 |
+
baseline row: Qwen3.5-9B HumanEval and HumanEval+.
|
| 360 |
+
* [Introducing GPT-5.5](https://openai.com/index/introducing-gpt-5-5/) and the
|
| 361 |
+
[Claude Opus 4.8 System Card](https://www.anthropic.com/claude-opus-4-8-system-card): GPQA Diamond.
|
| 362 |
+
* MathArena via [BenchLeader AIME 2026](https://www.benchleader.com/benchmarks/matharena_aime_2026),
|
| 363 |
+
[BenchLeader HMMT Feb 2026](https://www.benchleader.com/benchmarks/matharena_hmmt_feb_2026) and
|
| 364 |
+
[The Aggregate HMMT Feb 2025](https://theaggregate.ai/benchmark?slug=matharena-hmmt-feb-2025):
|
| 365 |
+
GPT-5.5 and Claude Opus 4.8 contest accuracy and tokens per problem.
|
| 366 |
+
* [GLM-5.2 model card](https://huggingface.co/zai-org/GLM-5.2): GPT-5.5 and Claude Opus 4.8 HMMT
|
| 367 |
+
Nov 2025.
|
| 368 |
+
* benchgap.net for [GPT-5.5](https://benchgap.net/model/gpt-5-5),
|
| 369 |
+
[Claude Opus 4.8](https://benchgap.net/model/claude-opus-4-8) and
|
| 370 |
+
[Grok 4.3](https://benchgap.net/model/grok-4-3) (measured rows only): Artificial Analysis HLE and
|
| 371 |
+
IFBench, and Vals AI MMLU-Pro and LiveCodeBench.
|
| 372 |
+
* [Artificial Analysis via OpenRouter, Grok 4.3](https://openrouter.ai/x-ai/grok-4.3): Grok 4.3
|
| 373 |
+
GPQA Diamond, HLE and IFBench.
|
| 374 |
+
* [benchgap.net, newest frontier releases](https://benchgap.net/model/claude-opus-5-5): Artificial
|
| 375 |
+
Analysis HLE for GPT-6.1 Sol, Claude Opus 5.5 and Grok 4.7.
|
TwIL-8B-Q4_K_M.gguf
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:17bda82d2608ca61b6aca48394f212349ef1515d0d9a2e6edee06619152faa0e
|
| 3 |
-
size 5347917568
|
|
|
|
|
|
|
|
|
|
|
|
TwIL-8B-evaluation-report.pdf → benchmarks.png
RENAMED
|
File without changes
|
model.safetensors
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:79fe4b7e42b45d15f43c10e1e2fa0602409bcc8cad03911aa0d8c4a0846e3532
|
| 3 |
-
size 17583228544
|
|
|
|
|
|
|
|
|
|
|
|