---
title: Eduard Matovka
published: true
taxonomy:
    category: [bp2024]
    tag: [dialog,nlp]
    author: Daniel Hladek
---

rok začiatku štúdia: 2021

# Bakalárska práca 2024

Spolupráca [Vladimír Ferko](/students/2021/vladimir_ferko)

Nadväzuje [Martin Jancura](/students/2017/martin_jancura)

Názov: Slovenská konverzačná umelá inteligencia

Predbežný cieľ:

Natrénovať jazykový model pre jednoduchú slovenskú konverzáciu. 

Zadanie BP:

1. Vypracujte prehľad modelov a dátových množín pre generovanie slovenského jazyka.
2. Opíšte metódy dotrénovania generatívnych jazykových modelov. 
3. Vyberte vhodnú dátovú množinu a dotrénujte model pre plnenie jednoduchých úloh podľa zadaných inštrukcií.
4. Vyhodnoťte natrénovaný model, identifikujte jeho slabé miesta a navrhnite zlepšenia.

Predbežné úlohy:

- Oboznámte sa s existujúcimi modelmi pre generovanie slovenského jazyka.
- Pripravte korpus diskusií v slovenskom jazyku. Vyberte vhodný zdroj diskusí a pripravte ho do podoby vhodnej na trénovanie neurónových sietí. Napr. modrý koník, modrá strecha, íné diskusie.
- Natrénujte neurónovú sieť pre odpovedanie v diskusiách. 
- Vytvorte webové demo.
- Napísať vedecký článok z BP
 
Stretnutie 8.3.

Stav:

- Práca na evaluatore - Preštudované [LLAMA evaluator od NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/llama/evaluation.html). 

Úlohy:

- Vyskúšajte knižnicu https://github.com/EleutherAI/lm-evaluation-harness. Zistite, ako sa dá použiť s našimi vlastnými dátami.
- Dajte skript na reddit na git. 
- Odovzdajte reddit dáta - dajte ich školský server (titan) a povedzte kde.
- Pokračujte v otvorených úlohách.

Stretnutie:

Stav

- Prezentácia
- Skript na trénovanie funguje na vlastnom 3060Ti 8GB, funguje aj LLAMA 7B 4bit
- Natrénované na Instruct (SlovakAlpaca) datasete. 
- Tento dataset je doplnený o dáta z redditu - r/Slovak.
- jedno trénovanie na malom datasete trvalo 28 hod. Trénovanie sa podarilo - zbežná kontrola  je ok.
- Prečistenie textov pre výskyt vulgarizmov.
- Začal "študovať" evaluate.

Úlohy:

- Vyhodnotiť natrénovaný model. Dáta, ktoré máte k dispozícii rozdeľte na trénovaciu a testovaciu časť.  Môžeme rozdeliť Instruct dáta osobitne, diskusné dáta osobitne.  Vzniknú nám dve testovacie množiny. Vyhoddnotte model pred trénovaním aj po trénovaní. Možné metriky sú: ROUGE a BLEU. Zistite si čo to je. Výsledky zapíšte do tabuľky. Pre urýchlenie trénovania môžete využiť TITAN. 
- Pokračovať v písaní práce.
- Skripty dať na GIT. Na trénovanie aj na prípravu dát. Na git nedávajte veľké dáta. 


Zásobnk úloh:

- Nájsť ďalšie tréningové údaje pre model​
- Vytvoriť rozšírené webové rozhranie, ktoré sa bude pohodlnejšie používať​
- Optimalizovať algoritmy, aby sa zvýšila účinnosť​
- Skúste na Titane natrénovať nejaký "lepší" model LLAMA ako 7B-4bit.


Stretnutie 7.12.2023

Stav:

- Vytvorený skript pre trénovanie konverzácie LLAMA na datasete SlovakAlpaca na Google Colab. Využíva knižnicu HF, Na spustenie skripty nestačia zdroje na Google Colab. Skript využíva PEFT.
- Vytvorený prístup na server Titan 

Úlohy:

- Vytvorte si GIT repozitár na školskom GITe a dajte do neho Vaše skripty. Dáta tam nedávajte.
- Skúste natrénovať LLama na servri Titan s SlovakAlpaca Datasetom. 
- Vyskúšajte natrénovať s datasetom sk-quad. 
- Zistite ako sa vyhodnocujú "instruct" generatívne modely. Preštudujte si [repozitár](https://github.com/tatsu-lab/alpaca_eval) a napíšte si poznámky.
- Prečítajte si článok: AlpacaEval: An Automatic Evaluator of Instruction-following Models a urobte si poznámnky.

Zásobník úloh:

- Natrénujte model SlovakT5 s Slovak Alpaca Datasetom.
- Pozrite si skripty  [text-generation](https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-generation} a [seq2seq](https://github.com/huggingface/transformers/blob/main/examples/pytorch/question-answering/run_seq2seq_qa.py)
- Natrénovaný model je potrebné vyhodnotiť. Dátovú množinu si rozdelte na 2 časti. Metrika na vyhodnotenie je BLEU alebo Rouge.  
- Pokračujte na práci na vlastnom diskusnom datasete.

Stretnutie 23.11.2023

Stav:

- Písomná práca pokračuje.
- Urobený skript na získanie dát. Skript využíva Praw na získanie dát z Reddit. Skript zatiaľ nepokrýva celú konverzáciu.

Úlohy:

- Dokončiť skript pre získavanie dát. Alebo nájsť dáta a skript ktorý funguje.
- Skúste začať trénovanie generatívneho modelu pomocou dostupných dát. Pozrite si trénovací skript https://git.kemt.fei.tuke.sk/do867bc/DIPLOMOVA_PRACA a skúste ho rozbehať so svojimi dátami.
- Pokračujte v písaní BP.

Zásobník úloh:

- Pozrite sa na projekt https://github.com/imartinez/privateGPT. Zisite ako to funguje. Vedeli by sme ho spustiť?  


Stretnutie 26.10.2023


Stav:

- Podarilo sa spustiť pipeline pre generovanie pomocou Slovak T5 small.

Úlohy:

- [ ] Pokračovať v otvorených úlohách z minulého stretnutia.
- [x] Prečítajte si DP O. Megela.
- [x] V texte vysvetlite, čo je to model GPT, T5 a BART. Ku každému modelu nájdite *odborné články* a blogy, prečítajte si ich a napíšte si poznámky. Zapíšte si bibliografické údaje o článku.  Odborný článok nájdete cez Google Scholar.


Stretnutie 12.10.2023

Stav:

- Pripravený skript na preklad pomoocu HF transformers a Helsinki NLP modelov aj s TKInter rozhraním.
- Písomná príprava podľa pokynov.

Úlohy:

- [x] Dobrý model na generovanie Slov. jazyka je Slovak T5 Small.
- [ ] Pokračujte v teoretickej príprave podľa otvorených úloh - prehľad generatívnych jazykových modelov.
- [ ] Vytvorte dataset slovenských konverzácií. Vyberte zdroj dát, pomocou scrapera extrahujte dáta a upravte ich do vhodného formátu JSON. Stiahnite časť alebo celú webovú stránku do viacerých htmls súborov. Neposielajte veľa requestov za minútu. Dobrý nástorj na stianutie je wget. Napíšte skript, ktorý pomocu knižnice BeautifulSoup4 extrahuje diskusie a uloží ich do JSON.
- [ ] Druhá možnosť je použiť dáta z Reditu alebo Faceboku, podľa skriptov V. Ferko.
- [-] Generatívny model už natrénoval p. Omasta a p. Megela. Oboznámte sa s ich profilmi.


Stretnutie 1.8.2023

Stav:

- Oboznámenie sa s jazykom Python

Úlohy:

- Pokračujte v štúdiu jazyka Python. Pozrite si nástroje [zo stránky Python](/topics/python).  Pozrite si zdroje [zo stránky NLP ](/topics/nlp).
- Nainštalujte si prostredie Anaconda a knižnicu Huggingface transformers.
- Prečítajte si knihu https://d2l.ai/
- Zistite ako funguje neurónová sieť typu Transformer. https://jalammar.github.io/illustrated-transformer/
- Zistite, čo je to generatívny jazykový model. Napíšte na 3 strany čo ste sa dozvedeli o generatívnych jazykových modeloch. Použite aj článok https://arxiv.org/abs/1910.13461 
- Napíšte jednoduchý skript na strojový preklad pomocou knižnice HF transformers.
- Oboznámte sa s https://github.com/karpathy/minGPT

Zásobník úloh:

- Zoberte korpus slovenských alebo iných diskusí a natrénujte neurónový model aby podľa neho odpovedal na zadané odázky.
- Zistite, ako sa vyhodnucujú generatívne modely pre úlohu konverzácie. 
- Oboznámte sa s frameworkom https://python.langchain.com/docs/get_started/introduction.html


