zpwiki/pages/students/2018/ondrej_megela/README.md

391 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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í.
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
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](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