Was ist ein Decision Model?
Ein Decision Model ist im Herzen ein Klassifikator, dessen Klassen nicht bei der Geburt feststehen,
sondern mit jedem Request kommen. Es schreibt keinen Text, sondern gibt eine Verteilung zurück: ein
Forward-Pass, "output_tokens": 0.
Das Protokoll ist die System-One-/Jev-API /v1/systemone: ein state (Text, JSON, auf Wunsch
Bilder) und questions in drei Typen.
Table with columns: Typ, Was, Antwort| Typ | Was | Antwort |
|---|
noul | Ja/Nein-Aussage | noul: P(wahr) |
choice | eine aus N Optionen (Keys frei wählbar) | choice, probabilities |
score | geordnete Skala | erwarteter score, probabilities pro Stufe |
Technisch ist Josev-9B Qwen/Qwen3.5-9B (über
unsloth/Qwen3.5-9B) mit einem neuen
Clef-Joint-Schema-Head, der alle Optionen aller Fragen gemeinsam bewertet, trainiert in Unsloth
Studio. Das Repo-Layout entspricht Cloudflares Clef-Releases
(Cloudflare/clef-flash), inklusive des unveränderten
joint_schema_model.py. Josev lädt mit plain transformers, Unsloth ist nicht nötig.
Veröffentlicht von Mayflower GmbH. Nicht verbandelt mit
Cloudflare, Qwen oder Unsloth.
Benutzung
import sys from huggingface_hub import snapshot_download path = snapshot_download("mayflowergmbh/Josev-9B")sys.path.insert(0, path)from joint_schema_model import load_release_model, systemone model, processor = load_release_model(path, device="cuda") def josev(state, questions): return systemone(model, processor, {"model": "josev-9b", "state": state, "questions": questions})["answers"] josev( {"nachricht": "Meine neue Karte ist immer noch nicht da, dabei habe ich sie vor zwei Wochen bestellt."}, {"intent": {"type": "choice", "instructions": "Welches Anliegen hat der Bankkunde?", "criteria": {"card_arrival": "Karte noch nicht angekommen", "lost_or_stolen_card": "Karte verloren oder gestohlen", "card_not_working": "Karte funktioniert nicht"}}},)
Die Option-Keys sind frei wählbar, die Beschreibungen erklären sie. Ein neues Label braucht kein
Retraining, nur eine Zeile mehr in criteria. Weitere Beispiele mit echten Ausgaben stehen auf der
Model-Card von Josev-4B; die Requests
funktionieren unverändert mit Josev-9B.
Mit Unsloth oder llama.cpp
- Unsloth:
FastDecisionModel.from_pretrained("mayflowergmbh/Josev-9B") wendet zusätzlich die
Temperaturen pro Fragetyp aus unsloth_decision_config.json an (choice 1,15, score 0,91, noul 0,78).
Cloudflares Loader ignoriert die Datei; die globale Temperatur (1,08) ist bereits in die
Head-Gewichte eingebacken.
- llama.cpp / Ollama:
mayflowergmbh/Josev-9B-GGUF
(BF16, Q8_0, Q6_K, Q4_K_M), llama-server mit /v1/systemone.
Wie gut entscheidet Josev-9B?
Noch nicht vermessen. Die Zahlen auf der decisions-de-Validation werden hier nachgetragen.
Wie Josev-9B gebaut wurde
Table | |
|---|
| Basis | unsloth/Qwen3.5-9B, nach dem Training mit dem Head in bf16 gemergt |
| Head | neuer Clef-Joint-Schema-Head (Breite 1024, 2 Routing- + 4 Decoder-Layer, 16 Heads) |
| Daten | johannhartmann/decisions-de Version 2 (Commit f0758d3c), Config all, Split train (180.327 Zeilen) |
| Ablauf | 1 Epoche, 1.127 Steps (rechnerisch rund 160 Fälle pro Step) |
| Kalibrierung | Temperaturen pro Fragetyp, von Unsloth Studio nach dem Training gefittet |
| Hardware | 1 × RTX PRO 6000 Blackwell (Colab G4) |
Lizenz
Die Gewichte stehen wie das Basismodell unter Apache-2.0 (LICENSE). joint_schema_model.py ist
Cloudflares Apache-2.0-Referenzcode, unverändert.
Die Trainingsdaten behalten die Lizenzen ihrer Quellen (CC-BY, CC-BY-SA, MIT, Apache-2.0 u. a.; siehe
Dataset-Card). Darin stecken maschinell
übersetzte Moderationsdaten, Josev hat also auch anstößige Inhalte gesehen.