Ondrej Megela

September 13, 2023 Daniel Hladek bp2021, dp2023 9 minutes, 21 seconds

Ondrej Megela

Začiatok štúdia: 2018

Súvisiace stránky:

Pozrieť toto:

https://paperswithcode.com/task/text-generation?page=3

Diplomová práca 2023

https://opac.crzp.sk/?fn=detailBiblioForm&sid=E4E659F3575B0C5BCF0F726CCD36

Nazov:

Automatické generovanie otázok v slovenskom jazyku

  1. Vypracujte prehľad generatívnych jazykových modelov.
  2. Vypracujte prehľad vyhodnocovacích metrík pre generatívne modely.
  3. Navrhnite a vykonajte viaceré experimenty pre úlohu generovania otázok.
  4. Vyhodnoťte experimenty vhodnou metrikou a navrhnite zlepšenia modelu generovania otázok.

Súvisiace práce:

  • Dávid Omasta

Cieľ: Využiť slovenský generatívny model na tvorbu databázy otázok a odpovedí.

https://git.kemt.fei.tuke.sk/om385wg/DP

Stretnutie 24.2.2023

Stav:

  • Vytvorený notebook pre vyhodnotenie generovanie otázok pomocou BLEU. Zatiaľ nefunguje, pretože asi je potrebné spoávne zoradiť vygenerovanú otázku a referenciu, Ku paragrafu môže existovať viacero rôznych otázok, preto je tažké ich porovnať pomocou BLEU ngramov.

Úlohy:

  • Na vyhodnotenie použiť sémantický model. POdľa modelu vytvoriť dvojice - generovaná veta a referencia.
  • Na vyhodnotneie použiť "Answerability" - QA model s thresholdom.
  • Pracovať na diplomovej práci - písať prehľad - metódy, metriky vyhodnotenia, datasety.
  • Do DP pripraviť experiment s vyhodnotením.

Zásobník úloh:

  • Priradiť vgenerované vety ku referencii na základe sémantickej podobnosti.
  • Priamo merať sémantickú pokdobnosť vygenerovaných viet a referenciíá.
  • Použiť operátor max, mean alebo kl-diveregencia, cross-entropy?

Stretnutie 23.1.2023

Stav:

  • Modifikovany ssk quad dataset, tak aby aby sa dal vykonat finetuning t5. Vstupom je kontext a viacero otazok.
  • Dotrenovany t5 model na generovanie otazok. Vyzera ze ide.
  • Vyskusany few shot learning pomocou prikladov zo sk quad.

Ulohy:

  • Pokracovat v pisani podla aktualizovaneho zadania
  • Implementovat vyhodnbotenie generovania otazok. Vyhodnotenie pomocou generovanej odpovede. BLEU-ROUGE-METEOR pre gemnerovanue otazky a gold truth otazky. Ako sa to robi v literature ? Zistit a napisat.

Zasobnik uloh:

  • Navrhnut eperimenty pre DP/clanbok.
  • porovnat slovensky a anglicky model. Mozno aj iny jazyk.
  • vyskusat, ako pomahaju generovane toazky pri QA.
  • rucne vyhodnotit vygenerovane otazky.

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

Stav:

  • Vyskúšaný slovenský GPT model v rôznych veľkostiach. Generovanie funguje. Obbmedzene funguje aj zero shot sentiment classification. Zagtiaľ nefuguje pre generovanie otázok.

Úlohy:

  • Pokračovať v Zero Shot: Vymeniť Sentence za Veta. Pozrieť Separátor v slovníku.
  • Skúsiť rozbehať run_clm pre slovenský GPT model pre úlohu generovania otázok. Poskytnutý prístup do repozitára bert-train. Ak skript bude fungovať, tak ho pridajte do repozitára bert-train/huggingface/clm

Zásobník úloh:

  • Možno by sa dalo formulovať úlohu ako klasický machne translation a použiť niekotrý existujúci setup pre preklad bez predtrénovania. Existujú skripty pre fairseq.
  • Možno bude fungovať nejaký multilinguálny generatívny model.

Stretnutie 7.10:

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:

  • [x] 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.
    • <hl> 42 <hl> 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

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
  • 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 Conda aj Pytorch.
  • Chyba optimizéra Fairseq 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