# Lukáš Pokrývka

*Rok začiatku štúdia:* 2016

## Diplomový projekt 1 2020

Ulohy na semester:

- podrobne si naštudovať vybranú metódu trénovania neurónových sietí
- identifikujte možný spôsob paralelizácie
- natrénujte zvolený model metódou paralelizácie


Stretnutie 9.3.2020

Úlohy na ďalšie stretnutie:

- Skúste natrénovať slovenský word2vec model podľa tutoriálu: http://spark.apache.org/docs/latest/ml-features.html#word2vec (podľa dát z emailu)
- Pozrite si niečo o metóde BERT

- https://medium.com/huggingface/introducing-fastbert-a-simple-deep-learning-library-for-bert-models-89ff763ad384
- https://github.com/huggingface/transformers


Revízia 9.4.:

Nové úlohy:

Natrénujte word embedding model na veľkých dátach (odkaz poskytnutý). Môžete použiť server idoc.

Revízia 14.4.

- Natrénovaný word embedding model na slovenských dátach.

Nové úlohy:

- Pozrite si [metódy vyhodnotenia embedding modelov](https://duckduckgo.com/?t=ffab&q=word+embedding+evaluation&ia=web). Ako by ste postupovali pri vyhodnotení slovenského modelu?
- Pozrite si https://spacy.io/usage/training
- Pozrite si [repozitáre a výsledky týkajúce sa Spacy](/topics/spacy).
- Vyhodnotte slovenský spacy model





## Tímový projekt 2019

*Úlohy tímového projektu:*

 - Vypracujte min. 4 stranový rešerš na tému: "Paralelné spracovanie prirodzeného jazyka" (využitie napr. s word2vec, word embeddings, GloVe, fastText).
 - Citujte min. 10 najvýznamnejších bibliografických zdrojov.

*Písomná práca:* [Paralelné spracovanie prirodzeného jazyka](./timovy_projekt)

## Diplomová práca 2021

### Paralelné trénovanie neurónových sietí

*Meno vedúceho:* Ing. Daniel Hládek, PhD.

*Návrh na zadanie DP:*

1. Vypracujte prehľad literatúry na tému "Paralelné trénovanie neurónových sietí".
2. Vyberte vhodnú metódu paralelného trénovania.
3. Pripravte dáta a vykonajte sadu experimentov pre overenie funkčnosti a výkonu paralelného trénovania.
4. Navrhnite možné zlepšenia paralelného trénovania neurónových sietí.


- Zaujímavá príručka [Word2vec na Spark](http://spark.apache.org/docs/latest/ml-features.html#word2vec)

### Priebeh práce

*1. Pokus o natrénovanie modelu pomocou knižnice Gensim*

Ako prvý nástroj na zoznámenie sa s trénovaním W2V som zvolil Gensim. Nevýhodou knižnice je, že pri trénovaní nevyužíva GPU v žiadnom prípade. Podľa zdrojov na internete je však Gensim násobne rýchlejšia knižnica pri implementácii na menšie korpusy (https://rare-technologies.com/gensim-word2vec-on-cpu-faster-than-word2veckeras-on-gpu-incubator-student-blog/). Keďže môj korpus má približne 30GB, trénovanie pomocou Gensim by zrejme nebol najlepší nápad. Preto som si z korpusu vytiahol prvých 10,000 riadkov a otestoval implementáciu na tomto súbore. Celý skript je dostupný na [gensim_W2V.py](./dp2021/scripts/gensim_w2v.py).
Výsledok nebol vôbec presný, čo sa vzhľadom na veľkosť korpusu dalo očakávať. Pri slove letisko bola však zhoda vysoká, čo potvrdzuje správnosť implementácie.

![Výsledok implementácie Gensim](./gensim.PNG)

Keďže som mal problém skript s plným korpusom spustiť na školskom serveri, v ďalšom riešení chcem využiť aj GPU. V úvahu pripadá aj rozdelenie korpusu na viacero častí s tým, že sa zachová kontext.