--- title: Ondrej Megela published: true taxonomy: category: [bp2021,dp2023] tag: [nlp,fairseq,lm,bert,question-answer,qa] author: Daniel Hladek --- # Ondrej Megela Začiatok štúdia: 2018 Súvisiace stránky: - [Oleh Bilykh](/students/2018/bilykh) - question answering - [Lukáš Pokrývka](/students/2016/pokryvka) - paralelné trénovanie - [Question Answering](/topics/question) - interný projekt - Matej Čarňanský (BERT) Pozrieť toto: https://paperswithcode.com/task/text-generation?page=3 # Diplomová práca 2023 Súvisiace práce: - Dávid Omasta Cieľ: Využiť slovenský generatívny model na tvorbu databázy otázok a odpovedí. Stav: - PatilSuraj zatiaľ nefunguje. Funguje iba na T5 a Bart vlastné anglické, nefunguje na gpt-j ano na mt5. Stále je tam možnosť vyskúšať vlastný slovenský BART. Úlohy: - Vyskúšať slovenský GPT model v úlohe few-shot learning. Inšpirácia https://huggingface.co/blog/few-shot-learning-gpt-neo-and-inference-api. Použite niektorý prístup z patilsuraj. - Vyoracujte písomný prehľad generatívnych jazykových modelov. - Vypracujte písomný prehľad metód generovania otázok pomocou jazykového modelu. Nezabudnite na odkazy na odbornú literatúru. Zásobník úloh: - Dotrénovať slovenský GPT model pomocou HF skriptu run_clm.py - Zistiť aký veľký model nám funguje. - Vybrať vhodný server na dorénovanie. Koľko GRAM potrebujeme? - Záložná možnosť - písať pre anglický jazyk. ## Diplomový projekt 1 2022 Cieľ: - Vytvoriť a vyhodnotiť generatívny model slovenského jazyka. - Navrhnúť a vytvoriť overovaciu množinu pre slovenské generatívne modely. Stretnutie 29.6. - Vyskúšané dosadenie slovenského GPT modelu do kódu patil-suraj. Nefunguje - nepasuje konfigurácia. - Vyskúšané nasadenie Multilingual T5. Podarilo sa ho nahrať. Chyba "index Out Of Range". Úlohy: - Pokračovať v otvorených úlohách. Rozbehať skripty "patil-suraj". Zásobník úloh: - Vyskúšať existujúci slovenský BART model (od vedúceho). - Natrénovať a vyskúšať nový slovenský BART model (aj pre vedúceho). Stretnutie 8.4. Prezreté sú tri repozitáre. kompatibilné s HF Transformers https://github.com/p208p2002/Transformer-QG-on-SQuAD#seq2seq-lm - Používa modely GPT-2, BART,T5, upravený „BERT“ - vstup ide odsek + zvýraznená odpoveď pomocou tokenu [HL] Haystack deepset – QG pipeline - Postup: (https://haystack.deepset.ai/tutorials/question-generation) - kompatibilný s HF Transformers - https://github.com/deepset-ai/haystack#mortar_board-tutorials - https://www.deepset.ai/blog/generate-questions-automatically-for-faster-annotation https://github.com/patil-suraj/question_generation - Využíva 2 formáty vstupu: - Oddelenie odpovede pomocou SEP, odpoveď je osobitne - 42 `[SEP]` 42 is the answer to life, the universe and everything. Vyznačenie odpovede pomocou HL priamo v kontexte. - `` 42 `` is the answer to life, the universe and everything. 3 možnosti definície úlohy generovanie otázok : - QG – vstup je kontext a odpoveď, výstup je otázka - Multitask QA- QG: Deje sa vo viacerých krokoch: vyhľadanie odpovede (zaujímavej časti) v texte, generovanie otazky na zaklade odpovede, spätné vyhľadanie odpovede - End-to-End QG – Generovanie otázok len na zaklade kontextu, vstup je kontext, výstup je otázka. Úlohy: - Začneme s prístupom "End-To-End" - generovanie otázok na základe zadaného odseku. - Rozbehnite skript, ktorý naučí generatívny model generovať otázky na základe zadaného odseku. Ako vstup použite sk-quad. Zásobník úloh: - Navrhnite a implementujte spôsob vyhľadanie zaujímavej časti odseku - kandidáta na možnú odpoveď. 11.3. - Vyskúšaný GPT na cloab, zatiaľ nefunguje kvôli pamäti. Možné spôsoby využitia generatívnych modelov: - mnli - multi natural language inference - textual entailment and contradiction, zero shot classification - strojový preklad - sumarizácia, conditional generation - asi nepotrebuje finetinung - konverzačné systémy - generovanie odpovede na otázku - generovanie otázok ku zadanému odseku (reverse squad) Možné spôsoby vytvorenia overovacej množiny: - Využitie slovenského squadu pre úlohu generovania otázok. - Strojový preklad existujúceho jazykového zdroja do slovenčiny. - Pokúsime sa vytvoriť vlastnú dátovú množinu od začiatku. Pre ktorú úlohu? - Na overenie použijeme existujúci paralelný korpus - to si vyžaduje fine-tuning pre strojový preklad. - Strojovo vytvoríme overovaciu databázu pre úlohu sumarizácie. Zoberieme novinové články alebo vedecké články alebo záverečné práce ktoré majú uvedený abstrakt. Úlohy: - vyskúšať menší GPT model - Zistit a stručne opísať, ako funguje automatické generovanie otázok vo formáte squad. Ako neurónka berie do úvahy odpoveď? Zisitiť ako vyznačiť zaujímavé časti odseku (NER, parser, sumarizácia..) - ako vygenerovať odpoveď. - Porozmýšľať, ako použiť na túto úlohu Transformers. 25.2. - Vytvorený textový report, kde je urobený prehľad metód vyhodnotenia a niekoľkých testovacích korpusov a benchmarkov. Rouge je používaná metrika. Úlohy: - Vypracovať prehľad generatívnych jazykových modelov - Vyskúšať slovenský GPT model. - Navrhnúť ako dotrénovať model na úlohu sumarizácie. Zásobník úloh: - Vytvoriť model pre generovanie faktických otázok ku zadanému paragrahu.. Môžeme využiť slovenský squad. - Vytvoriť model pre sumarizáciu novinových článkov. - Vytvoriť databázu pre vyhodnotenie generatívnych vlastností jazykového mo,delu. Napr. úloha sumarizácie alebo iná. Stretnutie 27.1.2022 Úlohy: - Napísať prehľad spôsobov vyhodnotenia generatívnych modelov - Zostaviť prehľad metrík a dátových množin. - Zostaviť prehľad najnovších generatívnych modelov. Zásobník úloh: - Zistiť niečo o algoritmoch GAN (generative adversarial network) a VAE (variational autoendoder). - Napíšte na aké NLP úlohy sa používajú a s akými výsledkami. - Zistite aké (optinálne) Python-Pytorch knižnice sa dajú použiť. ## Bakalárska práca 2020 Názov: Neurónové jazykové modelovanie typu BERT. [Bakalárska práca](https://opac.crzp.sk/?fn=detailBiblioForm&sid=4A7927334F9373E92B42D999785B) Návrh na zadanie: 1. Vypracujte prehľad metód jazykového modelovania pomocou neurónových sietí. 2. Vypracujte prehľad aplikácií modelu typu BERT a spôsoby ich vyhodnotenia. 3. Natrénujte jazykový model metódou BERT alebo podobnou. 4. Vyhodnoťte jazykový model a navrhnite zlepšenia presnosti. Zásobník úloh: - Cieľom je vedieť natrénovať BERT model a vyhodnotiť ho na zvolenej testovacej množine. - vyhodnotiť slovenský Roberta Model na pokusnej množine SK-quad. Stretnutie 12.3. Stav: - Konzultácia štruktúry práce Úlohy: - Písať. Stretnutie 26.2. Stav: - Vyriešený technický problém s architektúrou modelu podľa predpokladu. - Urobené vyhodnotenie modelu wiki103 na CommonsenseQA. Úlohy: - Pokračujte v práci na textovej časti. - Odovzdané pracovné dáta pre slovenský Roberta Model aj SK-Quad. Pokúste sa to vyhodnotiť ako neprioritnú ulohu. Stretnutie 22.2. Stav: - Natrénovaný model wiki103 na stroji Quadro. Problém sa vyriešil vypnutím GPU pri trénovaní, - Vznikol problém pri vypracovaní https://github.com/pytorch/fairseq/blob/master/examples/roberta/commonsense_qa/README.md - Architecture mismatch. Možné riešenie - iný prepínač `-arch` pri dotrénovaní. tak aby sedel s predtrénovaním. Úlohy: - skúsiť vyhodnotenie Wiki 103 na Commonsense - Pokračujte v práci na textovej časti - vytvorte plynulý text. ## Bakalársky projekt 2020 Stretnutie 12.2. Stav: - Pokúšame sa vytvoriť hodnotenie pomcou množiny CommonSenseQA - Problém pri trénovaní na Wiki103 na stroji Quadra, (vyzerá to ako deadlock) - Máme k dispozícii ROBERTA model natrénovaný na veľkej množine slovenských dát. Do budúceho stretnutia: - Problém sa možno dá obísť skopírovaním modelu zo stroja Tesla. - na kopírovanie použite príkaz `scp -r user@server:zdrojovyadresar cielovyadresar`. - pokračovať vo vyhodnotení pomocou CommonSenseQA. - skúste vyhodnotiť aj slovenský model. Ako? - pracujte na súvislom texte bakalárskej práce. Virtuálne stretnutie 18.12.2020 Stav: - Natrénovaný model ROBERTA na malej množine Wiki103 podľa tutoriálu. Trénovanie trvalo jeden týždeň. - Spísané poznámky ku množine SQUAD. - Vytvorený prístup na server quadra.kemt.fei.tuke.sk Úlohy: - Pokračovať v písaní - Prejsť si tutoriál https://github.com/pytorch/fairseq/blob/master/examples/roberta/commonsense_qa/README.md - cieľom je vedieť vyhodnotiť BERT model. - Pri trénovaní si overte, či sú využité všetky 4 karty. - Pozrite si DP [Lukáš Pokrývka](https://zp.kemt.fei.tuke.sk/students/2016/lukas_pokryvka) - Ak pôjde trénovanie v poriadku, skúste vykonať viac experimentov s rôznymi parametrami, zapíšte si postup experimetu (príkazový riadok) a výsledok. Virtuálne stretnutie 4.12.2020 Stav: - Preštudovaný tutoriál https://github.com/pytorch/fairseq/blob/master/examples/roberta/README.pretraining.md - Vyriešený problém s Pytorch. - Inštalácia [Fairseq](https://git.kemt.fei.tuke.sk/om385wg/bp2021/wiki/In%C5%A1tal%C3%A1cia-fairseq) Conda aj Pytorch. - Chyba optimizéra [Fairseq](https://git.kemt.fei.tuke.sk/om385wg/bp2021/wiki/Vyrie%C5%A1en%C3%A9-Chyby) a jej riešenie. - Vypracované poznámky o trénovaní a vyhodnocovaní BERT. Úlohy: - Pokračujte v práci na písomnej časti. Skúste prepísať odrážky do plynulého textu. - Pridajte poznámky o vyhodnotení pomocou SQUAD. - Pokračujte v trénovaní Roberta na dátovej sade Wiki-103 na systéme Tesla, odhadovaný čas trénovania 64 hod. - Zistite ako sa dá vyhodnotiť natrénovaný model Roberta. - Zvážiť možnosť trénovania na systéme Titan a Quadra (pre vedúceho). Virtuálne stretnutie 20.11.2020 Stav: - Urobené tutoriály ale iba na CPU. Do ďalšieho stretnutia: - Prejsť si tutoriál https://github.com/pytorch/fairseq/blob/master/examples/roberta/README.pretraining.md . - Pracovať na písomnej časti - zamerať sa na vyhodnotenie BERT modelu. Na aké modelové úlohy sa používa? - Napíšte poznámky, kde všade sa vyskytol technický problém a aké bolo riešenie. Dôležité sú verzie a podmienky pri ktorých sa problém vyskytol. - Spíšte ako nainštalovať knižnice tak aby to fungovalo (s CPU aj s GPU). - Vytvorte si na GITe repozitár bp2021, do neho dajte poznámky a kódy ktoré ste vyskúšali. Virtuálne stretnutie 13.11.2020 Stav: - Vypracované poznámky aj k transformer a BERT - Vyskúšaná release verzia Fairseq. Stále trvá technický problém s tutoriálom. - Vyskúšaný BERT tutoriáli. Chyba "illegal instruction" pri extrahovaní príznakov "extract features from ROBERTA". https://discuss.pytorch.org/t/illegal-instruction-core-dumped-in-first-pytorch-tutorial/62059/3 pravdepodobne problém s inštrukčnou sadou CPU. - \vytvorený prístup na tesla pre vyriešenie. Do ďalšieho stretnutia: - pokračovať v otvorených úlohách. Virtuálne stretnutie 30.10.2020 Stav: - Vypracované poznámky k seq2seq - nainštalovaný Pytorch a fairseq - problémy s tutoriálom. Riešenie by mohlo byť použitie release verzie 0.9.0, pip install fairseq=0.9.0 Do ďalšieho stretnutia: - Vyriešte technické porblémy - prejdide si tutoriál https://fairseq.readthedocs.io/en/latest/getting_started.html#training-a-new-model - Prejsť si tutoriál https://github.com/pytorch/fairseq/blob/master/examples/roberta/README.md alebo podobný. - Preštudujte si články na tému BERT, urobte si poznámky čo ste sa dozvedeli spolu so zdrojom. Virtuálne stretnutie 16.10.2020 Stav: - Vypracované poznámky k uvedeným bodom. - Problém s inštaláciou Anaconda. Do ďalieho stretnutia: - nainštalujte pytorch a knižnicu fairseq - prejtide si tutoriál https://fairseq.readthedocs.io/en/latest/getting_started.html#training-a-new-model - Napíšte ďalšie poznámky ku architektúre encoder-decoder, nájdite najdôležitejšie články a čo hovoria. Virtuálne stretnutie 2.10.2020 Vytvorený prístup `ssh megela@idoc.fei.tuke.sk` Úlohy do ďalšieho stretnutia: - Naštudujte si a vyracujte poznámky s uvedením zdroja: - spracovanie prirodzeného jazyka - jazykové modelovanie - rekurentná neurónová sieť - architektúra enkóder dekóder alebo seq2seq - Nainštalujte si prostredie Anaconda, pytorch a knižnicu fairseq Na štúdium: https://git.kemt.fei.tuke.sk/KEMT/zpwiki/src/branch/master/pages/topics - python - nlp - seq2seq