# Bonsai 2 27B Ternary CRACK（无障碍版）部署报告

> 部署日期：2026-09-22 ｜ 硬件：GPU 机 RTX 5060 Ti 16GB ｜ 模型：`dealignai/Bonsai-2-27B-Ternary-CRACK-GGUF`
> 全部数字为本机实测；两档位均已上线，纳入 `switch-llm.sh` 统一入口。

---

## 0. 一句话结论

**部署完成，两个档位都可用，MTP 增殖头嫁接成功，无审核特性已验证。**

| 档位 | 命令 | 上下文 | 投机解码 | 显存 |
|---|---|---:|---|---:|
| **`crack`** | `bash ~/switch-llm.sh crack` | **192K** | MTP + ngram | 13,744 MiB |
| **`crack-long`**（别名 **`crack-orig`** / `orig`） | `bash ~/switch-llm.sh crack-orig` | **256K** | 仅 ngram | 13,706 MiB |

> **`crack-orig` 跑的是真正的原版文件**：`Bonsai-2-27B-PQ2_0-CRACK.gguf`，
> sha256 = `5b24ea3eebc3e0bccd05fb474eb88b10c57699d71a5db2f29485e3789a70d55d`（与 HF 公布值逐字节一致），
> `blocks=64 / nextn_predict_layers=0 / 851 张量` —— 未经任何嫁接或修改。
> （对比 `crack` 档的嫁接版：`blocks=65 / nextn=1 / 866 张量`。）

API：`http://192.168.31.31:8080/v1`，模型名 **`bonsai2-crack-27b`**，端口 8080（与其它 8 个单元互斥）。

---

## 1. 模型来源与性质

| 项 | 值 |
|---|---|
| 仓库 | [dealignai/Bonsai-2-27B-Ternary-CRACK-GGUF](https://huggingface.co/dealignai/Bonsai-2-27B-Ternary-CRACK-GGUF) |
| 唯一文件 | `Bonsai-2-27B-PQ2_0-CRACK.gguf` — 7,206,168,928 字节 |
| sha256 | `5b24ea3eebc3e0bccd05fb474eb88b10c57699d71a5db2f29485e3789a70d55d`（下载后校验一致）|
| 底座 | `prism-ml/Ternary-Bonsai-2-27B-gguf` + `Qwen/Qwen3.8-27B` |
| 量化 | **PQ2_0** / 2.13 bpw / group 128 |
| 架构 | 64 blocks / hidden 5120，混合注意力 + GatedDeltaNet（**与官方版一致**）|
| 视觉 | 沿用官方 mmproj（复用 `Ternary-Bonsai-2-27B-mmproj-Q8_0.gguf`）|
| 作者数据 | HarmBench-320 拒答率 **93.44% → 0.00%**（权重级去除拒绝回路）|
| 注意 | 作者 2026-09-18 修过一次 `low/xhigh` 思考模式的 token 循环 bug；本机拉的是修复版 |

**体积与官方 PQ2_0 完全相同**（字节数一致），印证"仅改少量拒绝回路张量"。

---

## 2. MTP 增殖头嫁接（成功 + 自证）

沿用上一轮的做法：从**本机已有的 Qwen3.8-27B-Ridge 3.7bpw** 抽出 MTP 头（无需另下 16.5GB 捐赠模型）。

```
trunk: CRACK.gguf      851 tensors, 64 blocks, arch qwen35
head:  head-lean.gguf   15 tensors, 323.0 MiB
out:   CRACK-mtp.gguf  866 tensors, block_count 65, nextn_predict_layers 1 → 7,544,890,848 字节
```

### ✅ 关键自证：`--strip` 反向剥离

```
剥离后 sha256 = 5b24ea3eebc3e0bccd05fb474eb88b10c57699d71a5db2f29485e3789a70d55d
= CRACK 原文件 sha256（逐字节相同）
```

这一步对**无障碍版特别重要**：它证明嫁接**没有触碰任何去审查张量**，否则 CRACK 的特性可能被破坏。

---

## 3. ⚠️ 上下文权衡（实测得出，必须知道）

`CRACK` 是 PQ2_0（比官方 PTQ1_0 大 1.17 GB），叠加 MTP 头的计算缓冲后，**262K 装不下**：

| 配置 | 262,144 | 196,608 | 131,072 |
|---|---|---|---|
| CRACK **+ MTP** | ❌ OOM | ✅ 13,744 MiB | ✅ — |
| CRACK **无 MTP** | ✅ **13,706 MiB** | ✅ — | ✅ — |

（也试过把视觉投影器放 CPU 省显存，262K + MTP 仍不够 —— 瓶颈是 MTP 的计算缓冲随上下文增长。）

→ 因此部署为**两个档位**，按需切换，而不是二选一。

---

## 4. 两档位实测对比

| 任务 | **crack**（MTP, 192K） | **crack-long**（ngram, 256K） | 优胜 |
|---|---:|---:|---|
| 逐字抄录 | 80.7（acc 47%）| **127.3**（acc 85%）| long |
| 摘要 | **67.2**（acc 80%）| 47.1（未触发）| **crack** |
| 提取数字 | **91.6**（acc 93%）| 87.7（acc 93%）| crack 略优 |
| 自由创作 | **53.2**（acc 39%）| 47.4（未触发）| **crack** |
| 数学推理 | **70.0**（acc 76%）| 46.9（acc 0%）| **crack** |
| **上下文** | 192K | **256K** | long |

**判读**：
- **MTP 档在需要"生成新内容"的任务上全胜**（摘要 +43%、数学 +49%、创作 +12%）
- **长上下文档在"逐字复用"任务上大胜**（抄录 +58%），且多 64K 上下文
- 这也说明 **MTP 不能替代 ngram，两者互补**（crack 档同时开了两者）

### 与官方版 Bonsai 2 的对照（参考）

| 任务 | 官方 bonsai2（PTQ1_0+内核+MTP） | CRACK（PQ2_0+MTP）|
|---|---:|---:|
| 抄录 | 110.4 | 80.7 |
| 摘要 | 76.1 | 67.2 |
| 提取数字 | 107.4 | 91.6 |
| 自由创作 | 58.5 | 53.2 |
| 数学 | 73.2 | 70.0 |

**CRACK 全面略慢 8–27%**，原因有二：① PQ2_0 packing 吃不到 PTQ1_0 解码内核（+24%）；② abliterated 主干与原版密集模型嫁接的 MTP 头匹配度下降，接受率从 73–100% 掉到 39–93%。
**功能正确性不受影响**，只是速度代价。

---

## 5. 功能验收（全部通过）

| 测试 | 结果 |
|---|---|
| 局域网访问 | ✅ 模型 `bonsai2-crack-27b` |
| **无审核特性** | ✅ 虚构创作场景（反派威胁对白）**不回避、不打断**，直接产出 |
| 工具调用 | ✅ `finish_reason: tool_calls`，参数正确 |
| 视觉 | ✅ 正确描述图片（复用官方 mmproj）|
| 两档位切换 | ✅ `switch-llm.sh crack` / `crack-long` 均正常 |
| MTP 挂载 | ✅ 日志 `creating MTP draft context` |

---

## 6. 部署清单

| 项 | 值 |
|---|---|
| 二进制 | `/home/zyw/llama.cpp-bonsai-kernel/bin/llama-server`（自编译，含 8 补丁）|
| 模型目录 | `/home/zyw/models/bonsai2-crack-27b/`（CRACK 6.71 GB + CRACK-MTP 7.03 GB）|
| 视觉 | 复用 `/home/zyw/models/ternary-bonsai-2-27b/Ternary-Bonsai-2-27B-mmproj-Q8_0.gguf` |
| 单元 | `llama-bonsai2-crack`（默认）、`llama-bonsai2-crack-long`，均 `disabled` 不自启 |
| 统一入口 | `switch-llm.sh`（9 个单元）、`stop-ridge.sh`、`ridge-status.sh` 均已并入 |

⚠️ **踩坑记录**：这次 `switch-llm.sh` 的补丁只更新了 `ALL_UNITS` 却没加 `case` 分支（因为我的替换锚点写在了"还不存在"的字符串上），导致 `switch-llm.sh crack-long` 报用法错误。已修正并验证。**教训：改脚本后必须实测该分支，不能只看脚本"报成功"。**

---

## 7. 可清理项（GPU 机磁盘 89%，剩 122 GB）

| 路径 | 大小 | 建议 |
|---|---:|---|
| `~/bonsai2-mtp/Ternary-Bonsai-2-27B-PTQ1_0-mtp.gguf` | 6.83 GB | **删**（官方胖版，已被精简版取代）|
| `~/bonsai2-mtp/qwen38-27b-nextn-head.gguf` | 1.29 GB | **删**（胖版头）|
| `~/bonsai2-mtp/head-lean.gguf` | 0.32 GB | **留**（重建任一份精简 MTP 只需它，40 秒）|
| `~/src` | 508 MB | 留（补丁与构建产物）|

合计可释放约 **8.1 GB**。

---

*本报告全部数字来自 2026-09-22 在 RTX 5060 Ti 上的实测。*
