Commit Graph
203 Commits
Author SHA1 Message Date
Frank 0f2bb636d7 bench: add Kairic A/B config harness; make v3 spec-stack harness self-contained (survives the Kairic env swap) 2026-08-22 02:53:32 -07:00
Frank 4360551938 docs: Kairic Edge reference page (build runbook, config.h gap, byte-identical rebuild, perf data); mark v3 doc retired; update topology 2026-08-22 02:51:39 -07:00
Frank 40d50fed06 large: Kairic chat profile — reasoning on/deepseek, batch 4096/2048, preserve_thinking
Local overrides to the pinned runner for production chat:
  - --reasoning on --reasoning-format deepseek (thinking to
    message.reasoning_content, matching the retired v3 service so the
    fleet's reasoning clients work)
  - --reasoning-budget -1 (unrestricted thinking)
  - --chat-template-kwargs '{"preserve_thinking":"true"}' (preserve
    thinking tokens in the conversation history across turns)
  - batch 4096 / ubatch 2048 (larger than the runner's 2048/512; unified
    memory has headroom)

The Kairic IU4 lane (--kairic-edge) and the MTP draft fast path are
unaffected.
2026-08-22 01:03:08 -07:00
Frank 7aee1df7c3 large: disable target greedy argmax fast path for chat (Kairic)
The pinned runner sets LLAMA_TARGET_GREEDY_ARGMAX_FASTPATH=1, but the
exact-Q8 argmax fast path fails closed on any non-greedy request. The
model card's own chat instructions override sampling per request with
Qwen live values (temp 0.7, top-p 0.8, top-k 20, min-p 0,
presence_penalty 1.5), which the fast path rejects (400). Production
chat forces the fast path to 0; the Kairic IU4 lane (--kairic-edge) and
the MTP draft fast path are unaffected.
2026-08-22 00:28:01 -07:00
Frank 4c438390dd large: swap to Kairic Edge IU4 runtime (pinned tag kairic-edge-qwen38-27b-v1)
Serves jcbtc/Qwen3.8-27B-IU4-Kairic-Edge (four-artifact payload) with
the qualified pinned-runner profile: 262K ctx, 1 slot, b2048/ub512,
t16/tb32, f16 KV, 32 ctx checkpoints, 8 GiB prompt cache with idle-slot
persistence, native MTP4, deterministic sampler, reasoning off.

The serve script replicates the release pinned runner verbatim; the only
differences are safe bind vars (no bare HOST env var; HIP collision rule)
and this machine's split 7.15 SDK LD_LIBRARY_PATH layout.

Rollback: revert this commit and redeploy; v3 model files and the v3
binary are untouched.
2026-08-22 00:21:34 -07:00
Frank 3b9379bb5b docs: benchmark ngram-mod stacking under MTP on v3 stack (8k/16k/64k); doc CLI order does not matter 2026-08-21 20:43:47 -07:00
Frank f1074ade61 fix bench harness: derive PromptForge sidecar paths and set PROMPTFORGE_MODE; correct env sourcing 2026-08-21 20:25:49 -07:00
Frank fb49202e59 bench: add spec-stack comparison harness (MTP vs MTP+ngram-mod) for v3 CIRU stack 2026-08-21 20:25:00 -07:00
Frank 8652116cec docs: document frank-default-large v3 upgrade (Output-K8 runtime, full-W8 views, BF16 vision); update AGENTS/deploy payload sizes 2026-08-21 20:18:57 -07:00
Frank 132e1478cf frank-default-large: upgrade to CIRU ActiveFPX PromptForge v3 (Output-K8 runtime, full-W8 views, BF16 vision) 2026-08-21 20:00:31 -07:00
Frank 577003bed1 docs: 2026-08-21 incident (distro upgrade dropped CUDA 12 runtime) + Dankserver now Ubuntu 26.04 2026-08-21 19:31:05 -07:00
Frank 583efd8cf2 Revert frank-default-large to CIRU runtime (DFlash2 too slow)
Restore the CIRU ROCmFPX setup that DFlash2 replaced:

- Restore jcbtc/Qwen3.8-27B-CIRU-ActiveFPX-PromptForge v2 runtime
  (native depth-4 MTP, PromptForge DualView, ROCm 7.15)
- Archive the DFlash2 Vulkan deployment files in .AGENTTRASH
- DFlash2 was retired the same day it shipped (2026-08-21) for speed
- Revert docs (deployment.md, index.md, AGENTS.md); mark dflash2 page archived
- Restored scripts are byte-identical to the pre-swap CIRU versions
2026-08-21 10:15:23 -07:00
Frank fd0d9dd3cb Swap frank-default-large to DFlash2 on Vulkan (PR #27342)
Replace the retired CIRU ROCmFPX runtime with upstream llama.cpp PR #27342
DFlash2 on the Vulkan backend:

- Target: unsloth Qwen3.8-27B-UD-Q8_K_XL.gguf (31.4 GB, already on disk)
- Drafter: z-lab Qwen3.8-27B-DFlash2-Q4_K_M.gguf (block size 8, top-k 16)
- Runtime: /home/dank/llama.cpp-dflash2/build-dflash2/bin/llama-server
  (GGML_VULKAN=ON; HIP lacks TOP_K so the stack runs on Vulkan0/RADV)
- spec: --spec-type draft-dflash --spec-draft-n-max 8 (clamps to 7)

Validated 2026-08-21 on scratch port 52626: mean acceptance 5.27,
health + reasoning completion OK.

Archive the retired CIRU .env/.serve script in .AGENTTRASH.
Update deployment.md, index.md, AGENTS.md; add docs/dflash2-large-vulkan.md.
2026-08-21 09:40:08 -07:00
Frank 701e742f9f docs: fix stale context sizes, batch/ubatch, MoE, and service names across docs 2026-08-20 22:48:25 -07:00
Frank cd6202f4a0 frank-default-large: batch=4096, ubatch=4096 (OOM fix) 2026-08-20 19:58:45 -07:00
Frank e09733ee62 frank-default-small: ncpu-moe=38 (2 experts on GPU) 2026-08-20 18:02:47 -07:00
Frank 99c7ec531f frank-default-small: ncpu-moe=32(8GPU, ~51.1 t/s gen) 2026-08-20 17:09:23 -07:00
Frank 90a8b1c562 frank-default-small: ncpu-moe=35(5GPU), ubatch=2048, ctx-checkpoints=16 2026-08-20 16:57:03 -07:00
Frank f8deaa798a frank-default-small: ubatch=1536, ctx-checkpoints=2 (24GB VRAM safety) 2026-08-20 16:51:40 -07:00
Frank 87dd4224b7 frank-default-small: ubatch=1024 (tight 24GB VRAM, 786k ctx pool) 2026-08-20 16:45:20 -07:00
Frank 26b42d2d6e frank-default-small: batch=4096, ubatch=2048 2026-08-20 15:53:41 -07:00
Frank e777d3cb56 frank-default-small: batch=5120, ubatch=2560 2026-08-20 15:38:18 -07:00
Frank 635e074af8 frank-default-small: ctx=786432 max, parallel=3, batch=6144 2026-08-20 15:27:37 -07:00
Frank ed9e1cabfd frank-default-npu: deploy gemma4-it:e4b on NPU, port 52626, 64k context 2026-08-20 15:12:58 -07:00
Frank b38e384f6e frank-default-large: raise ubatch back to 8192 2026-08-20 14:56:14 -07:00
Frank eb3f26f747 frank-default-large: reduce batch=8192, ubatch=4096 2026-08-20 14:52:31 -07:00
Frank 8bf9462f21 frank-default-large: add --no-mmap to avoid teardown OOM 2026-08-20 14:49:45 -07:00
Frank d9bf09e144 frank-default-large: raise batch=16384, ubatch=8192 2026-08-20 14:41:41 -07:00
Frank 048e7eaaba frank-default-large: full 262144 context, 1 slot
User request 2026-08-19 (second pass): parallel slots degraded
performance. PARALLEL=1, CTX_SIZE=262144 (native max, -c equals the
per-slot context with one slot). Concurrent requests queue on the
single slot; the server never preempts a running generation.
pi models.json contextWindow/maxTokens back to 262144 (outside repo).
Docs updated to match.
2026-08-19 11:17:31 -07:00
Frank 8e4d63b68d frank-default-large: 200000 context per slot (400000 total, 2 slots)
User request 2026-08-19: lower per-stream context from 262144 to 200000.
CTX_SIZE is the total; llama.cpp splits it across the 2 parallel slots.
f16 KV drops from ~32 GiB to ~24 GiB, adding OOM headroom.

Docs: sync the 2026-08-18 service swap (frank-default-large on dankclaw,
frank-default-small on dankserver) across AGENTS.md, README.md,
deployment.md, ciru-activefpx-promptforge.md, and index.md. The pi
models.json contextWindow/maxTokens for frank-default-large move
262144 -> 200000 (separate file, outside the repo).
2026-08-19 10:38:53 -07:00
Frank 9fd82dc6e1 Reduce CTX_CHECKPOINTS from 32 to 16 in env file to free ~16 GiB VRAM and prevent OOM crashes 2026-08-18 16:12:52 -07:00
Frank 8c391fe120 Reduce ctxcp from 32 to 16 to free ~16 GiB VRAM headroom and prevent OOM crashes during prompt processing 2026-08-18 16:11:58 -07:00
Frank e5f21a5562 AGENTS.md: document the Pi models.json location and resolution rules
Note that the Pi agent reaches the fleet via ~/.pi/agent/models.json
(outside the repo), that the model ids are stable and referenced by
settings.json, and the two resolution rules (default = provider+model pair;
subagents = unique bare id). Gives the per-slot contextWindow values.
2026-08-18 09:00:05 -07:00
Frank a08be1641f frank-default-large: full native 262144 context per slot (524288 total)
llama.cpp splits -c across -np slots; to give each of the 2 slots the full
262144 native context, set CTX_SIZE=524288. KV ~32 GiB; fits the 96 GiB
unified pool. Update env default, serve-script fallback, and the deployment
doc line.
2026-08-18 08:01:17 -07:00
Frank 819b9d448a Docs: reflect the 2026-08-18 second swap (rename + Qwen3.6 restore)
- AGENTS.md: topology table, second-swap note, benchmark policy service
  names, mark FastMTP section retired, update model-load quirk.
- docs/index.md: intro, topology diagram, active-deployment + CIRU
  reference service names.
- docs/deployment.md: overview table, manual-update paths, rewrite both
  service-unit descriptions (Dankserver=Qwen3.6 Q6_K_P frank-default-small,
  Dankclaw=CIRU frank-default-large), validation model name.
2026-08-18 01:29:21 -07:00
Frank 1ba9618fcc Swap fleet naming + restore Qwen3.6-35B-A3B Q6_K_P on Dankserver
- Restore the pre-2026-08-17 Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive
  Q6_K_P + ngram-mod setup as frank-default-small on Dankserver (port 7770,
  upstream llama.cpp b10121, MoE experts on CPU via --n-cpu-moe 36).
- Rename the CIRU Qwen3.8-27B ActiveFPX setup from frank-default-small to
  frank-default-large (Dankclaw, port 52625); bump to CTX_SIZE=262144
  (native max) and PARALLEL=2 (96 GiB unified pool).
- Retire the Qwen3.8-27B IQ4_XS FastMTP frank-default-large (Dankserver) to
  .AGENTTRASH.
- deploy.sh: SERVICE[dankserver]=frank-default-small,
  SERVICE[dankclaw]=frank-default-large; HEALTH_WAIT[dankserver]=600.
2026-08-18 00:32:26 -07:00
Frank fe1d834d37 docs: note 128K context and thinking on for frank-default-small 2026-08-17 23:12:32 -07:00
Frank 2e1a78aeb4 frank-default-small: 128K context and thinking on
- CTX_SIZE 65536 -> 131072 (user request). KV at 128K is 8 GiB
  (64 KiB/token f16); estimated ~43 GiB used of the 64 GiB SVM pool,
  ~21 GiB headroom.
- REASONING off -> on with REASONING_FORMAT=deepseek, so <think>
  reasoning lands in message.reasoning_content (OpenAI-compatible)
  instead of being left unparsed in content.
2026-08-17 23:11:13 -07:00
Frank 64cdfc8529 docs: reflect CIRU runtime on Dankclaw in specs and deployment pages
- Dankclaw System Specs: correct RAM to 64 GiB (61 visible), GPU
  budget to the rocm-smi 64 GiB SVM figure, and replace the vLLM
  relevance section with the CIRU ROCmFPX runtime facts. Note the
  retired vLLM venvs in .AGENTTRASH. Refresh the disk figures.
- deployment.md: update the dankclaw target row (CIRU runtime).
2026-08-17 21:14:16 -07:00
Frank 3b51b5a94a dankclaw: replace vLLM with CIRU ROCmFPX llama.cpp runtime
Retire the vLLM service (frank-default-small, port 52625) on Dankclaw
and serve jcbtc/Qwen3.8-27B-CIRU-ActiveFPX-PromptForge through the CIRU
ROCmFPX llama.cpp runtime instead.

- Build llama-server from ciru-ai/ROCmFPX tag
  qwen3.8-activefpx-promptforge-v2.3 (commit 103af8b41) against the
  private TheRock ROCm 7.15 SDK in the retired ling3-ciru venv. The
  model card requires ROCm 7.15 for the advertised Strix Halo
  performance; the system ROCm 7.2.4 selects slower kernels.
  CK pinned at fdf4bb7fcc984811cef48ce817d89aac064b984a; generated
  ck/config.h + ck/version.h copied into the CK source tree so the
  ggml-hip build can include them. LLAMA_BUILD_WEBUI=OFF (HF bucket
  llama-ui returns 404; server is consumed via the OpenAI API).
- New scripts/serve-frank-small.sh + frank-default-small.env: 64K ctx,
  one slot, f16 KV, context checkpoints, prompt cache, native depth-4
  MTP on ROCm0, PromptForge DualView sidecars (FFN + GDN), temp 0.7
  top-p 0.95, reasoning off. LD_LIBRARY_PATH puts the 7.15 SDK libs
  before any system ROCm.
- Update the systemd unit description (same service name and port).
- deploy.sh: update the dankclaw target comment.
- Docs: new docs/ciru-activefpx-promptforge.md with the build runbook;
  update docs/index.md and AGENTS.md topology.
- The vLLM venvs (vllm-venv, vllm-vk-venv) were moved to
  /home/dank/.AGENTTRASH/ on the target; the vllm-vulkan plugin and
  docs were removed from the repo in an earlier commit.
2026-08-17 21:12:35 -07:00
Frank 4941d911f2 docs: correct Dankclaw RAM figure (64 GiB, 61 GiB visible)
The box was upgraded from 32 GB to 64 GB. Two vLLM sizing pages
still stated 30 GiB physical RAM; rocm-smi reports 64 GiB and free
shows 61 GiB visible. Update the hardware tables and the ROCm
overcommit guidance to match.

Also removes the vllm-vulkan backend page, its index links, and the
frank-vk-compat plugin from the working tree. The vLLM service on
Dankclaw is being retired in favor of the CIRU llama.cpp runtime.
2026-08-17 20:34:51 -07:00
Frank 044dd49011 docs: note prefix caching enabled on frank-default-small (opt-in for hybrid; ~4x TTFT on repeated prefix) 2026-08-17 18:45:49 -07:00
Frank b854ec78ad frank-default-small: enable prefix caching (opt-in for hybrid models; big TTFT win for pi's repeated system prompt) 2026-08-17 18:25:28 -07:00
Frank 8c42771877 docs: mark retired FastFlowLM/NPU pages with the port/name handoff; tighten Dankclaw system specs runtime row 2026-08-17 18:10:57 -07:00
Frank 115b0af8dc docs: reflect the 2026-08-17 evening changes (Quark model swap, tool calling, batch 8192) 2026-08-17 18:01:02 -07:00
Frank 1cebbf47f6 frank-default-small: swap to nameistoken Quark W8A8 INT8, batch 8192
- Model: nameistoken/Qwen3.6-35B-A3B-Quark-W8A8-INT8 (AMD Quark W8A8,
  vLLM-native expert layout). The Avesed quant emitted malformed Qwen3
  XML tool calls; the Quark model follows the format cleanly.
- max-num-batched-tokens lowered 16384 -> 8192 (user request).
- Chat template: neutral path qwen36-chat_template-tools.jinja (same
  base template; adds a concrete worked tool-call example).
2026-08-17 17:49:27 -07:00
Frank a17e638a1f frank-default-small: stronger tool template with a concrete worked example
The Avesed template only shows a generic format; the Qwen3.5-MoE
model kept emitting <function=get_weather(city=...)> (args baked into
the name). Add a WORKED EXAMPLE block derived from the actual tool
schema (name + parameter keys) to the system prompt.
2026-08-17 17:38:00 -07:00
Frank 20108e5b7a frank-default-small: use the repo chat_template.jinja so tools render in Qwen3 XML
The Avesed tokenizer_config.json ships no chat_template, so vLLM used its
built-in template, which does not render the <tool_call> instructions;
the model then emitted malformed XML (arguments baked into the function
name) and the qwen3_xml parser could not extract clean calls.
2026-08-17 17:13:35 -07:00
Frank 5108af11aa frank-default-small: enable tool calling (--enable-auto-tool-choice --tool-call-parser qwen3_xml)
Clients send tool_choice=auto; without these flags vLLM rejects with
HTTP 400. The Avesed chat template renders the Qwen3 XML tool format,
so qwen3_xml is the matching parser.
2026-08-17 16:50:23 -07:00
Frank 57264f7faa record performance fixes: FA_ALL_QUANTS build flag (dankserver), RDNA triton FA env (dankclaw)
- frank-default-large: GGML_CUDA_FA_ALL_QUANTS=ON is mandatory in the
  FastMTP build; without it q8_0 KV + FA falls back to a slow path and
  prefill collapses ~12x (95 -> 1312 t/s at 8K, measured)
- frank-default-small: FLASH_ATTENTION_TRITON_AMD_ENABLE=TRUE + pure-python
  flash_attn (triton_amd) + stub; without it the vision encoder warmup
  OOMs via torch SDPA
2026-08-17 16:30:22 -07:00