---
license: other
license_name: webai-non-commercial-1.0
license_link: https://huggingface.co/webAI-Official/TwIL-LM3
base_model: webAI-Official/TwIL-LM3
base_model_relation: quantized
tags:
- gguf
- llama.cpp
- smollm3
- reasoning
- formal-logic
- quantized
- local-llm
language:
- en
pipeline_tag: text-generation
library_name: gguf
---
# TwIL-LM3-GGUF
GGUF quantizations of [`webAI-Official/TwIL-LM3`](https://huggingface.co/webAI-Official/TwIL-LM3) for local inference with [llama.cpp](https://github.com/ggerganov/llama.cpp) and compatible runtimes. [web:2]
TwIL-LM3 is a **3.08B** formal-logic reasoning model built from [`HuggingFaceTB/SmolLM3-3B`](https://huggingface.co/HuggingFaceTB/SmolLM3-3B) via LoRA SFT, checkpoint fusion, WiSE-FT (\(\lambda = 0.25\)), and entropy-weighted GRPO (MGPO, step 2071). It is specialized for FOL translation, entailment, semantic parsing, Lean formalization, and proof critique — not a general chat assistant. [web:2]
| Property | Value |
|---|---|
| Quant repo | [`NANI-Nithin/TwIL-LM3-GGUF`](https://huggingface.co/NANI-Nithin/TwIL-LM3-GGUF) |
| Original weights | [`webAI-Official/TwIL-LM3`](https://huggingface.co/webAI-Official/TwIL-LM3) |
| Base | [`HuggingFaceTB/SmolLM3-3B`](https://huggingface.co/HuggingFaceTB/SmolLM3-3B) |
| Parameters | 3.08B |
| Architecture | SmolLM3 decoder-only, 36 layers, hidden 2048 |
| Context | 65,536 tokens (scores reported at 8,192) |
| Vocab | 128,256 |
| Reasoning format | `…` then the answer |
| Language | English |
| License | webAI Non-Commercial License v1.0 (base SmolLM3 is Apache 2.0) |
## Highlights
- In-domain formal-logic **macro gate 0.336 → 0.422** vs SmolLM3-3B (+26% relative) while **held-out 10-dataset macro also rose** (0.7193 → 0.7339). [web:2]
- Structured outputs: FOL, entailment labels, semantic parses, Lean statements and critique. [web:2]
- Short answers: ~564 tokens Track A / ~482 Track B; **~28–33 answers/s** in the official BF16 harness — not a GGUF measurement. [web:2]
- Q4_K_M is ~**1.78 GiB** and is the recommended local default (CPU or ~4 GB VRAM). [web:7]
This is **not** a general assistant. There is no extra safety or preference tuning beyond SmolLM3; instruction following (IFEval) slightly regressed. [web:2]
## Available quants
Pick one `.gguf` file. Filenames follow the usual `TwIL-LM3-.gguf` pattern. Official reference sizes from the upstream card: [web:7]
| Quant | Size | Bits/weight | Notes |
|---|---|---|---|
| Q2_K / IQ* | smallest | ~2–3 | Max compression; expect quality loss on FOL/Lean |
| Q3_K_M / Q3_K_S | small | ~3 | Tight RAM; logic tasks degrade first |
| **Q4_K_M** | **1.78 GiB** | **4.96** | **Recommended default** |
| Q5_K_M | 2.06 GiB | 5.74 | Extra headroom vs Q4_K_M |
| Q5_K_S | ~2.0 GiB | ~5.3 | Slightly smaller Q5 |
| Q6_K | 2.35 GiB | 6.56 | Near-Q8 quality, smaller than Q8 |
| Q8_0 | 3.05 GiB | 8.50 | Near-lossless |
| F16 | 5.73 GiB | 16.00 | Requantize / reference |
Upstream K-quants were made with `llama-quantize` from F16 **without** an importance matrix. Published Track A/B numbers are **bf16 + vLLM**, not these GGUFs — expect small drift, especially at Q4 and below. [web:7]
## Quick start
Use **greedy decoding** and a **large generation budget**. The model writes a `` block first; a short `n` truncates reasoning and tanks accuracy. Packaged sampling defaults are *not* greedy. [web:2]
### llama.cpp
```bash
# recommended
llama-cli -hf NANI-Nithin/TwIL-LM3-GGUF:Q4_K_M -cnv --temp 0 -n 2048
# local file
llama-cli -m TwIL-LM3-Q4_K_M.gguf -cnv --temp 0 -n 2048
# OpenAI-compatible server + web UI
llama-server -hf NANI-Nithin/TwIL-LM3-GGUF:Q4_K_M --temp 0 -c 8192 -n 2048
```
Chat template, `<|im_end|>` EOS, and BOS are in the GGUF metadata; chat mode should work without extra flags. `--jinja` if your build needs an explicit template. [web:2][web:8]
### Ollama
```bash
ollama run hf.co/NANI-Nithin/TwIL-LM3-GGUF:Q4_K_M
```
### Docker Model Runner
```bash
docker model run hf.co/NANI-Nithin/TwIL-LM3-GGUF:Q4_K_M
```
### Python (llama-cpp-python)
```python
from llama_cpp import Llama
llm = Llama.from_pretrained(
repo_id="NANI-Nithin/TwIL-LM3-GGUF",
filename="*Q4_K_M*.gguf",
n_ctx=8192,
verbose=False,
)
out = llm.create_chat_completion(
messages=[{
"role": "user",
"content": (
"Does 'All dogs are mammals. Rex is a dog.' entail 'Rex is a mammal'? "
"Answer entailment, contradiction, or neutral."
),
}],
temperature=0.0,
max_tokens=2048,
)
print(out["choices"]["message"]["content"])
```
## Prompting
Apply the SmolLM3 / chat template. The model emits:
```text
...chain of thought...
```
Example tasks it was trained for: [web:2]
- First-order logic translation
- Entailment / contradiction / neutral
- Semantic parsing
- Lean formalization
- Lean proof critique
- Rule induction and procedural reasoning
Keep `max_new_tokens` ≥ 2048 (4096 if you see truncated ``). Official eval used greedy, 2048 new tokens, `max_seq_len` 8192. [web:2]
## How the original model was trained
Four stages on SmolLM3-3B: [web:2]
1. **LoRA SFT** on a synthetic formal-logic corpus (Track A objectives).
2. **Checkpoint fusion** — average diverse intermediate SFT checkpoints.
3. **WiSE-FT**: \(W = (1-\lambda)W_{\text{base}} + \lambda W_{\text{ft}}\) with \(\lambda=0.25\) so held-out capability does not collapse.
4. **MGPO** — entropy-weighted GRPO vs a programmatic verifier; published step **2071**.
A sibling without conservative WiSE-FT scored higher in-domain but lost ~12 points held-out and was not released. Post-RL self-distillation (SDFT) hurt both tracks and is **not** in these weights. [web:2]
## Results (original BF16, not this GGUF)
Headline official numbers (greedy, paired harness). Full tables live on the [upstream card](https://huggingface.co/webAI-Official/TwIL-LM3). [web:2]
| Metric | TwIL-LM3 | SmolLM3-3B |
|---|---|---|
| Track A macro gate | 0.4218 | ~0.336–0.347 |
| Track A 6-lane average | 0.4488 | 0.3296 |
| Track A strict-7 | 0.1971 | 0.1493 |
| Lean formalize token-F1 | 0.5869 | 0.4347 |
| Entailment accuracy | 0.5750 | 0.3750 |
| Semantic parse token-F1 | 0.4416 | 0.4149 |
| Math-corpus PPL (↓) | 3.8229 | 4.0685 |
| Track B 10-dataset CoT macro | 0.7339 | 0.7193 |
These figures are **not** re-measured on this GGUF repo.
## Limitations
- **Specialist, not a chatbot.** Weak or untested on open chat, code, and tool use (HumanEval / LiveCodeBench / BFCL not reported). [web:2]
- **Truncation.** ~4.4% of Track A gens hit the 2048-token cap; truncated answers score 0. [web:2]
- **Quantization drift.** No imatrix; Q2/Q3 will hurt exact-match FOL/Lean more than Q6/Q8.
- **Context.** 65k is inherited from SmolLM3; official scores used 8k only. [web:2]
- **License.** Non-commercial terms from webAI apply to the fine-tune; attribute HuggingFaceTB for SmolLM3 (Apache 2.0). [web:2]
## Intended use
Local / on-device formal-logic assistance: autoformalization sketches, entailment checks, Lean draft critique, teaching FOL. Research and personal non-commercial use under the upstream license.
## Acknowledgements
- [webAI](https://huggingface.co/webAI-Official/TwIL-LM3) — TwIL-LM3 training and evaluation
- [HuggingFaceTB](https://huggingface.co/HuggingFaceTB/SmolLM3-3B) — SmolLM3-3B
- [llama.cpp](https://github.com/ggerganov/llama.cpp) — GGUF runtime
## Citation
```bibtex
@misc{twil-lm3-gguf,
title = {TwIL-LM3-GGUF},
author = {Kopparapu, Nithin Sai Kumar},
year = {2026},
howpublished = {\url{https://huggingface.co/NANI-Nithin/TwIL-LM3-GGUF}},
note = {GGUF quantization of webAI-Official/TwIL-LM3}
}
```
Also cite [`webAI-Official/TwIL-LM3`](https://huggingface.co/webAI-Official/TwIL-LM3) and [`HuggingFaceTB/SmolLM3-3B`](https://huggingface.co/HuggingFaceTB/SmolLM3-3B).