llamacppctl/docs/KI_TOOLS_PROFILES.md
dschlueter bee6a71de0 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

8 KiB
Raw Blame History

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 (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

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

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 (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, 27B

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.

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):

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