Swap LLM fleet to Ornith CRACK (small) and kingjones ROCmFP4 STRIX MTP (large); apply Qwen-Sharp chat template

- frank-default-small (Dankserver): Ornith-1.5-35B-A3B-CRACK Q8_0, bundled
  native draft-mtp (n_max 4), MoE expert FFN tensors pinned to CPU via an
  explicit --override-tensor \.ffn_(up|down|gate|gate_up)_(ch|)exps=CPU
  (replaces --n-cpu-moe), Qwen-Sharp chat template.
- frank-default-large (Dankclaw): kingjones Qwen3.8-27B-Uncensored-Q6_0
  ROCmFP4 AGENT dense GGUF, standalone mtp-Qwen3.8-27B-Q4_0 draft head
  (--model-draft, draft-mtp n_max 4), Qwen-Sharp chat template. Drop the
  retired PromptForge .pfs sidecar lanes.
- Track scripts/chat-template.jinja (v22.4.0 Sharp) and apply via
  --chat-template-file on both services.
- Docs: new kingjones-strix-mtp and dealign-ornith-crack runbook pages;
  update index, deployment, and both system specs; models.json names.

Smoke-tested both models on the real hardware on scratch ports before
commit: model loads, MTP draft attaches, Sharp template applies, chat
completion returns.
This commit is contained in:
Frank
2026-08-24 21:35:11 -07:00
parent 189934af15
commit 4462aa992c
14 changed files with 827 additions and 156 deletions
+1 -1
View File
@@ -93,7 +93,7 @@ cable between claw and server is required for 10G.
- Unified memory eliminates separate VRAM limits. The GPU uses system RAM.
- The GPU budget is the rocm-smi figure: 64 GiB VRAM reported by rocm-smi (SVM-backed). The older 96 GiB figure was the addressable SVM pool, not the budget. Trust rocm-smi and the runtime; do not use `free` or `dmidecode` for the GPU budget.
- The active service is `frank-default-large` on port 7770 (moved from 52625 on 2026-08-22): CIRU ROCmFPX llama.cpp serving jcbtc Qwen3.8-27B-CIRU-ActiveFPX-PromptForge (262144 ctx, native MTP, PromptForge DualView). See [[ciru-activefpx-promptforge]].
- The active service is `frank-default-large` on port 7770 (moved from 52625 on 2026-08-22): CIRU ROCmFPX llama.cpp serving kingjones/Qwen3.8-27B-Uncensored-ROCmFP4-STRIX-MTP (Q6 AGENT dense, 262144 ctx, standalone MTP Q4_0 head). See [[kingjones-strix-mtp]].
- The runtime requires ROCm 7.15 (model card requirement). The system ROCm is 7.2.4; the retired ling3-ciru venv bundles a self-contained TheRock ROCm 7.15 SDK that the serve script puts first in `LD_LIBRARY_PATH`.
- The retired vLLM venvs (`/home/dank/vllm-venv`, `/home/dank/vllm-vk-venv`) were moved to `/home/dank/.AGENTTRASH/` on 2026-08-18.
- 1.1 TB free disk space is ample for model storage.
+1 -1
View File
@@ -60,7 +60,7 @@ Dankserver is an NVIDIA GPU server for vLLM inference. The host runs Ubuntu 26.0
### Active Services
The active service on Dankserver is `frank-default-small.service`: the llama.cpp Qwen3.6-35B-A3B (Q6_K_P + ngram-mod) on port 7770. The earlier PP worker (`frank-pp-worker.service`) was retired with the 2026-08-17 redo. See [[deployment]].
The active service on Dankserver is `frank-default-small.service`: the llama.cpp Ornith-1.5-35B-A3B CRACK (Q8_0) on port 7770, with MoE expert weights held on CPU via `--override-tensor`. The earlier PP worker (`frank-pp-worker.service`) was retired with the 2026-08-17 redo. See [[deployment]].
## Hardware Relevance
+96
View File
@@ -0,0 +1,96 @@
---
type: reference
title: dealign Ornith-1.5-35B-A3B CRACK on Dankserver
description: dealignai/Ornith-1.5-35B-A3B-UNCENSORED (CRACK Q8_0) served by upstream llama.cpp on the RTX 3090. MoE model with the MTP head bundled; expert weights offloaded to CPU with an explicit --override-tensor. frank-default-small.
tags:
- llamacpp
- cuda
- dankserver
- moe
- ornith
- mtp
timestamp: 2026-08-24
---
# dealign Ornith-1.5-35B-A3B CRACK on Dankserver
> **Active 2026-08-24.** `frank-default-small` serves this model. It
> replaced the HauhauCS Qwen3.6-35B-A3B Q6_K_P service on the same upstream
> llama.cpp binary (b10121).
`frank-default-small` (port 7770) serves
`Ornith-1.5-35B-A3B-CRACK-Q8_0.gguf` from `dealignai` on Hugging Face. It is
a **MoE** model (256 experts, 8 active) with a hybrid GatedDeltaNet (SSM) +
attention architecture, abliterated (uncensored). The MTP speculative head
is **bundled in the GGUF**, so `draft-mtp` auto-detects it from the target
model.
## Model Files
| File | Size |
|------|------|
| `Ornith-1.5-35B-A3B-CRACK-Q8_0.gguf` | 37.2 GB |
| `mmproj-Ornith-1.5-35B-A3B-f16.gguf` (vision) | 0.90 GB |
Store the files under `/home/dank/models/Ornith-1.5-35B-A3B-CRACK/`.
## Expert Offload — `--override-tensor`, not `--n-cpu-moe`
The service pins the MoE expert weights to CPU with an **explicit tensor
override** rather than the layer-counter `--n-cpu-moe`. The override uses
the same internal regex that `--cpu-moe` / `--n-cpu-moe` expand:
```
OVERRIDE_EXPERT=\.ffn_(up|down|gate|gate_up)_(ch|)exps
OVERRIDE_BUFT=CPU
```
This is passed as `--override-tensor "$OVERRIDE_EXPERT=$OVERRIDE_BUFT"`.
Only the FFN expert tensors move to CPU; every other tensor stays on the
24 GB card up to `--gpu-layers`. To list the buffer type names on the host,
run a bogus override and read the error:
```
llama-server --model <ANY> -c 64 -ot foo=BADTYPE
```
On Dankserver the available buffer types are `CPU` and `CUDA0`.
## Speculative Decoding
MoE model with a bundled MTP head -> native `draft-mtp`. The head is
auto-detected from the target (b10121 creates the MTP draft context against
the model file). ngram under MTP hurts on this family; MTP alone is the
proven best. `--spec-draft-n-max 4` is the knee.
```
--spec-type draft-mtp
--spec-draft-n-max 4
```
## Launch Excerpt
```
llama-server \
-m Ornith-1.5-35B-A3B-CRACK-Q8_0.gguf \
--mmproj mmproj-Ornith-1.5-35B-A3B-f16.gguf \
--chat-template-file chat-template.jinja \
--spec-type draft-mtp \
--override-tensor "\.ffn_(up|down|gate|gate_up)_(ch|)exps=CPU" \
-ngl all -c 786432 -np 3 \
--cache-type-k f16 --cache-type-v f16 --no-mmap \
--temp 1.0 --top-p 0.95 --top-k 20
```
## Known Issues
1. The 37.2 GB Q8_0 file is large for the 62 GB RAM box; lower `PARALLEL`
or switch quant if VRAM or RAM is tight.
2. `--n-cpu-moe` remains supported; this service deliberately prefers the
explicit tensor override so only the expert tensors reach CPU.
## See Also
- [[deployment]] — deploy and update process
- [[Dankserver System Specs]] — the box
- [[frank-redo-2026-08-17]] — fleet topology history
+23 -20
View File
@@ -17,8 +17,8 @@ repository to a running service.
| Target | Host | Runtime | Service | Port |
|--------|------|---------|---------|------|
| Dankserver | dank@dankserver | upstream llama.cpp (Qwen3.6-35B-A3B Q6_K_P + ngram-mod, MoE on CPU) | frank-default-small | 7770 |
| Dankclaw | dank@dankclaw | CIRU ROCmFPX llama.cpp (jcbtc Qwen3.8-27B-CIRU-ActiveFPX-PromptForge v3, native MTP + Output-K8 proxy + PromptForge DualView, 262K ctx / 1 slot) | frank-default-large | 7770 |
| Dankserver | dank@dankserver | upstream llama.cpp (Ornith-1.5-35B-A3B-CRACK Q8_0, native MTP draft, MoE experts offloaded via --override-tensor) | frank-default-small | 7770 |
| Dankclaw | dank@dankclaw | CIRU ROCmFPX llama.cpp (Qwen3.8-27B-Uncensored-ROCmFP4 Q6 AGENT, standalone MTP Q4_0 head, 262K ctx / 1 slot) | frank-default-large | 7770 |
## Workflow
@@ -122,32 +122,35 @@ curl -sf http://127.0.0.1:7770/health
### Dankserver — frank-default-small
The active service on Dankserver is upstream llama.cpp (b10121) serving
`Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Q6_K_P.gguf` under the
alias `frank-default-small` on port 7770. It runs the stock
`/home/dank/llama.cpp/build/bin/llama-server` binary with the 38 MoE
experts on CPU (`--n-cpu-moe 38`) and 7 CPU threads, ngram-mod
speculative decoding (n_min 48 / n_max 64 / n_match 24), f16 KV for both
K and V, context 786432 (3 slots of ~262K each), batch 4096 / ubatch 2048,
`--no-mmap`. The unit file is `scripts/frank-default-small.service`. It
launches through `scripts/serve-frank-small.sh`, which reads tunables from
`scripts/frank-default-small.env`.
`Ornith-1.5-35B-A3B-CRACK-Q8_0.gguf` under the alias `frank-default-small`
on port 7770. It runs the stock `/home/dank/llama.cpp/build/bin/llama-server`
binary with the MoE expert weights pinned to CPU by an explicit
`--override-tensor` regex (the expert `\.ffn_(up|down|gate|gate_up)_(ch|)exps`
pattern, buffer type `CPU`) and 7 CPU threads, native `draft-mtp`
speculative decoding (bundled MoE MTP head, n_max 4), f16 KV, context
786432 (3 slots of ~262K each), batch 4096 / ubatch 2048, `--no-mmap`. The
unit is `scripts/frank-default-small.service`. It launches through
`scripts/serve-frank-small.sh`, which reads tunables from
`scripts/frank-default-small.env`. See [[dealign-ornith-crack]].
### Dankclaw — frank-default-large
The active service on Dankclaw is the CIRU ROCmFPX llama.cpp runtime serving
`jcbtc/Qwen3.8-27B-CIRU-ActiveFPX-PromptForge` (v3 five-file payload: GGUF
+ FFN/GDN .pfs + Output-K8 proxy + BF16 mmproj) under the alias
`frank-default-large` on port 7770 (moved from 52625 on 2026-08-22). It runs
`kingjones777/Qwen3.8-27B-Uncensored-ROCmFP4-STRIX-MTP` (Q6_0 AGENT, dense)
under the alias `frank-default-large` on port 7770. It runs
`/home/dank/ciru-qwen38/ROCmFPX/build-promptforge/bin/llama-server` (ROCm
7.15 SDK in the retired ling3-ciru venv) with native depth-4 MTP
(`--spec-type draft-mtp`), f16 KV for both K and V, full 262144 context
(1 slot. Concurrent requests queue. The server never preempts a running
generation), batch 4096 / ubatch 4096, 16 context checkpoints, 8 GiB
prompt cache, and reasoning in deepseek format. The unit file is
7.15 SDK in the retired ling3-ciru venv) with a standalone MTP Q4_0 draft
head (`--model-draft` and `--spec-type draft-mtp`), f16 KV, full 262144
context (1 slot. Concurrent requests queue; the server never preempts a
running generation), batch 4096 / ubatch 4096, 16 context checkpoints,
8 GiB prompt cache, and reasoning in deepseek format. The unit file is
`scripts/frank-default-large.service`. It launches through
`scripts/serve-frank-large.sh`, which reads tunables from
`scripts/frank-default-large.env`. See [[ciru-activefpx-promptforge]].
`scripts/frank-default-large.env`, applying the Qwen-Sharp chat template.
See [[kingjones-strix-mtp]].
> The kingjones Q6 AGENT model has served the slot since 2026-08-24; the
> v3 PromptForge payload is retired on this slot.
> Restored 2026-08-21. The intermediate DFlash2 Vulkan deployment was
> retired the same day. See [[dflash2-large-vulkan]] for the archived runbook.
+19 -13
View File
@@ -1,9 +1,10 @@
# LLM Fleet — Knowledge Base
Documentation for the LLM inference fleet on two local machines
(2026-08-22): upstream llama.cpp on Dankserver (frank-default-small) and
CIRU ROCmFPX llama.cpp with the PromptForge v3 runtime on Dankclaw
(frank-default-large).
(2026-08-24): upstream llama.cpp on Dankserver (frank-default-small,
Ornith-1.5-35B-A3B CRACK) and CIRU ROCmFPX llama.cpp on Dankclaw
(frank-default-large, kingjones Qwen3.8-27B ROCmFP4). Both services
run the Qwen-Sharp chat template.
> 2026-08-22: the former `vllmScripts` repository is merged into the
> serverAppConfigs repository. This knowledge base moved from the old repo's
@@ -18,8 +19,8 @@ graph LR
A[RTX 3090 24GB + 62GB RAM]
B[upstream llama.cpp b10121
frank-default-small, port 7770]
C[Qwen3.6-35B-A3B-Uncensored Q6_K_P
ngram-mod, 38 MoE experts on CPU, 786432 ctx]
C[Ornith-1.5-35B-A3B-CRACK Q8_0
native MTP, MoE experts offloaded via override, 786432 ctx]
A --> B --> C
end
@@ -27,8 +28,8 @@ ngram-mod, 38 MoE experts on CPU, 786432 ctx]
D[gfx1151 iGPU 64 GiB unified memory]
E[CIRU ROCmFPX llama.cpp PromptForge v3
frank-default-large, port 7770]
F[jcbtc Qwen3.8-27B-CIRU-ActiveFPX-PromptForge v3
262K ctx / 1 slot, full-W8 views, Output-K8 MTP, BF16 vision]
F[Qwen3.8-27B-Uncensored-ROCmFP4 Q6_0 AGENT
MTP draft + Sharp template, 262K ctx / 1 slot]
D --> E --> F
end
@@ -47,8 +48,12 @@ frank-default-large, port 7770]
- [[deployment]] — deploy and update process for both servers
- [[frank-redo-2026-08-17]] — the 2026-08-17 topology change
- [[ciru-activefpx-promptforge]] — the v3 CIRU PromptForge runtime on
Dankclaw (frank-default-large, active. Restored 2026-08-22)
- [[kingjones-strix-mtp]] — the kingjones Qwen3.8-27B ROCmFP4 STRIX MTP model
on Dankclaw (frank-default-large, active 2026-08-24)
- [[dealign-ornith-crack]] — the dealign Ornith-1.5-35B-A3B CRACK model on
Dankserver (frank-default-small, active 2026-08-24)
- [[ciru-activefpx-promptforge]] — the RETIRED v3 CIRU PromptForge runtime
on Dankclaw (superseded 2026-08-24 by the kingjones ROCmFP4 model)
- [[kairic-edge]] — the retired Kairic Edge IU4 experiment
(deployed and reverted 2026-08-22)
- [[Dankserver System Specs]] — the upstream llama.cpp box (frank-default-small)
@@ -56,8 +61,9 @@ frank-default-large, port 7770]
## CIRU Reference (Dankclaw)
- [[ciru-activefpx-promptforge]] — the v3 model, ROCm 7.15 toolchain,
and build history (active deployment)
- [[ciru-activefpx-promptforge]] — the RETIRED v3 model, ROCm 7.15 toolchain,
and build history (on Dankclaw; the slot now serves the kingjones
ROCmFP4 model, see [[kingjones-strix-mtp]])
- [[kairic-edge]] — Kairic Edge IU4 runtime: build runbook, binary
identity, and experiment summary (retired 2026-08-22)
@@ -71,8 +77,8 @@ frank-default-large, port 7770]
- [[VLLM Overview]] — installation, CLI, API, architecture, quantization, parallelism
- [[VLLM Index]] — quick reference with commands, endpoints, and parameter table
- [[Running Qwen3.6 35B A3B FP8 on Dankserver]] — Qwen3.6-35B-A3B hardware
notes and sizing (the model family now served by frank-default-small as
Q6_K_P)
notes and sizing (the historical family; frank-default-small now serves
Ornith-1.5-35B-A3B, see [[dealign-ornith-crack]])
## Memory Management
+91
View File
@@ -0,0 +1,91 @@
---
type: reference
title: kingjones Qwen3.8-27B ROCmFP4 STRIX MTP on Dankclaw
description: kingjones777/Qwen3.8-27B-Uncensored-ROCmFP4-STRIX-MTP served by the CIRU ROCmFPX llama.cpp runtime on the Strix Halo iGPU. Dense model with a standalone MTP Q4_0 draft head. frank-default-large.
tags:
- llama.cpp
- rocm
- dankclaw
- gfx1151
- kingjones
- rocmfp4
- mtp
timestamp: 2026-08-24
---
# kingjones Qwen3.8-27B ROCmFP4 STRIX MTP on Dankclaw
> **Active 2026-08-24.** `frank-default-large` serves this model. It
> replaced the jcbtc v3 CIRU ActiveFPX PromptForge payload on the same
> ROCmFPX runtime and the same CIRU llama.cpp binary. See
> [[ciru-activefpx-promptforge]] for the retired v3 page.
`frank-default-large` (port 7770) serves
`Qwen3.8-27B-Uncensored-ROCmFP4-STRIX-MTP` from `kingjones777` on Hugging
Face. It is a **dense** Qwen3.8-27B, abliterated (uncensored), quantized to
the ROCmFP4 Q6 AGENT format (ftype 114). The MTP speculative head ships as
a **separate** Q4_0 draft GGUF, so a bundled-head auto-detect does not apply
here; the head is loaded with `--model-draft`.
## Model Files
The card ships six text files plus the vision projector. The service uses
the Q6 AGENT file (requested for the fleet), the separate MTP draft head
and the Q8 vision projector.
| File | Size |
|------|------|
| `Qwen3.8-27B-Uncensored-Q6_0_ROCMFPX_AGENT.gguf` | 23.15 GiB |
| `mtp-Qwen3.8-27B-Q4_0.gguf` (draft head) | 1.56 GiB |
| `mmproj-Qwen3.8-27B-Q8_0.gguf` (vision) | 0.59 GiB |
Store the files under `/home/dank/models/kingjones-Qwen3.8-27B-STRIX-MTP/`.
## Speculative Decoding
Dense model, so the finding measured on the dense Qwen3.8 family holds:
**MTP alone at `--spec-draft-n-max 4` is the knee**. ngram under MTP hurts
(measured -4 to -5 t/s on the v3; see [[ciru-activefpx-promptforge]]). The
draft head is a separate file loaded via:
```
--spec-type draft-mtp
--model-draft mtp-Qwen3.8-27B-Q4_0.gguf
--spec-draft-n-max 4
--spec-draft-n-min 0
--spec-draft-p-min 0.0
```
The draft head loads on `ROCm1` with full offload (`--spec-draft-ngl 999`)
and f16 KV.
## Launch Excerpt
The key flags on the CIRU ROCmFPX runtime:
```
llama-server \
-m Qwen3.8-27B-Uncensored-Q6_0_ROCMFPX_AGENT.gguf \
--mmproj mmproj-Qwen3.8-27B-Q8_0.gguf \
--chat-template-file chat-template.jinja \
-ngl 999 -dev ROCm0 -c 262144 -np 1 \
--spec-type draft-mtp --model-draft mtp-Qwen3.8-27B-Q4_0.gguf \
--spec-draft-ngl 999 --spec-draft-n-max 4 \
-fa on --no-mmap --cache-type-k f16 --cache-type-v f16
```
## Known Issues
1. **GPU only**: Vulkan, CUDA, and CPU cannot load these files.
2. `--spec-draft-n-max` defaults to 16; set 4.
3. `reasoning_effort: "none"` throws in the Qwen API. Use
`enable_thinking: false` instead.
4. Small `max_tokens` with thinking on returns empty `content`. The Sharp
template drives thinking on by default (effort medium).
## See Also
- [[deployment]] — deploy and update process
- [[ciru-activefpx-promptforge]] — the retired v3 page
- [[Dankclaw System Specs]] — the box
- [[frank-redo-2026-08-17]] — fleet topology history
+3 -1
View File
@@ -92,7 +92,9 @@ The LLM inference fleet on the two hosts. Full index:
- [[deployment]] — unified deploy and update process for both servers
- [[frank-redo-2026-08-17]] — the 2026-08-17 topology change
- [[ciru-activefpx-promptforge]] — the v3 CIRU PromptForge runtime on Dankclaw (active)
- [[ciru-activefpx-promptforge]] — the RETIRED v3 CIRU PromptForge runtime on Dankclaw (superseded 2026-08-24)
- [[kingjones-strix-mtp]] — the kingjones Qwen3.8-27B ROCmFP4 STRIX MTP model on Dankclaw (active)
- [[dealign-ornith-crack]] — the dealign Ornith-1.5-35B-A3B CRACK model on Dankserver (active)
- [[kairic-edge]] — the retired Kairic Edge IU4 experiment (2026-08-22)
- [[dflash2-large-vulkan]] — the retired DFlash2 Vulkan deployment (2026-08-21)
- [[Dankserver System Specs]] — the upstream llama.cpp box hardware