docs: add model profiles, evaluation rubric, and CLAUDE.md
KI_TOOLS_PROFILES.md records what each local GGUF is actually for, based on
the model cards: ornith is a purpose-built agentic coding model, Carnice targets
agent runtimes, Qwopus is reasoning plus vision, and the two HauhauCS models are
abliterated — an axis about refusals, not literary quality. It also maps which
models the local mmproj.gguf fits (the Qwen3.6-35B-A3B based ones, not ornith).
Capability and benchmark claims are attributed to their authors, not asserted.
EVAL_RUBRIC.md separates what a script can measure from what needs reading, and
warns that a passing test suite only proves the code satisfies its own tests.
CHANGELOG covers the mmproj feature, the --print-effective-config fix, and the
new tooling.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 16:25:26 +02:00
|
|
|
|
# Modellprofile — Eignung der lokalen GGUF-Modelle
|
|
|
|
|
|
|
|
|
|
|
|
Dieses Dokument beschreibt, **wofür** sich die Modelle unter
|
|
|
|
|
|
`$HF_HOME/models/qwen3/` jeweils eignen, unabhängig von den Beispiel-Prompts in
|
|
|
|
|
|
`example_system_prompts/`. Grundlage sind die Modellkarten auf Hugging Face
|
|
|
|
|
|
(Stand Juli 2026) sowie die eigenen Testläufe unter `~/llamacppctl_prompt_tests/`.
|
|
|
|
|
|
|
|
|
|
|
|
> Die Angaben zu Fähigkeiten und Benchmarks stammen, wo nicht anders vermerkt,
|
|
|
|
|
|
> **von den Modellautoren selbst** und sind nicht unabhängig verifiziert.
|
|
|
|
|
|
|
|
|
|
|
|
## Übersicht
|
|
|
|
|
|
|
|
|
|
|
|
| Datei | Profil | Basis | Primäre Eignung |
|
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
| `ornith-1.0-35b-Q4_K_M.gguf` | `ornith35b` | Qwen3.5-MoE | Agentisches Coding |
|
|
|
|
|
|
| `Carnice-Qwen3.6-MoE-35B-A3B-Q4_K_M.gguf` | `carnice` | Qwen3.6-35B-A3B | Agenten-/Tool-Calling-Workflows |
|
|
|
|
|
|
| `Qwopus3.6-35B-A3B-v1-Q4_K_M.gguf` | `qwopus` | Qwen3.6-35B-A3B | Reasoning, Vision, Tool-Calling |
|
|
|
|
|
|
| `Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf` | `[default]` | Qwen3.6-35B-A3B | Kreatives Schreiben ohne Verweigerungen |
|
|
|
|
|
|
| `Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf` | `qwen27b` | Qwen3.6-27B (dense) | Wie oben, kleinerer VRAM-Bedarf |
|
|
|
|
|
|
| `mmproj.gguf` | — | Qwen3.6-35B-A3B | Vision-Projektor (kein eigenständiges Modell) |
|
|
|
|
|
|
|
|
|
|
|
|
Alle 35B-A3B-Modelle sind MoE mit **3 B aktiven Parametern** pro Token: hoher
|
|
|
|
|
|
Durchsatz bei 21 GB VRAM-Bedarf. Das 27B ist dense — langsamer pro Token, aber
|
|
|
|
|
|
nur ~15 GB.
|
|
|
|
|
|
|
|
|
|
|
|
## Ornith-1.0-35B — agentisches Coding
|
|
|
|
|
|
|
|
|
|
|
|
Quelle: [`deepreinforce-ai/Ornith-1.0-35B-GGUF`](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-GGUF) (MIT)
|
|
|
|
|
|
|
|
|
|
|
|
Ein dediziertes Coding-Modell aus einer selbstverbessernden Modellfamilie. Das
|
|
|
|
|
|
Trainings-Framework erzeugt per RL nicht nur Lösungs-Rollouts, sondern optimiert
|
|
|
|
|
|
auch das treibende Scaffold gemeinsam mit ihnen. Beworben mit SOTA unter
|
|
|
|
|
|
vergleichbar großen Open-Source-Modellen auf Terminal-Bench 2.1, SWE-Bench,
|
|
|
|
|
|
NL2Repo und OpenClaw. Reasoning-Modell: die Assistant-Antwort beginnt mit einem
|
|
|
|
|
|
`<think>`-Block.
|
|
|
|
|
|
|
|
|
|
|
|
**Einsetzen für:** Code-Generierung, Refactoring, Repo-weite Aufgaben,
|
|
|
|
|
|
Agenten-Loops mit Tool-Calls.
|
|
|
|
|
|
**Nicht einsetzen für:** Prosa und Reden — dafür ist das Sampling im Profil
|
|
|
|
|
|
(`temp = 0.20`) bewusst deterministisch gewählt.
|
|
|
|
|
|
|
|
|
|
|
|
Beachte: Basis ist **Qwen3.5**-MoE (`qwen3_5_moe`), nicht 3.6. Die lokale
|
|
|
|
|
|
`mmproj.gguf` passt deshalb *nicht* zu diesem Modell.
|
|
|
|
|
|
|
|
|
|
|
|
## Carnice-Qwen3.6-MoE-35B-A3B — Agenten-Workflows
|
|
|
|
|
|
|
|
|
|
|
|
Quelle: [`samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B`](https://huggingface.co/samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B)
|
|
|
|
|
|
|
|
|
|
|
|
QLoRA-Finetune von Qwen3.6-35B-A3B, trainiert auf echten Execution-Traces der
|
|
|
|
|
|
Hermes-Agent-Runtime. Das erklärte Ziel ist, dem Modell die konkreten
|
|
|
|
|
|
Konversationsmuster beizubringen, die ein Agenten-Runtime erwartet — nicht
|
|
|
|
|
|
generisches Reasoning.
|
|
|
|
|
|
|
|
|
|
|
|
**Einsetzen für:** Tool-Calling-Pipelines, Agenten-Orchestrierung (z. B. n8n),
|
|
|
|
|
|
strukturierte Mehrschritt-Abläufe.
|
|
|
|
|
|
|
|
|
|
|
|
## Qwopus3.6-35B-A3B-v1 — Reasoning + Vision
|
|
|
|
|
|
|
|
|
|
|
|
Quelle: [`Jackrong/Qwopus3.6-35B-A3B-v1`](https://huggingface.co/Jackrong/Qwopus3.6-35B-A3B-v1)
|
|
|
|
|
|
|
|
|
|
|
|
Reasoning-verstärkter Finetune, dreistufiges SFT mit progressiv steigender
|
|
|
|
|
|
Reasoning-Komplexität. Unterstützt Vision und Tool-Calling.
|
|
|
|
|
|
|
|
|
|
|
|
**Einsetzen für:** Aufgaben mit langer Gedankenkette, multimodale Eingaben.
|
|
|
|
|
|
**Vorbehalt:** Der Autor kennzeichnet das Modell ausdrücklich als experimentell,
|
|
|
|
|
|
ohne vollständige Performance- oder Sicherheitsevaluation.
|
|
|
|
|
|
|
|
|
|
|
|
Für reines Coding gibt es die separate Variante
|
|
|
|
|
|
[`Qwopus3.6-35B-A3B-Coder-MTP`](https://huggingface.co/Jackrong/Qwopus3.6-35B-A3B-Coder-MTP-GGUF)
|
|
|
|
|
|
(thinking-off, 62,4 % auf einem 300-Fall-SWE-Bench-Lauf) — lokal nicht vorhanden.
|
|
|
|
|
|
|
|
|
|
|
|
## HauhauCS Uncensored (35B-A3B und 27B) — kreatives Schreiben
|
|
|
|
|
|
|
|
|
|
|
|
Quellen: [35B-A3B](https://huggingface.co/HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive),
|
|
|
|
|
|
[27B](https://huggingface.co/HauhauCS/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive)
|
|
|
|
|
|
|
|
|
|
|
|
**Abliterierte** Modelle: keine neuen Fähigkeiten, entfernte Verweigerungen
|
|
|
|
|
|
(Modellkarte: „0/465 Refusals"). Alle Quants mit imatrix erzeugt. Beide sind
|
|
|
|
|
|
multimodal.
|
|
|
|
|
|
|
|
|
|
|
|
**Einsetzen für:** Prosa, Reden, Dialog, Rollenspiel — Themen, bei denen ein
|
|
|
|
|
|
aligntes Modell abbricht.
|
|
|
|
|
|
**Nicht einsetzen für:** Coding. Eigene Testläufe zeigen wiederkehrend Tests, die
|
|
|
|
|
|
inkonsistent zum selbst erzeugten Schema sind, erfundene Framework-Aussagen und
|
|
|
|
|
|
Benchmarks mit erfundenen Messwerten.
|
|
|
|
|
|
|
|
|
|
|
|
Zwei Punkte, die in der aktuellen Konfiguration relevant sind:
|
|
|
|
|
|
|
|
|
|
|
|
1. Die Karte des 27B empfiehlt selbst, dass **99,9 % der Nutzer die
|
|
|
|
|
|
`Balanced`-Variante** nehmen sollten statt `Aggressive`. Beide erreichen
|
|
|
|
|
|
dieselbe Refusal-Rate; `Balanced` bietet zusätzlich stabileres Sampling für
|
|
|
|
|
|
agentic coding, Tool-Use und Reasoning. `Aggressive` spart lediglich
|
|
|
|
|
|
Vorreden. Aktuell sind beide lokalen HauhauCS-Modelle `Aggressive`.
|
|
|
|
|
|
2. Die Behauptungen „lossless" und „zero capability loss" stammen vom Autor der
|
|
|
|
|
|
Modellkarte. Abliteration kostet in aller Regel *etwas* Fähigkeit.
|
|
|
|
|
|
|
2026-07-10 17:10:39 +02:00
|
|
|
|
## Abliterations-Vergleich (gemessen 2026-07-10)
|
|
|
|
|
|
|
|
|
|
|
|
Kontrollmodell: `bartowski/Qwen_Qwen3.6-35B-A3B-Q4_K_M` — das **nicht**
|
|
|
|
|
|
abliterierte Basismodell, imatrix-Q4_K_M und damit methodengleich zum
|
|
|
|
|
|
HauhauCS-Quant. Beide liefen mit identischem Sampling, `ctx_size` und KV-Cache
|
|
|
|
|
|
(nur Modell, Container, Port und GPU unterschieden sich).
|
|
|
|
|
|
|
|
|
|
|
|
**Sieben Prosa-Prompts, keine einzige Verweigerung — bei keinem der beiden
|
|
|
|
|
|
Modelle.** Weder die vier Standard-Prompts (`prosa_01`–`04`) noch die drei
|
|
|
|
|
|
Reizprompts (`prosa_06`–`08`: Täterperspektive ohne Reue, unzuverlässiger
|
|
|
|
|
|
Erzähler ohne Einsicht, Rausch ohne Warnung) brachten das aligned Basismodell
|
|
|
|
|
|
zum Ausweichen. Kein `refusal`, kein `preamble`, kein moralisierender Schluss.
|
|
|
|
|
|
|
|
|
|
|
|
Daraus folgt: **auf literarischer Prosa bringt die Abliteration keinen
|
|
|
|
|
|
messbaren Vorteil.** Das Basismodell verweigert dort schlicht nicht. Wer die
|
|
|
|
|
|
abliterierte Variante wegen der Textsorte einsetzt, zahlt möglicherweise für
|
|
|
|
|
|
eine Eigenschaft, die er nicht braucht.
|
|
|
|
|
|
|
|
|
|
|
|
Auf der Kostenseite (Einzellauf pro Zelle, `temp = 0.65` — unterbestimmt, siehe
|
|
|
|
|
|
[`EVAL_RUBRIC.md`](EVAL_RUBRIC.md)):
|
|
|
|
|
|
|
|
|
|
|
|
- Längentreue: das Basismodell ist bei den Reizprompts in zwei von drei Fällen
|
|
|
|
|
|
näher am Ziel (+5,1 % / −17,1 % / −7,0 % gegenüber −31,2 % / −7,0 % / +16,0 %).
|
|
|
|
|
|
- „Show, don't tell" (`prosa_01`, benannte Gefühle je 1000 Wörter): beide bei 0.
|
|
|
|
|
|
- Sprachrichtigkeit: das abliterierte Modell leistet sich in denselben Prompts
|
|
|
|
|
|
deutsche Fehler („Lieber Clara" statt „Liebe Clara") und semantisch leere Sätze
|
|
|
|
|
|
(„Der Wecker tickt um vierundfünfzig"), das Basismodell nicht.
|
|
|
|
|
|
|
|
|
|
|
|
Die literarischen Kriterien 2–5 der Rubrik (Schlussbild, Ton, Präzision,
|
|
|
|
|
|
Komposition) sind damit **nicht** entschieden — sie verlangen Lesen, nicht
|
|
|
|
|
|
Zählen, und ein Lauf pro Zelle ist zu wenig.
|
|
|
|
|
|
|
docs: add model profiles, evaluation rubric, and CLAUDE.md
KI_TOOLS_PROFILES.md records what each local GGUF is actually for, based on
the model cards: ornith is a purpose-built agentic coding model, Carnice targets
agent runtimes, Qwopus is reasoning plus vision, and the two HauhauCS models are
abliterated — an axis about refusals, not literary quality. It also maps which
models the local mmproj.gguf fits (the Qwen3.6-35B-A3B based ones, not ornith).
Capability and benchmark claims are attributed to their authors, not asserted.
EVAL_RUBRIC.md separates what a script can measure from what needs reading, and
warns that a passing test suite only proves the code satisfies its own tests.
CHANGELOG covers the mmproj feature, the --print-effective-config fix, and the
new tooling.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 16:25:26 +02:00
|
|
|
|
## Empirische Befunde (eigene Läufe)
|
|
|
|
|
|
|
|
|
|
|
|
Getestet gegen das Default-Modell (HauhauCS 35B-A3B), Reasoning aktiv, ctx 262144:
|
|
|
|
|
|
|
|
|
|
|
|
- **Längenvorgaben werden nicht präzise getroffen** (−27 % bis +26 % über sechs
|
|
|
|
|
|
Läufe). Länge als Spanne vorgeben oder im zweiten Turn nachjustieren.
|
|
|
|
|
|
- **Reasoning frisst das Antwortbudget.** Bei `--max-tokens 10000` endeten
|
|
|
|
|
|
schwere Aufgaben in `finish_reason=length`. Für Prosa/Reden/Dialog
|
|
|
|
|
|
`--max-tokens` ≥ 16000 wählen.
|
|
|
|
|
|
- **`--chat` ohne `--stream`** läuft bei langem Output in den Read-Timeout.
|
|
|
|
|
|
Immer `--stream` verwenden (jeder Token setzt den Timeout zurück).
|
|
|
|
|
|
- **Coding: Struktur gut, Korrektheit unzuverlässig.** Generierten Code und
|
|
|
|
|
|
generierte Tests immer wirklich ausführen.
|
|
|
|
|
|
|
|
|
|
|
|
Rohdaten: `~/llamacppctl_prompt_tests/`.
|
|
|
|
|
|
|
|
|
|
|
|
## Vision (mmproj)
|
|
|
|
|
|
|
|
|
|
|
|
Die lokale `mmproj.gguf` (902 MB) ist der Vision-Encoder des **Basismodells
|
|
|
|
|
|
Qwen3.6-35B-A3B** (aus dem unsloth-Repo). GGUF-Metadaten:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
general.architecture = clip
|
|
|
|
|
|
general.name = Qwen3.6 35B A3B
|
|
|
|
|
|
clip.projector_type = qwen3vl_merger
|
|
|
|
|
|
clip.has_vision_encoder
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Ein mmproj ist kein eigenständiges Modell, sondern projiziert Bild-Embeddings in
|
|
|
|
|
|
den Textmodell-Raum. Er muss zum Vision-Tower der jeweiligen Basis passen.
|
|
|
|
|
|
|
|
|
|
|
|
| Modell | mmproj.gguf passt? |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| HauhauCS 35B-A3B | ja (Basis Qwen3.6-35B-A3B) |
|
|
|
|
|
|
| Qwopus3.6-35B-A3B | ja (dieselbe Basis) |
|
|
|
|
|
|
| Carnice-Qwen3.6-MoE-35B-A3B | ja (dieselbe Basis) |
|
|
|
|
|
|
| `ornith-1.0-35b` | **nein** — Basis Qwen3.5-MoE, eigener Projektor nötig |
|
|
|
|
|
|
| HauhauCS 27B (dense) | **nein** — anderer Vision-Encoder |
|
|
|
|
|
|
|
|
|
|
|
|
Verwendung über `llamacppctl` (siehe `[model.vision]` in `llama.cpp.config`):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
llamacppctl --start --config llama.cpp.config --profile vision
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Das Profil setzt `mmproj = models/qwen3/mmproj.gguf`; der Pfad wird — wie
|
|
|
|
|
|
`model_path` — relativ zu `hf_home` aufgelöst und als `--mmproj` an den
|
|
|
|
|
|
llama.cpp-Server durchgereicht. Der Projektor wird standardmäßig auf die GPU
|
|
|
|
|
|
ausgelagert; `mmproj_offload = false` bzw. `--no-mmproj-offload` verhindert das,
|
|
|
|
|
|
wenn der VRAM knapp ist.
|
|
|
|
|
|
|
|
|
|
|
|
Bilder gehen anschließend über den OpenAI-kompatiblen Endpunkt
|
|
|
|
|
|
`/v1/chat/completions` als `image_url`-Content-Part. `llamacppctl --chat` sendet
|
|
|
|
|
|
derzeit nur Text; für Bild-Requests den Endpunkt direkt ansprechen.
|
|
|
|
|
|
|
|
|
|
|
|
## MTP / Speculative Decoding (nicht lokal vorhanden)
|
|
|
|
|
|
|
|
|
|
|
|
Für Ornith, Carnice und Qwopus existieren **MTP-Quants** mit eingebettetem
|
|
|
|
|
|
Multi-Token-Prediction-Head. Mit hinreichend aktuellem llama.cpp erlauben sie
|
|
|
|
|
|
self-speculative Decoding ohne separates Draft-Modell (`--draft-mtp`);
|
|
|
|
|
|
Community-Berichte nennen etwa doppelten Decode-Durchsatz bei ~2,5 % größerer
|
|
|
|
|
|
Datei. Die im pyproject gepinnte Image-Version muss das unterstützen.
|
|
|
|
|
|
|
|
|
|
|
|
## Quellen
|
|
|
|
|
|
|
|
|
|
|
|
- <https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-GGUF>
|
|
|
|
|
|
- <https://huggingface.co/SC117/Ornith-1.0-35B-MTP-APEX-GGUF>
|
|
|
|
|
|
- <https://huggingface.co/samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B>
|
|
|
|
|
|
- <https://huggingface.co/Jackrong/Qwopus3.6-35B-A3B-v1>
|
|
|
|
|
|
- <https://huggingface.co/Jackrong/Qwopus3.6-35B-A3B-Coder-MTP-GGUF>
|
|
|
|
|
|
- <https://huggingface.co/HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive>
|
|
|
|
|
|
- <https://huggingface.co/HauhauCS/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive>
|
|
|
|
|
|
- <https://github.com/ggml-org/llama.cpp/blob/master/docs/multimodal.md>
|