memory: MeroMero-v2 CoT via vLLM gemma4 parser is not achievable (tried + reverted)

Operator asked to serve MeroMero (char-rp) with reasoning as char-rp-reasoning.
The model genuinely reasons (GRPO-trained with thinking; ships Think/NoThink
SillyTavern presets), but two facts kill the vLLM path:

  - it's byte-identical to the weights we already serve (same zerofata repo,
    chat_template sha 94899c0f matches our on-disk quant), so re-quanting adds
    nothing; and
  - the gemma4 reasoning parser's enable_thinking is PROCESS-WIDE, not per-request.
    The seat's --default-chat-template-kwargs sets the parser state machine; a
    per-request chat_template_kwargs.enable_thinking reaches the template but not
    the parser (unlike the qwen3 parser the gen seat uses). So the two-served-name
    gen/gen-reasoning trick can't work.

Verified empirically: added a char-rp-thinking served-name and removed the process
default; enable_thinking:true per request still produced pure prose, 0
reasoning_content. Per the seat's own comment, a dedicated thinking-on process
dumps all prose into reasoning_content with null content -- no clean split.
MeroMero reasons only client-side in SillyTavern, not through vLLM.

Fully reverted to known-good: single served-name, process default restored,
char-rp prose verified end-to-end. GPU0 both seats healthy, gen untouched.

Kept one change: MEROMERO_GPU_MEM_UTIL 0.52 -> 0.51. 0.52 no longer boots because
orcarouter gen (the GPU0 neighbor) is marginally bigger than the old heresy seat
(free 49.02 < needed 49.38 GiB); 0.51 fits at KV 2.00x @ 262K.

For real RP-with-CoT: gen-reasoning (orcarouter, uncensored, thinks) or a dedicated
Qwen-based RP-thinking seat, which needs a GPU slot.
This commit is contained in:
vh
2026-08-21 08:20:57 -07:00
parent 3d30a6530b
commit a260b57974
+2
View File
@@ -122,6 +122,8 @@ _As of 2026-08-21 00:35 — **the Heretic-300 session, and its reversal** (see t
- **🟢 HOMEPAGE — cleaned + themed (Australis Skyfall).** Three real defects fixed (UltraSeedbox on all tabs, Uptime Kuma double-rendered, fiction column counts), AI tab reordered by clickability, then themed from the operator's Skyfall handoff bundle with a background generated by **Arbo** (`t2i-ui-background`, job `13f0891f4e42`). ⚠ **After any recreate the tab bar/wallpaper/i18n vanish for up to ~an hour and then return on their own — do not chase it.** ⚠ CSS is served per-request: a theme change needs a **reload**, not a recreate, and candidate CSS can be injected live via Playwright for seconds-long iteration. → `persistent-memory.d/2026-08-19-homepage-skyfall-theme.md`
- **⚪ TRIED + ABANDONED 2026-08-21 — MeroMero-v2 CoT as char-rp-reasoning is NOT achievable via vLLM's gemma4 parser.** Operator asked to serve MeroMero (char-rp) with reasoning. The model DOES reason (zerofata card: "Stage 3 RP logic GRPO, think enabled"; ships Gemma4-Think/NoThink SillyTavern presets; thinking rides a `<|channel>thought…<channel|>` channel). BUT: (1) it is **byte-identical to the weights we already serve** (same repo `zerofata/G4-MeroMero-v2-31B`, chat_template sha `94899c0f` matches our on-disk quant) — so **re-quanting adds nothing**; (2) the **gemma4 reasoning parser's `enable_thinking` is PROCESS-WIDE, not per-request** — the seat's `--default-chat-template-kwargs {enable_thinking:false}` sets the parser state machine (`gemma4.py:439` defaults it TRUE→reasoning), and per-request `chat_template_kwargs.enable_thinking` reaches the template but **NOT the parser** (unlike the qwen3 parser gen uses). So the gen/gen-reasoning two-served-name trick **cannot work** here. **Empirically verified:** stood up `char-rp-thinking` served-name + removed the process default; `enable_thinking:true` per-request still produced **pure prose, 0 reasoning_content**. And per the seat's own comment, a dedicated process forced thinking-on dumps **all** prose into reasoning_content with null content — no clean think/response split. **MeroMero reasons only client-side (SillyTavern parses the channel), not through vLLM.** FULLY REVERTED to known-good (single served-name, process default restored, char-rp prose verified). ⚠ **Kept: `MEROMERO_GPU_MEM_UTIL` 0.52→0.51** — 0.52 no longer boots because orcarouter gen (GPU0 neighbor) is marginally bigger than the old heresy; free 49.02 < needed 49.38 GiB. 0.51 fits (KV 2.00× @ 262K, negligible loss). **For real RP-with-CoT: use `gen-reasoning` (orcarouter thinks, uncensored) or a dedicated Qwen-based RP-thinking seat (e.g. darkscarlett), which needs a GPU slot.**
- **🟢 PEN-TEST SEAT — M.O.G.-SEC LIVE on ana-ml2 GPU1 :8019 (2026-08-21 ~02:35, autonomous overnight run under operator's "full autonomy" grant).** `stacks/mog-sec` serves `/tank/aimodels/mog-sec-27b-nvfp4-mixed` (23.4 GB, our mixed NVFP4+FP8 quant of `Blackfrost-Research/M.O.G.-SEC-27B-1M-CTX-BF16`, rev `deede677`) in the **retired fablefusion-charrp-probe slot**. Aliases: **`mog-sec`** (non-thinking, presence_penalty 0.0 for code) + **`mog-sec-reasoning`** (thinking); served-names `mog-sec-27b`/`-thinking`. **Gates all pass:** KV **418,218 tok / 1.60× @ 262K**; surface **6/6**; MTP **55.3% @ 111.7 tok/s**; format screen **1.11e-05** (rank 196, no `<think>` leak); **vision 7/3/1**; **capability 4/4** (SQL-inj exfil, pentest phasing, port scanner, Kerberoasting — it delivers, doesn't refuse). **★ Chose the BF16 + self-quant over the pre-made ModelOpt NVFP4**, which was disqualified on W4A4 (4-bit activations, AEON mode) + zero MTP + the self-defeating W4A4-on-1M-context. **⚠ CONTEXT IS 262K NATIVE, NOT the card's 1M** — 1M needs YaRN (absent from config) + the SGLang/DFlash2 path the repo ships, neither our vLLM surface; a real 1M seat is a separate SGLang project. **MTP head is a base graft** (identical to stock), not in-band abliterated like orcarouter's. Provenance `mog-sec-27b-nvfp4-mixed.PROVENANCE.txt`; eval `docs/pfi/gen-seat-candidate-eval-2026-08-21.md`. **RETIRED with it:** `char-rp-reasoning` + `char-rp-fable` LiteLLM aliases (zero traffic, pointed at the dead fable :8019; now 404). RP-reasoning's real home is `darkscarlett-charrp-reasoning` (:8018, compose-down, weights intact) if ever wanted. ⚠ brand-new model (0 downloads at pull, org-name mismatch Research-vs-AI) — card claims are claims.
- **✅ PPL ON ORCAROUTER GEN SEAT — mean 7.07 / median 5.76 (2026-08-21)**, within noise of heresy's 6.910/5.625, identical to our recipe's usual 7.059. Measured via a nospec probe on GPU1 (fable downed to make room, probe torn down after). The gen-seat search is fully settled on orcarouter: matches heresy on fidelity, wins on MTP (58.4% vs 47.2%), format (0-leak), and vision.