BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_0-MTP-GGUF

🤗 Hugging Face 来源text-generationapache-2.0激活 27B15 GBGGUF✓ 2 个校验和今天更新
一条命令提交

在你的模型文件夹旁边运行它。它会制作种子、将文件与 Hugging Face 比对,然后提交。你只需开始做种,并粘贴你账户中的密钥。它只读取你的文件,绝不修改。如果愿意,可以先阅读脚本。

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_0-MTP-GGUF ./model-folder
需要做种者 →

Ternary Bonsai 2 27B — Abliterated v2, PQ2_0, with optional MTP

v2 is built to be run with thinking on. Abliterated Bonsai 2 builds, my own v1 included, tend to write the whole answer inside their reasoning and run 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 every prompt on the main test; at default settings it halves v1's blank answers.

Where v2 stands out: hard requests, given room to think. StrongReject (150 detailed harmful requests), thinking on, default settings, 16,384-token budget, same judge for every row:

build StrongReject score (0–1, higher is better) no answer at all (of 150, lower is better)
this model (v2) 0.941 7
Hikari07jp abliterated 0.738 34
OS-Software Heretic 0.723 41
Blackfrost DERISKED 0.708 12
dealignai CRACK 0.668 48
my v1 0.781 23

Much of that gap is answers the other builds never deliver: they write the answer inside their reasoning and run out of room before closing it.

It also left the fewest safe questions unanswered at default settings of the abliterated Bonsai builds tested (7%, against 8–14%), and the MTP file decodes ~40% faster.

Where it doesn't: on the easier harmful set at default settings, Hikari (0.834) and dealignai (0.866) score above v2 (0.796); neither gap is statistically significant. With reasoning_effort=medium, every good abliteration lands at the ceiling on that set, v2 included. Full tables below; the earlier comparison of these builds is in the shootout report.

Previous version: v1, PQ2_0 + MTP stays up unchanged; it is the build measured as "v1" throughout this card. Smaller pack: PTQ1_0 (1.75 bpw) is still v1. The v2 fix for PTQ1_0 is being built and tested next.

Files

file size runtime
Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_0.gguf 7.21 GB PrismML's llama.cpp fork
Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_0-MTP.gguf 7.66 GB PrismML's fork; tag prism-b10743-adfffbe or newer runs it as is

PQ2_0 is PrismML's format: mainline llama.cpp, Ollama and LM Studio builds that lack it will not load either file. Tested with PrismML tags prism-b10687-5d80cff and prism-b10743-adfffbe.

The two files contain identical language-model weights; the MTP file adds 15 tensors (blk.64.*). With speculation off, the two produced byte-identical output on all 5 test prompts (400 tokens each). SHA-256 (first 16): plain b284cbc6cb6c2894, MTP a4e4c7b578131595.

Recommended settings

llama-server -m Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_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, 110 of 150 hard requests hit the budget and the score is 0.513; on medium at the same budget the score is 0.977.

The same 4k penalty exists in Bonsai 2 itself: stock Bonsai shows it on math and code (capability table below: MATH 213 vs 238, HumanEval 145 vs 158 at 4k, default vs medium), and Killy (@net_termina) found the same independently on the unmodified model: HumanEval at 4k tokens, 137 of 164 at default effort vs 157 on medium.

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), 1,250 bytes
bytes changed in total 0.95% of the file (v1: 0.12%)
everything else byte-identical to PrismML's release
requantised no; edits are made in the released ternary packing

The refusal edit uses the same 98 tensors and the same in-place ternary-digit method as v1, with a larger edit: about 8× as many changed bytes.

The thinking fix is one row. I fit a small change to the output row of the </think> token on stock Bonsai's own reasoning, so that closing becomes likely where the answer is already written and stays unlikely mid-thought, and checked that offline on held-out traces before building. The tables below are the check in real generation.

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 v1 v2 v2, medium
refusal, harmful 84% 0% 0% 0%
harmful: no answer at all 0% 27% 15% 0%
harmful: hit the token budget 0% 31% 23% 0%
StrongReject score (0–1) 0.149 0.636 0.796 0.978
safe prompts: no answer 6% 20% 7% 0%
over-refusal, safe prompts 1.0% 0.0% 0.0% 0.0%
median reasoning length (chars) 1,038 6,531 3,802 1,730

v2 vs v1, both at default: +0.160 (p < 0.001). v2 on medium vs v1 at default: +0.341 (p < 0.0001), which combines the new weights with the setting change.

Against the other abliterated builds on the same test, same judge, all run by me:

default medium
v2 0.796 0.978
dealignai CRACK 0.866 0.971
Hikari07jp 0.834 0.959
OS-Software Heretic 0.725 0.990
Blackfrost DERISKED 0.674 0.807

Hard requests (StrongReject, 150 prompts), same judge:

v2 Hikari07jp
default, 16,384 tokens 0.941 0.738
default, 4,096 tokens 0.513 (110 of 150 hit the budget) 0.427 (99 hit the budget)
medium, 4,096 tokens 0.977 0.929 (p = 0.04)

dealignai CRACK on medium, 4,096 tokens: 0.956. v2 is +0.021 above it, not significant (p = 0.28).

</think> leaking into the answer: 6 of 3,324 v2 generations across every suite on this card.

Capability

Paired per problem against stock Bonsai 2 PQ2_0, thinking on, file sampler defaults. p-values are exact McNemar tests; the HumanEval differences are 0–1 problems.

stock v2 stock, medium v2, medium
MATH level 5 (of 300), 16k tokens 271 264 (p = 0.28) 276 not run
MATH level 5 (of 300), 4k tokens 213 207 (p = 0.43) 238 234 (p = 0.63)
HumanEval (of 164), 16k tokens 155 154 — —
HumanEval (of 164), 4k tokens 145 144 158 158
IFEval strict (of 541), 16k tokens 497 498 (p = 1.00) 479 482 (p = 0.80)
MMLU (of 14,042), 0-shot 0.7797 0.7742 (p = 0.002) — —

v2 is numerically a few problems behind stock on math (7, 6 and 4 at matched settings); none of the differences is significant at n = 300, and a real cost of that size could not be ruled out. The IFEval grader varies by about ±3 prompts between gradings of the same outputs.

MMLU is the one place v2 measurably costs something: −0.56 points against stock, significant (351 questions lost, 273 gained). It is the smallest cost among the strong abliterated builds measured the same way (full MMLU, same harness, paired against stock): Hikari07jp −0.64, dealignai CRACK −1.04, OS-Software Heretic −1.59, Blackfrost DERISKED −2.68. v1 was +0.15, not significant; the larger refusal edit is what costs the half point.

The MTP file: ~40% faster decode

Runtime

Use PrismML's llama.cpp at tag prism-b10743-adfffbe or newer. It runs this file with --spec-type draft-mtp as is: tested with a chat prompt and a tool call, same speed and draft acceptance as the patched build below.

Older tags fail at startup with:

Hadamard-latent table 'token_embd.weight' is read without the inverse transform

For those, 0001-qwen35-mtp-hadamard-inverse.patch in this repo fixes it (14 lines, against tag prism-b10687-5d80cff):

git clone https://github.com/PrismML-Eng/llama.cpp && cd llama.cpp
git checkout prism-b10687-5d80cff
git apply ../0001-qwen35-mtp-hadamard-inverse.patch
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=<your arch> -DLLAMA_CURL=OFF
cmake --build build --target llama-server -j

Run

llama-server -m Ternary-Bonsai-2-27B-Abliterated-v2-PQ2_0-MTP.gguf \
  -ngl 99 -fa on -c 32768 --jinja \
  --chat-template-kwargs '{"reasoning_effort":"medium"}' \
  --spec-type draft-mtp --spec-draft-n-max 2

Measured

One RTX 3090, 5 prompts, 400 tokens each, --parallel 1, greedy, median.

tok/s acceptance
no MTP 69.3 —
--spec-draft-n-max 2 96.8 0.658

v1 measured 0.643 acceptance on the same test, so the thinking fix does not hurt drafting.

The gain depends on what you generate. On v1, reasoning, code and JSON accepted 0.79–0.83 of drafts and free prose 0.39, where speculation ran slightly slower than none. A short prose answer on v2 ran +14%.

On losslessness

Speculative decoding verifies every draft against the target model, but batched verification changes floating-point reduction order, which can flip a near-tie: 3 of 5 test prompts matched the non-speculative output byte for byte, and the other 2 diverged at close word choices.

PTQ1_0

On v1, grafting the same head onto PTQ1_0 gave +1.6%: the head drafted just as well, but verification cost nearly as much as generating. Not re-tested on v2.

What this does not claim

  • Not that v2 is the best abliterated Bonsai on every test: see the comparison tables above.
  • No vision evaluation. The mmproj is not included; use PrismML's matching projector.
  • Tested on CUDA only (RTX 3090 and A100); 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

Not affiliated with or endorsed by PrismML, Qwen, or Unsloth.

Model weights: Apache-2.0. Runtime: MIT.