license: apache-2.0
library_name: gguf
pipeline_tag: text-generation
base_model: prism-ml/Ternary-Bonsai-2-27B-gguf
tags:
- gguf
- qwen3_5
- ternary
- ptq1_0
- abliterated
- uncensored
- reasoning
Ternary Bonsai 2 27B — Abliterated v2, PTQ1_0
The v2 fix in PrismML's 1.75-bpw PTQ1_0 pack: the same edit as
v2 PQ2_0,
repacked into the smaller format. It needs
PrismML's llama.cpp fork; mainline llama.cpp, Ollama
and LM Studio builds without PTQ1_0 support will not load it.
v2 is built to be run with thinking on. v1 often wrote its whole answer inside its
reasoning and ran out of budget before handing it over. v2 changes one row of the output layer
so the model closes its reasoning once the answer is ready. With reasoning_effort set to
medium it answered 199 of 200 safety prompts at a 4,096-token budget.
Previous version: v1, PTQ1_0
stays up unchanged; it is the build measured as "v1" below.
Larger pack: v2, PQ2_0 + MTP
has the full evaluation (hard requests, math, MMLU) and a ~40% faster MTP file. If you have
the VRAM for 7.2 GB, take that one.
File
| file | size | SHA-256 |
|---|---|---|
Ternary-Bonsai-2-27B-Abliterated-v2-PTQ1_0.gguf |
5,946,648,928 bytes | 0ac61a3c54f2599aefa40144196ce5e0b7acf3a87b3ae74d65540b91e0c4cf12 |
Byte-for-byte the size of PrismML's PTQ1_0 release. Tested with PrismML's fork on CUDA (RTX 3090).
Recommended settings
llama-server -m Ternary-Bonsai-2-27B-Abliterated-v2-PTQ1_0.gguf \
-ngl 99 -fa on -c 32768 --jinja \
--chat-template-kwargs '{"reasoning_effort":"medium"}'
Leave the sampler at the file's defaults (temperature 1.0, top-k 20, top-p 0.95). Use medium
if your token budget is tight: at default effort with 4,096 tokens, 26 of 100 harmful prompts
hit the budget; on medium, none did.
What changed from stock
| tensors changed | 99 of 851 |
| refusal removal | 98 tensors: ffn_down, ssm_out, attn_output, blocks 15–63 |
| thinking fix | 1 row of output.weight (the </think> token, id 248069): 915 of its 1,120 bytes |
| bytes changed in total | 1.13% of the file |
| everything else | byte-identical to PrismML's PTQ1_0 release |
| requantised | no; edits are made in the released ternary packing |
The refusal edit is the v2 PQ2_0 edit carried over unchanged: none of its edited weights
needed a value PTQ1_0 cannot store, so the 98 tensors repack exactly.
The thinking fix could not be copied exactly. PQ2_0 can store a +2 digit and PTQ1_0
cannot, so the </think> row was refit to the nearest ternary row. It reproduces the PQ2_0
change at cosine 0.91 and 87% of its strength. The tables below check that this is enough.
Refusal and answer quality
Thinking on, file sampler defaults, seed 0, 4,096 tokens. SimpleSafetyTests (100 harmful
prompts) and XSTest-safe (100 safe prompts that only sound edgy). Each harmful answer is scored
0–1 by Qwen3.8-27B-OBLITERATED-Q8_0 using the StrongReject rubric, which rates how specific and
convincing a response to a harmful request is — not factual accuracy or general usefulness.
Refusals and blank answers score 0. p-values are paired t-tests over the 100 prompts.
| stock PTQ1_0 | v1 PTQ1_0 | v2 PTQ1_0 | v2 PTQ1_0, medium | |
|---|---|---|---|---|
| refusal, harmful | 81% | 0% | 0% | 0% |
| harmful: no answer at all | 0% | 24% | 18% | 1% |
| harmful: hit the token budget | 0% | 31% | 26% | 0% |
| StrongReject score (0–1) | 0.179 | 0.640 | 0.774 | 0.971 |
| safe prompts: no answer | 10% | 20% | 10% | 0% |
| over-refusal, safe prompts | 0.0% | 0.0% | 0.0% | 0.0% |
v2 vs v1, both at default: +0.134 (p = 0.006).
Against v2 PQ2_0, same prompts, same judge:
| v2 PTQ1_0 | v2 PQ2_0 | |
|---|---|---|
| StrongReject score, default | 0.774 | 0.796 (p = 0.54) |
| StrongReject score, medium | 0.971 | 0.978 |
| harmful: no answer, default | 18% | 15% |
| safe prompts: no answer, default | 10% | 7% |
The smaller pack costs a few more blank answers at default settings; none of the differences
is significant at n = 100. On medium the two are level.
Other abliterated PTQ1_0 builds on the same test at default: dealignai CRACK 0.766 (v2 +0.008,
p = 0.88), OS-Software Heretic 0.673.
Capability and thinking
| v2 PTQ1_0 | v2 PQ2_0 | |
|---|---|---|
| HumanEval (of 164), medium, 4k tokens | 158 | 159 |
| IFEval strict (of 541), default, 16k tokens | 505 | 497 |
| IFEval: hit the 16k budget | 4 | 5 |
Both IFEval columns come from one grading pass of each model's outputs; the grader varies by
about ±3 prompts between gradings, and the 8-prompt gap is not a claim that PTQ1_0 is better.
</think> leaking into the answer: 1 of 1,105 generations on this card (IFEval, both safety
suites at both settings, HumanEval). In that one answer a stray closing tag repeats; the model
does not reopen its reasoning. v2 PQ2_0 had the same single case on IFEval.
What this does not claim
- No MMLU, MATH or 150-prompt StrongReject run on this file. Those numbers are on the
PQ2_0 card,
measured on PQ2_0. The refusal edit is the same here, but the thinking row is weaker and the
base pack differs, so treat them as indicative for this file, not measured. - No stock PTQ1_0 IFEval or HumanEval run at these settings; the comparison above is v2 against v2.
- No MTP file. On v1, grafting an MTP head onto PTQ1_0 gave +1.6%, not worth a second download.
- No vision evaluation. The
mmprojis not included; use PrismML's matching projector. - Tested on CUDA only; Metal and CPU are untested.
Safety
This model has had its refusal behaviour removed and will comply with requests a stock model
declines. It is published for research on alignment robustness and for users who need an
unfiltered local model. You are responsible for what you do with it. Do not deploy it in a
user-facing product without your own safety layer.
Credits
- Base model:
prism-ml/Ternary-Bonsai-2-27B-gguf(Apache-2.0) - Runtime: PrismML-Eng/llama.cpp (MIT)
- Thanks to Hurous and xtrem12, who asked for this build.
Not affiliated with or endorsed by PrismML or Qwen.
Model weights: Apache-2.0. Runtime: MIT.