diff --git a/ATHENA.md b/ATHENA.md index 1cfbacc..82d8f7a 100644 --- a/ATHENA.md +++ b/ATHENA.md @@ -145,3 +145,5 @@ Bei neuen Modelltests die [gesicherte Qwen-Referenz vom 20.09.2026](benchmarks/a Abschluss des 20.09.: [Effizienz-/NVFP4-Prüfung](docs/ATHENA_EFFICIENCY_REVIEW_20260920.md). Pure/MIX bleiben produktiv; Medium startet nach abgefangenem GPU-Pufferfehler ohne Pipeline-Parallelisierung. Bei künftigem Tuning zuerst Speicherreserve und tatsächlichen Durchsatz prüfen. Native NVIDIA-NVFP4-Gewichte wurden nur auf Kapazität geprüft, nicht benchmarked. [Microbatch-Folgetest](docs/MEDIUM_MICROBATCH_20260920.md): 256 lädt, unterschreitet aber die VRAM-Reserve (461 MiB frei auf 5080); keine Inferenzmessung mit 256. Produktiv bleibt 512, kein belegter Gewinn und keine automatische Folgeänderung. + +Aktualisierung: [256 mit explizit genehmigter Reserve448](docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md) besteht Kurztests. +7,1 % Prefill bei24K, kurze Decodes nahezu gleich; noch keine allgemeine Betriebsfreigabe. Produktiv unverändert512. diff --git a/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md b/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md index 6963066..d43db57 100644 --- a/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md +++ b/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md @@ -45,3 +45,5 @@ Ein-Slot-Folgeversuche: [Bericht](DFLASH2_ONE_SLOT_20260920.md). Draft auf 5080 ## Medium-Microbatch-Kurztest [512 gegen 256](MEDIUM_MICROBATCH_20260920.md): 256 lädt ohne vorherige Pufferfehler-Meldung, lässt aber nur 461 MiB auf der 5080 frei. Schutzabbruch vor Inferenz; kein Geschwindigkeitsgewinn belegt. 512 wiederhergestellt. Für einen eventuellen Folgetest zuerst mehr 5080-Reserve durch angepassten Split schaffen. + +Nach expliziter Freigabe: [Reserve448-Folgetest](MEDIUM_MICROBATCH_RESERVE448_20260920.md) bestanden. 256 liefert +7,1 % Prefill im einmaligen 24K-Kurzvergleich; kurze Decodes nahezu gleich. Alle drei Fakten korrekt, keine volle Langkontext-/Vision-/Parallelitätsfreigabe. Produktiv weiter512. diff --git a/docs/MEDIUM_MICROBATCH_20260920.md b/docs/MEDIUM_MICROBATCH_20260920.md index edcd569..4e04c20 100644 --- a/docs/MEDIUM_MICROBATCH_20260920.md +++ b/docs/MEDIUM_MICROBATCH_20260920.md @@ -1,5 +1,7 @@ # Medium: Microbatch 512 gegen 256 — Kurztest +Nachtrag: [256 mit gesenkter Startreserve erfolgreich getestet](MEDIUM_MICROBATCH_RESERVE448_20260920.md). Der folgende Bericht dokumentiert den vorherigen Schutzabbruch. + 20.09.2026. **256 lädt ohne den bisherigen Pufferfehler, hat aber zu wenig Reserve für die festgelegte Testfreigabe. Deshalb keine produktive Umstellung und noch kein Geschwindigkeitsvergleich für 256.** diff --git a/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md b/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md new file mode 100644 index 0000000..23ca292 --- /dev/null +++ b/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md @@ -0,0 +1,52 @@ +# Medium Microbatch 256: Kurztest mit reduzierter Reserve + +20.09.2026. **Nach ausdrücklicher Freigabe wurde die Startreserve ausschließlich +für diesen Test von 512 auf 448 MiB gesenkt. Microbatch 256 besteht die kurzen +Inferenztests.** Die übrigen Schutzmaßnahmen blieben aktiv. + +Nach Laden waren 461 MiB auf der 5080 frei. Die neue Grenze erlaubt diesen Fall; +es ist eine Freigabeprüfung nach dem Laden, kein dynamisch reservierter +Speicherblock. Während der Messung sank der gesampelte freie Speicher auf 443 MiB. +Keine weitere Absenkung war nötig. Andere Testkonfigurationen behalten ihre +bisherigen Grenzen; am NVIDIA-Treiber oder am Produktivprofil wurde nichts geändert. + +## Vergleich zum unmittelbar vorherigen 512-Kontrolllauf + +| Aufgabe | Microbatch 512 | Microbatch 256 | Änderung | +|---|---:|---:|---:| +| Deutsch, 768 Ausgabetokens | 57,2 tok/s | 57,5 tok/s | +0,6 % | +| Code, 768 Ausgabetokens | 74,9 tok/s | 75,5 tok/s | +0,7 % | +| Prefill, 24.674 Eingabetokens | 1.782,0 tok/s | 1.909,2 tok/s | +7,1 % | +| Ausgabe nach 24K, 512 Tokens | 54,8 tok/s | 60,0 tok/s | +9,6 % | +| Synthetischer Fakten-Recall | 3/3 | 3/3 | gleich | + +Die kurzen Deutsch-/Code-Ausgabetexte sind zwischen den Armen identisch. +Die Recall-Aufgabe hat denselben korrekten Faktenfund, aber unterschiedlichen +anschließenden Erklärungstext. Insbesondere der 9,6-%-Decode-Unterschied ist daher +kein isolierter Vergleich identischer Tokenfolgen. Ein Lauf je Konfiguration; +kleine Unterschiede können Messschwankungen sein. Keine allgemeine Qualitäts- +oder Geschwindigkeitsgarantie. + +Pure, 160K Kontext, zwei Slots, 85:15-Split, Vision geladen, MTP3 und alle übrigen +Modellargumente blieben wie beim 512-Kontrolllauf. Die Reserve selbst verändert +die Inferenzberechnung nicht. Die maximal tatsächlich geprüfte Eingabe war 24.674 +Tokens; keine 160K- oder Bildanfrage und keine parallele Last getestet. + +Die bisherige Pufferfehler-/Pipeline-Rückfallmeldung erschien bei 256 nicht. +Das belegt einen Start ohne diesen Rückfall, aber nicht allein eine bestimmte +Pipeline-Auslastung. Peak: 5080 bei 15.860 MiB, 3060 einschließlich TTS bei 10.648 MiB. + +## Einordnung und Abschluss + +Die vorherige 512-MiB-Grenze war für diesen Kurztest zu konservativ: 461 MiB freie +Startreserve reichten tatsächlich für alle drei Aufgaben. Daraus folgt nicht, +dass diese Reserve für jede 160K-/Vision-/Mehrnutzerlast genügt. + +**256 ist ein sinnvoller Kandidat für besseres Prefill, kein großer Decode-Sprung.** +Für eine dauerhafte Umstellung fehlen noch passende Langkontext-/Vision- und +Parallelitätsprüfungen; diese wurden heute nicht automatisch angeschlossen. + +Das bisherige Medium mit Microbatch 512 ist wiederhergestellt. Medium, Router, +Controller, Gateway und TTS gesund; readiness und minimale Modellantwort geprüft. +Keine erfassten Kernel-Panic-, Xid-, OOM-Kill- oder GPU-fallen-off-Meldungen seit +Testbeginn. Rohdaten und Prüfbelege unter `experiments/medium-microbatch-20260920/`. diff --git a/experiments/medium-microbatch-20260920/README.md b/experiments/medium-microbatch-20260920/README.md index e3be9da..93f88d6 100644 --- a/experiments/medium-microbatch-20260920/README.md +++ b/experiments/medium-microbatch-20260920/README.md @@ -33,3 +33,11 @@ Judge walltime, prompt/decode rates, VRAM and the three-needle recall together. only461MiB free on5080, below the512MiB guard. No256 inference was executed. Args differ only in --ubatch-size. Production512 restored and checked. See ../../docs/MEDIUM_MICROBATCH_20260920.md. Do not claim a256 speedup or quality result. + +## Explicitly authorized lower-reserve follow-up + +reserve448.json lowers only this256 case to448MiB loaded free-memory minimum. +It passed all three short probes: +7.1% prefill, short decodes essentially tied. +Recorded peak free memory443MiB; the guard is a startup threshold, not a reserved +allocation or runtime minimum. No full160K/vision/concurrency qualification. +Production512 restored. See reserve448-comparison.json and reserve448-restore.json. diff --git a/experiments/medium-microbatch-20260920/reserve448-comparison.json b/experiments/medium-microbatch-20260920/reserve448-comparison.json new file mode 100644 index 0000000..cd67a86 --- /dev/null +++ b/experiments/medium-microbatch-20260920/reserve448-comparison.json @@ -0,0 +1,30 @@ +[ + { + "metric": "Deutsch", + "ub512": 57.15738655264799, + "ub256": 57.501411483474186, + "percent_change": 0.6018905894329407, + "identical_output_text": true + }, + { + "metric": "Code", + "ub512": 74.94202496673532, + "ub256": 75.46417601433642, + "percent_change": 0.6967399771127925, + "identical_output_text": true + }, + { + "metric": "Prefill24674", + "ub512": 1782.0307827509184, + "ub256": 1909.171738718156, + "percent_change": 7.134610535232744, + "identical_output_text": false + }, + { + "metric": "DecodeAfter24674", + "ub512": 54.7725897809568, + "ub256": 60.0406255316709, + "percent_change": 9.61801472558026, + "identical_output_text": false + } +] diff --git a/experiments/medium-microbatch-20260920/reserve448-restore.json b/experiments/medium-microbatch-20260920/reserve448-restore.json new file mode 100644 index 0000000..7306edb --- /dev/null +++ b/experiments/medium-microbatch-20260920/reserve448-restore.json @@ -0,0 +1,61 @@ +{ + "checked_at": 1789932566.9422781, + "uptime": "21:29:26 up 3 days, 10:24, 1 user, load average: 0.70, 0.42, 0.44", + "containers": { + "mike-ai-llama-medium": { + "running": true, + "health": "healthy", + "image": "sha256:5e3c12c145b8045e5731b44b6b97033f24b327ae3d4a3fa85ecdd159cc844907", + "started": "2026-09-20T19:28:57.246456642Z" + }, + "mike-ai-router": { + "running": true, + "health": "healthy", + "image": "sha256:0448758bec6968b29263bcac0f8b4682c6d3029d626f7c12334698c11ef096bb", + "started": "2026-09-20T19:29:07.653040573Z" + }, + "mike-ai-profile-controller": { + "running": true, + "health": "healthy", + "image": "sha256:a5f156d94c4921e671fafa524cf9c0fe91e1cbec0113c1f19c136204d63f243f", + "started": "2026-09-20T19:29:07.536349965Z" + }, + "mike-ai-wireguard-gateway": { + "running": true, + "health": "healthy", + "image": "sha256:0d24e93c85a1c420b52b17666ede5fbd4672d92ab8dc28ea4ac5ba144ebc41d0", + "started": "2026-09-17T09:05:07.164533904Z" + }, + "mike-ai-qwen3-tts": { + "running": true, + "health": "healthy", + "image": "sha256:b363a01d08b1bbecbfc3ca6f585368fae2cfdc591f9ecca6643738369f9a9d98", + "started": "2026-09-19T13:47:00.227813668Z" + } + }, + "router": { + "/health": { + "status": "ok", + "router": "alive" + }, + "/ready": { + "status": "ok", + "router": "alive", + "upstream": "ready" + } + }, + "smoke": { + "content": "OK", + "usage": { + "completion_tokens": 2, + "prompt_tokens": 19, + "total_tokens": 21, + "prompt_tokens_details": { + "cached_tokens": 0 + } + } + }, + "kernel_errors": [], + "gpu": "name, memory.used [MiB], memory.total [MiB], temperature.gpu\nNVIDIA GeForce RTX 3060, 10920 MiB, 12288 MiB, 45\nNVIDIA GeForce RTX 5080, 15714 MiB, 16303 MiB, 49", + "disk": "Filesystem Size Used Avail Use% Mounted on\n/dev/nvme0n1p2 868G 187G 637G 23% /\n/dev/nvme1n1p1 916G 821G 49G 95% /data" +} diff --git a/experiments/medium-microbatch-20260920/reserve448.json b/experiments/medium-microbatch-20260920/reserve448.json new file mode 100644 index 0000000..0d58701 --- /dev/null +++ b/experiments/medium-microbatch-20260920/reserve448.json @@ -0,0 +1,17 @@ +[ + { + "label": "medium-ub256-reserve448", + "model": "pure", + "ctx": 160000, + "parallel": 2, + "single": false, + "split": "85,15", + "ubatch": 256, + "mtp": 3, + "vision": true, + "prompts": [ + 24576 + ], + "minimum_headroom_mib": 448 + } +] diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/config.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/config.json.gz new file mode 100644 index 0000000..f1ba9e2 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/config.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/gpu.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/gpu.json.gz new file mode 100644 index 0000000..b646d96 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/gpu.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/loaded.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/loaded.json.gz new file mode 100644 index 0000000..ceccbe5 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/loaded.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/partial.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/partial.json.gz new file mode 100644 index 0000000..293e2a9 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/partial.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/result.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/result.json.gz new file mode 100644 index 0000000..17219f0 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/result.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server-args.json.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server-args.json.gz new file mode 100644 index 0000000..3e920d8 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server-args.json.gz differ diff --git a/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server.log.gz b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server.log.gz new file mode 100644 index 0000000..07220e4 Binary files /dev/null and b/experiments/medium-microbatch-20260920/results/medium-ub256-reserve448/server.log.gz differ