Preserve Athena Qwen baseline and document ByteShape comparison
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Inferenzoptimierung: TODO und Messvertrag
|
||||
|
||||
Stand: 20. September 2026. Modellfamilie bleibt Qwen3.8-27B.
|
||||
|
||||
- [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.
|
||||
- [ ] **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.
|
||||
|
||||
## Verbindliche Kriterien
|
||||
|
||||
- 5080 zuerst ausnutzen, 3060 erst bei zusätzlichem Speicherbedarf. Ausschließlich Layer-Splitting; keine experimentelle Tensor-Parallelität.
|
||||
- Maximales **getestetes** Kontextfenster und nur hochgerechnete Grenzen getrennt nennen. Kontext umfasst Eingabe plus Ausgabe; Ausgaberreserve ausweisen.
|
||||
- Kleine VRAM-Reserve für Betriebs-/Rechenspitzen, keine absichtlichen OOM-Grenztests. Keine CPU-Auslagerung als vermeintlicher Single-GPU-Erfolg.
|
||||
- Vergleich mit identischer Laufzeit, KV-Quantisierung, MTP und Sampling. Ein Slot für den kontrollierten Modellvergleich; Produktionsprofil hat derzeit zwei Slots und Vision, deshalb getrennt ausweisen.
|
||||
- Text-only Single-GPU-Kapazität ist nicht automatisch die Kapazität mit Vision. TTS-Basislast auf der 3060 dokumentieren.
|
||||
- Prefill ohne Prompt-Cache messen, Decode bei kurzen und langen Eingaben. Cache-Treffer und wiederholte Zählfolgen nicht als allgemeine Geschwindigkeit verkaufen.
|
||||
- Identische Qualitätsaufgaben, identisches Reasoning-/Ausgabebudget; Deutsch, Logik, Code, evidenzbasiertes Arbeiten, Tool Calling und Long-Context-Recall. Kleine Tests können Qualitätsverluste entdecken, aber keine vollständige Gleichwertigkeit beweisen.
|
||||
- Keine Änderungen an Kernel, Treibern, Netzwerk, SSH oder Gateway. Bestehende Produktionscontainer und Images bleiben erhalten; nach Tests wiederherstellen. Isolierter Testcontainer mit Ressourcenlimits, Host-Gesundheit überwachen.
|
||||
|
||||
## Kandidat
|
||||
|
||||
- Quelle: https://huggingface.co/byteshape/Qwen3.8-27B-GGUF
|
||||
- Datei: `Qwen3.8-27B-IQ4_XS-3.84bpw.gguf`
|
||||
- Größe: 13,083,052,416 Bytes
|
||||
- SHA256 laut Hugging Face LFS: `89434f23dc89c5f990894e3fe9fdad19d88c370f0d3638a176f29933f218b78b`
|
||||
- Benchmarkwerte des Anbieters sind keine Athena-Messungen.
|
||||
|
||||
## Ergebnis und Wiederverwendung
|
||||
|
||||
[Messbericht](QWEN38_BYTESHAPE_AB_20260920.md): mehr Single-GPU-Kontext mit ByteShape, aber kein allgemeiner Geschwindigkeitsgewinn und keine belegte Qualitätsgleichheit. Produktivmodelle bleiben unverändert. Punkte 2–4 sind offen.
|
||||
|
||||
[Feste Qwen-Referenz](../benchmarks/athena-qwen38-reference-20260920/README.md) für alle weiteren Kandidaten verwenden; Qwen nicht automatisch neu testen.
|
||||
@@ -0,0 +1,197 @@
|
||||
# Qwen3.8-27B: ByteShape GPU-5 gegen Pure IQ4_XS auf Athena
|
||||
|
||||
Stand: 20. September 2026. Punkt 1 der Optimierungs-TODO.
|
||||
|
||||
## Entscheidung und Einordnung
|
||||
|
||||
ByteShape spart rund 1,34 GiB VRAM im identischen 32K-Ein-Karten-Test und
|
||||
ermöglicht dadurch mehr Textkontext auf der RTX 5080. Der direkte 32K-Vergleich
|
||||
zeigt jedoch niedrigere Prefill- und Ausgaberaten. Die Qualitätsstichprobe ist
|
||||
gemischt: bessere Ergebnisse in einem Code-Fehlerpfad, aber ein falscher
|
||||
Migrationsbeweis. Eine Aussage „gleiche Qualität bei höherem Tempo“ ist damit
|
||||
nicht belegt. Das bestehende Produktivmodell wird nicht ersetzt.
|
||||
|
||||
Der kontrollierte A/B-Vergleich nutzt Pure IQ4_XS als Referenz. Das vorhandene
|
||||
Fast-Profil verwendet die separate IQ4-MIX-Datei; dessen 76.800-Token-Kontext
|
||||
ist deshalb gesondert aufgeführt und kein Ergebnis der Pure-Quantisierung.
|
||||
|
||||
## Messbedingungen
|
||||
|
||||
- Athena: RTX 5080 (16.303 MiB gemeldet), RTX 3060 (12.288 MiB), unveränderte
|
||||
Treiber und unveränderte llama.cpp-Laufzeit 0.4.1 / b29c606.
|
||||
- Exaktes Image: `sha256:5e3c12c145b8045e5731b44b6b97033f24b327ae3d4a3fa85ecdd159cc844907`.
|
||||
- ByteShape: `Qwen3.8-27B-IQ4_XS-3.84bpw.gguf`, 13.083.052.416 Bytes,
|
||||
SHA256 `89434f23dc89c5f990894e3fe9fdad19d88c370f0d3638a176f29933f218b78b`.
|
||||
- Pure-Datei: 14.534.384.640 Bytes. Gleiche Modellarchitektur, gleiche
|
||||
Vokabular-/Merge-Tabellen und natives Kontextlimit 262.144.
|
||||
- Ein Slot, Text ohne Bildprojektor, vollständig GPU-offgeladene Modellschichten;
|
||||
kein CPU-Offload zur Vergrößerung des Kontextfensters, `--fit off`.
|
||||
- 5080 zuerst; für zwei GPUs ausschließlich Layer-Splitting. Das gleichnamige
|
||||
Parameterfeld `--tensor-split` enthält nur die Aufteilungsquote, nicht den
|
||||
experimentellen Tensor-Parallel-Modus.
|
||||
- Flash Attention, q4_0 für K/V, Batch 2048, Micro-Batch je Zeile 512/128/64;
|
||||
MTP3 für den direkten A/B-Test, MTP2 für beide Ultra-Fälle und IQ4-MIX/Fast.
|
||||
- Identisches Sampling: Temperatur 1, top-p .95, top-k 20, min-p 0, Seed 42 (Code-Durchsatz: 43).
|
||||
Kritische Qualitätswiederholungen: Seed 43. Das Produktiv-Serverdefault für
|
||||
min-p ist .05; hier sind die Arme untereinander kontrolliert, aber nicht
|
||||
jeder mögliche Clientrequest wird nachgestellt.
|
||||
- Prefill ohne Cache-Treffer (`cache_n=0`), gleiche synthetische Records und
|
||||
Aufgaben. Perf-Ausgaben haben feste 512/768-Token-Limits und bei beiden
|
||||
Modellen kein Thinking. Qualitätsaufgaben verwenden medium Reasoning.
|
||||
- TTS bleibt auf der 3060 resident, rund 4.647 MiB Grundlast. Es wird keine
|
||||
parallele Sprachgenerierung oder konkurrierende Chatlast erzeugt.
|
||||
|
||||
Speicherwerte sind alle zwei Sekunden gesampelte Spitzen, keine lückenlose
|
||||
Messung jeder kurzfristigen CUDA-Allokation. Erfolgreiches Laden wird von
|
||||
vollständiger Verarbeitung einer langen Eingabe getrennt. Die größten
|
||||
angegebenen Kontexte sind getestete Betriebspunkte mit Reserve; eine absolute
|
||||
Absturzgrenze wurde nicht gesucht. Kontext umfasst Eingabe **und** Ausgabe;
|
||||
Systemprompt, Tools und Chat-Template zählen zur Eingabe.
|
||||
|
||||
## Direkter Vergleich bei 32.768 Tokens Kontext
|
||||
|
||||
Ein Slot, nur RTX 5080, MTP3, Micro-Batch 512; gleiche Eingaben und Sampling. Mittelwerte der verfügbaren Wiederholungen.
|
||||
|
||||
| Messung | Pure | ByteShape | Änderung |
|
||||
|---|---:|---:|---:|
|
||||
| Prefill, 4.196 Eingabetokens (tok/s) | 2074.2 | 1951.0 | -5.9% |
|
||||
| Deutsche Erklärung (tok/s) | 85.8 | 70.6 | -17.7% |
|
||||
| Python-Code (tok/s) | 122.1 | 86.8 | -28.9% |
|
||||
|
||||
## Vollständig getestete Konfigurationen
|
||||
|
||||
Kontext ist Eingabe plus Ausgabe. Die Geschwindigkeit in dieser Tabelle gehört jeweils zur angegebenen tatsächlichen Eingabelänge; Zeilen unterschiedlicher Länge sind kein isolierter Quantisierungsvergleich. VRAM enthält auch residente Dienste (TTS auf der 3060).
|
||||
|
||||
| Fall | Kontext | Eingabe | Prefill tok/s | Ausgabe tok/s | 5080 MiB | 3060 MiB | Recall |
|
||||
|---|---:|---:|---:|---:|---:|---:|---|
|
||||
| byteshape-dual-262144-80-20 | 262144 | 261218 | 563.3 | 17.9 | 14622 | 11334 | 3/3 |
|
||||
| byteshape-dual-262144-86-14-validated | 262144 | 261218 | 590.2 | 19.6 | 15612 | 10346 | 3/3 |
|
||||
| byteshape-single-110592-ub128 | 110592 | 109666 | 1097.7 | 43.4 | 15666 | 4647 | 3/3 |
|
||||
| byteshape-single-32768 | 32768 | 24674 | 1857.2 | 67.7 | 13846 | 4647 | 3/3 |
|
||||
| byteshape-single-32768-repeat | 32768 | 4196 | 1953.6 | 73.2 | 13842 | 4647 | 3/3 |
|
||||
| byteshape-single-ub128-validated-104448 | 104448 | 103525 | 1119.7 | 48.1 | 15510 | 4647 | 3/3 |
|
||||
| mix-single-76800-ub64 | 76800 | 75874 | 1101.6 | 54.7 | 15832 | 4647 | 3/3 |
|
||||
| pure-dual-262144-80-20 | 262144 | 261218 | 682.3 | 19.0 | 15780 | 11148 | 3/3 |
|
||||
| pure-single-32768 | 32768 | 24674 | 1968.4 | 79.1 | 15220 | 4647 | 3/3 |
|
||||
| pure-single-32768-repeat | 32768 | 4196 | 2073.1 | 89.2 | 15220 | 4647 | 3/3 |
|
||||
| pure-single-57344 | 57344 | 56417 | 1681.0 | 74.6 | 15894 | 4647 | 3/3 |
|
||||
| pure-single-61440-ub128 | 61440 | 60517 | 1401.4 | 60.8 | 15772 | 4647 | 3/3 |
|
||||
| pure-single-ub128-validated-50176 | 50176 | 49251 | 1475.5 | 72.2 | 15488 | 4647 | 3/3 |
|
||||
|
||||
Die Kontextpiloten ohne lange Eingabe sind hier bewusst nicht als validierte Konfigurationen aufgeführt. Einzelne synthetische Recall-Aufgaben belegen keine allgemeine Langkontext-Intelligenz.
|
||||
|
||||
## Werden die Antworten schlechter?
|
||||
|
||||
Die kleine Stichprobe erlaubt keine globale Intelligenzbewertung. Sie zeigt
|
||||
konkrete Unterschiede und genügt **nicht** für eine Freigabe als qualitativ
|
||||
gleichwertiger Ersatz.
|
||||
|
||||
| Prüfung | Pure | ByteShape |
|
||||
|---|---|---|
|
||||
| Logikreihenfolge ACDB | richtig | richtig |
|
||||
| Nativer Tool-Aufruf | korrekt, server=alpha | korrekt, server=alpha |
|
||||
| Prompt Injection im Log | ignoriert | ignoriert |
|
||||
| Proxy-Diagnose | Kernhypothese richtig, unbelegte Zusatzdetails | Kernhypothese richtig, unbelegte Zusatzdetails |
|
||||
| Code: früher Fehler, späterer Erfolg | beide geprüften Antworten scheitern im Funktionstest | beide bestehen diesen Teiltest |
|
||||
| Migration mit 4K-Antwortbudget | keine sichtbare Antwort vor Limit | Antwort angefangen, Beweis nicht vollständig |
|
||||
| Migration mit 8K-Antwortbudget | richtiger erreichbarer Zustandszyklus; Tabellenbeschriftung mit Tippfehler | richtiges Endurteil, aber falscher Beweis durch doppelte RAM-Zählung auf dem Quellhost |
|
||||
| Home Assistant | aktuelles off erkannt, falsche Konfigurations-/Persistenzbehauptungen | aktuelles off erkannt, ebenfalls falsche Zusatzbehauptungen |
|
||||
|
||||
Beim Code ist „Teiltest bestanden“ keine Freigabe der gesamten Implementierung:
|
||||
ByteShape behandelt beispielsweise andere gleichzeitig abgeschlossene Fehler
|
||||
nicht zuverlässig vollständig. Der Testcode und die vollständigen Antworten
|
||||
sind im Experimentordner abgelegt.
|
||||
|
||||
Der Migrationsfehler ist konkret überprüfbar: Wird A zuerst von H1 nach H2
|
||||
verschoben, hält H1 währenddessen weiterhin **16 GB**, H2 **18 GB**. ByteShape
|
||||
behauptet **22 GB auf H1**, weil es die dort schon vorhandene VM nochmals
|
||||
hinzuzählt. Damit ist sein Beweis falsch, obwohl das Endergebnis „Migration
|
||||
unmöglich“ zufällig stimmt.
|
||||
|
||||
Bei Home Assistant ist `initial_state` maßgeblich für eine explizite
|
||||
Startvorgabe; ohne diese wird der vorherige Zustand wiederhergestellt. Die von
|
||||
beiden Modellen behaupteten allgemeinen `enabled`-Regeln sind kein belastbarer
|
||||
Beleg. Quelle: [Home-Assistant-Dokumentation](https://www.home-assistant.io/docs/automation/yaml/).
|
||||
|
||||
Die eingebetteten Chat-Templates sind nicht identisch. Für die Testeingaben
|
||||
waren die gerenderten Prompts in 36 geprüften Kombinationen identisch. Vor
|
||||
einem produktiven ByteShape-Wechsel müssten dennoch die bestehenden
|
||||
Anpassungen für Developer-/Systemrollen und Reasoning-Stufen erhalten bleiben.
|
||||
Bildeingaben wurden in diesem Textvergleich nicht neu bewertet.
|
||||
|
||||
## Abbruch, Rückfall und Grenzen
|
||||
|
||||
Ein ByteShape-Start mit 114.688 Kontext, Micro-Batch 512 und MTP3 scheiterte an
|
||||
einem zusätzlich benötigten 180-MiB-CUDA-Rechenpuffer. Der Prozess beendete sich,
|
||||
der Supervisor entfernte den Testcontainer und startete die vorherigen
|
||||
Produktionscontainer. Die reine Hochrechnung aus der gespeicherten Gewichts-
|
||||
und KV-Größe unterschätzte temporäre Startpuffer. Anschließend wurde mit
|
||||
kleinerer Micro-Batch und konservativen Kontextschritten weitergemessen.
|
||||
|
||||
Die 86:14-Aufteilung wurde nach erfolgreicher 49K-Probe bewusst während der
|
||||
großen Eingabe gestoppt, um den gemessenen Spielraum für 88:12 zu prüfen.
|
||||
Bei 88:12 belegte das Modell nach dem Laden tatsächlich 15.920 MiB auf der
|
||||
5080 (nur 383 MiB frei), mehr als aus der Schichtgrößen-Näherung erwartet.
|
||||
Die erste längere Anfrage scheiterte dann bei einer zusätzlichen
|
||||
Flash-Attention-CUDA-Allokation. Auch dieser Prozessabbruch wurde automatisch
|
||||
auf das bisherige Produktivprofil zurückgeführt.
|
||||
|
||||
Der gespeicherte Testtreiber prüft deshalb jetzt vor jeder Inferenz zusätzlich
|
||||
mindestens 512 MiB freien VRAM pro benutzter Karte; zwei bereits bewährte
|
||||
historische Fälle erlauben explizit 384 MiB. Der frühere 88:12-Fall würde damit
|
||||
vor der Inferenz abgewiesen. Die Prüfung ersetzt keinen echten Langkontexttest.
|
||||
Der unterbrochene 86:14-Zwischenlauf wird nicht als Erfolg gezählt; die
|
||||
vollständige Validierung erhält einen eigenen Ergebnisdatensatz.
|
||||
|
||||
Keine Änderung an Kernel, NVIDIA-Treiber, SSH, LAN, WireGuard oder Gateway.
|
||||
Der isolierte Container hat ein RAM-Limit ohne zusätzlichen Container-Swap;
|
||||
Temperatur und Host-RAM-Reserve werden überwacht. Software-Wiederherstellung
|
||||
kann einen echten Host-/Treiber-Hardlock nicht beheben; deshalb wurden keine
|
||||
experimentelle Tensor-Parallelität und keine absichtlichen OOM-Grenzreihen
|
||||
verwendet.
|
||||
|
||||
Ein Recall-Test mit drei Fakten in synthetischen Records ist keine allgemeine
|
||||
Prüfung semantischen Denkens über 262K Tokens. Zwei kurze Durchsatzläufe pro
|
||||
Quantisierung liefern eine brauchbare lokale Orientierung, aber keine
|
||||
statistische Garantie für beliebige Aufgaben oder parallele Nutzer.
|
||||
|
||||
## Quellen und Reproduktion
|
||||
|
||||
- [ByteShape-Modell](https://huggingface.co/byteshape/Qwen3.8-27B-GGUF)
|
||||
- [Anbieterbenchmarks](https://byteshape.com/blogs/Qwen3.8-27B/) – nicht mit
|
||||
Athena-Messwerten gleichgesetzt.
|
||||
- Konfigurationen, Testprogramme, Bewertungsregeln und Ergebnisse:
|
||||
`experiments/byteshape-20260920/` im Repository.
|
||||
- Vollständige Host-Telemetrie und Serverlogs:
|
||||
`/data/benchmarks/byteshape-20260920/` auf Athena.
|
||||
- Weitere Schritte: `docs/INFERENCE_OPTIMIZATION_TODO_20260920.md`.
|
||||
|
||||
## Abschluss und feste Referenz
|
||||
|
||||
Die vollständige ByteShape-Validierung mit 86:14 bestand die 261.218-Token-
|
||||
Eingabe: Prefill 590,2 tok/s, Ausgabe 19,6 tok/s, Recall 3/3. Die 5080 erreichte
|
||||
15.612 MiB, die 3060 einschließlich TTS 10.346 MiB. Gegen Pure 80:20 bei derselben
|
||||
Eingabe ist das Prefill rund 13,5 % langsamer, die Ausgabe rund 3,2 % schneller;
|
||||
das ist ein Vergleich zweier Gesamtprofile, kein isolierter Quantisierungseffekt.
|
||||
|
||||
Auf einer 5080 allein wurden Pure mit 61.440, das bisherige MIX/Fast mit 76.800
|
||||
und ByteShape mit 110.592 Gesamtkontext-Tokens erfolgreich geprüft. Bei 8.192
|
||||
reservierten Ausgabetokens bleiben ByteShape 102.400 für Eingabe inklusive
|
||||
Systemprompt, Tools und Template. Beide Pure/ByteShape erreichen mit zwei Karten
|
||||
den nativen Kontext 262.144; keine Kontextverlängerung darüber wurde geprüft.
|
||||
|
||||
Nach Abschluss liefen Medium, Router, Controller, Gateway und TTS gesund.
|
||||
Router readiness und eine minimale Modellantwort wurden geprüft; im Kerneljournal
|
||||
seit Beginn der Messreihe wurden keine Xid-, OOM-Kill-, Kernel-Panic- oder
|
||||
GPU-fallen-off-Meldungen gefunden. Die beiden CUDA-Allokationsfehler oben waren
|
||||
Fehler der Testprozesse und sind ausdrücklich Bestandteil des Berichts.
|
||||
|
||||
Die bisherigen Modelle und Produktivprofile bleiben aktiv. Punkt 1 ist für
|
||||
Text abgeschlossen; keine Freigabe für einen ByteShape-Produktivwechsel.
|
||||
|
||||
Die [feste Qwen-Referenz](../benchmarks/athena-qwen38-reference-20260920/README.md)
|
||||
sichert sieben Pure/MIX-Fälle inklusive Antworten, Messungen, Modellhashes,
|
||||
Umgebung und festen Requests. **Bei weiteren Kandidaten Qwen nicht erneut als
|
||||
Standard mitlaufen lassen.** Neue Ergebnisse mit diesem Paket vergleichen;
|
||||
relevante Änderungen transparent dokumentieren und nur bei begründetem Bedarf
|
||||
neu kalibrieren. Das Referenzpaket ist per SHA256 offline prüfbar.
|
||||
Reference in New Issue
Block a user