Downloads · 30 days
28
30% of all-time downloads
Imperius/meta-qwen-14b-universal-doubter
meta-qwen-14b-universal-doubter is a text generation model from Imperius. Use it when you need the model to write or continue text. It is set up for meta-core. The card lists the license as mit.
⚠️ This is a wrapper, not a standalone model. To load and run it you need the meta-spider framework — get it from Codeberg: <https://codeberg.org/imperius/meta-spider (pip install -e meta-core). The files here (doubte…
Downloads · 30 days
28
30% of all-time downloads
All-time downloads
93
Public
Repo size
900 MB
Likes
0
Public
Click a slice to open those files.
.gguf535 MB · 59%
From the Hugging Face model README
⚠️ This is a wrapper, not a standalone model. To load and run it you need the meta-spider framework — get it from Codeberg: https://codeberg.org/imperius/meta-spider (
pip install -e meta-core). The files here (doubter_checkpoint.pt/doubter_sidecar.gguf) are the trained wrapper weights only; they attach to a frozenQwen/Qwen2.5-14B-Instructvia that framework (PyTorch) or its llama.cpp deploy path (GGUF). See Usage and Framework below.
A trained meta-attention "Doubter" wrapper for Qwen/Qwen2.5-14B-Instruct. It is not a full
model — it is a thin wrapper (~2–3% 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 act vs. when
to hold: answer from memory, call a tool, ask to clarify, or decline — calibrated to its own
uncertainty. The base weights are never modified.
Unlike a narrow Doubter (trained on one task — e.g. MMLU-refusal or one agentic benchmark), this checkpoint is diverse-trained: one wrapper trained on a balanced mix of commit and hold scenarios across the whole decision space. The result is the first of our wrappers that does not collapse on any single axis — it is a general uncertainty modifier, not one over-fit to caution.
| File | What it is |
|---|---|
doubter_checkpoint.pt | the trained wrapper weights (selective encoder + cross-attention + gates), ~365 MB |
run.json | the training manifest (base model, layers, encoder type, quantization, the diverse mix) |
doubter_sidecar.gguf | the same wrapper exported for llama.cpp (CPU / Metal / edge), ~535 MB (float32; 232 tensors) |
Evaluated on a held-out diverse agentic suite (115 tasks, 6 decision axes; sources When2Call + PopQA + SQuAD2), strictly disjoint from training. Two grading methods by axis nature: action axes (call / abstain / clarify) by log-prob MCQ; knowledge axes (memory / lookup / unknown) by generation + LLM-judge (templated options are broken for open knowledge). Compare deltas within an axis, not raw accuracy across axis types.
| axis | base | narrow (MMLU-refusal) | narrow (When2Call-FT) | this (diverse) |
|---|---|---|---|---|
| call (use the right tool) | 0.40 | 0.27 | 0.40 | 0.47 ← best |
| abstain (no tool fits) | 0.27 | 0.33 | 0.93 | 0.67 |
| clarify (ambiguous) | 0.60 | 0.53 | 0.73 | 0.73 |
| memory (answer from knowledge) | 0.93 | 0.87 | 0.73 | 0.87 |
| lookup (need a fact) | 0.87 | 0.93 | 1.00 | 0.93 |
| unknown (unanswerable) | 0.13 | 0.93 | 1.00 | 0.93 |
| worst axis (floor) | 0.13 | 0.27 | 0.40 | 0.47 ← best |
| commit mean (call, memory) | 0.67 | 0.57 | 0.57 | 0.67 ← best |
How to read this.
Trade-off, not domination: the narrow When2Call wrapper has higher peak hold scores. They are different points on the same calibration curve — the diverse wrapper is the balanced one. Which you want depends on the cost of over- vs. under-abstention in your deployment.
run.json)Qwen/Qwen2.5-14B-Instruct (frozen), nf4 quantized, bfloat16selective (16 cognitive tokens, bottleneck 256, scalar tanh gates)[32..47] (the late third — chosen by a linear-probe sweep showing the
uncertainty signal is concentrated there)train_pref.chosen_response (<TOOLCALL> → native tool call)train_sftfrom meta_core import MetaSpiderConfig, MetaSpiderPipeline, Doubter
cfg = MetaSpiderConfig(
model_name="Qwen/Qwen2.5-14B-Instruct",
device="cuda", dtype="bfloat16", quantization="nf4",
target_layers=list(range(32, 48)),
cross_attn_layers=list(range(32, 48)),
)
pipe = MetaSpiderPipeline.from_pretrained(cfg)
d = Doubter.from_checkpoint("doubter_checkpoint.pt")
pipe.attach(d)
d.set_gain(1.0) # the uncertainty "volume" knob; 0 = base, ~1.5 = max caution
print(pipe.generate("What is the capital of France?")) # answers from memory
print(pipe.generate("<an unanswerable / false-premise question>")) # declines instead of hallucinating
Needs pip install meta-core transformers>=5.11 accelerate bitsandbytes and torch ≥ 2.5.
Produced and consumed by the meta-spider framework
(codeberg.org/imperius/meta-spider — meta-core / meta-loom /
meta-agent / meta-deploy). The gain knob runs at inference time (d.set_gain(x) / META_GAIN), and a
GGUF sidecar (metadeploy export) runs the same two-pass wrapper on CPU inside llama.cpp.
Qwen/Qwen2.5-14B-Instruct; it will
not transfer cleanly to a different model or fine-tune.