# KO-Ridge 无审核版部署报告（GPU 机 192.168.31.31）

> **部署时间**：2026-09-13
> **模型**：`caiyi/Huihui-Qwen3.8-27B-abliterated-KO-Ridge-3.7bpw-GGUF`（**无审核版**：abliterated + heretic + uncensored）
> **部署方式**：严格按作者 `run-rtx5060ti.sh` 的 RTX 5060 Ti 实测档
> **结果**：✅ 服务 active、显存 15166 MiB、`n_ctx 131072`、**DFlash2 草稿投机解码生效**（接受率 0.31）、局域网请求正常返回
> **API**：`http://192.168.31.31:8080/v1`，模型名 **`huihui-qwen3.8-27b-ko-ridge`**

---

## 1. 部署物

目录：`/home/zyw/models/qwen3.8-27b-ko-ridge/`

| 文件 | 大小 | 说明 |
|---|---|---|
| `Huihui-Qwen3.8-27B-abliterated-KO-Ridge-3.7bpw.gguf` | 12,599,186,976 B（11.73 GiB） | 主模型，3.69 BPW 混合张量；**sha256 已校验** = `4f72d4e3b6723fb259e7f8244c70fbf2850151aab3745d8c1e84768fba161515`（与作者公布值逐字一致） |
| `Qwen3.8-27B-DFlash2-Q4_K_M.gguf` | 1.06 GiB | DFlash2 草稿模型（来自 `z-lab/Qwen3.8-27B-DFlash2-GGUF`）—— 作者实测档必需 |
| `mmproj-model-bf16.gguf` | 0.87 GiB | 视觉投影（来自 `huihui-ai/Huihui-Qwen3.8-27B-abliterated-GGUF`）—— **作者档不使用**，供备用视觉档 `ko-fast` 用 |
| `run-rtx5060ti.sh` | 1.8 KB | 作者原始启动脚本（保留备查） |

下载：全部经 **hf-mirror.com** + aria2c 多线程。

---

## 2. 关键障碍与解决：DFlash2 需要新版 llama.cpp

**问题**：作者档要求 `--spec-type draft-dflash` + DFlash2 草稿，但 GPU 机上原有的 llama.cpp 构建（`0.3.0-dev`，`~/Downloads/llama.cpp-src/llama.cpp-master/`）**虽然认这个参数，却无法加载草稿模型**：

```text
E llama_model_load: error loading model: done_getting_tensors: wrong number of tensors; expected 81, got 58
E common_speculative_init_result: failed to load draft model
```

作者在 README 中明确写了需要 **"a DFlash 2-enabled llama.cpp build"** —— 原构建是旧快照，草稿格式版本不匹配。

**解决**：从 GitHub 克隆最新源码并自行编译（GPU 机 `github.com` 实测可达 200）：

```bash
git clone --depth 1 https://github.com/ggml-org/llama.cpp /home/zyw/llama.cpp-new
cd /home/zyw/llama.cpp-new
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=120 \
      -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DLLAMA_CURL=OFF \
      -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=ON
cmake --build build -C Release -j 16 --target llama-server
```

- 结果：**`0.4.0-dev (build 1, commit ae9afff)`**，编译耗时约 7 分钟（16 核，CUDA 13.1 / sm_120）
- 新构建位置：`/home/zyw/llama.cpp-new/build/bin/llama-server`

> ⚠️ **现在机器上有两套 llama.cpp 构建**，不要混用：
> | 构建 | 路径 | 用途 |
> |---|---|---|
> | 旧 `0.3.0-dev` | `~/Downloads/llama.cpp-src/llama.cpp-master/build/bin/` | **Ridge 官方版**两个单元（已验证稳定，不动它） |
> | 新 `0.4.0-dev ae9afff` | `~/llama.cpp-new/build/bin/` | **KO 无审核版**两个单元（DFlash2 必需） |

---

## 3. 最终启动参数（逐字取自作者 run-rtx5060ti.sh）

```bash
~/llama.cpp-new/build/bin/llama-server \
  --host 0.0.0.0 --port 8080 \
  --alias huihui-qwen3.8-27b-ko-ridge \
  --model   ~/models/qwen3.8-27b-ko-ridge/Huihui-Qwen3.8-27B-abliterated-KO-Ridge-3.7bpw.gguf \
  --model-draft ~/models/qwen3.8-27b-ko-ridge/Qwen3.8-27B-DFlash2-Q4_K_M.gguf \
  --jinja --no-mmproj \
  -ngl 99 --spec-draft-ngl 99 \
  --spec-type draft-dflash --spec-draft-n-max 4 --spec-draft-n-min 1 \
  -fa on --ctx-size 131072 \
  --cache-type-k q4_0 --cache-type-v q4_0 \
  --spec-draft-type-k q4_0 --spec-draft-type-v q4_0 \
  --batch-size 512 --ubatch-size 128 \
  --parallel 1 --kv-unified --fit off --no-context-shift \
  --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.0 --repeat-penalty 1.0 \
  --threads 8 --threads-batch 16 \
  --reasoning on --reasoning-budget -1 --reasoning-preserve \
  --warmup --metrics
```

环境变量（作者设置）：`GGML_CUDA_PDL=0`、`GGML_CUDA_ENABLE_UNIFIED_MEMORY=1`

**唯一偏离作者的做法**：作者脚本默认绑 `127.0.0.1` 且非回环绑定时强制要求 API key；本部署绑 `0.0.0.0` 且不设 key，以便 Trae/Cherry 经局域网访问（与本机 LM Studio 1234、Ridge 8080 的既有习惯一致）。家庭内网环境可接受。

---

## 4. 部署验收

| 项 | 实测值 | 作者参考值 |
|---|---|---|
| 服务状态 | `active` / `is-enabled` = **disabled**（不做开机自启） | — |
| 显存 | **15166 MiB** / 16311 MiB | ~15,350 MiB |
| 上下文 | `n_ctx = 131072`（128K） | 131,072 |
| 参数量 | 27,320,697,856（27.3B） | — |
| 加载耗时 | 约 12.8s（含草稿模型） | — |
| **DFlash2 草稿** | ✅ 加载成功、**接受率 0.31**（15/48，mean len 2.25） | draft-max 4 |
| 端到端请求 | ✅ 局域网请求返回「就绪」 | — |

日志确认：

```text
I common_speculative_init_result: loading draft model '.../Qwen3.8-27B-DFlash2-Q4_K_M.gguf'
I srv llama_server: model loaded
I srv llama_server: listening on http://0.0.0.0:8080
I slot print_timing: | draft acceptance = 0.31250 ( 15 accepted / 48 generated), mean len = 2.25
```

> 注：DFlash 接受率随内容波动（此处短请求 0.31）。作者公布的是 44.7 tok/s（首次）/ 62.6 tok/s（缓存）量级，本次未做基准测试（按用户要求）。

---

## 5. 统一启停入口：`switch-llm.sh`

现在共 **4 个 systemd 单元**，全部 `disabled`（不做开机自启），互斥运行（16GB 显存只容一个）：

| 模式 | 单元 | 模型 | 上下文 | 投机解码 | 视觉 |
|---|---|---|---|---|---|
| `ridge-long`（默认，别名 `long`/`ridge`） | `llama-ridge-long` | Ridge 官方版 | 128K | 原生 MTP | CPU（慢 ~27s） |
| `ridge-fast`（别名 `fast`） | `llama-ridge` | Ridge 官方版 | 64K | 原生 MTP | **GPU（快 ~1s）** |
| **`ko-long`（别名 `ko`）** | **`llama-ko-ridge`** | **KO 无审核版** | **128K** | **DFlash2 草稿** | ❌ 无（作者档 `--no-mmproj`） |
| `ko-fast` | `llama-ko-ridge-fast` | KO 无审核版 | 64K | 原生 MTP | GPU（备用视觉档，**未实测**） |

```bash
bash ~/switch-llm.sh ko          # 切到 KO 无审核版（作者档，当前运行）
bash ~/switch-llm.sh ko-fast     # KO + 可看图（64K，非作者档）
bash ~/switch-llm.sh             # 回 Ridge 官方版 128K
bash ~/stop-ridge.sh             # 停全部，释放显存
bash ~/ridge-status.sh           # 四个单元状态 + 显存 + API + 接受率
```

`switch-ridge.sh` 保留为兼容入口（等价 `switch-llm.sh`）。脚本会先 `lms unload --all` 释放 LM Studio 显存，并停掉其它所有单元。

---

## 6. 客户端接入

```bash
curl -s --noproxy '*' http://192.168.31.31:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"huihui-qwen3.8-27b-ko-ridge",
       "messages":[{"role":"user","content":"你好"}],"max_tokens":2000}'
```

- Trae / Cherry：OpenAI 兼容供应商 → Base URL `http://192.168.31.31:8080/v1` → 模型名 `huihui-qwen3.8-27b-ko-ridge`
- ⚠️ **思考型模型**：作者档 `--reasoning-budget -1`（不限制思考长度），实测拒答类/创作类提问思考链极长（单次可吃掉 4000 token）。客户端 `max_tokens` **建议 ≥4000**，否则可能返回空正文
- ⚠️ **与 LM Studio / ComfyUI 显存互斥**：用之前先 `bash ~/stop-ridge.sh`

---

## 7. 与 Ridge 官方版的关系

| | Ridge（官方版） | **KO-Ridge（本报告）** |
|---|---|---|
| 基座 | `Qwen/Qwen3.8-27B`（对齐版） | `huihui-ai/Huihui-Qwen3.8-27B-abliterated`（**无审核**） |
| 量化技术 | Empero Ridge 3.69bpw | 同款 Ridge 张量布局（作者明写沿用 Empero 策略） |
| 体积 | 11.73 GiB | 11.73 GiB（两者仅差 32 字节） |
| 投机解码 | 原生 MTP | **DFlash2 草稿**（作者实测档） |
| 视觉 | 支持（128K 时编码器在 CPU） | 作者档不支持 |
| 质量注意 | 由官方 BF16 直接量化 | ⚠️ 作者自述**由 KO-i1 的 Q8_0 再量化而来**（非 BF16 直转），二次量化可能损失更多质量 |

---

## 8. 遗留与建议

1. **`ko-fast` 未实测**：是我加的视觉备用档（64K + GPU 视觉 + MTP），本次未验证可加载性；要用先 `bash ~/switch-llm.sh ko-fast` 并观察日志。
2. **DFlash2 草稿只在 KO 档使用**；Ridge 档继续用原生 MTP。
3. **两套 llama.cpp 并存**（109G 磁盘余量）：新构建 7 分钟可重建，若日后 Ridge 档也想升级，注意参数兼容性后再动。
4. **磁盘**：本次下载（12.6 GiB）+ 新构建后剩余 **109G**（90% 已用）。`~/Downloads` 里仍有 RVN 两档（11.67 / 12.81 GiB）与重复 GGUF 约 30 GiB 可清理。
5. **`--metrics` 已开启**：可访问 `http://192.168.31.31:8080/metrics` 取 Prometheus 指标（token 速率、接受率等）。

---

**部署人**：DSH 会话 · **部署与验收**：2026-09-13
**模型来源**：[caiyi/Huihui-Qwen3.8-27B-abliterated-KO-Ridge-3.7bpw-GGUF](https://huggingface.co/caiyi/Huihui-Qwen3.8-27B-abliterated-KO-Ridge-3.7bpw-GGUF) · 草稿：[z-lab/Qwen3.8-27B-DFlash2-GGUF](https://huggingface.co/z-lab/Qwen3.8-27B-DFlash2-GGUF)
**相关文档**：`Qwen3.8-27B-Ridge部署报告-2026-09-13.md`（官方版部署，含"是否无审查版"判定）· `Qwen3.8-27B-Ridge混合量化部署实测-补录2026-09-13.md`（08-27 实测与机制）
