← ENGINEERING LOG
SLAYER PROTOCOL · ENGINEERING LOGWPIS 003

DATA2026-06-14
AUTORKacper Wikieł
TAGIv4faza0likelihoodkalibracjaEN-retentiongate

V4 Faza 0: regresja CDSC-E była głównie artefaktem pomiaru, a kalibracja λ to pułapka małej próbki

Domknięcie wątku z v3. Po policzeniu wszystkiego na H100: katastrofalny spadek CDSC-E był w ~3/4 artefaktem trybu pomiaru (generacja + parser), a nie uszkodzeniem wag. v3 to realny zysk na celu (LLMzSzŁ +3.3, makro KLEJ płaskie). Próba naprawy przez merge wag λ=0.3 wyglądała świetnie na n=200 i wywróciła się na n=400 — oddała cały zysk. Wnioski: mierzyć likelihood, decydować na n≥400, prawdziwy fix to trening anti-collapse, nie mieszanie wag.

Wniosek w jednym zdaniu

v3 cały czas był realnie lepszym modelem na celu; popsuł go sposób pomiaru, a fałszywie „naprawiła" go mała próbka. Prawdziwa poprawa kalibracji wymaga treningu, nie post-hoc mieszania wag.

1. CDSC-E: -22.5 w generacji, tylko -6.0 w likelihood

Ten sam model, dwa sposoby liczenia. Generacja = model pisze odpowiedź, parser ją wyłuskuje. Likelihood = scoringujemy log-prawdopodobieństwo każdej etykiety i bierzemy argmax (bez generacji, bez parsera).

CDSC-E  n=200  seed 42
                  base     v3       Δ
generacja         87.0    64.5    -22.5
likelihood        87.5    81.5     -6.0

Około 3/4 spadku to styl i gadatliwość po SFT plus kruchy parser: zwracał pierwszą napotkaną etykietę z listy, więc rozgadana odpowiedź wzmiankująca kilka relacji była systematycznie odczytywana na niekorzyść neutralna. To nie jest uszkodzenie wag, tylko warstwa odczytu. Wniosek operacyjny: zadania klasyfikacyjne mierzymy likelihood, nie generacją.

2. v3 to realny improvement — i nie ma szerokiej regresji

LLMzSzŁ  likelihood  n=400
  base Qwen3.5-27B   63.5
  Slayer v3          66.8   (+3.3)

Pełny KLEJ (generacja) potwierdza brak szerokiej regresji — makro płaskie, a sentyment wręcz w górę:

task            base    v3      Δ
polemo2_in      79.5   88.5   +9.0
polemo2_out     68.0   75.5   +7.5   (OOD)
psc/ppc/dyk/8tags        +1.0..+1.5
belebele/cbd/nkjp/ar     -0.5..-2.0
cdsc_e (gen)    75.0   57.0  -18.0   (artefakt, p. sekcja 1)
MACRO           77.4   77.3   -0.1

Jedyny duży spadek to izolowany, mierzalny cdsc_e. Reszta płasko lub w górę.

3. Kalibracja λ-merge: pułapka małej próbki

Pomysł: zmaterializować base + λ·(v3 − base), żeby odzyskać CDSC bez utraty celu (interpolacja wag, DoRA-safe — bo czysty λ-scaling adaptera DoRA nie wraca do bazy przy λ=0).

Sweep bf16 n=200 wyglądał jak Pareto-win:

λ      CDSC-E   LLMzSzŁ
0.0     84.0     62.5
0.30    82.0     66.5   <- niby najlepszy
0.50    78.5     68.0

Zmaterializowaliśmy slayer-v4-cal-l030 (λ=0.30) i puściliśmy twardy rerun na protokole referencyjnym n=400. To wywróciło wniosek:

                LLMzSzŁ n=400   CDSC-E
base                  63.5       87.5
cal λ=0.30            63.5       83.5   <- oddał CAŁY zysk celu
v3 (λ=1.0)            66.8       81.5

n=200 skłamało: λ=0.30 dawało 66.5, a na n=400 to 63.5 = baza. Przy niskim λ koszt CDSC rośnie szybciej niż zysk LLMzSzŁ, więc nie ma czystego punktu gate-clean. Wnioski: decyzje o release tylko na n≥400; post-hoc merge nie zastępuje treningu.

4. Reguła danych V4

Zero benchmark train splitów jako paliwa treningowego — także KLEJ train. v2 „wygrana" na KLEJ okazała się artefaktem train-splitów i została odrzucona. v3 jest czysty (distill / styl / EN-retention, ~2.2k przykładów, kuracja nie wolumen).

5. Co liczymy teraz

Przekrojowy screen no-regression base vs v3 vs cal-l030: KLEJ ×12 (likelihood) + LLMzSzŁ + EN-retention (ARC-C, MMLU, Belebele-EN, GSM8K) — żeby potwierdzić, że polski tuning nie psuje angielskiego i rozumowania. Zrobiony jako jeden runner (model z HF / katalogu / docelowo GGUF), sampling n=100 dla szybkości, zapis przyrostowy + watchdog na boxie, żeby przeżył 6h bez nadzoru.

Wnioski na przyszłość (efektywność)

  • Likelihood do klasyfikacji. Generacja zaniża i dokłada artefakty parsera.
  • n≥400 do decyzji, n=100 tylko jako szybki screen regresji; przy małym n nie wybieramy checkpointów.
  • Batching / vLLM = 5–10×. Teraz pomiar jest unbatched (H100 na ~33% util).
  • Prawdziwy fix kalibracji to trening anti-collapse (q/v only, niższy lr, hard-neutral NLI + KL-to-base), nie mieszanie wag.
  • Od początku: jeden proces + idempotentny resume + watchdog — inaczej traci się godziny na crashu.
KONIEC WPISU · LOG 003 · SLAYER PROTOCOL
Kacper Wikieł
SLAYER LAB · 2026-06-14