From de3f8fd7aa0e54b9f44f1e83b49e078a95373a77 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Sun, 20 Sep 2026 23:30:20 +0200 Subject: [PATCH] Consolidate Athena test history and final MTP2 production state --- ATHENA.md | 13 +- docs/ATHENA_SESSION_20260920.md | 92 ++++++++++++++ docs/INFERENCE_OPTIMIZATION_TODO_20260920.md | 6 +- docs/LIVE_STATE.md | 19 +-- docs/MEDIUM_MICROBATCH_20260920.md | 3 + docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md | 3 + docs/MEDIUM_MTP2_VALIDATION_20260920.md | 3 + docs/MEDIUM_SPLIT_MTP_20260920.md | 3 + docs/PROFILE_MTP2_ROLLOUT_20260920.md | 3 + .../production-adopted.json | 114 ++++++++++++++++++ .../restore-verification.json | 61 ++++++++++ 11 files changed, 309 insertions(+), 11 deletions(-) create mode 100644 docs/ATHENA_SESSION_20260920.md create mode 100644 experiments/medium-mtp2-validation-20260920/production-adopted.json create mode 100644 experiments/profile-mtp2-20260920/restore-verification.json diff --git a/ATHENA.md b/ATHENA.md index 82d8f7a..f0fa53d 100644 --- a/ATHENA.md +++ b/ATHENA.md @@ -142,8 +142,15 @@ veröffentlicht werden. Bei neuen Modelltests die [gesicherte Qwen-Referenz vom 20.09.2026](benchmarks/athena-qwen38-reference-20260920/README.md) verwenden. **Qwen nicht automatisch erneut benchmarken.** Das Paket enthält sieben Pure-/MIX-Fälle, Originalantworten, feste Requests, Modell-SHA256 und Laufzeit-/GPU-Konfiguration. Neue Kandidaten separat messen; notwendige Abweichungen dokumentieren. Nur bei begründetem Rekalibrierungsbedarf eine neue Referenzversion anlegen, bestehende Ergebnisse unverändert erhalten. -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. +## Abschlussstand 20.09.2026 -[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. +[Gesamte Test- und Änderungshistorie](docs/ATHENA_SESSION_20260920.md) mit +Einzelberichten, Rohdaten und Commit-Zuordnung. Aktuell Medium **MTP2 / Microbatch256**, +85:15, 160K gemeinsam für zwei Slots. Large **MTP2 / Microbatch256**; Fast, Ultra +und Uncensored hatten bereits MTP2. Modellgewichte unverändert. -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. +Medium256/MTP2 bestand sechs vollständige Qualitätsantworten, Tool-Call und103K- +Recall, zeigte aber auch dokumentierte Antwortfehler. Keine pauschale Qualitäts- +oder volle160K-/Vision-/Parallelitätsgarantie. Die Kombination512/MTP2 scheiterte +beim Warmup und wurde nicht übernommen. Frühere Berichte mit „512 wiederhergestellt“ +beschreiben den damaligen Zwischenstand, nicht die abschließende Produktion. diff --git a/docs/ATHENA_SESSION_20260920.md b/docs/ATHENA_SESSION_20260920.md new file mode 100644 index 0000000..08a7397 --- /dev/null +++ b/docs/ATHENA_SESSION_20260920.md @@ -0,0 +1,92 @@ +# Athena: Tests, Fehler, Änderungen und Abschluss am 20.09.2026 + +## Verifizierte Produktion am Ende der Sitzung + +| Profil | MTP | Microbatch | Kontext konfiguriert | Slots | Split 5080:3060 | Status beim Abgleich | +|---|---:|---:|---:|---:|---|---| +| Fast | 2 | 64 | 76800 | 1 | nur5080, Vision3060 | gestoppt | +| Medium | **2** | **256** | 160000 gemeinsam | 2 | 85:15 | aktiv, gesund | +| Large | **2** | 256 | 192000 | 1 | 86:14 | neu angelegt, nächster Profilwechsel | +| Ultra | 2 | 128 | 262144 | 1 | 80:20 | gestoppt | +| Uncensored | 2 | 256 | 80000 | 1 | 90:10 | gestoppt | + +Keine Modellgewichte oder Quantisierungen ersetzt. Medium und Large verwenden +weiterhin Pure IQ4_XS. Matrix/Compose-Defaults und tatsächliche Hostkonfiguration +sind zu unterscheiden: Mediums zwei Slots kommen aus der lokalen Konfiguration; +der portable Standard bleibt ein Slot. `MEDIUM_UBATCH_SIZE=256` wurde auf Athena +in `/etc/mike-ai/stack.env` gespeichert, ohne Secrets ins Git aufzunehmen. +Sicherung davor: `/etc/mike-ai/stack.env.before-medium-mtp2`. + +## Test- und Änderungshistorie + +| Arbeit | Ergebnis / Entscheidung | Bericht / Rohdaten | Commit | +|---|---|---|---| +| Router-Audit | Controller-Polling reduziert, Wartezeiten für Chats begrenzt, Smoke-Proben | [Audit](ROUTER_AUDIT_20260920.md) |6071b1a,82c5096| +| ByteShape gegen Pure/MIX | Mehr Single-GPU-Kontext, kein allgemeiner Tempo-/Qualitätsgewinn; Modelle beibehalten | [Vergleich](QWEN38_BYTESHAPE_AB_20260920.md), [feste Referenz](../benchmarks/athena-qwen38-reference-20260920/README.md) |980f339| +| DFlash2 Medium | Ursprüngliches Layout scheitert am Draft-VRAM | [Ersttest](DFLASH2_MEDIUM_QUICK_20260920.md) |3d59311| +| DFlash2 ein Slot | Draft5080 Gerätefehler; Draft3060 funktioniert, Deutsch37,8/Code75,5tok/s ohne klaren Gesamtnutzen | [Folgetests](DFLASH2_ONE_SLOT_20260920.md) |4007242| +| Effizienz / NVIDIA-NVFP4 | Offizielle Gewichte20,42GiB; Kapazitätsprüfung, kein NVFP4-Inferenztest; Pipeline-Rückfall gefunden | [Audit](ATHENA_EFFICIENCY_REVIEW_20260920.md) |2425c99| +| Medium Microbatch512/256 | 256 lädt, anfangs Schutzabbruch bei461MiB frei unter512MiB Grenze | [Ersttest](MEDIUM_MICROBATCH_20260920.md) |ba808e1| +| Reserve448 | Freigegebener256-Kurztest bestanden;24K-Prefill+7,1%, kurze Decodes fast gleich | [Folgetest](MEDIUM_MICROBATCH_RESERVE448_20260920.md), experiments/medium-microbatch-20260920 |c78a083| +| FLUX wiederholte Bilder | FP8-Konverter und Speicherlebenszyklus korrigiert; zwei Bilder nacheinander erfolgreich,67,883s insgesamt | [Reparatur](FLUX_REPEAT_FIX_20260920.md) |3cbcf41| +| Split/MTP | Vier Varianten;85:15/MTP2 bei256 interessant, Deutsch+10,3%, Code/24K etwa gleich,268MiB weniger Peak5080 | [Vergleich](MEDIUM_SPLIT_MTP_20260920.md), experiments/medium-split-mtp-20260920 |635b3c4| +| MTP2 Qualität/103K/Hardware | Sechs vollständige Antworten, korrekter Tool-Call,103K-Recall3/3; konkrete Antwortfehler dokumentiert | [Validierung](MEDIUM_MTP2_VALIDATION_20260920.md), experiments/medium-mtp2-validation-20260920 |9e836cf| +| Andere Profile | Fast/Ultra/Uncensored bereitsMTP2. Medium512/MTP2 Warmup-Abbruch. LargeMTP2 Kurztest erfolgreich und übernommen | [Profiltest](PROFILE_MTP2_ROLLOUT_20260920.md), experiments/profile-mtp2-20260920 |b352e29| +| Abschließende Medium-Übernahme | Auf Nutzerwunsch getestete Kombination256/MTP2 produktiv; Start, OK-Antwort und Router-readiness bestanden | [Übernahmebeleg](../experiments/medium-mtp2-validation-20260920/production-adopted.json) |fbe8c6f| + +Die Kurztests sind keine breite Wiederholung der eingefrorenen Qwen-Referenz. +Notwendige direkte Kontrollen für veränderte Laufzeitparameter sind separat +archiviert. Originalreferenz unverändert, für künftige Modellvergleiche wiederverwenden. + +## Aussagekräftigste Messwerte und Grenzen + +- Medium MTP2/256: 103525 Eingabetokens ohne Cache;1333,77tok/s Prefill und34,20tok/s + Decode für512 Ausgabetokens. Alle drei Fakten korrekt. Kein maximales160K-Fenster getestet. +- Qualität: Logik und Migrationsbeweis korrekt. Code übersieht Exceptions anderer + gleichzeitig fertiger Tasks; lokaler Gegenbeispieltest bestätigt dies. Diagnose + schließt transiente Fehler zu stark aus. Keine bewiesene Verschlechterung durch + MTP2, aber auch keine pauschale Qualitätsgleichheit. Vollständige Einzelantworten archiviert. +- LargeMTP2 gegenüberMTP3: Deutsch61,36/59,67, Code77,84/77,18, Prefill2016,76/1964,41, + Decode nach4196Tokens66,42/62,46tok/s. Je ein kurzer Lauf; Recall3/3 in beiden Armen. +- Temperaturtest:5080max79°C,3060max59°C;145 Samples im Zwei-Sekunden-Abstand, + keine aktive HW-/SW-Thermal-Drosselung beobachtet. Power-Cap zeitweise aktiv. +- PCIe unter Last:5080Gen4x16,3060Gen3x4, PHB-Verbindung. Linkbreite ist kein direkter + Nachweis der tatsächlich verlorenen Tokens/s. Keine Hardware-/BIOS-Änderung. +- Keine volle160K-/192K-, Vision- oder Parallelitätsqualifikation der neuen + Kombinationen. Antworttexte zwischen Varianten teils verschieden; kleine + Unterschiede und Einzelmessungen nicht als allgemeines Tempo-Versprechen verstehen. +- Reserve448MiB war eine Startprüfung für Experimente, keine NVIDIA-Speicherreservierung. + +## Abgeschnittene Antwort „Die“: Diagnose offen + +Um22:29:22MESZ wurde ein Request mit214012Tokens bei160000Kontext abgewiesen. +Um22:31:18 und22:31:38 endeten andere Requests technisch mitHTTP200 und2682 bzw851 +Ausgabetokens; kein protokollierter Streamabbruch. MTP-Akzeptanz etwa84% bzw65%. +Das belegt weder ein bestimmtes EOS-Token noch die Ursache der sichtbaren Kürzung. +Niedrigere Akzeptanz allein löst kein Endtoken aus. Clientantwort/finish_reason +fehlten; Unraid-SSH war nicht zugänglich. Keine vermeintliche Reparatur dafür +behauptet oder umgesetzt. Die angezeigten11,3K Tokens konnten aus mehreren +Aufrufen stammen; Zuordnung ohne Clientsitzungsdaten nicht abschließend bewiesen. + +## Betrieb, Rückfall und Git + +Isolierte Testcontainer mit Ressourcen-/Temperaturgrenzen und Wiederherstellung +verwendet. Erfolgreiche Abschlussprüfungen: Medium/Router/Controller gesund, +ModellantwortOK, Router-readiness. Gateway undTTS blieben erhalten. Kein Hostreboot, +keine Kernel-/Treiber-/Netzänderung. In den dokumentierten Prüfzeiträumen keine +erfassten Kernel-Panic-,Xid- oderOOM-Kill-Ereignisse. Containerinterne CUDA-Fehler +sind separat als fehlgeschlagene Versuche archiviert. + +Bei Bedarf nur Medium auf MTP3/512 zurückstellen, vorher laufende Requests auslaufen +lassen. Nicht ausschließlich MTP auf2 bei512 setzen: genau diese Kombination +scheiterte. Alter Bildworker als `mike-ai/image-worker:before-repeat-fix-20260920` +vorhanden. Kein automatischer Rückbau funktionierender Änderungen. + +Alle aufgeführten Commits wurden auf `main` nach +`https://git.casaderoll.de/michael/AI-Profile-Router` gepusht und per Git-Bundle +mit `/opt/mike-ai/stack` auf Athena synchronisiert. Bundles umgehen den dort nicht +zuverlässig erreichbaren Git-SSH-Port; Quellstände wurden fast-forward übernommen. +Secrets, Schlüssel, Nutzerchats und Modellgewichte sind nicht Teil dieser Ergänzung. + +Offen: umfassende Kontext-/Vision-/Parallelitätsprüfung, vollständige DFlash2- +Bewertung und ExLlamaV3/EXL3. Keine weiteren Tests automatisch gestartet/geplant. diff --git a/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md b/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md index 66f070b..5f1ce6a 100644 --- a/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md +++ b/docs/INFERENCE_OPTIMIZATION_TODO_20260920.md @@ -2,8 +2,12 @@ Stand: 20. September 2026. Modellfamilie bleibt Qwen3.8-27B. +**Aktueller Abschluss:** Medium MTP2/256 und Large MTP2 übernommen. +[Gesamthistorie und Grenzen](ATHENA_SESSION_20260920.md). Nachfolgende +Testabschnitte dokumentieren auch frühere Zwischenstände. + - [x] **1. Abgeschlossen (Textvergleich):** ByteShape ShapeLearn GPU-5 (IQ4_XS, 3.84 bpw) mit MTP gegen Pure IQ4_XS vergleichen. Zuerst RTX 5080 allein, maximal praktisch nutzbaren Kontext bestimmen; danach beide GPUs mit Vorrang für die 5080. Qualität, kaltes Prefill, Generierung, Kontext und VRAM dokumentieren. -- [ ] **2.** Beim besseren Kandidaten GPU-Verteilung und MTP-Parameter gezielt optimieren. +- [x] **2. Kurztest und selektive Übernahme abgeschlossen:** Pure beibehalten; Medium85:15/MTP2/256, Large86:14/MTP2/256. Volle Kontext-/Vision-/Parallelitätsqualifikation bleibt offen. - [ ] **3.** DFlash2 als separates Textprofil vergleichen, falls Speicher und verifizierte Laufzeitunterstützung ausreichen. - [ ] **4.** ExLlamaV3/EXL3 als alternative Laufzeit bewerten, einschließlich Funktionsgleichheit und Integrationsaufwand. diff --git a/docs/LIVE_STATE.md b/docs/LIVE_STATE.md index 33461ec..afec34f 100644 --- a/docs/LIVE_STATE.md +++ b/docs/LIVE_STATE.md @@ -5,6 +5,9 @@ Compose-Dateien, Git-Inhalten, Images, Health-Endpunkten und Backup-Timern. Containerzustände sind Momentaufnahmen; der Controller darf Profile danach umschalten. Es wurde für diesen Abgleich kein Dienst neu gestartet. +Aktueller Abschluss: [Test- und Änderungsübersicht](ATHENA_SESSION_20260920.md). +Die folgenden MTP-/Microbatch-Werte enthalten die abschließenden Übernahmen. + ## Laufzeit und Profile Athena: Debian 13, RTX 5080 (16 GB) und RTX 3060 (12 GB). Die fünf @@ -19,17 +22,17 @@ identisch. | Profil | Qwen3.8-27B-Variante | Kontext | Slots | Tensor-Split 5080:3060 | Vision-Projektor | MTP Draft | ubatch | |---|---|---:|---:|---|---|---:|---:| | Fast | IQ4-MIX | 76.800 | 1 | nur 5080 | 3060 | 2 | 64 | -| Medium | IQ4_XS Pure | 160.000 gemeinsam | 2 | 85:15 | 3060 | 3 | 512 | -| Large | IQ4_XS Pure | 192.000 | 1 | 86:14 | 3060 | 3 | 256 | +| Medium | IQ4_XS Pure | 160.000 gemeinsam | 2 | 85:15 | 3060 | 2 | 256 | +| Large | IQ4_XS Pure | 192.000 | 1 | 86:14 | 3060 | 2 | 256 | | Ultra | IQ4_XS Pure | 262.144 | 1 | 80:20 | keiner | 2 | 128 | | Uncensored | Abliterated Q4_K_M | 80.000 | 1 | 90:10 | 3060 | 2 | 256 | Tensor-Splits sind Startparameter, keine gemessenen VRAM-Anteile. Der Vision-Projektor liegt bei den vier Vision-Profilen auf GPU 1 (3060). -`beta1` steht in der Repository-Matrix, ist aber nicht installiert. Der -Router bietet nur die fünf installierten Profile an. Beim Abgleich am -20. September lief Medium seit rund 21 Stunden gesund mit zwei Slots; die vier -anderen Textprofile waren planmäßig gestoppt. Dashboard, Router, Controller, +Der Router bietet die fünf installierten Profile an. Beim abschließenden +Abgleich am 20. September lief Medium gesund mit MTP2, Microbatch256 und zwei +Slots. Large ist mit MTP2 neu angelegt und startet beim nächsten Profilwechsel; +die anderen Profile sind planmäßig gestoppt. Dashboard, Router, Controller, Whisper, TTS und Realtime-Voice waren ebenfalls gesund. Der frühere Vision-/CLIP-Absturz ist als historischer Befund erhalten, beschreibt aber nicht mehr den aktuellen Containerzustand. @@ -68,7 +71,9 @@ Die Funktionsänderungen sind in Commit `6071b1a` enthalten; anschließende Dokumentationskorrekturen ändern keine Container. Die früheren Live-Anpassungen an Compose, Dashboard und Voice-Bridge wurden bytegenau verglichen und in einem lokalen Sicherungscommit erhalten. Controller und Router wurden gezielt ersetzt; -Medium und Gateway behielten ihre ursprünglichen Startzeiten. +Zum damaligen Router-Audit behielten Medium und Gateway ihre Startzeiten. +Die späteren Modelltests und die Medium-Übernahme starteten Medium mehrfach neu; +der Gateway blieb unverändert. Die späteren Commits sind in der Abschlussübersicht verzeichnet. Messwerte, Prüfungen und Rückfallstand stehen im [Router-Audit](ROUTER_AUDIT_20260920.md). diff --git a/docs/MEDIUM_MICROBATCH_20260920.md b/docs/MEDIUM_MICROBATCH_20260920.md index 4e04c20..b340ec0 100644 --- a/docs/MEDIUM_MICROBATCH_20260920.md +++ b/docs/MEDIUM_MICROBATCH_20260920.md @@ -1,5 +1,8 @@ # Medium: Microbatch 512 gegen 256 — Kurztest +> Historischer Teststand. Danach wurde Medium auf MTP2/Microbatch256 und Large +> auf MTP2 übernommen: [aktueller Abschluss](ATHENA_SESSION_20260920.md). + 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 diff --git a/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md b/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md index 23ca292..eb1ed2f 100644 --- a/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md +++ b/docs/MEDIUM_MICROBATCH_RESERVE448_20260920.md @@ -1,5 +1,8 @@ # Medium Microbatch 256: Kurztest mit reduzierter Reserve +> Historischer Teststand. Danach wurde Medium auf MTP2/Microbatch256 und Large +> auf MTP2 übernommen: [aktueller Abschluss](ATHENA_SESSION_20260920.md). + 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. diff --git a/docs/MEDIUM_MTP2_VALIDATION_20260920.md b/docs/MEDIUM_MTP2_VALIDATION_20260920.md index 1f79f43..cda13aa 100644 --- a/docs/MEDIUM_MTP2_VALIDATION_20260920.md +++ b/docs/MEDIUM_MTP2_VALIDATION_20260920.md @@ -1,5 +1,8 @@ # MTP2/85:15/Microbatch256: Qualität, Langkontext und Hardware +> Historischer Teststand. Danach wurde Medium auf MTP2/Microbatch256 und Large +> auf MTP2 übernommen: [aktueller Abschluss](ATHENA_SESSION_20260920.md). + 20.09.2026. Pure IQ4_XS, Kontext160000, zwei Slots, Vision geladen, TTS resident. Sechs ausgewählte Qualitätsaufgaben mit Reasoning medium, Seed42, Budget8192; ein Tool-Call und eine kalte Langkontextanfrage. Kein breiter neuer Baseline-Lauf. diff --git a/docs/MEDIUM_SPLIT_MTP_20260920.md b/docs/MEDIUM_SPLIT_MTP_20260920.md index 690d102..1e4d90b 100644 --- a/docs/MEDIUM_SPLIT_MTP_20260920.md +++ b/docs/MEDIUM_SPLIT_MTP_20260920.md @@ -1,5 +1,8 @@ # Medium: GPU-Split und MTP – Kurzvergleich 20.09.2026 +> Historischer Teststand. Danach wurde Medium auf MTP2/Microbatch256 und Large +> auf MTP2 übernommen: [aktueller Abschluss](ATHENA_SESSION_20260920.md). + Vier isolierte Läufe mit Pure IQ4_XS, 160.000 konfigurierten Kontexttokens, zwei Slots, Vision geladen, TTS auf der 3060, Microbatch 256. Produktionsprofil nachher unverändert wiederhergestellt (85:15, MTP3, Microbatch512). diff --git a/docs/PROFILE_MTP2_ROLLOUT_20260920.md b/docs/PROFILE_MTP2_ROLLOUT_20260920.md index ff780b8..b27e573 100644 --- a/docs/PROFILE_MTP2_ROLLOUT_20260920.md +++ b/docs/PROFILE_MTP2_ROLLOUT_20260920.md @@ -1,5 +1,8 @@ # Selektive MTP2-Übernahme +> Historischer Teststand. Danach wurde Medium auf MTP2/Microbatch256 und Large +> auf MTP2 übernommen: [aktueller Abschluss](ATHENA_SESSION_20260920.md). + 20.09.2026. Fast, Ultra und Uncensored verwenden bereits MTP2 (Containerargumente geprüft, nicht neu gebenchmarkt). Medium und Large verwenden vorher MTP3. diff --git a/experiments/medium-mtp2-validation-20260920/production-adopted.json b/experiments/medium-mtp2-validation-20260920/production-adopted.json new file mode 100644 index 0000000..d749b28 --- /dev/null +++ b/experiments/medium-mtp2-validation-20260920/production-adopted.json @@ -0,0 +1,114 @@ +{ + "args": [ + "--model", + "/models/qwen3.8-27b-iq4-xs-pure/qwen3.8-27b-IQ4_XS-pure.gguf", + "--mmproj", + "/models/qwen/mmproj-BF16.gguf", + "--mmproj-offload", + "--mmproj-device", + "CUDA1", + "--alias", + "qwen-medium", + "--ctx-size", + "160000", + "--flash-attn", + "on", + "--cache-type-k", + "q4_0", + "--cache-type-v", + "q4_0", + "--cache-prompt", + "--cache-ram", + "32768", + "--threads", + "6", + "--threads-batch", + "6", + "--batch-size", + "2048", + "--ubatch-size", + "256", + "--parallel", + "2", + "--kv-unified", + "--jinja", + "--reasoning", + "auto", + "--reasoning-preserve", + "--host", + "0.0.0.0", + "--port", + "8080", + "--metrics", + "--fit", + "off", + "--n-gpu-layers", + "all", + "--load-mode", + "none", + "--no-ui", + "--temperature", + "1.0", + "--top-p", + "0.95", + "--top-k", + "20", + "--device", + "CUDA0,CUDA1", + "--main-gpu", + "0", + "--split-mode", + "layer", + "--tensor-split", + "85,15", + "--spec-type", + "draft-mtp", + "--spec-draft-n-max", + "2", + "--spec-draft-type-k", + "f16", + "--spec-draft-type-v", + "f16", + "--spec-draft-p-min", + "0.05" + ], + "smoke": { + "choices": [ + { + "finish_reason": "stop", + "index": 0, + "message": { + "role": "assistant", + "content": "OK" + } + } + ], + "created": 1789939528, + "model": "qwen-medium", + "system_fingerprint": "b10964-b29c606e2", + "object": "chat.completion", + "usage": { + "completion_tokens": 2, + "prompt_tokens": 19, + "total_tokens": 21, + "prompt_tokens_details": { + "cached_tokens": 0 + } + }, + "id": "chatcmpl-PAF96fKOq1RJLre26QZBbmTRrk5mcFBi", + "timings": { + "cache_n": 0, + "prompt_n": 19, + "prompt_ms": 774.188, + "prompt_per_token_ms": 40.746736842105264, + "prompt_per_second": 24.54184254987161, + "predicted_n": 2, + "predicted_ms": 287.02, + "predicted_per_token_ms": 287.02, + "predicted_per_second": 3.4840777646157064, + "draft_n": 2, + "draft_n_accepted": 2 + } + }, + "time": 1789939528.283845 +} \ No newline at end of file diff --git a/experiments/profile-mtp2-20260920/restore-verification.json b/experiments/profile-mtp2-20260920/restore-verification.json new file mode 100644 index 0000000..a605d6e --- /dev/null +++ b/experiments/profile-mtp2-20260920/restore-verification.json @@ -0,0 +1,61 @@ +{ + "checked_at": 1789937953.3488333, + "uptime": "22:59:13 up 3 days, 11:54, 1 user, load average: 0.51, 0.48, 0.68", + "containers": { + "mike-ai-llama-medium": { + "running": true, + "health": "healthy", + "image": "sha256:5e3c12c145b8045e5731b44b6b97033f24b327ae3d4a3fa85ecdd159cc844907", + "started": "2026-09-20T20:58:18.091639472Z" + }, + "mike-ai-router": { + "running": true, + "health": "healthy", + "image": "sha256:0448758bec6968b29263bcac0f8b4682c6d3029d626f7c12334698c11ef096bb", + "started": "2026-09-20T20:58:28.524893655Z" + }, + "mike-ai-profile-controller": { + "running": true, + "health": "healthy", + "image": "sha256:a5f156d94c4921e671fafa524cf9c0fe91e1cbec0113c1f19c136204d63f243f", + "started": "2026-09-20T20:58:28.376269054Z" + }, + "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-20T20:16:34.144444642Z" + } + }, + "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, 10918 MiB, 12288 MiB, 43\nNVIDIA GeForce RTX 5080, 15714 MiB, 16303 MiB, 46", + "disk": "Filesystem Size Used Avail Use% Mounted on\n/dev/nvme0n1p2 868G 187G 637G 23% /\n/dev/nvme1n1p1 916G 822G 49G 95% /data" +}