Skip to content
Ankit Aglawe
Model series

Parable

Small local LLMs fine-tuned on genuine Claude Fable 5 + GPT-5.5 agent traces. GGUF-first, honest evals, published corpus.

Parable fox mascot

Models

ModelBaseNotesWeights
Parable-Granite-4.1-3BGranite 4.1 3Bv2: HumanEval 70.1 / 65.9, strict qual 25/34, zero transcript-artifact leakageGGUF →
Parable-Qwen3-4BQwen3 4Bv2: every prompt answered (v1 returned nothing on 21%), HumanEval 73.2, mode-invariantGGUF →
Parable-Granite-4.1-8BGranite 4.1 8BGGUF quants for local inferenceGGUF →
Parable-Qwen3-8BQwen3 8BGGUF quants for local inferenceGGUF →
Run it locally
ollama run parable/granite4.1-fable:3b
# Python: llama-cpp-python, straight from Hugging Face
from llama_cpp import Llama

llm = Llama.from_pretrained(
    repo_id="AnkitAI/Parable-Granite-4.1-3B-Claude-Fable-5-GGUF",
    filename="*Q4_K_M.gguf",
    n_ctx=8192,
)
out = llm.create_chat_completion(
    messages=[{"role": "user", "content": "Plan the steps to debug a failing CI job."}]
)
print(out["choices"][0]["message"]["content"])

Also on Ollama and ModelScope; the GGUF builds load straight into LM Studio and llama.cpp.

Benchmarks

Flagship 3B, v2 vs v1. Same harness, greedy decoding, fresh cache per weights:

Benchmarkv1v2
HumanEval62.870.1
HumanEval+57.965.9
Strict 34-prompt coding qual~18/3425/34
Transcript-artifact leakage6/340/34

One trade made on purpose: raw function synthesis stays the base model's turf (81.7 HumanEval); v2 spends that capacity on agent behavior instead. Every number, including that one, is published.

Qwen3-4B, v2 vs v1 — same harness, thinking disabled on every row (the base is a hybrid-thinking model; unmatched modes flatter the fine-tune):

BenchmarkBasev1v2
Prompts answered (34-prompt suite)27/3434/34
HumanEval76.872.073.2
HumanEval+71.368.367.1

The headline is the first row: v1 spent its whole token budget thinking on 7 of 34 ordinary prompts and returned nothing. v2 answers all 34 with 140× less reasoning text, at coding parity.

Parable evaluation chart across benchmarks

How they're made

  • Completion-masked SFT - loss only on assistant completions, never on prompts or tool results.
  • 30% replay mix - general instruction data replayed alongside traces to protect base capability.
  • Benchmark-gated checkpoints - a checkpoint ships only if it clears the eval gate.
  • Seed-averaged weights - final weights averaged across training seeds to reduce run variance.
  • Published corpus - the full training corpus is public.

Training corpus: parable-corpus-v2 on Hugging Face →

Reproducibility

The full training corpus is public, both training seeds are published with their adapters and metrics, and every benchmark row — including the base models — is measured under the same harness with greedy decoding. Raw eval outputs ship alongside the weights, so every number on this page can be re-run and checked.