Improvement of Qwen #140
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
thomas_knaus/RaceEngineer#140
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Vorschlag 1: Lokale Prompt- & Memory-Datenbank (Persistentes Fahrer-Gedächtnis)
Konzept:
Um sicherzustellen, dass Qwen bei jedem Programmstart sofort mit den gelernten Präferenzen und Anweisungen des Fahrers arbeitet, wird eine lokale Datenbank (z. B. SQLite) als Driver Memory
Store integriert.
Funktionsweise:
• Stamm-Präferenzen: Tonfall (kurz & knackig vs. detailliert), Maßeinheiten, bevorzugte Benachrichtigungs-Intervalle.
• Dynamische Regelsammlung: Gespeicherte Anweisungen des Fahrers (z. B. „Sag mir bei Regen sofort die Reifentemperaturen“ oder „Erwähne keine Rundenzeiten unter 1:30“).
• Session-Historie & Zusammenfassungen: Wichtige Erkenntnisse aus vergangenen Rennen (z. B. „Fahrer neigt in Kurve 4 zum Überhitzen der Vorderreifen“).
• Beim Start der App liest der PromptBuilder die aktiven Regeln und Profil-Daten aus der lokalen Datenbank.
• Der finale System-Prompt für Qwen wird dreistufig zusammengesetzt:
1. Basis-Instruktion: Die Kern-Identität des KI-Renningenieurs.
2. Fahrer-Spezifische Regeln: Alle aus der Datenbank geladenen Vorlieben und gelernten Verhaltensweisen.
3. Aktueller Telemetrie-Kontext: Der Live-Datenstrom des Fahrzeugs.
• Wenn der Fahrer im Funk neue Vorgaben macht (z. B. „Merke dir, dass ich bei 50% Resttreibstoff gewarnt werden will“), erkennt das System diesen Befehl und schreibt die neue Regel direkt
in die lokale Datenbank.
──────
Vorschlag 2: Fine-Tuning-Strategie für Qwen als Foundation Model
Konzept:
Um Qwen von einem allgemeinen Sprachmodell zu einem hochspezialisierten Motorsport- & Telemetrie-Ingenieur zu entwickeln, empfiehlt sich ein strukturierter QLoRA Fine-Tuning Prozess.
Stufen der Umsetzung:
Datensatz-Erstellung (Dataset Pipeline):
• Telemetrie-zu-Sprache Paare: Erstellung von Tausenden Trainingsbeispielen im Format: (Telemetrie-Snapshot + Fahrer-Frage) -> Perfekte Ingenieurs-Antwort.
• Synthetische & Echte Daten: Kombination aus realen Rennfunk-Transkripten, Telemetrie-Logs aus SimRacing-Sessions und synthetisch generierten Grenzbereich-Szenarien (z. B. plötzlicher
Regen, Reifenplatzer-Warnung, Safety-Car-Strategie).
QLoRA Fine-Tuning (Effizientes Adaptiv-Training):
• Anstatt das gesamte Modell neu zu trainieren, wird ein kleiner LoRA-Adapter (Low-Rank Adaptation) auf Basis von Qwen trainiert.
• Schwerpunkte des Trainings:
• Präzise Zahlenverarbeitung: Exakte Berechnung von Stint-Längen, Spritverbrauch pro Runde und Reifenabbau-Trends direkt aus Rohwerten.
• Cockpit-Tonalität: Kurze, prägnante Funk-Formulierungen ohne überflüssige Höflichkeitsfloskeln.
• Motorsport-Fachwissen: Tiefes Verständnis von Fahrzeugabstimmung, Oversteer/Understeer, Trail-Braking und Flaggen-Regeln.
Deployment & Lokale Inferenz:
• Kompaktes Adapter-Format: Der fertig trainierte LoRA-Adapter ist nur wenige Megabyte groß und kann zusammen mit dem Qwen-Basismodell im GGUF-Format über die lokale Inferenz-Engine (z. B.
llama.cpp oder candle) geladen werden.
• Backend-Updates: Neue Verbesserungen des Renningenieurs können als winziges Adapter-Update über das Backend an die Nutzer verteilt werden, ohne dass jedes Mal das gesamte 4GB–7GB
Basismodell neu heruntergeladen werden muss.
Die Lösung: Das „Post-Lap Behavioral Trace Digest“
Wir müssen nicht zum ineffizienten 2-Hz-Echtzeit-Push zurückkehren, um Verhaltensdaten zu erfassen. Die technisch und datenökonomisch weit überlegene Lösung ist ein räumlich komprimierter
Runden-Verhaltens-Digest (LapBehaviorDigest), der am Ende jeder Runde gesendet wird.
1. Wie sieht das Verhaltens-Paket (LapBehaviorDigest) aus?
Statt zeitbasierter Ticks (die bei 2 Hz viel zu ungenau für Bremsanalysen sind) wird die Runde in 100 bis 200 räumliche Wegpunkte (0,0 % bis 100,0 % Streckenfortschritt) unterteilt:
• Fahrverhalten-Traces:
• Gaspedal-Kurve (throttle): 0–100 % entlang der Runde.
• Bremspedal-Kurve (brake): 0–100 % (inkl. Trail-Braking-Profil).
• Lenkwinkel-Kurve (steering): Lenk-Unruhe & Korrekturen.
• Gang & Geschwindigkeit (gear, speed): Schaltpunkte & Apex-Speeds.
• Kontext- & Event-Verknüpfung:
• Welche Warnungen/Events wurden in dieser Runde von den lokalen Rust-Agents getriggert?
• Welcher Funkdialog hat während der Runde stattgefunden?
──────
2. Warum ist dieser Ansatz weit überlegen?
3. Wie nutzt das Backend-Foundation-Modell diese Daten?
Durch die Kombination aus räumlicher Telemetrie-Kurve + Agenten-Events + Funk-Historie kann das Backend-Modell folgende fortgeschrittene KI-Fähigkeiten entwickeln:
• Das Modell erkennt Muster: „Fahrer neigt in Kurve 3 zu abruptem Gasgeben (Snap Oversteer) und überhitzt dadurch die Hinterreifen.“
• Das Modell vergleicht die Bremskurve des Fahrers mit dem GoldenRecord und erkennt z. B. unzureichendes Trail-Braking in Haarnadelkurven.
• Da das Backend den Reifenverschleiß in Abhängigkeit vom aggressiven/sanften Fahrstil des Nutzers lernt, kann es extrem exakte Stint-Längen vorhersagen.