Commit Graph
2 Commits
Author SHA1 Message Date
osobhandClaude Opus 4.7 893e8e6232 rtx-csm: Phase 8.11 — production stack validated against live Z.AI
Updated docs/perf_history.md to reflect the full Phase 8 work:

  - New TL;DR has TWO production configs (English-only with --moonshine,
    multilingual with default Kyutai). The English path is the new
    headline recommendation.
  - Captured live Z.AI bench numbers from the new production stack
    (Q8 + stream + warmup + Moonshine + thinking-disabled): total_turn
    8765 ms vs Phase 6f.q8 era 17145 ms — half the wall-clock latency
    end-to-end.
  - Phase 8 commit table extended to 8.4 through 8.10.
  - Added an STT backend matrix (Kyutai 1B / Whisper-rs / Moonshine)
    with measured RTF, build flags, and per-deploy recommendation rows.

Bench command used (single turn, real Z.AI glm-4.5 thinking-disabled,
10.43 s LibriSpeech /tmp/asr_test.flac):

  target/release/examples/converse_server \\
    --bind 127.0.0.1:18099 \\
    --quantized-gguf /tmp/csm_q8.gguf \\
    --stream-tts --moonshine \\
    --llm-base https://api.z.ai/api/coding/paas/v4 \\
    --llm-model glm-4.5 \\
    --llm-extra-body '{"thinking":{"type":"disabled"}}'

Server-side timing:
  recv_phase            0 ms   (Moonshine batch — no parallel STT)
  stt_post            332 ms   (Moonshine transcribe at EOT)
  llm_to_first_audio  1627 ms  (Z.AI TTFT ~1.3 s + first TTS chunk)
  conv_total          8432 ms
  total_turn          8765 ms

Client TTFA: 1959 ms (vs Phase 6f.q8 era ~2 s — comparable; the dominant
remaining latency is the Z.AI provider TTFT, not anything we control).

Z.AI returned a coherent reply: "He eagerly anticipated a hearty stew
with turnips, carrots, potatoes, and savory mutton pieces for dinner."
matching the LibriSpeech ground-truth meaning.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-04-27 11:30:14 -07:00
osobhandClaude Opus 4.7 3cf02f3aee rtx-csm: docs/perf_history.md — Phase 6/7/8 consolidated record
Consolidated record of every shipped optimization, every rejected path
with the data behind the rejection, the production-recommended config,
the architectural lessons captured, and the deferred multi-session
work with realistic sizing.

Headline:
  - client first_audio_ms p50 = 529 ms (mock LLM, Q8 + stream + extended warmup + VAD gate)
  - real Z.AI loop: ~2 s TTFA p50
  - boot cost: ~2.7 s (one-time)

Rejected paths captured (so future sessions don't redo the work):
  Q4_K_M (2.85x slower than Q8), whisper-rs linkage (2-3x CSM regression),
  Silero V5 via ort (protobuf 3.14 vs 3.21 conflict), Mimi codec Q8
  (no candle conv-quant path), KV cache reuse (variance is content-
  dependent not state-dependent), rayon for single-connection
  (overhead exceeds gain on <100µs tasks), codec swaps (require
  backbone retrain), custom distillation (no published checkpoint),
  Kyutai 4x flush (hardware-bound on M-series).

Architectural lessons:
  1. In-process linkage of external ML runtimes is a recurring trap;
     default to sidecar-process pattern.
  2. Bench thermals dominate single-machine A/B; 90s cooldown often
     necessary.
  3. First-frame compilation is the dominant cold-start cost — long
     warm-ups are essential.
  4. Conv-phase variance is content-dependent, not state-dependent.
  5. tokio::join! polls cooperatively — spawn separate tasks for real
     concurrency between sync compute and async pump.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-04-27 09:13:23 -07:00