π¦ AI SOC β Laya β "the 300" & Power/Time Report
1 Β· Executive summary
- The 300 gate is passed. 561 raw / 452 unique real shadow decisions (selftests excluded, deduped by alert_id). The β₯300 gate for Phase 2 crossed at ~02:40 UTC, ~6 h before the planned 09:00 review.
- Quality holds where it matters: escalate-vs-ingest agreement 94.6% live (97.9% nightly). known_pattern confidence sits in a stable 0.68β0.74 band. response is the weak question (raw conf p50 0.04) β it stays in shadow until the Phase 4 finetune.
- Power story: decisions are already deterministic (Option B) + one laya forward pass β the GPU fleet on GPU host runs only to serve gemma turns (wazuh soc_decision p50 18.2 s, narrator/email ~44 turns/day). Moving soc_decision to laya unlocks β74% GPU energy; the cost is time in the llama wake cycle (β3 min degraded per wake) and the response-quality gap β not decision latency, where laya is 16Γ faster.
2 Β· The 300 β soak growth & gate crossing
Hourly bars = decisions logged that hour; green line = cumulative (raw, non-selftest, alert_id-bound). Alert rate is bursty (quiet 08:00β10:00, bursts 17:00β23:00 and 06:00β07:00) β the gate was sized β₯300 β 1 day of organic traffic, so this is one full soak day, not a full week.
3 Β· Architecture β where the decisions live now
4 Β· Latency β laya vs the LLM it replaces
Log scale. The interesting bar is the red 18.2 s soc_decision turn vs the green 1.1 s laya predict β 16Γ. The amber bar is the time cost of power saving: bringing llama back after an eco stop.
5 Β· Quality β agreement & evals
escalate is the only question with a live objective join (ingest incident rule; deterministic severity makes its "truth" free). Post-Option-B there are no per-alert LLM verdicts, so response/known_pattern are only evaluable against the historic 68-row set. Response verdict: keep shadowed β conf p50 0.04, and 115 of 443 auto_remediate predictions at that confidence must never gate anything.
6 Β· LLM volume β what actually burns the GPU
llama.cpp counters: prompt tokens went 67.7 k β 2.40 M and predicted 6.0 k β 60.2 k between Sep 26 17:03 and Sep 27 06:10 (β2.33 M prompt tokens in 13 h once the wazuh decision stream was fixed to 100%). That stream is exactly what Phase 3 moves to laya.
7 Β· Power saving at the cost of time
| Scenario | GPU energy / day | Ξ vs today | Time cost (the trade) |
|---|---|---|---|
| S0 β today: llama always-on (2Γ102.5 W measured, model resident) | 4.92 kWh | β | none |
| S1 β Phase 3: laya decides, llama loaded only for narrator/email/stig (~2 h/day) | 1.29 kWh | β74% | 0 per decision β laya is 16Γ faster (1.1 s vs 18.2 s) |
| S2 β full power-off 22:00β06:00 (today's switch: gateway+llama) | 3.60 kWh | β27% | watchdog silent 8 h; SOC UI down; no wake-on-alert |
| S3 β llama-only eco (gateway alive, llama stopped when idle) | 1.29 kWh | β74% | per wake: stop 60β90 s + load ~60 s + first turn 64 s cold (vs 2β12 s warm) β 3 min degraded window |
7.1 Β· Where power is traded for time β detail
| Improvement | Power saved | Cost in time | Measured |
|---|---|---|---|
| Option B: deterministic severity, no LLM per alert | removes ~480 GPU-turns/day | negative β ingest 4.7β1.65 s | β 2026-09-26 e639ba1 |
| Laya gated (known_pattern + escalate) | frees the gemma slot for narrator | 0 β 1.1 s vs 18.2 s per decision | β soak n=452u, 94.6% agreement |
| Phase 3: soc_decision β laya | ~2.33 M prompt tok/13 h off GPU | agreement cost only: 5.4% escalate disagreement vs deterministic rule; response stays gemma until Phase 4 | β counters: 67.7 kβ2.40 M prompt tok |
| Eco windows (llama on-demand) | ~3.6 kWh/day | wake cycle β 3 min; watchdog blind on llama only; missed alerts degrade to deterministic sev | est. from stop 60β90 s / load ~60 s / cold 64 s |
| laya on CPU (no GPU needed) | 31 GB VRAM freed | already the deployed path β 0.88β1.13 s on 6β8 threads | β control host+edge host |
7.2 Β· Measured power on GPU host (live, 2026-09-27 15:07 UTC)
- GPU0: 102.25 W / 180 W limit, 15 640 MiB used, util 36 % Β· GPU1: 102.96 W, 15 592 MiB, util 34 % β that's model loaded, mostly idle. Decode bursts push util higher; TG measured 10.8 t/s (31B, 2-GPU split).
- laya-serve (control host + edge host): CPU-only, 4.7 GB RAM each, 8/6 threads β combined energy is noise (<0.1 kWh/day) and requires zero GPU.
- Unloaded idle floor (2Γ ~20 W) is an estimate β typical for this class; confirm by a one-time stop/start cycle before scheduling eco windows.
8 Β· Gantt β done and next
9 Β· Risks & open items
- response not gateable β 115 auto_remediate predictions at conf β0.03; must stay shadowed until Phase 4 finetune. Auto-remediation confidence gate (β₯0.85) protects us either way.
- 5.4% escalate disagreement (β24/452) vs the deterministic rule β acceptable for gating known_pattern first; escalate gate threshold (noul) should be tuned on soak data during the threshold review.
- Eco windows need wake-on-event β a scheduled OFF with no wake path strands narrator/email; recommend llama-only eco (S3) + a wake hook, never the full power switch unattended (watchdog goes silent by design).
- Watchdog covers laya on both hosts + shadow-log staleness (>6 h = BROKEN) β stays authoritative during any power experiments.
- soc-triage agent context reset (hygiene) and the wazuh instance's ~3.8 k attempts/day audit noise remain hygiene items from Sep 26.
Sources: /opt/soc-openclaw/data/laya-shadow.jsonl (edge host, 15:11 UTC) Β· laya-agreement-latest.json (05:55 cron + fresh run 14:24) Β· nvidia-smi GPU host 15:07 UTC Β· llama.cpp counters evals/llm-volume.jsonl Β· laya-control/docs/REPORT-OPTION-*.md. Report file: laya-control/docs/REPORT-LAYA-300-POWER-20260927.html.