Tento repozitár obsahuje kód vyvinutý pre diplomovú prácu, ktorá sa zameriava na aplikáciu modelov veľkých jazykov (LLM) na analýzu rozhodnutí slovenských súdov. Projekt pokrýva kompletný proces od predspracovania surového textu cez doladenie modelu až po vyhodnotenie následných úloh NLP.
.
├── stats/
├── preprocessing/
├── sampling/
├── llm_comparison/
│ ├── stats/
│ └── evaluation/
├── finetuning/
│ ├── appeal_success/
│ └── decision_prediction/
└── evaluation/
├── finetuning_decision_prediction/
│ ├── training_process/
│ └── statement_generation/
└── zero-shot-few-shot_appeal_success/
stats/Exploratívna analýza textového korpusu. Obsahuje tri skripty na výpočet tokenizovaných dĺžok celých rozhodnutí a ich jednotlivých častí, ako aj generovanie grafov a histogramov na vizualizáciu rozdelenia dĺžok.
preprocessing/Skripty na čistenie a segmentáciu textu. Zaoberá sa odstraňovaním artefaktov a šumu z nespracovaných textov súdnych rozhodnutí a rozdeľuje každý dokument do jeho logických sekcií. Výstup z tejto fázy slúži ako vstup pre všetky následné úlohy. Obsahuje štyri skripty:
make_decision_text_json.py - skript na čistenie textu.parse_decision_reasoning.py - skript na rozdelenie textu na časť s rozhodnutím a časť s odôvodnením.parse_introduction_statement.py - skript na rozdelenie časti s rozhodnutím na úvod a časť s výrokom.extract_only_decisions_with_reasoning.py - skript na získanie iba rozhodnutí, kde bolo nájdené a oddelené zdôvodnenie.sampling/Obsahuje dva skripty a jeden JSON dataset:
get_random_sample.py - skript na získanie 0,1 % vzorky z predspracovaného korpusu na porovnanie LLM.sample_0_1_percent.json - vzorka na porovnanie.get_sample_under_2048_tokens.py - skript na získanie vzorky na doladenie zvoleného LLM.llm_comparison/Porovnávacie hodnotenie 10 veľkých jazykových modelov s cieľom identifikovať najvhodnejšieho kandidáta pre doladenie na rozhodnutiach slovenských súdov. Modely boli hodnotené pomocou metrík BLEU, ROUGE a Perplexity na základe generovania rozhodnutia na základe odôvodnenia, pričom výsledky informovali o výbere základného modelu použitého pri následnom doladení. Obsahuje nasledovné:
llm_comparison_{}.py - skripty, kde sa vyhodnotenie pripraveného súboru údajov spracováva v cykle a výsledky sa priebežne zapisujú do textových súborov, ktoré sú umiestnené v podpriečinku stats/, a to aj so skriptmi merge_files.py a replace_values.py na zlúčenie, organizovanie a získanie všetkých štatistík na porovnanie (keďže skript bol niekedy zastavený kvôli problémom s pamäťou GPU) a vizualizáciu grafov.stats/ - podpriečinok, ako je definované vyššie.evaluation/ - podpriečinok obsahujúci zlúčené a agregované metriky, grafy a tiež tri skripty:
stats_llm.py - skript na agregáciu metrík.stats_plots.py - skript na zobrazenie boxplotov všetkých metrík a modelov.ranking.py - skript na zoradenie modelov a vizualizáciu poradia pomocou horizontálneho stĺpcového grafu.finetuning/Doladenie modelov pre dve úlohy klasifikácie:
decision_prediction/ - dolaďovacie skripty na generovanie súdneho výroku na základe odôvodnenia. Obsahuje štyri skripty:
finetune_qwen.py - skript na doladenie Qwen3-8B s LoRA a Flash Attention.finetune_mistralsk.py - skript na doladenie mistral-sk-7b s LoRA a Flash Attention.finetune_script_qwen.sh a finetune_script_mistralsk.sh - skripty na spustenie doladenia s definovanými hyperparametrami.appeal_success/ - Dolaďovacie skripty na predpovedanie pravdepodobnosti úspechu odvolania proti súdnemu rozhodnutiu. Obsahuje nasledujúce:
appeal_make_dataset.py - skript na vytvorenie datasetu potvrdených a zrušených/zmenených súdnych rozhodnutí na základe odvolania.appeal_success_fine-tuning_qwen.py - skript na doladenie modelu Qwen pre predikciu úspešnosti odvolania s pridaním hlavy SequenceClassification a tiež vyhodnotenia modelu.appeal_success_finetuning_mistralsk.py - skript na doladenie modelu mistral-sk pre predikciu úspešnosti odvolania s pridaním hlavy SequenceClassification a tiež vyhodnotenia modelu.appeals_identifikacne_cislo_spisu.py - zoskupuje identifikátory súdnych rozhodnutí do súboru údajov JSON pomocou identifikačného čísla spisu, čím prepája pôvodné rozhodnutia s následnými rozhodnutiami vydanými po odvolaní.evaluation/Hodnotiace skripty a metriky pre doladené modely, usporiadané do dvoch podpriečinkov:
finetuning_decision_prediction/ - vyhodnotenie úlohy generovania súdneho výroku s dvoma podpriečinkami:
training_process/ - obsahujúci dva skripty na vykreslenie grafu strát pri tréningu a výpočet strát pri validácii na posledných troch checkpoint-och.statement_generation/ obsahujúci nasledovné:
evaluation_scores.py - skript na výpočet a uloženie hodnôt metrík pre základný a doladený model.evaluation_plots.py - skript na generovanie porovnateľných boxplotov z uložených hodnôt.statement_generation_evaluation.ipynb - Jupyter notebook, ktorý porovnáva vygenerované a skutočné rozhodnutia a ich vlastnosti.zero-shot-few-shot_appeal_success/ - vyhodnocovanie modelov priamo na klasifikačnej úlohe. Obsahuje nasledujúce:
appeals_few-shot_classification_mistralsk - skript na prompting modelu mistral-sk (základného a doladeného) pre zero-shot a few-shot klasifikáciu úspešnosti odvolaní (rôzne verzie sú v skripte zakomentované).appeals_few-shot_classification_qwen - skript na prompting modelu Qwen (základného a doladeného) pre zero-shot a few-shot klasifikáciu úspešnosti odvolaní (rôzne verzie sú v skripte zakomentované).zero-few-shot-evaluation.ipynb - Jupyter Notebook hodnotiaci zero-shot and few-shot klasifikáciu.Rozhodnutia slovenských súdov predstavujú pre NLP jedinečné výzvy: sú dlhé, vysoko štruktúrované, napísané vo formálnej právnickej slovenčine a na interpretáciu často vyžadujú znalosť odbornej oblasti. Táto práca skúma, či je možné LLM efektívne prispôsobiť tejto oblasti prostredníctvom doladenia, a hodnotí ich výkonnosť v dvoch úlohách.
Proces spracovania prebieha nasledovne:
Nutné knižnice k behu skriptov sú uvedené v súbore requirements.txt a je možné ich nainštalovať pomocou príkazu pip install -r requirements.txt.
Jednotlivé skripty je možné spustiť ako:
python script_name.py
Skripty na doladenie modelov sa spúšťajú prostredníctvom shellových skriptov:
bash finetune_script_qwen.sh
bash finetune_script_mistralsk.sh
Bc. Bianka Šimková
Vedúci práce: doc. Ing. Peter Bednár, PhD.
Ústav umelej inteligencie, Fakulta elektrotechniky a informatiky Technickej univerzity v Košiciach
Rok: 2026
Tento repozitár obsahuje kód vyvinutý pre diplomovú prácu, ktorá sa zameriava na aplikáciu modelov veľkých jazykov (LLM) na analýzu rozhodnutí slovenských súdov. Projekt pokrýva kompletný proces od predspracovania surového textu cez doladenie modelu až po vyhodnotenie následných úloh NLP.
.
├── stats/
├── preprocessing/
├── sampling/
├── llm_comparison/
│ ├── stats/
│ └── evaluation/
├── finetuning/
│ ├── appeal_success/
│ └── decision_prediction/
└── evaluation/
├── finetuning_decision_prediction/
│ ├── training_process/
│ └── statement_generation/
└── zero-shot-few-shot_appeal_success/
stats/Exploratívna analýza textového korpusu. Obsahuje tri skripty na výpočet tokenizovaných dĺžok celých rozhodnutí a ich jednotlivých častí, ako aj generovanie grafov a histogramov na vizualizáciu rozdelenia dĺžok.
preprocessing/Skripty na čistenie a segmentáciu textu. Zaoberá sa odstraňovaním artefaktov a šumu z nespracovaných textov súdnych rozhodnutí a rozdeľuje každý dokument do jeho logických sekcií. Výstup z tejto fázy slúži ako vstup pre všetky následné úlohy. Obsahuje štyri skripty:
make_decision_text_json.py - skript na čistenie textu.parse_decision_reasoning.py - skript na rozdelenie textu na časť s rozhodnutím a časť s odôvodnením.parse_introduction_statement.py - skript na rozdelenie časti s rozhodnutím na úvod a časť s výrokom.extract_only_decisions_with_reasoning.py - skript na získanie iba rozhodnutí, kde bolo nájdené a oddelené zdôvodnenie.sampling/Obsahuje dva skripty a jeden JSON dataset:
get_random_sample.py - skript na získanie 0,1 % vzorky z predspracovaného korpusu na porovnanie LLM.sample_0_1_percent.json - vzorka na porovnanie.get_sample_under_2048_tokens.py - skript na získanie vzorky na doladenie zvoleného LLM.llm_comparison/Porovnávacie hodnotenie 10 veľkých jazykových modelov s cieľom identifikovať najvhodnejšieho kandidáta pre doladenie na rozhodnutiach slovenských súdov. Modely boli hodnotené pomocou metrík BLEU, ROUGE a Perplexity na základe generovania rozhodnutia na základe odôvodnenia, pričom výsledky informovali o výbere základného modelu použitého pri následnom doladení. Obsahuje nasledovné:
llm_comparison_{}.py - skripty, kde sa vyhodnotenie pripraveného súboru údajov spracováva v cykle a výsledky sa priebežne zapisujú do textových súborov, ktoré sú umiestnené v podpriečinku stats/, a to aj so skriptmi merge_files.py a replace_values.py na zlúčenie, organizovanie a získanie všetkých štatistík na porovnanie (keďže skript bol niekedy zastavený kvôli problémom s pamäťou GPU) a vizualizáciu grafov.stats/ - podpriečinok, ako je definované vyššie.evaluation/ - podpriečinok obsahujúci zlúčené a agregované metriky, grafy a tiež tri skripty:
stats_llm.py - skript na agregáciu metrík.stats_plots.py - skript na zobrazenie boxplotov všetkých metrík a modelov.ranking.py - skript na zoradenie modelov a vizualizáciu poradia pomocou horizontálneho stĺpcového grafu.finetuning/Doladenie modelov pre dve úlohy klasifikácie:
decision_prediction/ - dolaďovacie skripty na generovanie súdneho výroku na základe odôvodnenia. Obsahuje štyri skripty:
finetune_qwen.py - skript na doladenie Qwen3-8B s LoRA a Flash Attention.finetune_mistralsk.py - skript na doladenie mistral-sk-7b s LoRA a Flash Attention.finetune_script_qwen.sh a finetune_script_mistralsk.sh - skripty na spustenie doladenia s definovanými hyperparametrami.appeal_success/ - Dolaďovacie skripty na predpovedanie pravdepodobnosti úspechu odvolania proti súdnemu rozhodnutiu. Obsahuje nasledujúce:
appeal_make_dataset.py - skript na vytvorenie datasetu potvrdených a zrušených/zmenených súdnych rozhodnutí na základe odvolania.appeal_success_fine-tuning_qwen.py - skript na doladenie modelu Qwen pre predikciu úspešnosti odvolania s pridaním hlavy SequenceClassification a tiež vyhodnotenia modelu.appeal_success_finetuning_mistralsk.py - skript na doladenie modelu mistral-sk pre predikciu úspešnosti odvolania s pridaním hlavy SequenceClassification a tiež vyhodnotenia modelu.appeals_identifikacne_cislo_spisu.py - zoskupuje identifikátory súdnych rozhodnutí do súboru údajov JSON pomocou identifikačného čísla spisu, čím prepája pôvodné rozhodnutia s následnými rozhodnutiami vydanými po odvolaní.evaluation/Hodnotiace skripty a metriky pre doladené modely, usporiadané do dvoch podpriečinkov:
finetuning_decision_prediction/ - vyhodnotenie úlohy generovania súdneho výroku s dvoma podpriečinkami:
training_process/ - obsahujúci dva skripty na vykreslenie grafu strát pri tréningu a výpočet strát pri validácii na posledných troch checkpoint-och.statement_generation/ obsahujúci nasledovné:
evaluation_scores.py - skript na výpočet a uloženie hodnôt metrík pre základný a doladený model.evaluation_plots.py - skript na generovanie porovnateľných boxplotov z uložených hodnôt.statement_generation_evaluation.ipynb - Jupyter notebook, ktorý porovnáva vygenerované a skutočné rozhodnutia a ich vlastnosti.zero-shot-few-shot_appeal_success/ - vyhodnocovanie modelov priamo na klasifikačnej úlohe. Obsahuje nasledujúce:
appeals_few-shot_classification_mistralsk - skript na prompting modelu mistral-sk (základného a doladeného) pre zero-shot a few-shot klasifikáciu úspešnosti odvolaní (rôzne verzie sú v skripte zakomentované).appeals_few-shot_classification_qwen - skript na prompting modelu Qwen (základného a doladeného) pre zero-shot a few-shot klasifikáciu úspešnosti odvolaní (rôzne verzie sú v skripte zakomentované).zero-few-shot-evaluation.ipynb - Jupyter Notebook hodnotiaci zero-shot and few-shot klasifikáciu.Rozhodnutia slovenských súdov predstavujú pre NLP jedinečné výzvy: sú dlhé, vysoko štruktúrované, napísané vo formálnej právnickej slovenčine a na interpretáciu často vyžadujú znalosť odbornej oblasti. Táto práca skúma, či je možné LLM efektívne prispôsobiť tejto oblasti prostredníctvom doladenia, a hodnotí ich výkonnosť v dvoch úlohách.
Proces spracovania prebieha nasledovne:
Nutné knižnice k behu skriptov sú uvedené v súbore requirements.txt a je možné ich nainštalovať pomocou príkazu pip install -r requirements.txt.
Jednotlivé skripty je možné spustiť ako:
python script_name.py
Skripty na doladenie modelov sa spúšťajú prostredníctvom shellových skriptov:
bash finetune_script_qwen.sh
bash finetune_script_mistralsk.sh
Bc. Bianka Šimková
Vedúci práce: doc. Ing. Peter Bednár, PhD.
Ústav umelej inteligencie, Fakulta elektrotechniky a informatiky Technickej univerzity v Košiciach
Rok: 2026