From 6d529e3f7917a7be7593c4e39ecd4edde6d80aba Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Sat, 27 Jun 2026 14:26:37 +0200 Subject: [PATCH] Fix: ctx-Budget-Kern nutzt sqrt-KV (konsistent mit estimate_memory_gb) max_ctx_in_budget schaetzte den KV-Cache LINEAR mit den Params, waehrend Footprint/Fit sqrt rechnen (kalibriert an Hermes-14B@128K~19GB). Folge: fuer grosse Modelle viel zu konservativ -> setup_aware_ctx schlug z.B. fuer heavy-122B 8192 vor, obwohl 32768 real passt. Jetzt exakte Inverse der Footprint-Formel (sqrt*0.84) -> heavy bekommt ~49k statt 8k, keine faelschlichen Reduktionen mehr. Co-Authored-By: Claude Opus 4.8 --- backend/services/fit.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/services/fit.py b/backend/services/fit.py index 8ddd44a..30fce7d 100644 --- a/backend/services/fit.py +++ b/backend/services/fit.py @@ -81,7 +81,9 @@ def max_ctx_in_budget(params_b: float, quant: str, budget_gb: float) -> int: ctx_budget = budget_gb - weights if ctx_budget <= 0: return 2048 - per_8k = (max(params_b, 7) / 7) * 0.8 + # KV pro 8k — EXAKTE Inverse von estimate_memory_gb (sqrt, kalibriert an + # Hermes-14B@128K≈19GB). Vorher linear → für große Modelle viel zu konservativ. + per_8k = (max(params_b, 7) / 7) ** 0.5 * 0.84 raw_ctx = (ctx_budget / per_8k) * 8192 best = _NICE_CTX[0] for c in _NICE_CTX: