Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "AnkitAI/Parable-Qwen3-4B-Claude-Fable-5"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
messages = [{"role": "user", "content": "Write a Python function that retries an HTTP request with exponential backoff."}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
output = model.generate(inputs, max_new_tokens=3000, temperature=0.3, do_sample=True)
text = tokenizer.decode(output[0][inputs.shape[1]:], skip_special_tokens=True)
answer = text.split("</think>")[-1].strip()
print(answer)
GGUF quants for llama.cpp / Ollama / LM Studio: Parable-Qwen3-4B-Claude-Fable-5-GGUF
Note: these weights are the F16 merge of a QLoRA adapter trained on the 4-bit base; quality is equivalent to the Q8 GGUF, published here for server stacks and further fine-tuning.
This is a reasoning model: output opens with a <think>...</think> block before the final answer. Strip it before showing responses to end users (llama.cpp's --jinja chat mode separates it automatically).
Sampling: temperature 0.3–0.7. Budget max_tokens generously (≥ 2500): like other trace-trained reasoning models, it thinks at length before answering, and a short budget can cut it off mid-thought.
Training data
Every example passed a quality gate (schema validation, secrets scrub, length filtering) before training. QLoRA fine-tune via mlx-lm, quantized with llama.cpp.
Evaluation
Held-out test split, identical evaluation code for base and fine-tune (base measured through a zero-effect adapter for exact comparability):
Table with columns: Metric, Base Qwen3-4B, Parable, Δ| Metric | Base Qwen3-4B | Parable | Δ |
|---|
| Test loss | 1.888 | 0.996 | −47% |
| Token accuracy | 0.683 | 0.782 | +10 pts |
Qualitative review (34 coding/terminal/debugging prompts, judged clean-and-correct): of the prompts that produced a final answer, 92% were correct. The remainder hit reasoning-budget cutoffs rather than wrong answers (23/34 overall with a 2,600-token budget; see guidance above).
Limitations
- Like other trace-trained reasoning models, it invests heavily in thinking. With tight token budgets it can spend the whole budget reasoning; budget ≥ 2500 tokens or retry at lower temperature if a response comes back empty.
- Tuned hard toward agentic coding behavior; that focus trades some general-knowledge breadth, as with any specialized fine-tune in this class.
- Verify critical output. Small models over-commit to plausible specifics; treat generated commands and code as drafts to review.
- Inherits Qwen3-4B's base limitations and knowledge cutoff.
Provenance & licensing
Model weights: Apache-2.0 (inherited from Qwen3-4B). Training data licenses: Fable-5-traces AGPL-3.0, gpt5.5-terminal MIT. Because those traces originate from third-party assistants, the providers' terms may apply to downstream training and distillation. If you plan to build on this model commercially, confirm your use aligns with those terms.
Acknowledgements