Downloads · 30 days
32
100% of all-time downloads
MK4-Research/Debux
Debux is a machine learning model from MK4-Research. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as apache-2.0.
A debugging assistant for Linux and DevOps problems. You have a broken server, you talk to Debux, and it asks you what to run, reads what you paste back, and works out what that output rules in and
Downloads · 30 days
32
100% of all-time downloads
All-time downloads
32
Public
Parameters
26.9B
15.3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors15.3 GB · 100%
How the weights are stored.
U3226.9B · 100%
From the Hugging Face model README
A debugging assistant for Linux and DevOps problems. You have a broken server, you talk to Debux,
and it asks you what to run, reads what you paste back, and works out what that output rules in and
out until it can name a cause or tell you honestly that it cannot.
Debux does not touch your machine. It never executes anything, never holds credentials, and never needs SSH on the box that is already on fire. You run the commands, it reads the output. The cost is round trips; the benefit is that a debugging tool with no execution path has no blast radius, and you see every command before it runs.
v1 is a LoRA over qwen3.8-27b-4bit, trained for roughly 80 iterations on 198 hand-authored
multi-turn rows.
The stock base model is, almost exactly, the degenerate strategy of never committing to anything: it answers "run one more command" to nearly every input, including when the evidence it is asking for was never recorded and cannot be produced. On a 73-item held-out benchmark it scores 25.3 percent balanced accuracy against a 25 percent floor.
v1 substantially fixes that, and introduces a new problem in the process. Both are reported here because the second one matters if you are going to rely on this.
| base | v1 | |
|---|---|---|
| balanced accuracy | 25.3% | 32.0% |
| DIAGNOSIS recall | 3/21 = 14.3% | 10/21 = 47.6% |
| reply with no parseable directive | 14/73 = 19.2% | 1/73 = 1.4% |
| NEED recall | 40/46 = 87.0% | 37/46 = 80.4% |
| INSUFFICIENT recall | 0/4 | 0/4 |
| SEARCH recall | 0/2 | 0/2 |
| overclaim rate | 0/4 | 1/4 |
The gain is real. DIAGNOSIS recall more than tripled, and the Wilson intervals barely overlap ([5-35%] against [28-68%]), so on 21 items this is not noise. Format compliance went from 14 missing directives to 1.
The regression is also real, and it is the one to watch. Eight NEED items are now answered DIAGNOSIS - cases where the model should have asked for more evidence and instead named a cause. The base did this zero times. We traded some under-commitment for some over-commitment and came out ahead on balance, but a debugging assistant that names causes early sends someone to restart the wrong service at 3am, so this is a genuine cost and not a rounding error.
INSUFFICIENT and SEARCH did not move at all (0/4 and 0/2). Those are the two hardest classes and the two smallest, so "not learned in 80 iterations" and "not measurable at n=4" cannot be told apart from this data. Do not read the zeros as evidence either way.
Every reply is reasoning followed by exactly one directive. The client parses the directive and acts on it, so this is an interface rather than a writing style.
REASONING:
- errno 111 is connection refused: the address is reachable, nothing is accepting on it
- ss confirms it, only nginx and sshd are listening
- nginx config is not implicated; the application behind it is not running
NEED:
systemctl list-units --type=service --state=failed
journalctl -u <your-app> -n 40 --no-pager
| directive | when | client behaviour |
|---|---|---|
NEED | more evidence is needed and a command here will produce it | shows the commands, waits for pasted output |
DIAGNOSIS | the evidence identifies the cause | prints the cause and a FIX: block |
SEARCH | the gap is a version- or vendor-specific fact | runs the query, feeds results back |
INSUFFICIENT | you want a cause and the evidence cannot support one | prints what is missing and what would settle it |
NEED versus INSUFFICIENT is the distinction the model exists for. NEED means the answer is on
the machine and a command will fetch it. INSUFFICIENT means it is not: the record was never
written, it was rotated away, it lives with a vendor or a hypervisor, or it needs measurement over
time that nobody started. Telling someone to keep looking at a machine that does not hold the answer
wastes an outage.
Two things are required, or the directive contract is not reliable:
system_prompt.txt). It is short by necessity and the model
was trained against it exactly.enable_thinking=False to apply_chat_template, or the equivalent for your server. The training
corpus contains no think blocks, so the reasoning belongs in the visible answer.Reasoning is visible rather than hidden in <think> blocks. That was settled by measurement earlier
in this line of work: a sibling model trained on a corpus with no think blocks got worse with
thinking enabled, recall falling from 86.5 to 68.3 percent, and the base with thinking on did not
converge at all. For a debugging tool it is also the better product, since someone staring at a
broken server needs to see why they are being asked to run something.
LoRA, rank 32, 16 layers, learning rate 1e-5, gradient checkpointing, loss masked to the assistant message only.
That last point matters: the pasted command output in the corpus is synthetic, and without masking
the model would spend capacity learning to generate convincing df and journalctl output, which
is a direct route to inventing evidence in a tool whose only job is reading real evidence.
Rows are multi-turn. A sibling model trained on a single-turn corpus loops when placed in an actual conversation.