Chcemy model, który wychodzi dobrze na KLEJ bez trenowania na jego train/test — tylko na tym, co się generalizuje. To jest mapa przed runem: hipoteza, dane, koszt, gate publikacji.
Benchmark enkoderów, fine-tune per zadanie na train-splicie (top: Polish RoBERTa-v2, 88.9). Tu train-on-train to standard.
Model generatywny, 5-shot, bez fine-tune na zadaniu. Zamknięty leaderboard nie jest naszym dev setem; replikujemy publiczny protokół na własnym proxy, a finalny model można wysłać do autora na końcu.
Lekcja z polish-roberta (Dadas): 135 GB / ponad miliard polskich zdań + standardowy fine-tune dał #1 na KLEJ. Żadnych trików — skala i czystość korpusu. Replikujemy ducha dla modelu generatywnego: dużo różnorodnych danych zdolności i wiedzy, czysto.
Słuszne. SFT uczy umiejętności i wydobywa to, co model już wie — nie dodaje nowej wiedzy. Wiedza powstaje w pretreningu. Dodatkowo: cienki DoRA (low-rank) i tak nie pomieści wiedzy. Dlatego rozdzielamy fazy i dorzucamy realny CPT:
| faza | metoda | co daje | adapter |
|---|---|---|---|
| 1. CPT (wiedza) | continued pretraining (next-token) na czystym korpusie PL: Wiki PL, Wolne Lektury, książki, akademickie + EntiGraph synthetic; replay 20–30% przeciw zapominaniu | wiedza o Polsce | full-FT lub high-rank (r=128–256), nie cienki DoRA |
| 2. SFT (umiejętności) | dystylacja zdolności | jak użyć wiedzy (zadania) | DoRA OK |
| 3. DPO | on-policy, sędzia otwarty | preferencje/styl | DoRA OK |
Kolejność: wiedza → umiejętności → preferencje. EntiGraph (synthetic CPT) = tańszy, sample-efficient sposób wstrzyknięcia wiedzy: rozlewa fakty na wiele sformułowań zamiast zapamiętywać dosłownie.
Zbieramy korpus wiedzy PL. Szukamy otwartych źródeł (zwłaszcza pod LLMzSzŁ akademicki, PES medyczny): podręczniki, skrypty, otwarte materiały. Masz źródło / dataset? Wrzuć na Discord.
Z budżetem na CPT pytanie brzmi nie „czy", tylko „ile". Tego nie zmierzysz zamkniętym leaderboardem ani krótkim proxy 5-shot — one nie mierzą długiego ogona (lokalne realia, prawo, regionalia, idiomy). Dlatego przed treningiem budujemy własny eval wiedzy o Polsce:
Sonda wiedzy długiego ogona PL: historia, prawo/orzecznictwo, geografia, regionalia, idiomy, kultura, współczesność. Każde pytanie z weryfikowalną odpowiedzią. Held-out, deduplikowane, NIE wchodzi do CPT.
Punkt odniesienia Qwen3.5-27B per domenę → mapa luk → wymiaruje CPT (10B czy 40B tokenów, które domeny). Bez tego nie wiesz, czy CPT cokolwiek dał.
To też publiczny zasób — twardy dowód pokrycia wiedzy o Polsce (pasuje do CodeSOTA/leaderboardów wiedzy).
Wikipedia PL (CC-BY-SA), Wolne Lektury (PD), Wikibooks/Wikisource, książki open-access, skrypty akademickie (pod LLMzSzŁ). Dodajemy do Qwen: kilka–kilkadziesiąt GB wystarczy (Dadas miał 135 GB od zera).
dedup (MinHash) → filtr jakości (boilerplate) → dedup vs 17 707 atomów test → tokenizacja.
causal LM ze startu z Qwen3.5-27B, full-FT bf16 (8×H100 FSDP + activation ckpt — mieści się). Re-warm LR do ~1e-5 (nie pretrainingowe 3e-4), cosine. Replay 30–40% (EN/kod/matma); błąd = 100% PL → piękna polszczyzna, głupszy model.
60–70% PL (SpeakLeash przefiltrowany + FineWeb-2 PL + Wiki PL + prawo/orzecznictwo) + 30–40% replay. Albo EntiGraph synthetic (Yang 2024): encje → warianty → rozlewa wiedzę, sample-efficient.
Wykonalność / budżet (~$80k): full-FT 27B bf16 ≈ 430–450 GB stanów → mieści się na 8×H100 (640 GB) z FSDP, bez QLoRA. ~20k tok/s @40% MFU → 10B tok ≈ 5–6 dni ≈ $5–6k. CPT 30–40B tok ≈ $18–25k + SFT $3–5k + bufor na ablacje $10–15k → starcza na 2–3 podejścia z ewalem między nimi, nie jeden heroiczny run.
Dyscyplina: pipeline (tokenizacja/packing/miks/resume) dopracować na 4×3090; H100 wynajmować dopiero na właściwe runy z gotowym configiem. Capacity blocks na konkretne okna, checkpoint co godzinę na S3.
| warstwa | udział | co | czyste |
|---|---|---|---|
| Destylacja zdolności | ~40% | teacher wymyśla różnorodne PL ucząc umiejętności zadań (sentyment, NLI, parafraza, QA-poprawność, rozumienie, temat, toksyczność, NER) — naturalny format, nie szablon KLEJ | ✅ dedup |
| Wiedza z korpusu | ~20% | synthetic-CPT (EntiGraph) nad otwartym PL: Wiki PL, Wolne Lektury, Wikibooks, ZPE | ✅ dedup |
| Ludzkie PL | ~15% | Aya-PL (native) + OASST-PL + nasz styl | ✅ |
| EN retencja | ~20% | Tulu 3 / Dolci (odc-by) — by nie zapominać kodu/matmy | ✅ |
| DPO | ~5% | on-policy pary z naszego modelu, sędzia = otwarty Qwen | ✅ |
Teacher = deepseek-v4-pro (MIT), sędzia = otwarty Qwen3.5 (Apache). Zero Anthropic/OpenAI jako źródło czy filtr. Polski od zera, nie tłumaczenie.
Każdy wygenerowany przykład jest deduplikowany przeciw 17 707 atomom ze wszystkich test-splitów KLEJ. Pełny lineage jawny — każdy model i jego dokładny skład na prywatnym HF. (v2 jest u nas oznaczony jako KONTAMINACJA — uczciwie.)
| wymiar | miara | po co |
|---|---|---|
| PL NLU | KLEJ test · 5-shot (held-out) | główny cel |
| PL czat/jakość | MT-Bench-PL | czy nie psujemy generacji |
| EN retencja | MMLU · ARC-C · GSM8K | czy nie zapomina (kod/matma/wiedza) |
| PL wiedza | LLMzSzŁ / PES (held-out) | efekt silnika wiedzy |
| Styl PL | własna sonda ~200 promptów | fleksja, brak translationese/myślników |
Reguła publikacji: tylko jeśli 5-shot KLEJ ↑ ORAZ MT-Bench-PL ↑ i EN retencja nie spada. Inaczej = regres, nie publikujemy.
To protokół badawczy przed runem. Dataset v3 powstaje publicznie i chcemy go poprawić z waszymi uwagami.
podziel się uwagami →propozycja otwarta · źródło: GitHub · zmienia się z waszymi uwagami