Skip to content
Ankit Aglawe
Parable· agent-trace fine-tune

ibm-granite/granite-4.1-3b, fine-tuned on Claude Fable 5 agent traces

This is not IBM's granite-4.1-3b. It is that model with a QLoRA adapter trained on genuine agent session traces, which makes it behave more like an agent and measurably worse at raw function synthesis.

Parable fox mascot

Parable

AnkitAI/Parable-Granite-4.1-3B-Claude-Fable-5
3B parametersApache-2.02,061 downloads, checked 2026-07-27

Training data carries upstream terms: the Fable-5 trace set is AGPL-3.0 and the terminal set is MIT, and both originate from third-party assistants whose terms may reach downstream use. Check before building on this commercially.

Granite 4.1 3B is IBM's small instruction model. This checkpoint is that model plus a QLoRA adapter trained on parable-corpus-v2 — 11,574 deduplicated Claude Fable 5 and GPT-5.5 agent sessions, roughly 17M tokens, published in full. The point of training on real sessions rather than synthetic question-answer pairs is that sessions contain the parts nobody writes down: how a plan gets revised halfway, what a tool call looks like when the first one failed, when to stop.

It is the smallest model in the series and, if RAM is what constrains you, the one to take. The Q4_K_M build is 2.10 GB. Size sets the terms of use as well as the footprint: at 3B it over-commits to plausible specifics, so generated shell commands and code are drafts to review rather than output to run.

The v2 recipe is the interesting part, because v1 was broken in ways that took a while to find. v2 uses completion-only loss masking (loss on assistant turns only, never on prompts or tool output), a 30% general-instruction replay mix to protect base capability, benchmark-gated checkpoint selection against a held-out MBPP subset, and seed-averaged weights. v1 used none of those, and its card's own qualitative score of ~18/34 was itself an artifact — the grading harness was capturing command-line chrome as model output.

One number on this page is unflattering and it is the one worth reading. The base model scores 81.7 on HumanEval; this fine-tune scores 70.1. Specialising a 3B model on agent traces costs about 11 points of raw function synthesis. What it buys is the strict 34-prompt qualitative score moving from ~18/34 to 25/34 and the transcript-artifact leakage class — answers that hallucinated prior conversation turns, or quoted workspace paths memorised verbatim from the training sessions — going from 6 occurrences to zero.

The honest framing on that qual score: the base model scores 27/34 on the same suite. This fine-tune does not beat it there. The 34-prompt suite measures one-shot chat coding, which is the base model's home turf, and it has since been demoted to an internal smoke test. Claims about agent capability need agent benchmarks — Terminal-Bench, aider polyglot, BFCL — and none of those have been run on this checkpoint yet.

The numbers

v2 against v1, and against the base model. Same harness, greedy decoding, Q4_K_M builds, HumanEval+ scored with EvalPlus on identical hardware.

Basev1v2 (current)
HumanEval81.762.870.1
HumanEval+76.257.965.9
Strict 34-prompt qual27/34~18/3425/34
Transcript-artifact leakage6/340/34

Figures as reported on the model's own Hugging Face card and in the training lab notebook. Quoted here, not re-measured.

Builds

GGUF quantisations, for llama.cpp, Ollama and LM Studio. Sizes are exact file sizes from the Hugging Face API, not estimates. Q4_K_M is the one to take unless you have a reason.

QuantSizeNotes
Q4_K_M2.10 GBRecommended
Q5_K_M2.44 GBHigher quality
Q6_K2.80 GBNear-lossless
Q8_03.62 GBMaximum quality
F166.81 GBUnquantised

All quants: AnkitAI/Parable-Granite-4.1-3B-Claude-Fable-5-GGUF

Run it

Ollama
ollama run parable/granite4.1-fable:3b
Python (llama-cpp-python)
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."}],
    max_tokens=1200,
    temperature=0.3,
)
print(out["choices"][0]["message"]["content"])

LM Studio: lms get parable/granite4.1-fable

Try others

Where to get it

Base model
ibm-granite/granite-4.1-3b
Training data
parable-corpus-v2 (11,574 traces, ~17M tokens)