Diplomovka/perun/ministral_3b_aya
2026-11-12 17:03:49 +01:00
..
aya_test Perun 2026-11-12 16:51:42 +01:00
configs Perun 2026-11-12 17:01:26 +01:00
requirements Perun 2026-11-12 16:51:42 +01:00
scripts Perun 2026-11-12 16:51:42 +01:00
sk_bench Perun 2026-11-12 16:51:42 +01:00
training Perun 2026-11-12 16:51:42 +01:00
.gitignore Perun 2026-11-12 16:51:42 +01:00
README.md README 2026-11-12 17:03:49 +01:00

Perun – dotrénovanie Ministralu 3B na slovenskej Aya

Model ministral/Ministral-3b-instruct bol dotrénovaný metódou SFT s LoRA cez LLaMA-Factory a Unsloth. Použila sa základná revízia 2c95908929198d6e69af8638f0dbbd9bc6b93f9e. Behy prebehli na Perune.

Dáta a tréning

Slovenská časť Aya Collection bola načítaná z Parquetu. Po vyradení prázdnych alebo neplatných záznamov a odstránení duplicitných párov zostalo 3 492 041 príkladov. Rovnaké normalizované prompty sa držali v jednej skupine pri delení dát.

Množina Príklady
Tréningová 3 490 041
Validačná 1 000
Testovacia 1 000

Manifest dát obsahuje počty, seed a kontrolné súčty vstupu aj pripravených súborov. Jeho SHA-256 sa zhoduje s hodnotou zaznamenanou v metadátach tréningu.

Nastavenie jobu 148065 Hodnota
Hardvér a presnosť 4× NVIDIA H200 na jednom uzle, BF16
Tréning 1 epocha, 109 064 krokov
Efektívna dávka 32 príkladov, 8 na GPU a akumulácia 1
LoRA Rank 16, alpha 32, dropout 0
Learning rate 0.0002, kosínusový plán a warmup 8 %
Kontext 4 096 tokenov
Seed 42 pre model aj dáta

Tréningová slučka trvala 24 h 06 min. Priemerný tréningový loss bol 1,33344. Najnižší validačný loss bol 1,13089 v kroku 109 000. Posledný checkpoint z kroku 109 064 mal validačný loss 1,13097. Na testovanie Aya aj porovnanie v SK-bench sa použil posledný checkpoint.

Tréningové metriky · Validačný priebeh · Graf tréningového lossu · Graf validačného lossu

Test na odloženej Aya množine

Job 152588 vyhodnotil checkpoint 109 064 na 1 000 testovacích príkladoch. Pri generovaní bol limit 256 nových tokenov. Pri jednom príklade zostala po normalizácii prázdna referencia, takže tokenové F1 a presná zhoda používajú 999 hodnotiteľných odpovedí.

Metrika Hodnota
Testovací loss 1,08998
Perplexita 2,97423
Tokenové F1 (0–100) 35,06
Normalizovaná presná zhoda 3,60 % (36 z 999)

Súhrn testu · Konfigurácia výpočtu lossu · Konfigurácia generovania

Čiastočné výsledky SK-bench

Pôvodný Ministral a model so zlúčeným adaptérom z checkpointu 109 064 boli vyhodnotené na rovnakých 385 z 412 slovenských zero-shot variantov, ktoré pokrývajú 29 z 33 úloh.

Skupina Pokrytie Pôvodný Dotrénovaný Rozdiel
Knowledge & Reasoning 10/10 20,57 23,37 +2,80
Reading & QA 8/9 7,42 12,53 +5,11
Classification 8/9 0,00 23,34 +23,34
Instruction 1/1 7,82 10,24 +2,42
Grammar & Morphology 2/2 0,12 0,88 +0,76
Overall 5/6 skupín 7,18 14,07 +6,89

Chýbajú OneRuler-SK (18 variantov), NLI-SK-annotated (3), SMESum (3) a SlovakSum (3). Skupina Generation preto nemá skóre. Overall je priemer piatich dostupných skupín s rovnakou váhou, vypočítaný postupom verejného leaderboardu. Dotrénovaný model sa zlepšil v 26 z 29 úloh. Najväčší pokles bol pri SKJ1, z 59,67 na 0,00.

Skóre po úlohách · Zoznam variantov · Agregát pôvodného modelu · Agregát dotrénovaného modelu

Agregované JSON-y vznikli oficiálnym skriptom z revízie SK-bench 15823bbcc2d995e69441fcb7d34abb61bd8180c5. CSV používa hlavné metriky úloh z revízie leaderboardu 833bd28e96fd392b7064de053084dc0a6ca9a3e3. Hodnoty sú na škále 0–100 a rozdiel je v bodoch. Agregačný skript · Výpočet leaderboardu

Spustenie tréningu a testu

Príkazy sa spúšťajú z tohto priečinka v pripravenom prostredí s tréningovými závislosťami. Príprava používa pôvodný slovenský Parquet. Tréningový skript spúšťa štyri procesy na uzle so štyrmi GPU. Evaluácia testovacej množiny sa spúšťa na jednej GPU.

python scripts/prepare_data.py --local-parquet /cesta/k/slovak_train.parquet \
  --output-dir data/aya_slovak_fixed --seed 42 --eval-size 1000 --test-size 1000

python scripts/train.py configs/input_config.yaml --run-dir runs/ministral_aya

python scripts/evaluate.py runs/ministral_aya/used_config.yaml \
  --adapter runs/ministral_aya/adapter/checkpoint-109064 \
  --split test --output-dir runs/ministral_aya/evaluations/aya_test --max-new-tokens 256

Skript scripts/train.py načíta vstupné nastavenia tréningu zo súboru input_config.yaml. V priečinku zadanom cez --run-dir tréning vytvorí used_config.yaml, ktorý potom použije evaluačný skript. Použité nastavenia jobu 148065 sú uložené v run.json.