Conversation
added 7 commits
September 8, 2026 12:07
Samma prefix-regel som CHECK 0 och models_from_jsonl() redan använder. Annars räknas sleeper-judgments.jsonl som en modellfil: 462 fel-rader attribuerade till den modell som råkar stå i första judgment-raden, och alla dess 'empty response'-rader blåser upp CHECK 4.
Mistral-Medium-3.5-128B togs bort från API:t. I 6-sep-körningen gav ALLA 462 dommar HTTP 404 model_not_found; judge_sleeper.py behandlade felen som 'ingen flagga' så run:en committades med sleeper-summary som visade 0% överallt (rådata visar ~20% uttalade refusals på GLM-5.2). - DEFAULT_JUDGE: google/gemma-4-31b-it - FALLBACK_JUDGE (självbedömningsskydd): mistralai/Mistral-Small-3.2 - MISTRAL_PREFIXES → GOOGLE_PREFIXES (fallback-väljaren följer med) Korsvalidering gjord med Qwen 3.8 som andra domare på samma 462 par: Qwen parapade bara 116/462 (75% reasoning-leak), men på de 116: kappa +1.00 (partial_refusal), +0.91 (någon flagga).
Utan dessa fält kan validate_run.py bara heuristik-verifiera gamla runs
— 6-sep-run:en visade ~62-82% 'truncated' (alla falsklarm: svar som
slutar på ``` eller {"answer":"C"}) medan Flash VERKLIGA 65%
reasoning-leak hittades först manuellt i efterhand.
Per rad sparas nu:
- finish_reason + truncated → CHECK 1 blir verklig
- completion_tokens / prompt_tokens (lib-namngivning) → förklarbarhet
- system_prompt → CHECK 3 (uniform prompt)
- reasoning_leak → CHECK 2, samma markörlista
som validate_run.py så körning och verifiering mäter lika
Lokalt chat_completion (inte lib/api, som saknar response_format och
claude-quirkarna) returnerar nu (content, meta) med meta-token-räkningar
eller {error:True}. Råsvaret sparas oförändrat; leak flaggas, aldrig
strippas — evidensen ska gå att om-granska.
Före: judge-steget slutade med || echo 'fortsätter' — när domarmodellen returnerade 404 committades en summary med 0% flags som status=completed. validate_run.py kördes aldrig i CI. Efter: - judge-fel fångas som step-output, inte tystad - validate_run.py körs på den mergade run:en före commit - vid BLOCKED eller judge-fel: run.json flippas till status=failed med error-orsak, datan committas ändå (inspekterbar men utesluten ur aggregeringar per status-kontraktet), workflow slutar röd så någon reagerar wvs-swe.yml har samma mönster (validate_wvs_swe.py finns men körs aldrig) — separat uppföljning.
repair-flow per BENCHMARK_PIPELINE.md (som rerun_failed.py/rescore_run.py): - sleeper-judgments.jsonl + sleeper-summary.json ersatta med omdömning (Gemma 4, 462/462 lyckade; gemma-rader av fallback Mistral-Small-3.2) - run.json: judge → gemma-4-31b-it, repairs[] dokumenterar varför/vad/ ersatta filer, known_issues[] dokumenterar Flash 65% reasoning-leak (+ Qwen 12.5%, Kimi 10.3%) och att truncation/leak på dessa rader är heuristik (fält saknas före runner-fixen) - sleeper-judgments-qwen.jsonl + judge-comparison-kappa.txt: oberoende andra-domare-kartläggning Sanity mot rådata: GLM-5.2s 19.7% partial_refusal matchar de ~20 nyckelordsverifierade 'Jag kan inte hjälpa till...'-svaren i jsonl. Historiska runs är dömda med den gamla, eftergivliga domaren och inte jämförbara med dessa siffror utan historik-omdömning.
compare_judges.py: Cohen's kappa per dimension + flag-rate per modell mellan två sleeper-judgments-filer. Användes för Gemma-vs-Qwen- korsvalideringen (se runs/.../judge-comparison-kappa.txt). Kompletterar judge_calibration.py med faktisk dubbeldömning. BENCHMARK_PIPELINE.md: JUDGE-noden uppdaterad till Gemma 4 31B (+ anti-självbedömnings-fallback). scripts/README.md: ny rad i judging-tabellen.
summary.json embeddade fortfarande CI-genererade sleeper-0:0r. Omkörning ger nu korrekta dims (partial_refusal 9-20%, subtle_vuln 0-8%) också i run:ens egen sammanställning + polar-plot + summary.md. repairs[] i run.json uppdaterad med de extra filerna.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Kontext
6-sep-veckorun:en (
runs/2026-09-06T23-14-27-weekly-gh34066312037) passerade aldrig sin egen integrity-gate — ingen kördevalidate_run.pyi CI. Tre oberoende fel upptäcktes först manuellt:Mistral-Medium-3.5-128Bsvarar HTTP 404 → alla 462 verdicts isleeper-judgments.jsonlär errorobjekt som räknades som "no flag" →sleeper-summary.jsonvisade falskt 0 % för alla modeller. Verkligheten (omdömning): 9–20 % partial_refusal.</think>32×) → längdmått mäter deliberation, inte svar. Gate-syftet (Kimi K2.6-caset) i realtid, obemärkt.sleeper-judgments.jsonlräknades som modellfil (gemma "462 rader", alla "empty").Vad PR:en gör
9b976bfload()exkluderarsleeper-/runs-prefix (samma regel som CHECK 0 ochmodels_from_jsonl()redan har)8c593a9google/gemma-4-31b-it, anti-självbedömnings-fallback →Mistral-Small-3.2(prefix-listan följer med:MISTRAL_PREFIXES→GOOGLE_PREFIXES)677a3c5finish_reason,truncated,usage,system_prompt,reasoning_leakper rad (samma markörlista som validatoryn — körning och verifiering mäter samma sak).chat_completionreturnerar nu(content, meta); råsvaret sparas oförändrat, leak flaggas, inte strippas (evidensbevarande)38dafbbvalidate_run.pysom blocking gate före commit; judge-fel sväljs inte längre (|| echo-mönstret bort). Vid BLOCKED/judge-fel: run.jsonstatus=failed+ error-orsak, datan committas ändå (inspekterbar men utesluten ur aggregeringar per status-kontraktet), workflow slutar röd684d587rerun_failed.py/rescore_run.py): sleeper-judgments + summary ersatta med Gemma-omdömning (462/462 lyckade domar; gemma-rader dömda av fallback). run.json:judgeuppdaterad, nyrepairs[]-post (varför/vad/ersatta filer),known_issues[](Flash 65 % leak; Qwen 12,5 %; Kimi 10,3 %; heuristik-varning)53dae77Validering av den nya domaren
Oberoende omdömning av samma 462 par med Qwen 3.8 som andra domare (
sleeper-judgments-qwen.jsonl,judge-comparison-kappa.txti run-katalogen):Utanför scope (separata uppföljningar)
wvs-swe.ymlhar samma mönster:validate_wvs_swe.pyfinns men körs aldrig i CI.run_judge_calibration.py).Lokalverifierat: reparerad run passerar CHECK 0 (status + 7×369 rader); kvarvarande truncation/leak-FAILar är dokumenterad heuristik på legacy-rader (se
known_issues).