diff --git a/pages/students/2017/martin_jancura/README.md b/pages/students/2017/martin_jancura/README.md index 0cf1054b6..76d7f58cc 100644 --- a/pages/students/2017/martin_jancura/README.md +++ b/pages/students/2017/martin_jancura/README.md @@ -12,6 +12,47 @@ taxonomy: ## Diplomový projekt + +Téma: Rozpoznávanie emócií z textu. + +Návrh na zadanie diplomovej práce: + +- Vypracujte prehľad metód rozpoznávania sentimentu z textu. +- Vyberte vhodný moodel pre rozpoznávanie sentimentu v slovenských textovh. +- Vytvorte slovenskú overovaciu množinu pre rozpoznávanie sentimentu. + +Ciele: + +- Vedieť klasifikovať emocionálny náboj v texte pomocou neurónovej siete. + +Ciele na semester: + +- Získať prehľad v problematike rozpoznávania emócií z textu +- Vybrať dátovú množinu, vybrať vhodný klasifikátor, natrénovať model a vyhodnotiť výsledky. + +Informácie: + +- [Hate speech Project](/topics/hatespeech) +- https://www.sciencedirect.com/topics/computer-science/emotion-detection + +Stretnutie 25.11. + +Stav: + +- Vieme parsovať Disqus fóra z topky.sk. Vieme získať nadpis a hlavičku článku, tagy článku. Vieme odlíšiť jednotlivé diskusné príspevky. Scraper je v javascripte, knižnica puppeteer. + +Úlohy: + +- Zdrojové texty scrapera dajte do git repozitára. +- Nainštalujte si balíček Anaconda a HF transformers. +- Pozrite si tento model https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base-sentiment. Vyskúšajte ho na anglickom texte aj na slovenskom texte. Prečítajte si vedecký článok a urobte si poznámky. +- Prečítajte si článok o modeli XLM a napíšte poznámky. Prečítajte si vedecký článok o datasete, ktorý bol použitý a urobrte si poznámky. Vyhľadajte si dataset na huggingface HUB a pozrite sa ako vyzerá. Na vyhľadávanie použite TUKE sieť a google scholar. + +Zásobník úloh: + +- Zo získaných slovenských dát vytvorte overovaciu množinu pre vybranýb model pre klasifikáciu sentimentu. +- Pozrieť či existuje databáza. + Stretnutie 8.6. Stav: @@ -22,8 +63,8 @@ Stav: Úlohy: -- Dať kódy na GIT - scraper (twitter, topky) aj tutorial -- Dopísať písomnú správu o tutoriáli (2 až 3 strany) - čo ste sa dozvedeli o BERT, čo ste urobili. Dajte to do README.md. +- [-] Dať kódy na GIT - scraper (twitter, topky) aj tutorial +- [ ] Dopísať písomnú správu o tutoriáli (2 až 3 strany) - čo ste sa dozvedeli o BERT, čo ste urobili. Dajte to do README.md. Stretnutie 20.5.2022 diff --git a/pages/students/2018/david_ilas/README.md b/pages/students/2018/david_ilas/README.md index 1a42f1d88..b5ba59493 100644 --- a/pages/students/2018/david_ilas/README.md +++ b/pages/students/2018/david_ilas/README.md @@ -10,6 +10,7 @@ taxonomy: Rok začiatku štúdia: 2018 +Už neštuduje tento študijný program. ## Diplomová práca 2023 diff --git a/pages/students/2018/david_omasta/README.md b/pages/students/2018/david_omasta/README.md index b53e49497..43ddee768 100644 --- a/pages/students/2018/david_omasta/README.md +++ b/pages/students/2018/david_omasta/README.md @@ -22,13 +22,16 @@ Téma: Dotrénovanie slovenského generatívneho jazykového modelu. Vedúci: Ján Staš +Návrh na názov: + +Generatívne modely slovenského jazyka + Návrh na zadanie DP: - Vypracujte prehľad najnovších generatívnych neurónových jazykových modelov. -- Napíšte v akých úlohách je možné uplatniť generatívne modely a uveďte odkazy na najnovšie články. -- Vyberte vhdonú úlohu a ku nej pripravte vhodnú dátovú množinu pre použitie s generatívnym jazykovým modelom. -- Pripravte experiment pri ktorej aplikujete jazykový model na zvolenú úlohu. -- Vyhodnotte experiment vohodnou metrikou a identifikujte možné zlepšenia. +- Vypracujte prehľad slovenských a multilinguálnych generatívnych jazykových modelov. +- Navrhnite experiment, pri ktorom bude model generovať odpovede na zadané otázky a kontext. +- Analyzujte výsledky experimentu vhodným spôsobom a identifikujte možné zlepšenia. Ciele na zimný semester: diff --git a/pages/students/2018/ondrej_megela/README.md b/pages/students/2018/ondrej_megela/README.md index d483644b3..b7c757e04 100644 --- a/pages/students/2018/ondrej_megela/README.md +++ b/pages/students/2018/ondrej_megela/README.md @@ -30,6 +30,34 @@ Súvisiace práce: Cieľ: Využiť slovenský generatívny model na tvorbu databázy otázok a odpovedí. +https://git.kemt.fei.tuke.sk/om385wg/DP + + +Stretnutie 22.12. + +- Slovenský GPT model nefunguje na few shot generovanie otázok. +- Existuje slovenský T5 model small. Ten funguje. +- Vyskúšaný finetuning na colabe na slovenský T5 model na anglických dátach, zbehol za 1.5. hodiny. +- Nájdený QA evaluátor, ktorý ohodnotí vygenerované otázky pomocou BERT. Evaluátor hodnotí, či otázka a odpovedˇ sedia spolu. Trénuje sa na rovnakom datasete ako generátor. +- QA evaluátor a generátor https://github.com/AMontgomerie/question_generator +- Finetuning slovenského T5 https://colab.research.google.com/drive/1z-Zl2hftMrFXabYfmz8o9YZpgYx6sGeW?usp=sharing + +Úlohy: + +- Pracovať na textovej časti DP a.k.a. ATKS +- Skontrolovať a na ďalšom stretnutí updatovať zadanie DP. +- Dokončiť skripty a generovať otázky pre slovenský jazyk. +- Vyhodnotiť kvalitu generovania otázok. +- Pripraviť experiment, kde vo viacerých scenároch (finetuning, few shot) generujeme otázky. + +Zásobník úloh: + +- Pripraviť článok (do časopisu). Najprv prekladom z DP. +- Pripraviť aj out-of-domain test - iná doména (noviny, úäradné dokumenty). Iný jazyk. Porovnanie slovenského a anglického generovanie. +- Pripraviť test, kde odmieriame prínos automaticky generovanej databázy na probmém question answering. +- Použiť generátor pri manuálnej anotácii. Človek môže hodnotiť kvalitu generovanej otázky alebo ju opraviť. + + Stretnutie 28.10 diff --git a/pages/students/2019/kristian_sopkovic/README.md b/pages/students/2019/kristian_sopkovic/README.md index ebeb8c74b..a7015e6ff 100644 --- a/pages/students/2019/kristian_sopkovic/README.md +++ b/pages/students/2019/kristian_sopkovic/README.md @@ -12,6 +12,16 @@ rok začiatku štúdia: 2019 # Diplomová práca 2024 +Neurónové vyhľadávanie na základe sémantickej podobnosti vektorov. + +1. Vypracujte prehľad metód neurónovej vektorovej reprezentácie viet alebo odsekov. +1. Pripravte trénovaciu množinu a natrénujte model vektorovej reprezentácie dokumentov. +1. Vyhodnoťte natrénovaný model vo viacerých experimentoch. +1. Identifikujte slabé miesta modelu a navrhnite jeho zlepšenia. + +Zadanie sa ešte môže zmeniť. + + Súvisiace práce: Michal Stromko Cieľ je zlepšiť slovenské vyhľadávanie pomocou neurónových sietí. @@ -21,6 +31,12 @@ Námety na tému: - Natrénujte alebo dotrénujte Sentence Transformer Model, alebo iný model pre sémantícké vyhľadávanie. Aké sú potrebné databázy? Je možné dotrénovať multilinguálny model? - Vytvorte databázu pre trénovanie SBERT. Strojový preklad, existujúcej NLI databázy, Semantic Textual Similarity databázy. Alebo ak získame grant, tak vytvoríme "originálnu" (klon) slovenskú databázu. + +[Slovak Semantic Textual Similarity Benchmark](https://huggingface.co/datasets/crabz/stsb-sk) +na trénovanie Sentence Transformer. + + + Stretnutie 24.11. Úlohy: diff --git a/pages/students/2019/michal_stromko/README.md b/pages/students/2019/michal_stromko/README.md index 842d185f3..cb8369f89 100644 --- a/pages/students/2019/michal_stromko/README.md +++ b/pages/students/2019/michal_stromko/README.md @@ -9,14 +9,16 @@ taxonomy: rok začiatku štúdia: 2019 -# Vedecky projekt 2022/23 +# Diplomová práca 2023/24 -Návrh na zadanie diplomovej práce: +Sémantické vyhľadávanie v slovenskom texte. -- Vypracujte prehľad najnovších metód sémantického vyhľadávania pomocou neurónvých sietí. -- Vyberte vhodnú metódu pre vyhľadávanie a modifikujte ju tak aby bola použiteľná pre slovenské texty. -- S vybranou metódou vykonajte experiment s vyhľadávaním. Metódu porovnajte s najmenej jednou inou metódou. -- Vyhodnoťte experimenty a identifikujte slabé miesta a navrhnite zlepšenia. +Zadanie práce: + +1. Vypracujte prehľad najnovších metód sémantického vyhľadávania pomocou neurónových sietí. +2. Vyberte vhodné metódy pre vyhľadávanie a modifikujte ich tak aby boli použiteľné pre slovenské texty. +3. Pripravte experimenty na vyhodnotenie vyhľadávania. Porovnajte vybrané metódy. +4. Vyhodnoťte experimenty a identifikujte slabé miesta a navrhnite zlepšenia. Ciele DP: @@ -24,10 +26,15 @@ Ciele DP: - Dotrénovať slovenský ST model. - Porovnať viacero metód na vyhľadávanie v slovenskom texte - BM25, TF IDF, WordEmbedding, SentenceTransformers, Alebo iné embeddingy. + +# Vedecky projekt 2022/23 + + Súvisiace práce: - Matej Kobyľan - Suchanič +- Kristián Sopkovič Ciele na semester: @@ -49,6 +56,46 @@ Klucove slova: - LABSE, LASER embedding model - multi language IR +Stretnutie 9.1.2023 + +Stav: + +- Vyrobená tabuľka s experimentami pre rôzne modely a rôzne veľkosti vrátenej množiny k +- Zatiaľ najlepší je model BM25 + +Úlohy: + +- Pripravte experiment v ktorom najprv vyhľadáte množinu k=(napr. 100, 200 alebo 50) prvkov pomocou bm25, výsledky zoradíte pomocou neurónovej siete a vyberiete m=(napr. 10,20,50) najlepších prvkov. Výsledky vyhodnotíte. +- Zoradenie pomocou NN vyzerá takto: zoberiete otázku a paragraf. Vypočítate skóre podobnosti. Prvý spôsob výpočtu je, že vložíte otázku aj paragraf naraz do NN. Výsledok je podobnosť. Na výpočet podobnosti zatiaľ použite model slovakbert-stsb. + +Zásobník úloh: + +- Vytvoriť vyhľadávanie v dvoch krokoch. Najprv "nahrubo", potom výsledky znova zoradiť. +- Druhý spôsob vyhľadávania nahrubo je: vypočítate významový vektor pre paragraf aj pre odsek. Výpočítate kosínusovú podobnosť jedného aj druhého. +- Vyhodnotiť modely v adresári crossencoder. + + + + + +Stretnutie 19.12.2022 + +Stav: + +- Spustený skript pre vyhodnotenie + +Úlohy: + +- Pripravte testovací scenár. Množina SK QUAD. Vyhľadávame v paragrafoch. Pri vyhľadávaní nás zaujíma k najlepších výsledkov. K=1,5,10,20,30 +- V testovacom scenári vyskúšqjte viacero modelov. WordEmbedding, LABSE, SlovakBERT, BN25 +- V texte opíšte použíté modely, dataset aj testovací scenár. +- Z výsledky by mohol byť konferenčný článok. + +Zásobník úloh: + +- Natrénujte model Kharpukin DPR, podľa Facebook skriptov alebo pomocou Nvidia Deep learning examples. +- Vyhodnotte celý proces QA na vrátených výsledkoch. + Stretnutie 10.11.2022 Stav: diff --git a/pages/students/2019/michal_stromko/vp2023/Dokumentacia.md b/pages/students/2019/michal_stromko/vp2023/Dokumentacia.md new file mode 100644 index 000000000..933c2e822 --- /dev/null +++ b/pages/students/2019/michal_stromko/vp2023/Dokumentacia.md @@ -0,0 +1,92 @@ +

+ TECHNICKÁ UNIVERZITA V KOŠICIACH
+ FAKULTA ELEKTRONIKY A INFORMATIKY
+

+



+ +

Hodnotenie vyhľadávania modelu

+






+ + +

+ 2022 + + Michal Stromko + +

+
+ +

+ +# Úvod + +Cieľom tejto práce je zoznámenie sa s možnosťami hodnotenia modelov. Natrénovaný model dokáže vyhodnocovať viacerými technikami s použitím rôzdnych open source riešení. Každé z riešení nám ponúkne iné výsledky. V tejto práci bližšie opíšem základné pojmy, ktoré je potrebné poznať pri hodnotení. Opíšem základné informácie o technikách hodnotenia od základných pojmov ako Vektorové vyhľadávania, DPR, Sentence Transformers, BM-25, Faiss a mnoho ďalších. + + +# Základné znalosti + +Na začiatok je potrebné povedať, že pri spracovaní prirodzeného jazyka dokážeme používať rôzne metódy prístupu hodnotenia modelu, poprípade aj vyhľadávanie v modeli. V poslených rokoch sa v praxi stretávame s vyhľadávaním na základe vypočítania vektorov. Následne na takto vypočítané vektory dokážeme pomocou kosínusovej vzdialenosti nájsť vektory, inak povedané dve čísla, ktoré sú k sebe najblyžšie. Jedno z čísel je z množiny vektorov, ktoré patria hľadanému výrazu, druhé číslo patrí slovu, alebo vete, ktorá sa nacháza v indexe. + +Pre uľahčenie pochopenia tejto problematiky, postupne vysvetlím vypočítanie a následné hladanie dvoch vektorov v tomto článku. Treba však poznamenať, že každá metóda má vlastné vypočítanie vektora spolu s hľadaním podobného vektora. + +### Dense Passage Retriever (DPR) + +DPR nazývame ako typ systému, spracovania prirodzeného jazyka (NLP). Tento systém získava relevantné časti, inak povedané pasáže z veľkého korpusu textu. V kombinácii s sémantickou analýzou a algoritmom strojového učenia, ktorý idenetifikuje najrelevantnejšie pasáže pre daný dopyt. DPR je založený na používaní správneho enkódera, ktorý mapuje text na dimenzionálne vektory skutočnej hodnoty a vytvára index M, ktorý sa používa pre vyhľadávanie. Treba však povedať, že počas behu DPR sa aplikuje aj iný enkóder **EQ**, ktorý mapuje vstupnú otázku na d-rozmerný vektor a následne hľadá tie vektory, ktoré sú najbližšie k vektoru otázky. Podobnosť medzi otázkou a časťou odpovede definujeme pomocou **Bodového súčinu ich vektorov**. + +![vzorec podobnosti](img/vzorec.png) + +Aj keď existujú silnejšie modelové formy na meranie podobnosti medzi otázkou a pasážou, ako sú siete pozostávajúce z viacerých vrstiev krížovej pozornosti, ktorá musí byť rozložiteľná, aby sme mohli vopred vypočítať kolekcie pasáží. Väčšina rozložiteľných funkcii podobnosti používa transformácie euklidovskej vzdialenosti. + +**Cross Attentions** (krížová pozornosť) +Cross Attentions v DPR je technika, ktorá sa používa na zlepšenie presnosti procesu vyhľadávania. Funguje tak, že umožňuje modelu pracovať s viacerými pasížami naraz, čo umožňuje identifikovanie najrelevantnejších pasáží. Pre pre správne identifikovanie DPR berie do úvahy kontext každej pasáže. V prvom kroku najskôr model identifikuje kľúčové výrazy v dotaze a následne použije sémantickú analýzu na identifikáciu súvisiacich výrazov. Mechanizmus pozornisti umožňuje modelu zamerať sa na najdôležitejšie slová v každej pasáži, zatiaľ čo algoritmu strojového učenia pomáha modelu s identifikáciou. + +V ďalšom kroku _Cross Attentions_ používa systém bodovania na hodnotenie získaných pasáží. Bodovací systém berie do úvahy relevantnosť pasáží k dopytu, dĺžku pasáží a počet výskytov dopytovacích výrazov v pasážach. Posledným dôležitým atribútom, ktorý sa zisťuje je miera súvislosti nájdeného výrazu k výrazu dopytu. + +**Pozitívne a negatívne pasáže** (Positive and Negative passages) +Časté problémy, ktoré vznikajú pri vyhľadávaní sú spojené s opakujúcimi sa pozitívnymi výsledkami, zatiaľ čo negatívne výsledky sa vyberajú z veľkej množiny. Ako príklad si môžeme uviesť pasáž, ktorá súvisí s otázkou a nachádza sa v súbore QA a dá sa nájsť pomocou odpovede. Všetky ostatné pasáže aj keď nie sú explicitne špecifikované, môžu byť predvolene považované za irelevantné. +Poznáme tri typy negatívnych odpovedí: +- **Náhodný (Random)** + - Je to akákoľvek náhodná pasáž z korpusu +- **BM25** + - Top pasáže vracajúce BM25, ktoré neobsahujú odpoveď, ale zodpovedajú väčšine otázkou +- **Zlato (Gold)** + - Pozitívne pasáže párované s ostatnými otázkami, ktoré sa objavili v trénovacom súbore + +### Sentence Transformers + +- je Python framework +- dokázeme vypočítať Embeddingy vo vyše 100 jazykoch a dajú sa použíť na bežné úlohy ako napríklad semantic text similarity, sementic search, paraphrase mining +- framework je založený na PyTorch a Transformers a ponúka veľkú zbierku predtrénovyných modelov, ktoré sú vyladené pre rôzdne úlohy + + +### Semantic Search + + +### Word Embedding + +Požívanie Word Embedings závisí od dobre vypočítaných Embedingov. Pokiaľ máme dobre vypočítané Embeddingy dokážeme veľmi jednoducho dostávať správne odpovede napríklad pri vyhľadávaní. Word Embedding môžeme poznať aj pod slovným spojením ako distribuovaná reprezentácia slov. Dokážeme pomocou neho zachytiť sémantické aj systaktické informácie o slovách z veľkého neoznačeného korpusu. + +Word Emedding používa tri kritické komponenty pri trénovaní a to model, korpus a trénovacie parametre. Aby sme mohli navrhnút efektívne word-embedding metódy je potrebné na začiatku objasniť konštrukciu modelu. Takmer všetky metódy trénovania word embeddings sú založené na rovnakej distribučnej hypotéze: **Slové, ktoré sa vyskytujú v podobných kontextoch, majú tendenciu mať podobné významy** + +Vzhľadom na vyšie napísanú hypotézu rôzne metódy modelujú vzťah medzi cieľovým slovom _w_ a jeho kontextom _c_ v korpuse s rôzymi spôsobmi, pričom _w_ a _c_ sú vložené do vektorov. Vo všeobecnosti môžeme povedať, že existujúce metódy sa líšia v dvoch hlavných aspektoch modelu konštrukcii a to **vzťah medzi cieľovým slovom a jeho kontextom a reprezentácia kontextu** + +Treba brať na vedomie, že trénovanie presných word embeddingov silne, inak povedané výrazne súvisí s tréningovým korpusom. Rôzne tréningové korpusy s rôznou veľkosťou a pochádzajúcej z rôzdnej oblasti môžu výrazne ovplyvniť konečné výsledky. + +Nakoniec presné trénovanie word embeddingov silne závisí od parametrov akými sú: +- počet iterácii +- dimenzionalita embeddingov + + +### Semantic Search + +### BM25 + +### Faiss + + +### LABSE + + +### Slovak BERT + +Bol uvedený pre širokú verejnosť v roku 2021 \ No newline at end of file diff --git a/pages/students/2019/michal_stromko/vp2023/img/vzorec.png b/pages/students/2019/michal_stromko/vp2023/img/vzorec.png new file mode 100644 index 000000000..26026392a Binary files /dev/null and b/pages/students/2019/michal_stromko/vp2023/img/vzorec.png differ