huggingface.co/expedient-ai/CTRL-2B
DESIGN MOCKUP

CTRL-2B

chadstthomas / ctrl-2bAn Expedient model

Text Generation Retrieval Grounded QLoRA GGUF English Apache-2.0
2.52BParameters
Q8_0GGUF
Use this model

Model release / CTRL-2B

CTRL-2B

Control is the feature.

A 2.5B support agent for Expedient's cloud infrastructure. It answers from retrieved evidence, cites the source, and abstains when the evidence is not there.

2.52B params Apache-2.0 Q8_0 GGUF

FIG. 01 / THE CONTROL KEY

0.943Open-book recall94 held-out questions
0.945Open-book precisionInvented numbers penalized
94/94Retrieval hit@3Rank 0.0 on the 939-row index
15/15OOD questions gatedAt lens threshold 0.74

Measured on the v2 adapter. Every number is pinned in MEASUREMENTS.md and traced to an on-disk eval summary.

01

The idea

The adapter supplies voice. Retrieval supplies truth.

CTRL-2B is a QLoRA adapter on MiniCPM5-2B, trained on 939 reviewed question and answer pairs from Expedient's cloud infrastructure knowledge base. Fine-tuning teaches tone, answer shape, and when to stop. It does not put facts in the weights.

Every supported answer runs against the top three retrieved excerpts. A lens gate scores the model's confidence in its own answer. Below 0.74, it abstains. That rule is the difference between a demo and a support agent.

01 / INPUTQuestion
02 / RETRIEVETop 3 excerpts
03 / GATELens 0.74+
AnswerAbstain

The gate is part of the runtime, not the adapter. Closed-book mode is not supported.

02

Measured

Number-fact recall counts gold numbers present in the answer. Precision counts answer numbers present in the gold answer, so invented specifics lower the score.

ArmRecallPrecision
Base MiniCPM5-2B, closed-book0.692—
CTRL-2B, closed-book0.7720.865
CTRL-2B, open-book, production shape0.9430.945

Open-book production shape: 94 held-out rows, 939-row index, retrieval hit@3 94/94 at rank 0.0. The 26-row probe scored 0.962 / 0.962. GGUF Q8_0 engine eval: 1.000 / 0.981 open-book, overall 0.889.

Lens gate threshold Out-of-domain maximum 0.723, gate at 0.74, paraphrase lower quartile 0.748. The gate sits between the two distributions. 0.71 0.72 0.73 0.74 0.75 0.76 0.723 OOD MAX GATE 0.74 0.748 PARAPHRASE P25 ABSTAIN ANSWER
OOD max0.723
Gate0.740
Paraphrase p250.748
v2 robustness probe: 26 paraphrases plus 15 out-of-domain questions. The gate sits between the highest OOD confidence and the lower quartile of in-domain paraphrases. The 0.74 threshold was calibrated on the v1 41-row probe.
03

Corpus

Five sources feed the v2 corpus. The belt shows rows collected before review; the gate decides what ships. Select a plate to see the source.

BELT LIVE 5 SOURCES / 1,377 ROWS
01 / 05VENDOR DOCS

Nutanix

522 source rows · nutanix-knowledge

Reviewed rows enter the v2 corpus; the remainder waits for review.

Five source sets total 1,377 rows. The v2 corpus holds 939 after review and dedupe. The 1,005 unreviewed vendor rows triaged to 682 accepted, 207 rejected, and 116 held for human review.

SourceTypeRows
NutanixVendor docs522
VMware VCF9Vendor docs504
Expedient KBFirst-party218
ZertoVendor docs71
CohesityVendor docs62
Five source sets1,377

Nutanix and VMware marks via Simple Icons. Zerto, Cohesity, and Expedient plates are typographic placeholders. Vendor names and marks remain trademarks of their owners.

04

Quick start

The adapter ships with the GGUF Q8_0 build. The runtime that adds retrieval and the gate lives in the training repo. This card covers the model artifact.

bash / llama.cpp
# GGUF Q8_0, 2.5 GB
llama-server -m ctrl-2b-q8_0.gguf -c 4096
python / peft
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = AutoModelForCausalLM.from_pretrained("openbmb/MiniCPM5-2B")
model = PeftModel.from_pretrained(base, "chadstthomas/ctrl-2b")
tok = AutoTokenizer.from_pretrained("openbmb/MiniCPM5-2B")

Closed-book generation is not a supported posture. Pair the adapter with retrieval and the lens gate.

05

Limits

01
Facts live in retrieval.

Closed-book precision is 0.865, not 1.0. Specific numbers, versions, and dates need an excerpt behind them.

02
The gate is mandatory.

Prompted refusal caught 20% of out-of-domain questions. The lens gate caught 15/15 at 0.74. Do not ship the adapter without it.

03
Scope is narrow.

Expedient cloud infrastructure support. It is not a general assistant, a coding model, or a substitute for the KB owner's review.

The 0.74 threshold is calibrated for this vehicle. Recalibrate after a base-model, corpus, or adapter change.

06

Training

Base model
MiniCPM5-2B (2.52B)
Method
QLoRA, r16 / a32
Corpus
939 reviewed QA rows
Schedule
4 epochs, 211 steps
Hardware
RTX 4050 Laptop, 6 GB
Wall time
54 minutes
Compute
bf16, NF4 double quant
License
Apache-2.0

A 4B control run bought no clear quality gain for twice the size, at 19.9 seconds per step versus 15.4. 2B ships.

07

Governance

The base model and this adapter ship under Apache-2.0. The corpus combines Expedient first-party KB drafts with vendor documentation, paraphrased and verified against live pages. Rights for the underlying vendor content remain with the publishers. This release is intended for Expedient-internal support use pending the corpus owner's final call.

Known limits: facts live in retrieval, not in the weights. The abstention gate is mandatory in production.

citation / bibtex
@misc{ctrl2b2026,
  title  = {CTRL-2B: A retrieval-grounded support agent},
  author = {St. Thomas, Chad},
  year   = {2026},
  url    = {https://huggingface.co/chadstthomas/ctrl-2b}
}