classify_refusal() separates refusal (head), preamble, appended disclaimer
(tail) and moralising insert (inline). Only the first three are meaningful, and
only where a prompt forbids them: a preamble on a coding answer is normal, so it
no longer counts as evasion.
Two sources of false positives had to be removed first, both found by checking
the detector's hits against the archive rather than trusting them:
* llamacppctl's own truncation warning on stderr had leaked into an archived
output and was read as a model disclaimer. It also inflated that run's word
count, so count_words() strips it too.
* An AI character saying "Bitte beachten Sie:" inside a dystopian story is
plot, not distancing. Quoted speech is removed before markers are matched.
run_prompt_suite.sh gains a CASES filter so a single prompt can be re-run.
Measured result, recorded in KI_TOOLS_PROFILES.md: across seven prose prompts
neither the abliterated model nor the aligned base model evaded once. On
literary prose the abliteration buys nothing measurable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
9.8 KiB
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
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:
- Die Karte des 27B empfiehlt selbst, dass 99,9 % der Nutzer die
Balanced-Variante nehmen sollten stattAggressive. Beide erreichen dieselbe Refusal-Rate;Balancedbietet zusätzlich stabileres Sampling für agentic coding, Tool-Use und Reasoning.Aggressivespart lediglich Vorreden. Aktuell sind beide lokalen HauhauCS-ModelleAggressive. - Die Behauptungen „lossless" und „zero capability loss" stammen vom Autor der Modellkarte. Abliteration kostet in aller Regel etwas Fähigkeit.
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):
- 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.
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 10000endeten schwere Aufgaben infinish_reason=length. Für Prosa/Reden/Dialog--max-tokens≥ 16000 wählen. --chatohne--streamläuft bei langem Output in den Read-Timeout. Immer--streamverwenden (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
- 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