← back to catalog · registered 2026-09-18 06:56

davetha/Ternary-Bonsai-2-27B-Abliterated-PQ2_0-GGUF

davetha 27B GGUF
Refusal direction extraction

No specific extraction method could be identified for this model. The producer either did not document it or used a proprietary pipeline.

What is a refusal direction? →
Downloads · 30-day
0
Likes
0
Model age
today
created 2026-09-18

Genealogy 0 direct forks

Full fork graph →

This model's place in the market. Above: what it was derived from. Below: the tree of everything derived from it.

Metadata

License
apache-2.0
Tags
gguf prismml pq2_0 ternary abliterated text-generation base_model:BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-PTQ1_0-GGUF base_model:quantized:BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-PTQ1_0-GGUF license:apache-2.0 endpoints_compatible region:us conversational

Related

Total size
7.68 GB
Files
5
Quantizations
1
Registered
2026-09-18 06:56
Last updated on HF
2026-09-18 06:22

Files by quantization

Auxiliary files 5 files 7.68 GB
Ternary-Bonsai-2-27B-Abliterated-PQ2_0.gguf 7.68 GB 91c30209 download
LICENSE 9.94 KB 66a27ec5 download
README.md 3.83 KB 935adca6 download
.gitattributes 1.56 KB 7d40c7fd download
NOTICE.txt 461 B 896ab9b8 download

README current version from Hugging Face


license: apache-2.0
base_model:

  • prism-ml/Ternary-Bonsai-2-27B-gguf
  • BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-PTQ1_0-GGUF
    tags:
  • gguf
  • prismml
  • pq2_0
  • ternary
  • abliterated
    pipeline_tag: text-generation

Ternary-Bonsai-2-27B Abliterated — PQ2_0

A PQ2_0 build of the refusal-ablated Ternary Bonsai 2 27B. It exists because the
existing abliterated release is PTQ1_0, and PTQ1_0 has GPU kernels for NVIDIA Ampere
only
— on every other backend it falls back to fp16 dequantise + BLAS.

On an AMD MI210 (gfx90a / CDNA2) that difference is 2.2x:

build decode
Abliterated PTQ1_0 (existing release) 23.8 tok/s
Abliterated PTQ1_0 + MMVQ enabled for HIP (local patch) 23.8 tok/s
PTQ1_0, stock, before patch 18.2 tok/s
This build (PQ2_0) 51.2 tok/s

Measured single-stream, -ngl 99 -c 8192, one MI210, llama.cpp PrismML fork.

Why PTQ1_0 is slow off Ampere

In the PrismML fork, MMQ tile configs exist per architecture. PTQ1_0 has entries for Ampere
and nothing else:

mmq-config-ampere.cuh   PTQ1_0=11   PQ2_0=16   Q2_0=16
mmq-config-cdna.cuh     PTQ1_0=0    PQ2_0=7    Q2_0=7
mmq-config-rdna2/3/4    PTQ1_0=0    PQ2_0=12   Q2_0=12
mmq-config-pascal.cuh   PTQ1_0=0    PQ2_0=11   Q2_0=11

PTQ1_0 is additionally #if !defined(GGML_USE_HIP)-gated in 17 places, and its eligibility
check is turing_mma_available(cc), which is hard-wired to NVIDIA. PQ2_0 has CDNA kernels
and hits the fast path.

How this was made

The abliterated weights only exist as PTQ1_0, so the edit was recovered rather than
re-derived:

  1. Dequantised both the abliterated and stock PTQ1_0 checkpoints.
  2. Diffed them. Exactly 98 tensors differ — writers only: 49 ffn_down, 36 ssm_out,
    13 attn_output. This matches the original release's stated scope exactly.
  3. Took the top singular vector of each delta. All 98 share one direction
    (|cos(d_i, d_0)| mean 0.946; agreement with the consensus direction mean 0.988,
    min 0.955) — consistent with the stated rank-1 edit.
  4. Applied W <- W - d (dᵀ W) to the F16 checkpoint on those same 98 tensors.
  5. Requantised F16 -> PQ2_0 with the fork's llama-quantize.

Working from F16 rather than from the ternary checkpoint avoids compounding quantisation
error: the recovered direction is clean even though the delta it came from is not, because
the per-tensor quantisation noise averages out across 98 tensors.

What is and is not verified

Verified:

  • The correct 98 tensors were edited, along a direction validated at 0.99 consensus.
  • Capability is intact — 4/4 on a small factual/arithmetic probe, coherent long-form output.
  • 51.2 tok/s on one MI210, correctness stable across runs.

NOT verified: the refusal rate. A comparison against the stock PQ2_0 build returned
0/6 refusals for both, so the probe could not discriminate — the stock model already
complies with mild prompts, and measuring this properly needs the kind of prompt set this
build was not evaluated against. Treat the refusal behaviour as unmeasured, not as
equivalent to the PTQ1_0 release it derives from.

Note also that PQ2_0 here is 2.45 bpw rather than the stock file's 2.13: the projection
de-ternarises the weights, so the quantiser can no longer represent them losslessly.

Requirements

Needs the PrismML llama.cpp fork (prismml-eng/llama.cpp, branch prism). Stock
llama.cpp cannot load PQ2_0. Build for CDNA2:

cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx90a \
  -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=OFF
cmake --build build -j

Attribution

Created using Bonsai by Prism ML. Built from Qwen3.8-27B, Copyright 2026 Alibaba Cloud
(Apache 2.0). The ablation edit derives from
BoldingBuilds/Ternary-Bonsai-2-27B-Abliterated-PTQ1_0-GGUF (Apache 2.0).

Apache 2.0. See LICENSE and NOTICE.txt.

Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in app" button that hands off directly to a local runtime of your choice - Infrahuman, LM Studio, or Ollama. No API keys, no subscription, no prompt leakage.