diag(bench): option .pte multi-contexte en premier (bench_llm_pte_first)

Trigger de diagnostic pour charger les .pte multi-contextes (8B/7B) en
premier dans un process frais. A servi à prouver que l'échec in-app des
gros .pte est un artefact du bench (2ᵉ .pte multi-contexte dans le même
process), PAS un problème d'artefact/version : 8B chargé en 1er = génère
12 tok/s in-app. Prod = 1 .pte/process (restart au switch) → 7B/8B OK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kazeia Team 2026-06-18 00:13:54 +02:00
parent 93a3953614
commit b11d8a96d4
1 changed files with 10 additions and 1 deletions

View File

@ -27,7 +27,16 @@ object BenchLlmHarness {
Log.i(TAG, "########## BENCH LLM (UnifiedLlmAdapter, refonte 2026-06-17) ##########")
// Modèles à tester : GGUF par défaut + tous les .pte présents sur disque.
val models = ModelRegistry.availableOnDisk()
// ORDRE DIAG (2026-06-18) : on charge les gros .pte multi-contextes (8B/7B) EN PREMIER,
// dans un process frais, pour isoler "contention in-process après modèles précédents"
// vs "limite in-app fondamentale". Trigger fichier bench_llm_pte_first pour activer.
val pteFirst = java.io.File(ctx.getExternalFilesDir(null), "bench_llm_pte_first").exists()
val models = ModelRegistry.availableOnDisk().let { all ->
if (pteFirst) all.sortedBy { m ->
when (m.id) { "qwen3-8b" -> 0; "qwen2.5-7b" -> 1; "qwen3-4b" -> 2; "guard4b" -> 3; else -> 9 }
} else all
}
if (pteFirst) Log.i(TAG, ">>> ORDRE DIAG : .pte multi-contexte EN PREMIER (process frais)")
if (models.isEmpty()) { Log.e(TAG, "aucun modèle sur disque (ni GGUF ni .pte)"); return@runBlocking }
for (m in models) {