Tuning: Prompt-Budget + cross_ref-Erweiterung heilt Fehlverweigerungen (D11)
- Ursache der 4 Fehlverweigerungen nach KV/RIS-Erweiterung: lange
KV-Chunks ueberlieferten num_ctx=16384 (bis 62,7 KB Prompt) — Ollama
trunciert den Systemprompt vorn, das Modell verliert die Zitierregeln
('Block-N'-Zitate statt IDs -> Regenerierung -> Verweigerung).
- Fix: num_ctx 32768; trim_results (max_context_chars=90.000, niedrig
gerankte Bloecke ganz weglassen statt truncieren, Mindestbestand 6);
cross_ref_expand 3 -> 6 (Top-3 sind oft Branchen-KV-Bloecke mit leeren
cross_refs - kuratierte Nachbarn kamen sonst nie nach).
- Eval: alle 4 Faelle geheilt, 10/10 Bestaetigungslaeufe OK.
Retrieval Recall@8 0,851 -> 0,946 (cross_ref-Extras bringen
Expected-IDs nach). Antworten: Zitier-Praezision 97,6 %, Verweigerung
97,6 % (>94,3 %-Gate), erwartete Quelle 83,8 -> 91,9 %, Latenz mean 33 s.
- Tests 49 -> 50 (trim_results); Reports lokal (data/eval-*).
This commit is contained in:
+9
-2
@@ -47,7 +47,10 @@ class Config:
|
||||
|
||||
# Generierung
|
||||
temperature: float = 0.1
|
||||
num_ctx: int = 16384
|
||||
num_ctx: int = 32768 # qwen3.8: 256k-faehig; 16k trunciert lange KV-Prompts
|
||||
# (KV-Cache @32k ~6-8 GB -> gesamt ~21 GB, Budget ok)
|
||||
max_context_chars: int = 90_000 # Budget fuer User-Content; niedrig gerankte
|
||||
# Bloecke werden weggelassen statt trunciert
|
||||
num_predict: int = 1024
|
||||
think: bool = False # Thinking per Request abschalten (Latenz)
|
||||
chat_timeout_s: float = 300.0
|
||||
@@ -59,7 +62,10 @@ class Config:
|
||||
# (KV/RIS-Erweiterung: Longtail-Spezialisten
|
||||
# liegen sonst außerhalb der Kandidatur)
|
||||
context_blocks: int = 8 # Kontext-Blöcke im Prompt
|
||||
cross_ref_expand: int = 3 # Top-Einträge, deren cross_refs ergänzt werden
|
||||
cross_ref_expand: int = 6 # Top-Eintraege, deren cross_refs ergaenzt
|
||||
# (KV/RIS-Erweiterung: die Top-3 sind oft
|
||||
# Branchen-KV-Bloecke mit leeren cross_refs —
|
||||
# kuratierte Nachbarn kommen sonst nie nach)
|
||||
cross_ref_max_extra: int = 6 # Obergrenze der Ergänzungen
|
||||
rrf_k: int = 20 # RRF-Konstante (erweiterter Korpus: Top-Ränge
|
||||
# müssen dominanter zählen)
|
||||
@@ -81,6 +87,7 @@ class Config:
|
||||
answer_model=_env_str("PV_ANSWER_MODEL", d.answer_model),
|
||||
temperature=_env_float("PV_TEMPERATURE", d.temperature),
|
||||
num_ctx=_env_int("PV_NUM_CTX", d.num_ctx),
|
||||
max_context_chars=_env_int("PV_MAX_CONTEXT_CHARS", d.max_context_chars),
|
||||
num_predict=_env_int("PV_NUM_PREDICT", d.num_predict),
|
||||
think=_env_bool("PV_THINK", d.think),
|
||||
chat_timeout_s=_env_float("PV_CHAT_TIMEOUT_S", d.chat_timeout_s),
|
||||
|
||||
Reference in New Issue
Block a user