Go to file
2026-08-19 02:34:46 +02:00
configs update 2026-08-19 01:28:10 +02:00
evaluation/lmeval_custom_tasks update 2026-08-19 01:28:10 +02:00
plots update 2026-08-19 01:28:10 +02:00
results update 2026-08-19 01:28:10 +02:00
scripts update 2026-08-19 01:28:10 +02:00
strojovy_preklad update 2026-08-19 01:28:10 +02:00
README.md update 2026-08-19 02:34:46 +02:00

# Instruction fine-tuning slovenského Mistral 7B modelu

Použitý model

Ako základný model bol použitý:

  • slovak-nlp/mistral-sk-7b

Výsledný adaptér je dostupný na Hugging Face:

  • Jakub1320/mistral-sk-7b-slovak-alpaca-qlora

Hardvér

Experimenty boli realizované na serveri s GPU:

  • NVIDIA TITAN RTX
  • 24 GB VRAM

Použitý dataset

Na supervised fine-tuning bol použitý slovenský inštrukčný dataset:

  • saillab/alpaca-slovak-cleaned

Dataset obsahuje polia:

  • instruction
  • input
  • output

Dáta boli formátované v Alpaca štýle:

### Inštrukcia:
...

### Vstup:
...

### Odpoveď:
...

Metóda dotrénovania

Model bol dotrénovaný pomocou supervised fine-tuningu cez:

  • Unsloth
  • TRL SFTTrainer
  • PEFT LoRA
  • QLoRA štýl trénovania

Hlavné hyperparametre

Parameter Hodnota
Epochs 1
Max sequence length 1024
Batch size 1
Gradient accumulation 8
Effective batch size 8
Learning rate 2e-4
Optimizer AdamW 8-bit
Scheduler cosine
Warmup steps 150
LoRA rank 16
LoRA alpha 32
LoRA dropout 0.05
Quantization 4-bit
Compute type fp16

Použité LoRA cieľové moduly:

q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj

Vyhodnotenie pomocou vlastného evaluačného skriptu

Model bol najskôr vyhodnotený na testovacích príkladoch z datasetu saillab/alpaca-slovak-cleaned pomocou metrík ROUGE, BLEU, eval loss a perplexity.

Metrika Výsledok
ROUGE-1 0.3710
ROUGE-2 0.1702
ROUGE-L 0.2732
BLEU 6.2850
Eval loss 0.8081
Perplexity 2.2435

Vyhodnotenie pomocou lm-evaluation-harness

Model bol následne vyhodnotený pomocou frameworku lm-evaluation-harness na slovenských benchmarkových úlohách.

Hodnotený bol PEFT LoRA adaptér pripojený k základnému modelu:

slovak-nlp/mistral-sk-7b
+
Jakub1320/mistral-sk-7b-slovak-alpaca-qlora

Použité benchmarky

Benchmark Popis
arc_sk slovenské vedecké/školské otázky s výberom odpovede
hellaswag_sk commonsense reasoning a výber najpravdepodobnejšieho pokračovania
m_mmlu_sk slovenský všeobecný vedomostný benchmark
truthfulqa_sk_mc1 hodnotenie pravdivosti odpovedí, multiple choice MC1
truthfulqa_sk_mc2 hodnotenie pravdivosti odpovedí, multiple choice MC2
sklegal slovenské právne otázky s výberom odpovede
skquad slovenský question-answering benchmark

Úlohy sklegal a skquad neboli dostupné v štandardnej inštalácii lm-evaluation-harness, preto boli doplnené ako custom tasky.

Výsledky lm-evaluation-harness

Task Počet vzoriek Metrika Výsledok
arc_sk 1169 acc 0.3259
arc_sk 1169 acc_norm 0.3473
hellaswag_sk 9485 acc 0.4134
hellaswag_sk 9485 acc_norm 0.5106
m_mmlu_sk 13062 acc 0.2928
truthfulqa_sk_mc1 778 acc 0.2391
truthfulqa_sk_mc2 778 acc 0.3942
sklegal 1334 acc 0.2841
sklegal 1334 acc_norm 0.4693
skquad 9583 exact 1.9722
skquad 9583 f1 27.7994
skquad 9583 HasAns_exact 2.4106
skquad 9583 HasAns_f1 34.1456
skquad 9583 NoAns_exact 0.0561
skquad 9583 NoAns_f1 0.0561
skquad 9583 best_exact 18.6163
skquad 9583 best_f1 28.3012

Skrátený prehľad hlavných metrík

Benchmark Hlavná metrika Výsledok
ARC-SK acc_norm 0.3473
HellaSwag-SK acc_norm 0.5106
M-MMLU-SK acc 0.2928
TruthfulQA-SK MC1 acc 0.2391
TruthfulQA-SK MC2 acc 0.3942
SKLegal acc_norm 0.4693
SKQuAD f1 27.7994

Poznámka: Pri multiple-choice benchmarkoch sa používajú metriky acc a acc_norm, zatiaľ čo pri skquad ide o generatívnu question-answering úlohu, preto sa používajú metriky exact a f1.

Experiment so strojovým prekladom datasetu

Cieľom experimentu bolo overiť postup, pri ktorom sa anglické polia datasetu:

  • instruction
  • input
  • output

automaticky preložia do slovenčiny a uložia do novej dátovej množiny so zachovaním pôvodnej štruktúry.

Výstupný formát obsahoval pôvodné anglické texty aj slovenské preklady:

{
  "instruction_en": "...",
  "input_en": "...",
  "output_en": "...",
  "instruction_sk": "...",
  "input_sk": "...",
  "output_sk": "..."
}

Experiment bol úspešne spustený a vznikla čiastočne preložená vzorka datasetu. Úplné spracovanie celej množiny však nebolo dokončené z dôvodu nedostatku diskového priestoru na dostupnom serveri.