Skip to content

feat(models): Nail 35B-A3B at 262k with CPU vision; trim roster; acceptance harness - #19

Open
Hrt-Htk wants to merge 1 commit into
mainfrom
feat/issue18-nail-model
Open

feat(models): Nail 35B-A3B at 262k with CPU vision; trim roster; acceptance harness#19
Hrt-Htk wants to merge 1 commit into
mainfrom
feat/issue18-nail-model

Conversation

@Hrt-Htk

@Hrt-Htk Hrt-Htk commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Closes #18.

What

Add Nail-Qwen3.6-35B-A3B (nail-35b-a3b-q4-256k) as a production model — full 262k context on the 3090 Ti with the vision projector on CPU (mmproj-offload) and its froggeric chat template. Trim the roster to two 262k models and add a reusable model-acceptance harness.

Changes

  • ModelChoice gains mmproj_offload, chat_template_file, and per-model ctx_choices. Chat templates are now emitted per-preset — a router-global --chat-template-file was silently overriding each preset's template, denying Nail its froggeric template (caught via /apply-template).
  • Roster trimmed to two models, one 262k preset each:
    • nail-35b-a3b-q4-256k — 262k, CPU vision, froggeric template (default)
    • qwen3.6-27b-q4-mtp-224k — MTP capped at 224k; draft buffers leave only ~300 MiB headroom at 262k
    • Retired presets' weights remain on disk.
  • Acceptance harness (tests/model_acceptance.py) + plan (docs/dev/model-acceptance.md): live gate covering load, VRAM fit, streaming/think-integrity (issue SSEChunkLogger rescue state machine splits reasoning_content on literal </thinking> text #8), tool-calling, long-context needle, vision (CPU mmproj), and pp/tg from llama-server timings. Validated on 35B/27B/Nail.

Verification

  • Nail: full acceptance ACCEPTED — 23,404 MiB @ 262k (~1.16 GB headroom), CPU vision confirmed (GPU flat during image turn), pp 3,150 / tg 132 tok/s.
  • Template override confirmed applied via /apply-template (froggeric markers present for Nail, unchanged for others).
  • pi end-to-end through the public path returns correct answers for both models.

🤖 Generated with Claude Code

…acceptance harness

Add Nail-Qwen3.6-35B-A3B-UD-Q4_K_XL as `nail-35b-a3b-q4-256k` — full 262k
context on the 3090 Ti with the projector on CPU (mmproj-offload) and its
froggeric chat template.

- ModelChoice gains mmproj_offload, chat_template_file, and per-model ctx_choices;
  chat templates now emitted per-preset. A router-global --chat-template-file was
  silently overriding each preset's template, denying Nail its froggeric template.
- Roster trimmed to two 262k models: nail-35b-a3b-q4-256k and
  qwen3.6-27b-q4-mtp-224k (MTP capped at 224k; draft buffers leave only ~300 MiB
  headroom at 262k). Retired presets' weights remain on disk.
- Add reusable live acceptance harness (tests/model_acceptance.py) + plan
  (docs/dev/model-acceptance.md); validated on 35B/27B/Nail. Logs pp/tg from
  llama-server timings (prompt_per_second / predicted_per_second).

#18

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Nail-Qwen3.6-35B-A3B (262k, CPU vision) + per-preset template/ctx machinery, trim roster, model-acceptance harness

1 participant