meta-granite-8b β€” Doubter wrapper for Granite-3.3-8B-Instruct

A trained meta-attention "Doubter" wrapper for ibm-granite/granite-3.3-8b-instruct. It is not a full model β€” it is a thin wrapper (~2% of the base) that reads the frozen base's own activations and injects cognitive tokens through gated cross-attention, so the model learns when to trust itself: answer confidently or refuse honestly. The base weights are never modified.

See the meta-spider framework for how to load and run it.

What's in here

File What it is
doubter_checkpoint.pt the trained wrapper weights (encoder + cross-attention + gates), ~353 MB
doubter_sidecar.gguf the same wrapper exported for llama.cpp (CPU / Metal / edge), ~352 MB
run.json the training manifest (base model, layers, encoder type, quantization, dataset)

Results (honest metrics)

Evaluated on MMLU (held-out, n=300). The base answers everything; the Doubter abstains on questions it would likely get wrong.

Metric Base + Doubter
Selective accuracy (of answered, % correct) 0.63 0.77
Coverage (answered / total) 100% (300/300) 55% (164/300)
Refusal rate 0% 45%
Refusal precision (vs oracle*) β€” 0.57
Over-refusal rate β€” 0.43
Total recovery rate β€” 0.69

*Refusal precision is scored against an oracle (would the base have been wrong if it answered?), not a naive text match.

How to read this. Selective accuracy rises 0.63 β†’ 0.77 (+13.8 pp) β€” on the questions it chooses to answer, it is right much more often. This is statistically significant (McNemar p β‰ˆ 0, 52 confident-wrong answers turned into refusals vs 4 lost). Refusal precision 0.57 is honest (moderately targeted, better than chance ~0.4); it over-refuses ~43% (the known cost of caution). The usefulness criterion is selective accuracy, and it moves solidly on a real-size test set (n=300).

Over-refusal is a known cost, not a failure. See the framework's honesty notes on metrics.

Training configuration (from run.json)

  • Base: ibm-granite/granite-3.3-8b-instruct (frozen), nf4 quantized, float16
  • Encoder: selective (1 cognitive token per layer, scalar tanh gate)
  • Layers (read + inject): [26..39] (the late third, 14 layers)
  • Data: MMLU, MCQ-direct (enable_thinking=False, thinking=False, answer-only suffix β€” required so the instruct model produces a letter on Pass 1)
  • train / val / test = 1500 / 150 / 300

Usage

from meta_core import MetaSpiderConfig, MetaSpiderPipeline, Doubter

cfg = MetaSpiderConfig(
    model_name="ibm-granite/granite-3.3-8b-instruct",
    device="auto", dtype="float16", quantization="nf4",
    target_layers=list(range(26, 40)),
    cross_attn_layers=list(range(26, 40)),
)
pipe = MetaSpiderPipeline.from_pretrained(cfg)
pipe.attach(Doubter.from_checkpoint("doubter_checkpoint.pt"))

print(pipe.generate("What is the capital of France?"))
# β†’ answers confidently
print(pipe.generate("<an obscure question the base would get wrong>"))
# β†’ "I'm not confident enough to answer this question accurately."

Needs pip install meta-core transformers accelerate bitsandbytes.

Framework

This wrapper is produced and consumed by the meta-spider framework (codeberg.org/imperius/meta-spider) β€” meta-core / meta-loom / meta-agent / meta-deploy). The included GGUF sidecar (doubter_sidecar.gguf, produced by metadeploy export) runs the same wrapper on CPU inside llama.cpp β€” load it as a meta-adapter with llama-meta-generate (two-pass inference), validated end-to-end on this model. Pair it with a quantized Granite-3.3-8B GGUF (e.g. Q8_0); the calibrated refusal holds down to Q4_K_M.

Caveats

  • This wrapper is model-specific β€” it is calibrated to the activation distribution of granite-3.3-8b-instruct. It will not transfer cleanly to a different model or even a different fine-tune of it (it would push hidden states out of distribution).
  • It does not add knowledge or make the model smarter β€” it surfaces an existing internal uncertainty signal and turns "answer at random" into "answer when confident".
Downloads last month
12
GGUF
Model size
92.4M params
Architecture
meta-spider
Hardware compatibility
Log In to add your hardware

We're not able to determine the quantization variants.

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Imperius/meta-granite-3.3-8b-instruct

Quantized
(30)
this model