Instructions to use expedient-ai/CTRL-0.6B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use expedient-ai/CTRL-0.6B with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use expedient-ai/CTRL-0.6B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M # Run inference directly in the terminal: llama cli -hf expedient-ai/CTRL-0.6B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M # Run inference directly in the terminal: llama cli -hf expedient-ai/CTRL-0.6B:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf expedient-ai/CTRL-0.6B:Q4_K_M
Use Docker
docker model run hf.co/expedient-ai/CTRL-0.6B:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use expedient-ai/CTRL-0.6B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "expedient-ai/CTRL-0.6B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "expedient-ai/CTRL-0.6B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/expedient-ai/CTRL-0.6B:Q4_K_M
- Ollama
How to use expedient-ai/CTRL-0.6B with Ollama:
ollama run hf.co/expedient-ai/CTRL-0.6B:Q4_K_M
- Unsloth Desktop
- Pi
How to use expedient-ai/CTRL-0.6B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "expedient-ai/CTRL-0.6B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use expedient-ai/CTRL-0.6B with Docker Model Runner:
docker model run hf.co/expedient-ai/CTRL-0.6B:Q4_K_M
- Lemonade
How to use expedient-ai/CTRL-0.6B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull expedient-ai/CTRL-0.6B:Q4_K_M
Run and chat with the model
lemonade run user.CTRL-0.6B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use expedient-ai/CTRL-0.6B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default expedient-ai/CTRL-0.6B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use expedient-ai/CTRL-0.6B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf expedient-ai/CTRL-0.6B:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "expedient-ai/CTRL-0.6B:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
CTRL-0.6B
The in-browser build of the Expedient agent: a QLoRA adapter on Qwen/Qwen3-0.6B (Apache-2.0), trained on the same reviewed knowledge base as CTRL-2B.
It exists to make the demo runnable inside a browser tab: the Q4_K_M GGUF is 378 MB instead of 1.45 GB, and Qwen's architecture is supported by llama.cpp WASM builds, so CTRL-0.6B runs client-side with no server.
▶ Try it: CTRL-0.6B demo Space
This is not a replacement for CTRL-2B. Use CTRL-2B where quality matters; use CTRL-0.6B where the model has to ship to the client.
Measured results
Number-fact recall (gold numbers present in the answer) and precision (answer numbers present in gold — invented numbers are the hallucination signal). 26 held-out questions, greedy decoding.
| Arm | Recall | Precision |
|---|---|---|
| Base Qwen3-0.6B, closed-book (26-row set) | 0.692 | — |
| CTRL-0.6B, closed-book (26-row set) | 0.692 | 0.846 |
| Base Qwen3-0.6B, closed-book (94-row set) | 0.713 | 0.776 |
| CTRL-0.6B, closed-book (94-row set) | 0.713 | 0.776 |
| CTRL-0.6B, open-book, retrieved excerpts (26-row set) | 0.962 | 1.000 |
Retrieval hit@3: 26/26 (mean gold rank 0.0), and 94/94 on the 94-row production-shape check against the full 939-passage index.
General-capability reference (2026-11-05): 40-item probe pass rate 0.775, WikiText-2 perplexity 26.92, OOD invented-number rate 0.278.
Read that carefully. Closed-book recall is identical to the base model — at 0.6B the adapter learns voice and format but cannot store facts. All the factual reliability comes from retrieval. For comparison, CTRL-2B reaches 0.772 closed-book recall and 0.865 precision at 2.5B.
Note the encouraging part: open-book precision is 1.000 — with excerpts in front of it, CTRL-0.6B invented no numbers across the eval set.
Training
- QLoRA r16 / α32, lr 2e-4 cosine, effective batch 16, 4 epochs, 211 steps (~14 min on an RTX 4050 Laptop 6 GB), NF4 double-quant, bf16 compute
- Corpus: 939 QA rows (257 first-party reviewed + 682 promoted through automated source-page verification; see CTRL-2B for the triage method; count corrected 2026-11-05, one duplicated question row)
- Assistant-only supervision; trained format is Qwen ChatML with an empty
think block:
<|im_start|>assistant\n<think>\n\n</think>\n\n{answer}
Files
| Path | What |
|---|---|
ctrl-06b-v1-q4_k_m.gguf |
378 MB Q4_K_M, the browser build |
adapter/ |
LoRA weights + tokenizer |
kb/ |
The retrieval payload the demo ships: kb_corpus.jsonl (939 passages), kb_emb.json (passage vectors), q_emb.json (query vectors for the curated questions) |
Retrieval vectors are precomputed with BAAI/bge-small-en-v1.5
(CLS pooling, L2-normalised) so the browser only has to run a dot product —
no embedder download and no in-browser embedding pass.
Serving
Any llama.cpp build runs the GGUF. In the browser the demo uses
@wllama/wllama 2.3.1; note that wllama 2.x bundles an older llama.cpp, and
Qwen-architecture GGUFs load there while some newer architectures do not.
Abstention in the demo is prompted only (an ABSTAIN instruction in the system prompt). No confidence gate is calibrated for this vehicle; the 0.74 Lens threshold documented for CTRL-2B was measured on MiniCPM5-2B and does not transfer.
Provenance
Every number on this card traces to a hash-pinned file:
LINEAGE.json (training config, corpus hashes, export hashes) and
MEASUREMENTS.md (every published number with its source file). The
94-row closed-book baseline and the general-capability reference numbers
above were first published 2026-11-05.
Conditional-memory study (2026-11-05)
Two knowledge-injection approaches were trained, tested under the protocol above, and measured against a held-out 94-row kill bar (closed-book recall >= 0.763, i.e. +0.05 over the 0.713 baseline) plus capability gates (probe >= 95% of base, no OOD degradation):
- Engram conditional-memory sidecar (DeepSeek-style n-gram-keyed
lookup table, arXiv:2601.07372), four configurations plus a
first-party-only arm. Best arm gains +0.039 closed-book recall on the
26-row set and +0.012 on the 94-row set, short of the +0.05 bar, and
costs 10 points of general capability; a stronger variant that
memorises the corpus corrupts what the backbone already knew
(precision 0.776 to 0.617, out-of-domain invented numbers 0.278 to
0.467). Full write-up, including the harness defects the study found
and fixed, in
ENGRAM.md. Measured; not published as a knowledge product. - IAR retrain (CPT on the reviewed documents, QA alignment, linear recover-merge, arXiv:2608.20281): the aggressive arm reached the recall bar (+0.056) but displaced general facts (probe -10pp, WikiText-2 PPL +75%); the conservative arms held capability but gained only +0.02. No arm cleared both gates. These measurements are unaffected by the sidecar harness defects, because that study ran without the module attached.
CTRL-0.6B v1 remains the shipping model. The most promising signal for a future retrain: OOD invented-number rate improved on every IAR arm (0.278 -> 0.173-0.233), so domain-document grounding reduces hallucinated numbers even out of domain. The retrain becomes interesting when the corpus grows past this study's 73.5k tokens of reviewed text.
Governance
Base model Apache-2.0; adapter ships Apache-2.0. Corpus sources are Expedient first-party KB drafts plus vendor documentation paraphrased and source-verified against live pages. Rights in the underlying vendor content remain with the publishers; this release is intended for Expedient-internal support use.
- Downloads last month
- 61
4-bit