mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 23:18:13 +02:00
Télémétrie : corrections de relecture — compaction aussi tolérante qu'avant, pas d'alerte de cache sur une API externe, seuil qui suit EXTRA_ARGS
La relecture du relevé par complétion a trouvé quatre écarts, tous d'affichage ou de robustesse ; rien ne touche aux requêtes ni au contexte. - Compaction : la réponse lue d'un bloc passait de Decoder à Unmarshal, plus strict (un octet parasite après le JSON faisait échouer une compaction qui passait). Retour au Decoder, et perfWire fait de même. - API externe : son cache suit ses propres règles, sans slot ni points de reprise à surveiller ici. Plus de ligne ambre « recalculés » pour elle ; le relevé reste dans l'anneau. - Seuil d'alerte : même priorité qu'au lancement — -cms d'EXTRA_ARGS, puis LLAMA_ARG_CHECKPOINT_MIN_SPACING_NT, puis CKPT_MIN_STEP ; -ub d'EXTRA_ARGS avant UBATCH. - UI : « recalculés après sous-agent, client /v1 » au lieu des identifiants internes (subagent, foreign). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
80b7793773
commit
18a723a671
6 files changed
+49
-12
No files matched your search
@@ -43,6 +43,8 @@ func TestPerfWireDecode(t *testing.T) {
|
||||
{"moteur muet", `{"usage":{"prompt_tokens":900}}`, nil, nil, nil},
|
||||
// Types de travers (fork, passerelle) : lu si c'est un nombre, sinon inconnu.
|
||||
{"types de travers", `{"timings":{"cache_n":"abc","draft_n":"12","draft_n_accepted":7.0}}`, nil, iptr(12), iptr(7)},
|
||||
// Octets parasites après la réponse (proxy) : la première valeur compte.
|
||||
{"octets parasites", `{"timings":{"cache_n":12}}` + "\nxyz", iptr(12), nil, nil},
|
||||
{"structure de travers", `{"timings":"nope","usage":{"prompt_tokens_details":{"cached_tokens":5.9}}}`, iptr(5), nil, nil},
|
||||
}
|
||||
eq := func(a, b *int) bool { return (a == nil) == (b == nil) && (a == nil || *a == *b) }
|
||||
@@ -268,12 +270,20 @@ func TestPerfLostAlert(t *testing.T) {
|
||||
{"espacement posé", map[string]string{"CKPT_MIN_STEP": "2048"}, 2560},
|
||||
{"espacement et micro-batch", map[string]string{"CKPT_MIN_STEP": "4096", "UBATCH": "1024"}, 5120},
|
||||
{"espacement illisible", map[string]string{"CKPT_MIN_STEP": "beaucoup"}, 1000},
|
||||
// Comme au lancement : EXTRA_ARGS l'emporte sur les clés du preset.
|
||||
{"-cms d'EXTRA_ARGS", map[string]string{"CKPT_MIN_STEP": "2048", "EXTRA_ARGS": "--checkpoint-min-step 8192 -ub 256"}, 8448},
|
||||
{"-ub d'EXTRA_ARGS seul", map[string]string{"CKPT_MIN_STEP": "2048", "UBATCH": "1024", "EXTRA_ARGS": "-ub=2048"}, 4096},
|
||||
}
|
||||
t.Setenv("LLAMA_ARG_CHECKPOINT_MIN_SPACING_NT", "")
|
||||
for _, c := range cases {
|
||||
if got := perfLostAlertAt(c.cfg); got != c.want {
|
||||
t.Errorf("%s : seuil %d, attendu %d", c.name, got, c.want)
|
||||
}
|
||||
}
|
||||
t.Setenv("LLAMA_ARG_CHECKPOINT_MIN_SPACING_NT", "3000")
|
||||
if got := perfLostAlertAt(map[string]string{"CKPT_MIN_STEP": "2048"}); got != 3512 {
|
||||
t.Errorf("LLAMA_ARG_CHECKPOINT_MIN_SPACING_NT ignorée : seuil %d", got)
|
||||
}
|
||||
if perfAlert(perfRec{Lost: iptr(900)}, 1000) || !perfAlert(perfRec{Lost: iptr(1500)}, 1000) {
|
||||
t.Fatal("seuil de perte")
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user