Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
277ba3b605 | |||
906c6efaae |
@ -1,13 +0,0 @@
|
||||
---
|
||||
title: Diplomové práce 2022/2023
|
||||
category: dp2023
|
||||
---
|
||||
# Diplomové práce 2022/2023
|
||||
|
||||
## Témy
|
||||
|
||||
1. Strojový preklad pomocou neurónových sietí (Jancura)
|
||||
2. Generatívne jazykové modely (Megela)
|
||||
3. Detekcia emócií z textu:
|
||||
- https://github.com/savan77/EmotionDetectionBERT
|
||||
|
@ -1,31 +0,0 @@
|
||||
---
|
||||
title: Vedecký projekt 2021/2022
|
||||
category: vp2022
|
||||
---
|
||||
## Vedecký projekt 2022
|
||||
|
||||
Príprava na bakalársky projekt pre študentov 2. ročníka programu Počítačové siete. Letný semester.
|
||||
|
||||
Vedúci: Ing. Daniel Hládek PhD.
|
||||
|
||||
Požiadavky:
|
||||
|
||||
- Chuť naučiť sa niečo nové.
|
||||
|
||||
Obsah:
|
||||
|
||||
- Naštudujete si zadanú problematiku.
|
||||
- Naučte sa základy jazyka Python.
|
||||
- Podrobne si prejdite minimálne dva tutoriály.
|
||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
|
||||
### Extrakcia informácií z webových stránok
|
||||
|
||||
- Naštudujete si knižnicu BeautifulSoup a navrhnete skripty pre parsovanie niekoľkých webových stránok
|
||||
|
||||
### Dotrénovanie jazykových modelov
|
||||
|
||||
- Naučte sa pracovať s knižnicou HuggingFace transformers.
|
||||
- Naučíte sa základy neurónových jazykových modelov.
|
||||
- Dorénujete neurónovú sieť na vybraný problém.
|
||||
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Maroš Harahus
|
||||
author: Maroš Harahus
|
||||
---
|
||||
|
@ -14,59 +14,33 @@ Wiki stánka pre spoluprácu na záverečných prácach.
|
||||
|
||||
- [Často kladené otázky](/topics/faq)
|
||||
- [Ako napíšem záverečnú prácu](/topics/akopisat)
|
||||
- [Prostredie Anaconda a jazyk Python pre strojové učenie](/topics/python)
|
||||
|
||||
## Vedúci
|
||||
|
||||
- [Daniel Hládek](/authors/daniel-hladek)
|
||||
- [Maroš Harahus](/authors/maros-harahus)
|
||||
|
||||
## Predmety
|
||||
|
||||
- [Diplomové práce 2024](/categories/dp2024)
|
||||
- [Bakalárske práce 2024](/categories/bp2024)
|
||||
- [Tímový projekt 2021 / Diplomové práce 2022](/categories/tp2021)
|
||||
|
||||
## Vedecké projekty
|
||||
|
||||
- [Dialógový systém](/topics/chatbot)
|
||||
- Rozpoznávanie nenávistnej reči (Hate Speech Detection)
|
||||
- [Hate Speech Project Page](/topics/hatespeech)
|
||||
- Rozpoznávanie pomenovaných entít
|
||||
- [Projektová stránka](/topics/named-entity)
|
||||
- [Anotujte korpus](/topics/named-entity/navod)
|
||||
- [Ostatné projekty](/categories/projects)
|
||||
|
||||
## Ukončené projekty
|
||||
|
||||
- [Podpora slovenčiny v knižnici Spacy](/topics/spacy)
|
||||
- [Slovenský BERT model](/topics/bert)
|
||||
- [AI4Steel](/topics/steel)
|
||||
- Korpus otázok a odpovedí
|
||||
- [Projektová stránka](/topics/question)
|
||||
- [Vytvorte otázky a odpovede](/topics/question/navod)
|
||||
- [Validujte otázky a odpovede](/topics/question/validacie)
|
||||
- [Vytvorte nezodpovedateľné otázky a odpovede](/topics/question/nezodpovedatelne)
|
||||
- Rozpoznávanie pomenovaných entít
|
||||
- [Projektová stránka](/topics/named-entity)
|
||||
- [Anotujte korpus](/topics/named-entity/navod)
|
||||
- [Podpora slovenčiny v knižnici Spacy](/topics/spacy)
|
||||
- [Ostatné projekty](/categories/projects)
|
||||
|
||||
|
||||
## Uzavreté predmety
|
||||
|
||||
## 2023
|
||||
|
||||
- [Diplomové práce 2023](/categories/dp2023)
|
||||
- [Bakalárske práce 2023](/categories/bp2023)
|
||||
|
||||
## 2022
|
||||
|
||||
- [Diplomové práce 2022](/categories/dp2022)
|
||||
- [Bakalárske práce 2022](/categories/bp2022)
|
||||
|
||||
## 2021
|
||||
|
||||
- [Bakalárske práce 2021](/categories/bp2021)
|
||||
- [Výsledky Tímového projektu 2020](/categories/tp2020)
|
||||
- [Bakalárske práce 2020](/categories/bp2020)
|
||||
- [Vedecký projekt 2021](/categories/vp2021)
|
||||
- [Bakalárske práce 2021](/categories/bp2021)
|
||||
- [Diplomové práce 2021](/categories/dp2021)
|
||||
|
||||
## 2020
|
||||
|
||||
- [Výsledky Tímového projektu 2020](/categories/tp2020)
|
||||
- [Bakalárske práce 2020](/categories/bp2020)
|
||||
|
@ -1,16 +1,5 @@
|
||||
---
|
||||
title: Cesar Abascal Gutierrez
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [iaeste]
|
||||
tag: [ner,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
## Named entity annotations
|
||||
|
||||
Intern, probably summer 2019
|
||||
|
||||
Cesar Abascal Gutierrez <cesarbielva1994@gmail.com>
|
||||
|
||||
## Goals
|
||||
|
@ -1,66 +0,0 @@
|
||||
---
|
||||
title: Oliver Pejic
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [iaeste]
|
||||
tag: [hatespeech,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
Oliver Pejic
|
||||
|
||||
IAESTE Intern Summer 2024, 12 weeks in August, September and October.
|
||||
|
||||
Goal:
|
||||
|
||||
- Help with the [Hate Speech Project](/topics/hatespeech)
|
||||
- Help with evaluation of sentence transformer models using toolkit [MTEB](https://github.com/embeddings-benchmark/mteb)
|
||||
|
||||
Final Tasks:
|
||||
|
||||
- Prepare an MTEB evaluation task for [Slovak HATE speech](https://huggingface.co/datasets/TUKE-KEMT/hate_speech_slovak).
|
||||
- Prepare an MTEB evaluation task for [Slovak question answering](https://huggingface.co/datasets/TUKE-KEMT/retrieval-skquad).
|
||||
- [Machine translate](https://huggingface.co/google/madlad400-3b-mt) an SBERT evaluation set for multiple slavic languages.
|
||||
- Write a short scientific paper with results.
|
||||
|
||||
Meeting 3.10.:
|
||||
|
||||
State:
|
||||
|
||||
- Prepared a pull request for Retrieval SK Quad.
|
||||
- Prepared a pull request for Hate Speech Slovak.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Make the pull request compatible with the MTEB Contribution guidelines. Discuss it when it is done.
|
||||
- Submit pull requests to MTEB project.
|
||||
- Machine Translate a database (HotpotQA, DB Pedia, FEVER) . Pick a database that is short, because translation might be slow.
|
||||
|
||||
Non priority tasks:
|
||||
|
||||
- Prepare databse and subnit it to HuggingFace Hub.
|
||||
- Prepare a MTEB PR for the databse.
|
||||
|
||||
Meeting 3.9:
|
||||
|
||||
State: Studied MTEB framework and transformers.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Prepare and try MTEB evaluation tasks for the database. For evaluation you can try me5-base model.
|
||||
- Make a fork of MTEB and do necessary modification, including the documentation references for the task.
|
||||
- Prepare 2 GITHUB pull requests for the databases, preliminary BEIR script given.
|
||||
|
||||
Future tasks:
|
||||
|
||||
- Prepare a machine translation system to create another slovak/multilingual evaluation task from English task.
|
||||
|
||||
Preparation (7.8.2024):
|
||||
|
||||
- Get familiar with [SentenceTransformer](https://sbert.net/) framework, study fundamental papers and write down notes.
|
||||
- Get familiar with [MTEB](https://github.com/embeddings-benchmark/mteb) evaluation framework.
|
||||
- Prepare a working environment on Google Colab or on school server or Anaconda.
|
||||
- Get familiar with [existing finetuning scripts](https://git.kemt.fei.tuke.sk/dano/slovakretrieval).
|
||||
|
||||
|
||||
|
@ -1,104 +0,0 @@
|
||||
---
|
||||
title: Sevval Bulburu
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [iaeste]
|
||||
tag: [hatespeech,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
Sevval Bulburu
|
||||
|
||||
|
||||
IAESTE Intern Summer 2023, two months
|
||||
|
||||
Goal: Help with the [Hate Speech Project](/topics/hatespeech)
|
||||
|
||||
Meeting 12.10.2023
|
||||
|
||||
[Github Repo with results](https://github.com/sevvalbulburu/Hate_Speech_Detection_Slovak)
|
||||
|
||||
State:
|
||||
|
||||
- Proposed and tried extra layers above BERT model to make a classifier in seriees of experiments. There is a single sigmoid neuron on the output.
|
||||
- Manually adjusted the slovak HS dataset. Slovak dataset is not balanced. Tried some methods for "balancing" the dataset. By google translate - augmentation. Other samples are "generated" by translation into random langauge and translating back. This creates "paraphrases" of the original samples. It helps.
|
||||
- Tried SMOTE upsampling, it did not work.
|
||||
- Is date and user name an important feature?
|
||||
- tried some grid search for hyperparameter of the neural network - learning rate, dropout, epoch size, batch size. Batch size 64 no good.
|
||||
- Tried multilingal models for Slovak dataset (cnerg), result are not good.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Please send me your work report. Please upload your scripts and notebooks on git and send me a link. git is git.kemt.fei.tuke.sk or github. Prepare some short comment about scripts.You can also upload the slovak datasetthere is some work done on it.
|
||||
|
||||
Ideas for a paper:
|
||||
|
||||
Possible names:
|
||||
|
||||
- "Data set balancing for Multilingual Hate Speech Detection"
|
||||
- "BERT embeddings for HS Detection in Low Resource Languages" (Turkish and Slovak).
|
||||
|
||||
(Possible) Tasks for paper:
|
||||
|
||||
- Create a shared draft document, e.g. on Overleaf or Google Doc
|
||||
- Write a good introduction and literature overview (Zuzka).
|
||||
- Try 2 or 3 class Softmax Layer for neural network.
|
||||
- Change the dataset for 3 class classification.
|
||||
- Prepare classifier for Slovak, English, Turkish and for multiple BERT models. Try to use multilingual BERT model for baseline embeddings.
|
||||
- Measure the effect of balancing the dataset by generation of additional examples.
|
||||
- Summarize experiments in tables.
|
||||
|
||||
|
||||
|
||||
|
||||
Meeting 5.9.2023
|
||||
|
||||
State:
|
||||
|
||||
- Proposed own Flask application
|
||||
- Created Django application with data model https://github.com/hladek/hate-annot
|
||||
|
||||
Tasks:
|
||||
|
||||
Meeting 22.8.2023
|
||||
|
||||
State:
|
||||
|
||||
- Familiar with Python, Anaconda, Tensorflow, AI projects
|
||||
- created account at idoc.fei.tuke.sk and installed anaconda.
|
||||
- Continue with previous open tasks.
|
||||
- Read a website and pick a dataset from https://hatespeechdata.com/
|
||||
- Evaluate (calculate p r f1) existing multilingual model. E.G. https://huggingface.co/Andrazp/multilingual-hate-speech-robacofi with any data
|
||||
- Get familiar with Django.
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
- ssh bulbur@idoc.fei.tuke.sk
|
||||
- nvidia-smi command to check status of GPU.
|
||||
- Use WinSCP to Copy Files. Use anaconda virtual env to create and activate a new python virtual environment. Use Visual Studio Code Remote to delvelop on your computer and run on remote computer (idoc.fei.tuke.sk). Use the same credentials for idoc server.
|
||||
- Use WSL2 to have local linux just to play.
|
||||
|
||||
Tasks:
|
||||
|
||||
- [ ] Get familiar with the task of Hate speech detection. Find out how can we use Transformer neural networks to detect and categorize hate speech in internet comments created by random people.
|
||||
- [ ] Get familiar with the basic tools: Huggingface Transformers, Learn how to use https://huggingface.co/Andrazp/multilingual-hate-speech-robacofi in Python script. Learn something about Transformer neural networks.
|
||||
|
||||
- [x] get familiar with Prodi.gy annotation tool.
|
||||
- [-] Set up web-based annotation environment for students (open, cooperation with [Vladimir Ferko](/students/2021/vladimir_ferko) ).
|
||||
|
||||
Ideas for annotation tools:
|
||||
|
||||
- https://github.com/UniversalDataTool/universal-data-tool
|
||||
- https://www.johnsnowlabs.com/top-6-text-annotation-tools/
|
||||
- https://app.labelbox.com/
|
||||
- https://github.com/recogito/recogito-js
|
||||
- https://github.com/topics/text-annotation?l=javascript
|
||||
|
||||
Future tasks (to be decided):
|
||||
|
||||
- Translate existing English dataset into Slovak. Use OPUS English Slovak Marian NMT model. Train Slovak munolingual model.
|
||||
- Prepare existing Slovak Twitter dataaset, train evaluate a model.
|
||||
|
||||
|
||||
|
@ -12,61 +12,17 @@ taxonomy:
|
||||
|
||||
## Diplomová práca 2022
|
||||
|
||||
[GIT repozitár](https://git.kemt.fei.tuke.sk/dn161mb/dp2022)
|
||||
|
||||
*Názov diplomovej práce*: Neurónový strojový preklad pomocou knižnice Fairseq
|
||||
*Názov diplomovej práce*: Prepis postupností pomocou neurónových sietí pre strojový preklad
|
||||
|
||||
*Meno vedúceho*: Ing. Daniel Hládek, PhD.
|
||||
|
||||
*Zadanie diplomovej práce*:
|
||||
|
||||
1. Vypracujte teoretický prehľad metód neurónového strojového prekladu.
|
||||
2. Podrobne opíšte vybranú metódu neurónového strojového prekladu.
|
||||
3. Natrénujte viacero modelov pre strojový preklad pomocou nástroja Fairseq a vyhodnoťte ich.
|
||||
1. Vypracujte teoretický prehľad metód "sequence to sequence".
|
||||
2. Pripravte si dátovú množinu na trénovanie modelu sequence to sequence pre úlohu strojového prekladu.
|
||||
3. Vyberte minimálne dva rôzne modely a porovnajte ich presnosť na vhodnej dátovej množine.
|
||||
4. Na základe výsledkov experimentov navrhnite zlepšenia.
|
||||
|
||||
|
||||
Stretnutie 11.1.2022
|
||||
|
||||
- Urobené všetky úlohy z minulého stretnutia, okrem textu a gitu.
|
||||
- Natrénované modely fairseq pre obojsmerný preklad angličtina slovenčina.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- dajte všetky skripty do repozitára dp2022
|
||||
- Napíšte si osnovu diplomovej práce.
|
||||
- Vypracujte draft (hrubý text) diplomovej práce.
|
||||
- V texte DP sumarizujte vykonané experimenty.
|
||||
- Pripravte si prezentáciu na obhajoby.
|
||||
- Skontrolovať či sa robí tokenizácia správne pri vyhodnotení.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte článok (pre vedúceho).
|
||||
- Urobte experiment s architektúrou MBART. Porovnajte Vaše výsledky s výsledkami v článku MBART (Liu et al. : Multilingual Denoising Pre-training for Neural Machine Translation).
|
||||
|
||||
|
||||
Stretnutie 17.12.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- rozbehané trénovanie na slovensko-anglickom (LinDat) paralelnom korpuse.
|
||||
- model z angličtiny do slovenčiny.
|
||||
- tokenizácia subword NMT.
|
||||
- rozbehané trénovanie na GPU, bez anaconda.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Cieľ je aby Vaše experimenty boli zopakovateľné. Pridajte všetky trénovacie skripty do git repozitára. Nepridávajte dáta. Pridajte skripty alebo návody na to ako pripraviť dáta.
|
||||
- [x] Zostavte tabuľku kde zapíšete parametre trénovania a dosiahnuté výsledky.
|
||||
- Napíšte prehľad aktuálnych metód strojového prekladu pomocou neurónových sietí kde prečítate viacero vedeckých článkov a ku každému uvediete názov a čo ste sa z neho dozvedeli. Vyhľadávajte kľúčové slovíčka: "Survey of neural machine translation". Chceme sa dozvedieť aj o transformeroch a neurónových jazykových modeloch.
|
||||
- [x] vyskúšajte trénovanie aj s inými architektúrami. Ku každému trénovaniu si poznačte skript, výsledky a dajte to na git.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Výskúšajte preklad v opačnom smere.
|
||||
- [x] Vyskúšanie inej metódy tokenizácie (BPE, sentencepiece, wordpiece - huggingface tokenizers).
|
||||
|
||||
Stretnutie 6.7.2021
|
||||
|
||||
Stav:
|
||||
@ -75,7 +31,7 @@ Stav:
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v trénovaní na servri IDOC, použite skript na príápravu prostredia ktorý som Vám dal.
|
||||
- Pokračujte v trénovaní na servri IDOC, použite sakrupt na príápravu prostredia ktorý som Vám dal.
|
||||
- Pripravte veľký slovensko-anglický paralelný korpus a natrénujte z neho model.
|
||||
- Model vyhodnotťe pomocou metriky BLEU. Naštudujte si metriku BLEU.
|
||||
|
||||
|
@ -14,7 +14,7 @@ taxonomy:
|
||||
|
||||
Anotácia a rozpoznávanie pomenovaných entít v slovenskom jazyku.
|
||||
|
||||
[CRZP](https://opac.crzp.sk/?fn=detailBiblioForm&sid=ECC3D3F0B3159C4F3217EC027BE4)
|
||||
|
||||
|
||||
1. Vypracujte teoretický úvod, kde vysvetlíte čo je to rozpoznávanie pomenovaných entít a akými najnovšími metódami sa robí. Vysvetlite, ako pracuje klasifikátor pre rozpoznávanie pomenovaných entít v knižnici Spacy.
|
||||
2. Pripravte postup na anotáciu textového korpusu pre systém Prodigy pre trénovanie modelu vo vybranej úlohe spracovania prirodzeného jazyka.
|
||||
|
@ -1,133 +0,0 @@
|
||||
---
|
||||
title: Márk Fehér
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2022]
|
||||
tag: [scikit,nlp,klasifikácia]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Diplomová práca 2022
|
||||
|
||||
Názov diplomovej práce: Klasifikácia textu metódami strojového učenia
|
||||
|
||||
- [GIT repozitár](https://git.kemt.fei.tuke.sk/mf425hk/dp2022)
|
||||
|
||||
## Návrh na zadanie DP
|
||||
|
||||
1. Vypracujte prehľad metód klasifikácie textu metódami strojového učenia.
|
||||
2. Pripravte slovenské trénovacie dáta vo vhodnom formáte a natrénujte viacero modelov pre klasifikáciu textu do viacerých kategórií
|
||||
3. Navrhnite, vykonajte a vyhodnoťte experimenty pre porovnanie presnosti klasifikácie textu.
|
||||
4. Navrhnite zlepšenia presnosti klasifikácie textu.
|
||||
|
||||
18.3.
|
||||
|
||||
- Práca na texte pokračuje
|
||||
- Podarilo sa spustiť finetning huggingface glue s scnc datasetom.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v texte.
|
||||
- LSTM trénovanie urobené, výsledky sú v práci.
|
||||
- Pokúsiť sa urobiť dataset interface na vlastné dáta.
|
||||
|
||||
4.3.2022
|
||||
|
||||
- Stretnutie bolo aj minulý týždeň.
|
||||
- LSTM trénovanie beží (skoro ukončené).
|
||||
- SlovakBert na colab prvé výsledky cca 65 percent na scnc (asi tam je chyba).
|
||||
- Práca na texte pokračuje.
|
||||
- Vedúcim dodaný skript na scnc datasets rozhranie
|
||||
- Vedúcim dodaný skript na trénovanie run_glue.py
|
||||
- Dodaný skript na inštaláciu pytorch a cuda 11.3
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Práca na texte - sumarizácia experimentov do tabuľky
|
||||
- Vyskúšať dotrénovanie na idoc pomocou dodaných skriptov.
|
||||
- Na trénovanie na pozadí použiť `tmux a -t 0`.
|
||||
|
||||
## Diplomový projekt 2021
|
||||
|
||||
Stretnutie 3.12.
|
||||
|
||||
- Dopracované vyhodnotenie pomocou SCNC. Výsledkom je konfúzna matica a grafy presnosti so štatistickými modelmi.
|
||||
- Rozpracovaná klasifikácia LSTM (Keras).
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pridať klasifikáciu pomocou Huggingface Transformers, model SlovakBert, multilingualBert, alebo aj iné multilinguálne modely.
|
||||
- dokončiť LSTM.
|
||||
- Pokračovať na textovej časti.
|
||||
- Zobrazte aj F1
|
||||
|
||||
|
||||
Stretnutie 5.11.2021
|
||||
|
||||
- Práca na texte, štúdium literatúry
|
||||
- pridané kódy na GIT
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zopakujte experimenty na korpuse scnc. Slovak Categorized News Corpus.
|
||||
- Pokračujte v otvorených úlohách
|
||||
- Upravte skripty do opakovateľnej podoby, pripravte dokumentáciu k skriptom.
|
||||
|
||||
|
||||
Stretnutie 15.10.
|
||||
|
||||
- trénovanie pomocou LSTM, zatiaľ nie je na gite
|
||||
- písanie do šabóny práce (cca 35 strán).
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Doplniť na GIT.
|
||||
- Zabrániť overfittingu LSTM. Early stopping alebo dropout.
|
||||
|
||||
Stretnutie 1.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- modifikácia trénovacích skriptov na vypisovanie pomocných štatistík.
|
||||
- Vytvorený GIT repozitár
|
||||
- Práca na text (cca 22 strán)
|
||||
- Pridaná referenčná literatúra.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Stiahnite si šablónu práce a vložte text čo máte pripravené, vrátane bibliografie.
|
||||
- [x] Doplňte zdrojové kódy na GITe, tak aby boli opakovateľné.
|
||||
- [x] Zoznam knižníc zapíšte do súboru requirements.txt.
|
||||
- Alebo zapíšte zoznam conda balíčkov.
|
||||
- Vyberte jednu úlohu zo zásobníka a vypracujte ju.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšajte klasifikáciu pomocou neurónových sietí.
|
||||
- Vytvorte web demo pomocou Docker
|
||||
- [x] Skúste klasifikáciu pomocou neurónovej siete.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 23.9.
|
||||
|
||||
Stav:
|
||||
|
||||
- vypracovaný draft diplomovej práce
|
||||
- pripravené dáta z BeautifulSoup - z rôznych webov (sme.sk)
|
||||
- vypracované experimenty pomocou scikit-learn na klasifikátoroch:
|
||||
- multinomial Bayes
|
||||
- random forest
|
||||
- support vector machine
|
||||
- Stochastic Gradient Descent Classifier
|
||||
- k-neighbours
|
||||
- decision tree
|
||||
- vypracované vyhodnotenie pomocou konfúznej matice,
|
||||
|
||||
|
||||
Ciele na ďalšie stretnutie:
|
||||
|
||||
- Vytvoríte si repozitár dp2022 na školskom gite, kde dáte dáta, zdrojové kódy aj texty.
|
||||
- Vybrať jeden odborný článok alebo knihu o klasifikácii textu a vypracujte poznámky.
|
||||
|
@ -3,389 +3,16 @@ title: Maroš Harahus
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2021,bp2019]
|
||||
tag: [spelling,spacy,nlp]
|
||||
tag: [spacy,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Maroš Harahus
|
||||
|
||||
- [Git repozitár ai4steel](https://git.kemt.fei.tuke.sk/ai4steel/ai4steel) (pre členov skupiny)
|
||||
- [GIT repozitár s poznámkami](https://git.kemt.fei.tuke.sk/mh496vd/Doktorandske) (súkromný)
|
||||
|
||||
|
||||
## Dizertačná práca
|
||||
|
||||
v roku 2023/24
|
||||
|
||||
Automatické opravy textu a spracovanie prirodzeného jazyka
|
||||
|
||||
Ciele:
|
||||
|
||||
- Zverejniť a obhájiť minimovku
|
||||
- Napísať dizertačnú prácu
|
||||
- Publikovať 2 články triedy Q2-Q3
|
||||
|
||||
Súvisiaca BP [Vladyslav Krupko](/students/2020/vladyslav_krupko)
|
||||
|
||||
|
||||
## Druhý rok doktorandského štúdia
|
||||
|
||||
Ciele:
|
||||
|
||||
- *Publikovanie článku Q2/Q3* - podmienka pre pokračovanie v štúdiu.
|
||||
- *Obhájiť minimovku*. Minimovka by mala obsahovať definíciu riešenej úlohy, prehľad problematiky, tézy dizertačnej práce - vedecké prínosy.
|
||||
- Poskytnite najnovší prehľad.
|
||||
- Popísať vedecký prínos dizertačnej práce
|
||||
- Zverejniť min. 1 príspevok na školskej konferencii.
|
||||
- Publikovať min. 1 riadny konferenčný príspevok.
|
||||
- Pripraviť demo.
|
||||
- Pomáhať s výukou, projektami a výskumom.
|
||||
|
||||
### Návrh na tézy dizertačnej práce
|
||||
|
||||
Automatické opravy textu pri spracovaní prirodzeného jazyka
|
||||
|
||||
Hlavným cieľom dizertačnej práce je návrh, implementácia a overenie modelu pre automatickú opravu textov.
|
||||
|
||||
Na splnenie tohto cieľa je potrebné vykonať tieto úlohy:
|
||||
|
||||
1. Analyzovať súčasný stav modelov pre opravu gramatických chýb a preklepov.
|
||||
2. Vybrať vhodné metódy a navrhnúť vlastný model pre automatickú opravu textov v slovenskom jazyku.
|
||||
3. Navrhnúť a pripraviť metódu augumentácie dát generovaním chýb v texte.
|
||||
4. Zozbierať dáta a pripraviť ich do podoby vhodnej na overenie modelu pre automatickú opravu slovenského textu.
|
||||
5. Navrhnúť a vykonať viacero experimentov pre overenie a porovnanie navrhnutého modelu.
|
||||
|
||||
|
||||
|
||||
Plán činosti na semester:
|
||||
|
||||
1. Prediskutovať a vybrať definitívnu tému. Obidve témy sú komplikované.
|
||||
- Trénovanie jazykových modelov. Cieľom by bolo zlepšenie jazykového modelovania.
|
||||
- [x] Dá sa nadviazať na existujúce trénovacie skripty.
|
||||
- [x] Dá sa využiť webový korpus.
|
||||
- [x] Dá sa využiť naša GPU infraštruktúra. (Na trénovanie menších modelov)
|
||||
- [x] Veľký praktický prínos.
|
||||
- [ ] Teoretický prínos je otázny.
|
||||
- [ ] Naša infraštruktúra je asi slabá na väčšie modely.
|
||||
- Oprava gramatických chýb.
|
||||
- [x] Dá sa nadviazať na "spelling correction" výskum a skripty.
|
||||
- [x] Teoretický prínos je väčší.
|
||||
- [x] Trénovanie by bolo jednoduchšie na našom HW.
|
||||
- Posledné review je z [2020](https://scholar.google.sk/scholar?hl=en&as_sdt=0%2C5&q=grammatical+error+correction+survey&btnG=)
|
||||
|
||||
|
||||
2. Napísať prehľadový článok.
|
||||
- Prečítať existujúce prehľady na danú tému. Zistitť ako boli napísané, kde boli uverejnené, čo je ich prínos. Je dobré použiť metodiku https://www.prisma-statement.org//
|
||||
- Identifikovať v čom by bol náš prehľad originálny a kde by bolo možné uverejniť.
|
||||
- Prečítať a zotriediť aspoň 200 článkov na danú tému.
|
||||
- Zistiť, aké metódy, datasety a spôsoby vyhodnotenia sa používajú.
|
||||
- Rozšíriť prehľadový článok do formy minimovky.
|
||||
|
||||
3. Priebežne pracovať na experimentoch.
|
||||
- Vybrať vhodnú dátovú množinu a metriku vyhodotenia.
|
||||
- Vybrať základnú metódu a vyhodnotiť.
|
||||
- Vyskúšať modifikáciu základnej metódy a vyhodotiť.
|
||||
|
||||
4. Napísať 2 konferenčné články.
|
||||
- Písať si poznámky pri experimentoch.
|
||||
- Predbežné experimenty zverejniť v krátkom článku.
|
||||
- Prediskutovať spôsob financovania.
|
||||
|
||||
Stretnutie 27.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Prečítaných a spoznámkovaných cca 4O článkov na tému "Grammar Error Correction".
|
||||
- Experimenty strojový preklad s Fairseq. Z toho vznikol článok SAMI.
|
||||
- Poznámky o Transfer Leaarning. Preštudované GPT3.
|
||||
- Sú rozpracované ďalšie modely pre strojový preklad. Česko-slovenský.
|
||||
- https://github.com/KaushalBajaj11/GEC--Grammatical-Error-Correction
|
||||
- https://github.com/LukasStankevicius/Towards-Lithuanian-Grammatical-Error-Correction
|
||||
- https://github.com/yuantiku/fairseq-gec
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Rozbehať fairseq GEC a porozmýšľať ako by a to dalo zlepšiť.
|
||||
- Pozrieť si prehľad https://scholar.google.sk/scholar?hl=en&as_sdt=0%2C5&q=question+generation&btnG=&oq=question+ge a napísať niekoľko poznámok. Vedeli by sme nájsť prínos?
|
||||
|
||||
Nápady:
|
||||
|
||||
- Smerovať to na inú generatívnu úlohu podobnú strojovému prekladu. Napríklad "Question generation".
|
||||
- question generation by sa dalo použiť na zlepšenie QA-IR systémov.
|
||||
- Možno "multilingual question generation"?
|
||||
|
||||
Stretnutie 9.9.2022
|
||||
|
||||
Stav:
|
||||
|
||||
Počas prázdnin sa pracovalo na experimentoch s fairseq - strojový preklad a Spacy trénovanie, štúdium literatúry.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Prečítať niekoľko prehľadov na tému Grammar Correction, zistiť ako sú napísané a čo je v nich napísané.
|
||||
- [x] Prečítať niekoľko prehľadov (survey) na tému Neural Language Modelling - BERT Type models. Zistiť, kde je priestor na vedecký prínos.
|
||||
- [x] Zistiť čo je to Transfer Learning. https://ieeexplore.ieee.org/abstract/document/9134370
|
||||
- Na obe témy vyhľadať a prečítať niekoľko článkov. Uložiť záznam do databázy, napísať poznánky ku článku.
|
||||
- [ ] Porozmýšľať nad témou práce.
|
||||
- [x] Pokračovať v experimenotch fairseq so strojovým prekladom. Vieme pripraviť experiment na tému "spelling", "grammar" alebo training "roberta small", "bart small" na web korpuse? Toto by sa mohlo publikovať na konferenčnom článku do konca roka. treba vybrať dátovú množinu, metodiku vyhodnoteia, metódu trénovania.
|
||||
- [-] Čítať knihy - Bishop-Patter Recognition. Yang: Transfer Learning.
|
||||
|
||||
|
||||
|
||||
## Prvý ročník PhD štúdia
|
||||
|
||||
29.6.
|
||||
|
||||
- Vyskúšané https://github.com/NicGian/text_VAE, podľa článku https://arxiv.org/pdf/1511.06349.pdf
|
||||
Tento prístup je pôvodne na Question Generation. Využíva GLOVE embeding a VAE. Možno by sa to dalo využiť ako chybový model.
|
||||
- So skriptami fairseq sú zatiaľ problémy.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
- Vyskúšať tutoriál https://fairseq.readthedocs.io/en/latest/getting_started.html#training-a-new-model.
|
||||
- Prečítať knihu "Bishop: Pattern Recognition".
|
||||
|
||||
|
||||
17.6.
|
||||
|
||||
- Končí financovanie USsteel , je potrebné zmeniť tému.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Do konca ďalšieho školského roka submitovať karent článok. To je podmienka pre ďalšie pokračovanie. Článok by mal nadviazať na predošlý výskum v oblasti "spelling correction".
|
||||
- Preštudovať články:
|
||||
* Survey of automatic spelling correction
|
||||
* Learning string distance with smoothing for OCR spelling correction
|
||||
* Sequence to Sequence Convolutional Neural Network for Automatic Spelling Correction
|
||||
* Iné súvisiace články. Kľúčové slová: "automatic spelling correction."
|
||||
- Naučiť sa pracovať s fairseq. Naučiť sa ako funguje strojový preklad.
|
||||
- Zopakovať experiment OCR Trec-5 Confusion Track. Pridaný prístup do repozitára https://git.kemt.fei.tuke.sk/dano/correct
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vymyslieť systém pre opravu gramatických chýb. Aka Grammarly.
|
||||
- Využiť GAN-VAE sieť na generovanie chybového textu. To by mohlo pomôcť pri učení NS.
|
||||
|
||||
|
||||
|
||||
3.6.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripraviť experiment pri ktorom sa vyhodnotia rôzne spôsoby zhlukovania pre rôzne veľkosti priestoru (PCA, k-means, DBSCAN, KernelPCA - to mi padalo). Základ je v súbore embed.py
|
||||
- Do tabuľky spísať najdôležitejšie a najmenej dôležité parametre pre rôzne konvertory a pre všetky konvertory naraz (furnace-linear.py).
|
||||
- Vypočítanie presnosti pre každý konvertor zo spojeného modelu, pokračovať.
|
||||
|
||||
27.5.
|
||||
|
||||
- Našli sme medzné hodnoty pre dáta zo skriptov USS.
|
||||
- Urobený skript, polynómová transformácia príznakov nepomáha.
|
||||
- rozrobený skript na generovanie dát GAN.
|
||||
|
||||
Otvorené úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
- (3) Urobiť zhlukovanie a pridať informáciu do dátovej množiny. Zistiť, či informácia o zhlukoch zlepšuje presnosť. Informácia o grade umožňuje predikciu.
|
||||
|
||||
Stretnutie 20.5.
|
||||
|
||||
Otvorené úlohy:
|
||||
|
||||
- [ ] (1) Vypočítanie presnosti pre každý konvertor zo spojeného modelu a porovnanie s osobitnými modelmi. Chceme potvrdiť či je spojený model lepší vo všetkých prípadoch.
|
||||
- [ ] (2) Doplniť fyzické limity pre jednotlivé kolónky do anotácie. Ktoré kolónky nemôžu byť negatívne? Tieto fyzické limity by mali byť zapracované do testu robustnosti.
|
||||
- [ ] (4) Overenie robustnosti modelu. Vymyslieť testy invariantnosti, ktoré overia ako sa model správa v extrémnej situácii. Urobiť funkciu, kotrá otestuje parametre lineárnej regresie a povie či je model validný. Urobiť funkciu, ktorá navrhne nejaké vstupy a otestuje, či je výstup validný.
|
||||
|
||||
Neprioritné úlohy:
|
||||
|
||||
- [o] Preskúmať možnosti zníženia rozmeru vstupného priestoru. PCA? alebo zhlukovanie? Zistiť, či vôbec má zmysel používať autoenóder (aj VAE). (Asi to nemá zmysel)
|
||||
- [x] Vyradenie niektorých kolóniek, podľa koeficientu lineárnej regresie (daniel, funguje ale nezlepšuje presnosť).
|
||||
- Generovať umelé "extrémne" dáta. Sledovať, ako sa model správa. Extrémne dáta by mali byť fyzicky možné.
|
||||
|
||||
|
||||
Urobené úlohy:
|
||||
|
||||
- Hľadanie hyperparametrov pre neurónku a náhodný les.
|
||||
|
||||
Report 29.4.2022
|
||||
|
||||
- Práca na VE.
|
||||
- Čítanie článkov.
|
||||
|
||||
Report 8.4.2022
|
||||
|
||||
- Študovanie teórie
|
||||
- Práca na VAE kóde rozpracovaný
|
||||
|
||||
Report 1.4.2022
|
||||
|
||||
- práca na DH neurónovej sieťi
|
||||
![DH](/uss.PNG)
|
||||
- študovanie o Deep Belief Network
|
||||
|
||||
Stretnutie 28.3.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dokončiť podrobnú anotáciu dát. Aké sú kazuálne súvisosti medzi atribútmi?
|
||||
- Zopakovať a vylepšiť DH neurónovú sieť na predikciu síry
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zvážiť použitie Deep Belief Network.
|
||||
|
||||
Report 25.3.2022
|
||||
|
||||
- Porovnávanie dát január, február (subor je na gite)
|
||||
- Hodnotenie ešte nemám spisujem čo tým chcem dosiahnuť ci to ma vôbec zmysel na tom pracovať
|
||||
|
||||
Report 18.3.2022
|
||||
|
||||
- práca na dátach (príprava na TS, zisťovanie súvislosti, hľadanie hraničných hodnôt)
|
||||
- študovanie timesesries (https://heartbeat.comet.ml/building-deep-learning-model-to-predict-stock-prices-part-1-2-58e62ad754dd,)
|
||||
- študovanie o reinforcement learning (https://github.com/dennybritz/reinforcement-learning
|
||||
https://github.com/ShangtongZhang/reinforcement-learning-an-introduction)
|
||||
- študovanie o transfer learning
|
||||
- študovanie feature selection (https://machinelearningmastery.com/feature-selection-machine-learning-python/
|
||||
https://www.kdnuggets.com/2021/12/alternative-feature-selection-methods-machine-learning.html)
|
||||
|
||||
Report 11.3.2022
|
||||
|
||||
- Data Preprocessing (inspirácia- https://www.kaggle.com/tajuddinkh/drugs-prediction-data-preprocessing-json-to-csv)
|
||||
- Analyzovanie dát (inspirácia- https://www.kaggle.com/rounakbanik/ted-data-analysis, https://www.kaggle.com/lostinworlds/analysing-pokemon-dataset
|
||||
https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners)
|
||||
- Pracovanie na scripte jsnol --> csv
|
||||
|
||||
- Študovanie time series (https://www.machinelearningplus.com/time-series/time-series-analysis-python/
|
||||
Python Live - 1| Time Series Analysis in Python | Data Science with Python Training | Edureka
|
||||
Complete Python Pandas Data Science Tutorial! (Reading CSV/Excel files, Sorting, Filtering, Groupby)
|
||||
https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python)
|
||||
- Time series články (https://ieeexplore.ieee.org/abstract/document/8853246
|
||||
https://ieeexplore.ieee.org/abstract/document/8931714
|
||||
https://ieeexplore.ieee.org/abstract/document/8942842
|
||||
https://arxiv.org/abs/2103.01904)
|
||||
|
||||
Working on:
|
||||
- Neurónovej siete pre GAN time series (stále mam nejaké errory)
|
||||
- klasickej neuronke
|
||||
|
||||
Stretnutie 1.3.2022
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zapracovať wandB pre reporting experimentov
|
||||
- Textovo opísať dáta
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšať predtrénovanie pomocou "historických dát".
|
||||
|
||||
Report 25.02.2022
|
||||
|
||||
- Prehlaď o jazykových modeloch (BERT, RoBERTa, BART, XLNet, GPT-3) (spracovane poznámky na gite)
|
||||
- Prehlaď o time-series GAN
|
||||
- Úprava skriptu z peci jsnol -- > csv
|
||||
- Skúšanie programu GAN na generovanie obrázkov (na pochopenie ako to funguje)
|
||||
- Hľadanie vhodnej implementácie na generovanie dát
|
||||
- Rozpracovaná (veľmi malo) analýza datasetu peci
|
||||
|
||||
Stretnutie 2.2.2022
|
||||
|
||||
In progress:
|
||||
|
||||
- Práca na prehľade článkov VAE-GAN
|
||||
- na (súkromný) git pridaný náhľad dát a tavný list
|
||||
- práca na Pandas skripte
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dokončiť spacy článok
|
||||
- Dokončiť prehľad článkov
|
||||
- Pripraviť prezentáciu na spoločné stretnutie. Do prezentácie uveď čo si sa dozvedel o metódach VAE a GAN. Vysvetli, ako funguje "autoenkóder".
|
||||
- Napísať krátky blog vrátane odkazov nal literatúru o tom ako funguje neurónový jazykový model (BERT, Roberta, BART, GPT-3, XLNet). Ako funguje? Na čo všetko sa používa?
|
||||
|
||||
|
||||
Stretnutie 18.1.2022
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Do git repozitára pridať súbor s podrobným popisom jednotlivých kolóniek v dátovej množine.
|
||||
- [-] Do git repozitára pridať skript na načítanie dát do Pandas formátu.
|
||||
- [ ] Vypracovať písomný prehľad metód modelovania procesov v oceliarni (kyslíkového konvertora BOS-basic oxygen steelmaking).
|
||||
- [x] Nájsť oznam najnovších článkov k vyhľadávaciuemu heslu "gan time series", "vae time series", "sequence modeling,prediction" napísať ku nim komentár (abstrakt z abstraktu) a dať na git.
|
||||
- [x] Preformulovať zadanie BP Stromp.
|
||||
- [-] Dokončiť draft článok spacy.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [-] Získať prehľad o najnovších metódach NLP - transformers,GAN, VAE a nájsť súvis s modelovaním BOS.
|
||||
- [ ] nájsť vhodnú implementáciu gan-vae v pythone pre analýzu časových radov alebo postupnosti.
|
||||
|
||||
Stretnutie 17.1.2022
|
||||
|
||||
- Mame dáta z vysokej pece (500GB)
|
||||
- Zlepšený konvolučný autoenkóder - dosahuje state-of-the-art.
|
||||
- Prečítané niečo o transformers a word2vec.
|
||||
|
||||
Stretnutie 9.12.2021
|
||||
|
||||
- Natrénovaný autoenkóder (feed-forward) pre predikciu celkovej váhy Fe a obsahu S.
|
||||
- dát je celkom dosť.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyskúšať iné neurónové siete (keras?).
|
||||
- Pohľadať dátové množiny, ktoré sú podobné riešenej úlohe. Napr. Open Data.
|
||||
|
||||
Stretnutie 26.11.2021
|
||||
|
||||
Dáta z US Steel:
|
||||
|
||||
- Najprv sa do vysokej pece nasypú suroviny.
|
||||
- Z tavby sa postupne odoberajú vzorky a meria sa množstvo jednotlivých vzoriek.
|
||||
- Na konci tavby sa robí finálna analýza taveniny.
|
||||
- Priebeh procesu závisí od vlastností konkrétnej pece. Sú vlastnosti pece stacionárne? Je možné , že vlastnosti pece sa v čase menia.
|
||||
- Cieľom je predpovedať výsledky anaýzy finálnej tavby na základe predošlých vzoriek?
|
||||
- Cieľom je predpovedať výsledky nasledujúceho odberu na základe predchádzajúcich?
|
||||
- Čo znamená "dobrá tavba"?
|
||||
- Čo znamená "dobrá predpoveď výsledkov"?
|
||||
- Je dôležitý čas odbery vzorky?
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Formulovať problém ako "predikcia časových radov" - sequence prediction.
|
||||
- Nápad: The analysis of time series : an introduction / Chris Chatfield. 5th ed. Boca Raton : Chapman and Hall, 1996. xii, 283 s. (Chapman & Hall texts in statistical science series). - ISBN 0-412-71640-2 (brož.).
|
||||
- Prezrieť literatúru a zistiť najnovšie metódy na predikciu.
|
||||
- Navrhnúť metódu konverzie dát na vektor príznakov. Sú potrebné binárne vektory?
|
||||
- Navrhnúť metódu výpočtu chybovej funkcie - asi euklidovská vzdialenosť medzi výsledkov a očakávaním.
|
||||
- Vyskúšať navrhnúť rekurentnú neurónovú sieť - RNN, GRU, LSTM.
|
||||
- Nápad: Transformer network, Generative Adversarial Network.
|
||||
- Nápad: Vyskúšať klasické štatistické modely (scikit-learn) - napr. aproximácia polynómom, alebo SVM.
|
||||
|
||||
Stretnutie 1.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Štúdium základov neurónových sietí
|
||||
- Úvodné stretnutie s US Steel
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vypracovať prehľad aktuálnych metód grafových neurónových sietí
|
||||
- Nájsť a vyskúšať toolkit na GNN.
|
||||
- Vytvoriť pracovný repozitár na GITe.
|
||||
- Naštudovať dáta z US Steel.
|
||||
- Publikovať diplomovú prácu.
|
||||
|
||||
|
||||
## Diplomová práca 2021
|
||||
|
||||
- [CRZP](https://opac.crzp.sk/?fn=detailBiblioForm&sid=ECC3D3F0B3159C4F3216E2027BE4)
|
||||
- [Zdrojové kódy](https://git.kemt.fei.tuke.sk/mh496vd/diplomovka/)
|
||||
|
||||
Názov diplomovej práce: Neurónová morfologická anotácia slovenského jazyka
|
||||
|
||||
|
||||
## Návrh na zadanie DP
|
||||
|
||||
1. Vysvetlite, ako funguje neurónová morfologická anotácia v knižnici Spacy. Vysvetlite, ako funguje predtrénovanie v knižnici Spacy.
|
||||
2. Pripravte slovenské trénovacie dáta vo vhodnom formáte a natrénujte základný model morfologickej anotácie pomocou knižnice Spacy.
|
||||
3. Pripravte model pre morfologickú anotáciu s pomocou predtrénovania.
|
||||
@ -582,6 +209,8 @@ Stretnutie: 20.2.2020:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Tímový projekt 2019
|
||||
|
||||
Projektové stránky:
|
||||
|
Before Width: | Height: | Size: 35 KiB |
@ -8,17 +8,14 @@ taxonomy:
|
||||
---
|
||||
# Patrik Pavlišin
|
||||
|
||||
# Diplomová práca 2022
|
||||
Predbežný názov diplomovej práce:
|
||||
|
||||
|
||||
Predbežný názov: Neurónový strojový preklad
|
||||
Neurónový strojový preklad
|
||||
|
||||
Návrh na nástroje pre strojový preklad:
|
||||
|
||||
- OpenNMT-py
|
||||
- Fairseq
|
||||
- Hugging Face Transformers
|
||||
|
||||
|
||||
## Návrh na zadanie diplomovej práce
|
||||
|
||||
@ -27,120 +24,6 @@ Návrh na nástroje pre strojový preklad:
|
||||
3. Pripraviť vybraný paralelný korpus do vhodnej podoby a pomocou vybranej metódy natrénovať model pre strojový preklad.
|
||||
4. Vyhodnotiť experimenty a navrhnúť možnosti na zlepšenie.
|
||||
|
||||
## Diplomový projekt 2
|
||||
|
||||
Ciele na semester:
|
||||
|
||||
1. Natrénovať "kvalitný model" na preklad z angličtiny do slovenčiny.
|
||||
2. Napísať draft diplomovej práce.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- natrénovať aj iné preklady (z a do češtiny).
|
||||
|
||||
18.2.2022
|
||||
|
||||
- Beží trénovanie na idoc
|
||||
|
||||
Úlohy:
|
||||
|
||||
Zmeňte štruktúru práce podľa tohoto myšienkového postupu.
|
||||
Pridajte nové časti a vyradte nerelevantné časti.
|
||||
|
||||
1. Vysvetlite čo je to neurónový strojovyý preklad.
|
||||
2. Vysvetlite, čo je to neurónová sieť.
|
||||
3. Povedze aké typy neurónových sietí sa používajú na strojový preklad.
|
||||
4. Vyberte konkrétnu neurónovú sieť (tú ktorá sa používa v OPennmt) a podrobne opíšte ako funguje.
|
||||
5. Predstavte Open NMT.
|
||||
6. Povedzte o dátach ktoré ste použili (dorobiť).
|
||||
7. Vysvetlite, ako ste pripravili experimenty, ako ste ich spustili a aké výlsekdy ste dosiahli (dorobiť).
|
||||
8. Sumarizujte experimenty a určite miesto na zlepšenie (dorobiť).
|
||||
|
||||
27.1.2022
|
||||
|
||||
- Hotovy model na CZ-EN
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Aktualizujte trénovacie skripty na gite.
|
||||
- Rozbehajte GPU trénovnaie na idoc. Vyriešte technické problémy.
|
||||
- Natrénujte viacero modelov s viacerými nastaveniami a výsledkyž dajte do tabuľky. Ku každému modelu si poznačte výsledné BLEU. Výsledky skontrolujte aj osobne.
|
||||
- Pokračujte na texte práce. Odstrániť nezmyselné časti. Pri ďalšom stretnutí prezentujte stav textovej časti.
|
||||
|
||||
|
||||
17.12.2021
|
||||
|
||||
- Vylepšený draft práce.
|
||||
- Nové vyhodnotenie a výsledky modelu.
|
||||
- Trénovanie na česko-anglickom korpuse.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- natrénujte na tomto EN-SK korpuse: https://lindat.mff.cuni.cz/repository/xmlui/handle/11858/00-097C-0000-0006-AAE0-A
|
||||
- Pokračujte v otvorených úlohách z minulého stretnutia.
|
||||
- Výsledky experiemntov zhrňte do tabuľky. Poznačte architektúru neurónovej siete, parametre trénovania.
|
||||
- Skúste rozbehať trénovanie na GPU.
|
||||
|
||||
1. Vytvorte nové conda prostredie. Spustite:
|
||||
|
||||
conda install pytorch=1.8.1cudatoolkit=10.1 -c pytorch
|
||||
|
||||
2. Nainštalujte OpenNMT.
|
||||
|
||||
|
||||
26.11.2021
|
||||
|
||||
Natrénovaný prvý model OpenNMT na korpuse europarlament.
|
||||
Výslekdy vyzerajú OK, ale sú chaotické. Pravdepodobne bolo trénovanie prerušené predčasne. Zatiaľ nefunguje trénovanie na GPU.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v trénovaní Europarl. Modelu, skúste vylepšiť výsledky.
|
||||
- Trénovanie robte opakovateľným spôsobom - dajte na git nastavenia a trénovacie skripty, ale nie textové dáta. Len poznačte odkiaľ ste ich stiahli.
|
||||
- Pokračujte v práci na texte - myšlienky by mali logicky nasledovať za sebou.
|
||||
|
||||
|
||||
12.11.2021
|
||||
|
||||
Práca na texte
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zlepšiť štruktúru práce
|
||||
- Dotrénovať a vyhodnotiť model slovenčina-angličtina.
|
||||
|
||||
28.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Vypracovaný draft článoku o transformeroch, treba vylepšiť. Článok je na ZP Wiki
|
||||
- Problém pri príprave trénovacích dát.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Naučte sa pripravovať textové dáta. Prejdite si knihu https://diveintopython3.net aspoň do 4 kapitoly. Vypracujte všetky príklady z nej.
|
||||
- Pokračujte v práci na článku. Treba doplniť odkazy do textu. Treba zlepšiť štruktúru a logickú náväznosť viet. Vysvetlite neznáme pojmy.
|
||||
- Zmente článok na draft diplomovej práce. Vypracujte osnovu diplomovej práce - napíšte názvy kapitol a ich obsah. Zaraďte tam text o transformeroch ktorý ste vypracovali.
|
||||
- Pripravte textové dáta do vhodnej podoby a spustite trénovanie.
|
||||
|
||||
|
||||
Stretnutie 30.9.
|
||||
|
||||
Stav:
|
||||
|
||||
- Len začaté štúdium článkov, ostatné úlohy zostávajú otvorené.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v úlohách zo 17.6.
|
||||
- Na trénovanie použite OpenNMT.
|
||||
- Vytvorte si repozitár dp2022 a do neho dajte skripty na natrénovanie modelov. Nedávajte tam veľké dáta, ale dajte tam skript na ich stiahnutie, napr. pomocou wget.
|
||||
- prepare-env.sh : ako ste vyttvorili Vaše prostredie - nainštalovali programy.
|
||||
- download-data.sh: ako ste získali dáta
|
||||
- prepare-data.sh: ako ste pripravili dáta
|
||||
- train1.sh: ako ste natrénovali model
|
||||
- evaluate1.sh: ako ste vyhodnotili model.
|
||||
|
||||
## Diplomový projekt 1
|
||||
|
||||
Stretnutie 17.6.
|
||||
@ -153,7 +36,7 @@ Stretnutie 17.6.
|
||||
- Skúste zlepšiť presnosť strojového prekladu. Modifikujte setup tak, aby sa výsledky zlepšili.
|
||||
- Preštudujte si architektúru neurónovej siete typu Transformer. Prečítajte si blogy a urobte poznámky,
|
||||
Prečítajte si článok s názvom "Attention is all you need.". Urobte si poznámky čo ste sa dozvedeli.
|
||||
- Preštudujte si architektúru typu enkóder-dekóder. Urobte si poznámky čo ste sa dozvedeli a z akých zdrojov.
|
||||
- Preštudujte si architektúru typu enkóder-dekóider. Urobte si poznámky čo ste sa dozvedeli a z akých zdrojov.
|
||||
Využívajte vyhľadávač Scholar.
|
||||
|
||||
Stretnutie 9.4.
|
||||
|
@ -1 +0,0 @@
|
||||
data downloaded from " https://lindat.mff.cuni.cz/repository/xmlui/discover "
|
@ -1 +0,0 @@
|
||||
nohup perl tools/multi-bleu.perl dp2022/sk-en/europarl-v7.clean.sk-en.sk < dp2022/sk-en/pred_10000.txt2 > prekladsk&
|
@ -1,11 +0,0 @@
|
||||
import sys
|
||||
|
||||
for l in sys.stdin:
|
||||
line = l.rstrip()
|
||||
tokens = line.split()
|
||||
result = []
|
||||
for token in tokens:
|
||||
items = token.split("|")
|
||||
print(items)
|
||||
result.append(items[0])
|
||||
print(" ".join(result))
|
@ -1,6 +0,0 @@
|
||||
onmt_build_vocab -config dp2022/sk-en/trainsk.yaml -n_sample 10000
|
||||
|
||||
onmt_train -config dp2022/sk-en/trainsk.yaml
|
||||
|
||||
onmt_translate -model dp2022/sk-en/run/model_step_1000.pt -src dp2022/sk-en/src-test.txt -output dp2022/sk-en/pred_1000.txt -verbose
|
||||
|
@ -1,33 +0,0 @@
|
||||
# train.yaml
|
||||
|
||||
## Where the samples will be written
|
||||
save_data: dp2022/run2/example
|
||||
## Where the vocab(s) will be written
|
||||
src_vocab: dp2022/run2/example.vocab.src
|
||||
tgt_vocab: dp2022/run2/example.vocab.tgt
|
||||
# Prevent overwriting existing files in the folder
|
||||
overwrite: False
|
||||
|
||||
|
||||
# Corpus opts
|
||||
data:
|
||||
corpus_1:
|
||||
path_src: dp2022/europarl-v7.sk-en.en
|
||||
path_tgt: dp2022/europarl-v7.sk-en.sk
|
||||
valid:
|
||||
path_src: dp2022/europarl-v7.clean.sk-en.en
|
||||
path_tgt: dp2022/europarl-v7.clean.sk-en.sk
|
||||
|
||||
# Vocabulary files that were just created
|
||||
src_vocab: dp2022/run2/example.vocab.src
|
||||
tgt_vocab: dp2022/run2/example.vocab.tgt
|
||||
|
||||
# Train on a single GPU
|
||||
world_size: 1
|
||||
gpu_ranks: [0]
|
||||
|
||||
# Where to save the checkpoints
|
||||
save_model: dp2022/run2/model
|
||||
save_checkpoint_steps: 1000
|
||||
train_steps: 20000
|
||||
valid_steps: 10000
|
@ -171,3 +171,4 @@ Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov.
|
||||
|
||||
[3]. ŠÍMA J., NERUDA R.: Teoretické otázky neurónových sítí [online]. [1996].
|
||||
|
||||
[4]. ZHANG A., LIPTON C. Z., LI M., SMOLA J. A.: Dive into Deep Learning. [online]. [citované 06-11-2020].
|
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 42 KiB |
@ -1,127 +0,0 @@
|
||||
## Attention, The Transformer
|
||||
|
||||
**Úvod**
|
||||
|
||||
Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. Systémy počítačového videnia (CV) založené na CNN môžu tiež ťažiť z mechanizmov pozornosti. Hlavnou vlastnosťou tzv. “mechanizmus pozornosti” je že vie na základe vstupnej postupnosti v každom kroku rozhodnúť, ktoré časti postupnosti sú dôležité. Je to technika, ktorá napodobňuje kognitívnu pozornosť.
|
||||
|
||||
Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. [4]
|
||||
|
||||
Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol navrhnutý nový model sekvenčného učenia R-Transformer. Ide o viacvrstvovú architektúru postavenú na RNN a štandardnom Transformeri, pričom využíva výhody oboch svetov, ale zároveň sa vyhýba ich príslušným nevýhodám. Konkrétnejšie, pred výpočtom globálnych závislostí pozícii pomocou Multi-head attention najskôr spresníme znázornenie každej polohy tak, aby sa sekvenčné a lokálne informácie v jej susedstve mohli v reprezentácii skomprimovať. Aby sa to dosiahlo bola zavedená lokálna rekurentná neurónová sieť, označená ako LocalRNN, na spracovanie signálov v rámci lokálneho okna končiaceho na danej pozícii. LocalRNN navyše pracuje na miestnych oknách všetkých pozícií identicky a nezávisle a pre každú z nich vytvára skrytú reprezentáciu. Okrem toho, keďže sa lokálne okno posúva pozdĺž sekvencie jednu pozíciu za druhou, sú zahrnuté aj globálne sekvenčné informácie. Dôležité najme je, že nakoľko LocalRNN sa používa iba na lokálne okná, vyššie uvedené nevýhody RNN je možné zmierniť. [1][6]
|
||||
|
||||
Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. LSTM je architektúra umelej rekurentnej neurónovej siete (RNN), ktorá sa používa v oblasti deep-learning učenia. Na rozdiel od štandardných dopredných neurónových sietí (ang. Feedforward neural network) má LSTM spätnú väzbu. Dokáže spracovať nielen jednotlivé dátové body (napríklad obrázky), ale aj celé sekvencie dát (napríklad reč alebo video). Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. [7] [8]
|
||||
|
||||
RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. [8]
|
||||
|
||||
**Modelová architektúra**
|
||||
|
||||
Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. [1]
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Modelov%c3%a1%20architekt%c3%bara%20Transformer.png)|
|
||||
|:--:|
|
||||
|Obr 1. Modelová architektúra Transformer|
|
||||
|
||||
## Encoder-Decoder architektúra
|
||||
|
||||
Rovnako ako predchádzajúce modely, Transformer používa architektúru encoder-decoder. Encoder-Decoder architektúra je spôsob použitia rekurentných neurónových sietí na problémy s predikciou sekvencie k sekvencii. Pôvodne bol vyvinutý pre problémy so strojovým prekladom, aj keď sa osvedčil pri súvisiacich problémoch s predikciou sekvencie k sekvencii, ako je zhrnutie textu a zodpovedanie otázok. Skladá sa z 3 častí (encoder, intermediate vector a decoder).
|
||||
|
||||
Encoder – prijme jeden prvok vstupnej sekvencie v každom časovom kroku, spracuje ho, zhromaždí informácie o danom prvku a šíri ho ďalej.
|
||||
|
||||
Intermediate vector – konečný vnútorný stav vytvorený z časti encoder modelu. Obsahuje informácie o celej vstupnej sekvencii, ktoré pomôžu decoderu robiť presné predpovede.
|
||||
|
||||
Decoder – predpovedá výstup v každom časovom kroku.
|
||||
|
||||
Encoder pozostáva z kódovacích vrstiev, ktoré spracovávajú vstup iteračne jednu vrstvu za druhou, zatiaľ čo decoder pozostáva z dekódovacích vrstiev, ktoré robia to isté s výstupom encodera. Funkciou každej vrstvy encodera je generovať kódovanie, ktoré obsahuje informácie o tom, ktoré časti vstupov sú navzájom relevantné. Odošle svoje kódovanie do ďalšej vrstvy encodera ako vstupy. Každá decoderová vrstva robí opak, pričom použije všetky kódovania a na začlenenie výstupnej sekvencie použije svoje začlenené kontextové informácie. Aby sa to dosiahlo, každá vrstva encodera a decodera využíva mechanizmus pozornosti.
|
||||
|
||||
Pri každom vstupe pozornosť zvažuje relevanciu každého ďalšieho vstupu a čerpá z neho pri vytváraní výstupu. Každá decoderová vrstva má mechanizmus dodatočnej pozornosti, ktorý čerpá informácie z výstupov predchádzajúcich decoderov, než vrstva decodera čerpá informácie z kódovaní.
|
||||
|
||||
Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neurónová sieť, v ktorej spojenia medzi uzlami netvoria cyklus) na dodatočné spracovanie výstupov a obsahujú zvyškové spojenia a kroky na normalizácie vrstiev. [3]
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/%c5%a0trukt%c3%bara%20modelu%20sequence%20to%20sequence.png)|
|
||||
|:--:|
|
||||
|Obr 2. Štruktúra modelu sequence to sequence (encoder-decoder)|
|
||||
|
||||
**Transformer Encoder**
|
||||
|
||||
Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. [1]
|
||||
|
||||
**Transformer Decoder**
|
||||
|
||||
Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. [1]
|
||||
|
||||
**Scaled Dot-Product Attention**
|
||||
|
||||
Našu osobitnú pozornosť nazývame „Pozornosť zameraná na produkt“ (obrázok 2). Vstup pozostáva z dotazov a kľúčov dimenzie _dk_ a hodnôt dimenzie _dv_. Bodové produkty dotazu vypočítame všetkými klávesmi, každý vydelíme √_dk_ a použijeme funkciu _softmax_, aby sme získali váhy hodnôt.
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Scaled%20Dot-Production%20Attention.png)|
|
||||
|:--:|
|
||||
|Obr 3. Scaled Dot-Production Attention|
|
||||
|
||||
V praxi počítame funkciu pozornosti pre množinu dotazov súčasne zabalených do matice _Q_. Kľúče a hodnoty sú tiež zabalené spolu do matíc _K_ a _V_. Maticu výstupov vypočítame ako:
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/rovnica%201.png)|
|
||||
|:--:|
|
||||
|
||||
Dve najčastejšie používané funkcie pozornosti sú additive attention a dot-product attention. Dot-product attention je identická s naším algoritmom, s výnimkou faktora mierky 1/$\sqrt{dk}$. Additive attention počíta funkciu kompatibility pomocou siete spätnej väzby s jednou skrytou vrstvou. Aj keď sú tieto dva teoreticky náročné, dot-product attention je v praxi oveľa rýchlejšia a priestorovo efektívnejšia, pretože je možné ich implementovať pomocou vysoko optimalizovaného maticového multiplikačného kódu.
|
||||
|
||||
Zatiaľ čo pri malých hodnotách dk tieto dva mechanizmy fungujú podobne, additive attention prevyšuje pozornosť produktu bez toho, aby sa škálovala pri väčších hodnotách _dk_. Je pravdepodobné, že pri veľkých hodnotách _dk_ sa bodové produkty zväčšujú a tlačia funkciu _softmax_ do oblastí, kde má extrémne malé gradienty (v strojovom učení je gradient derivátom funkcie, ktorá má viac ako jednu vstupnú premennú). Aby sa tomuto efektu zabránilo, škálujeme bodové produkty o 1/$\sqrt{dk}$ [1] [4]
|
||||
|
||||
**Multi-Head Attention**
|
||||
|
||||
Namiesto toho, aby sme vykonávali funkciu jedinej pozornosti s _dmodel_-dimenzionálnymi kľúčmi, hodnotami a dotazmi, považuje sa za výhodné lineárne premietať dotazy, kľúče a hodnoty _h_-krát s rôznymi, naučenými lineárnymi projekciami do dimenzií _dk_, _dk_ a _dv_. Na každej z týchto predpokladaných verzií dotazov, kľúčov a hodnôt potom paralelne vykonávame funkciu pozornosti, čím sme získali _dv_-dimenzionálne výstupné hodnoty. Tieto sú zreťazené a znova premietnuté, výsledkom sú konečné hodnoty (obrázok 4).
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Multi-Head%20Attention.png)|
|
||||
|:--:|
|
||||
|Obr 4. Multi-Head Attention|
|
||||
|
||||
Multi-head attention umožňuje modelu spoločne sa zaoberať informáciami z rôznych reprezentačných podpriestorov na rôznych pozíciách. Pri použití single-head attention to priemerovanie bráni.
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/rovnica%202.png)|
|
||||
|:--:|
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Screenshot_1.png)|
|
||||
|:--:|
|
||||
|Obr 5. matice parametrov|
|
||||
|
||||
V tomto prípade si za _h_ dosadíme 8 paralelných vrstiev pozornosti, alebo „heads“. Pre každý z nich používame _dk_ = _dv_ = _dmodel/h_ = _64_. Vzhľadom na zmenšený rozmer každej hlavy sú celkové výpočtové náklady podobné nákladom na pozornosť single-head s plnou dimenzionalitou (koľko atribútov má množina údajov).
|
||||
|
||||
The Transformer využíva Multi-head attention tromi rôznymi spôsobmi:
|
||||
|
||||
Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzajúcej vrstvy decodera a pamäťové kľúče a hodnoty sú z výstupu encodera. To umožňuje každej pozícii v decoderi zúčastniť sa na všetkých pozíciách vo vstupnej sekvencii.
|
||||
|
||||
Encoder obsahuje vrstvy self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera.
|
||||
|
||||
Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. [1] [4]
|
||||
|
||||
## R-Transformer
|
||||
|
||||
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png)|
|
||||
|:--:|
|
||||
|Obr 5. R-Transformer|
|
||||
|
||||
Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrstva má 3 komponenty, ktoré sú usporiadané hierarchicky. Ako je znázornené na obrázku, nižšou úrovňou sú lokálne rekurentné neurónové siete, ktoré sú určené na modelovanie lokálnych štruktúr v sekvencii, stredná úroveň je Multi-head attention, ktorá je schopná zachytiť globálne dlhodobé závislosti a horná úroveň je position-wise feedforward sieť, ktorá vykonáva nelineárnu transformáciu prvkov. [2]
|
||||
|
||||
**Porovnanie s TCN**
|
||||
|
||||
R-Transformer je čiastočne motivovaný hierarchickou štruktúrou v TCN, v TCN je lokalita v sekvenciách zachytená konvolučnými filtrami. Sekvenčné informácie v rámci každého receptívneho poľa sú však pri konvolučných operáciách ignorované. Na rozdiel od toho, štruktúra LocalRNN v R-Transformer ju môže plne začleniť vďaka sekvenčnej povahe RNN. Pre modelovanie globálnych dlhodobých závislostí to TCN dosahuje pomocou rozšírených konvolúcií, ktoré fungujú na nenásledných pozíciách. Aj keď táto operácia vedie k väčším receptívnym poliam v nižších vrstvách, chýba značné množstvo informácií z veľkej časti pozícií v každej vrstve. [2]
|
||||
|
||||
**Porovnanie s Transformerom**
|
||||
|
||||
R-Transformer a štandardný Transformer majú podobnú kapacitu dlhodobého zapamätania vďaka Multi-head attention mechanizmu. Dve dôležité vlastnosti však odlišujú R-Transformer od štandardného Transformera. Po prvé, R-Transformer explicitne a efektívne zachytáva lokalitu v sekvenciách s novou štruktúrou LocalRNN, zatiaľ čo štandardný Transformer ju modeluje veľmi nepresne pomocou Multi-head attention, ktorá pôsobí na všetkých pozíciách. Po druhé, R-Transformer sa nespolieha na žiadne vloženie polohy ako Transformer. V skutočnosti sú výhody jednoduchého polohového zabudovania veľmi obmedzené a vyžaduje značné úsilie na navrhnutie efektívnych polohových zabudovaní, ako aj správnych spôsobov ich začlenenia. [2] [4]
|
||||
|
||||
## Zoznam použitej literatúry
|
||||
|
||||
[1]. VASWANI A., SHAZEER N., PARMAR N., USZKOREIT J., JONES L., GOMEZ N.A., KASIER L., POLUSUKHIN.I.: _Attention Is All You Need._ [online]. [citované 2017].
|
||||
|
||||
[2]. WANG Z., MA Y., LIU Z., TANG J.: _R-Transformer: Recurrent Neural Network Enhanced Transformer._ [online]. [citované 12-07-2019].
|
||||
|
||||
[3]. SRIVASTAVA S.: _Machine Translation (Encoder-Decoder Model)!._ [online]. [citované 31-10-2019].
|
||||
|
||||
[4]. ALAMMAR J.: _The Illustrated Transformer._ [online]. [citované 27-06-2018].
|
||||
|
||||
[5]. _Sequence Modeling with Neural Networks (Part 2): Attention Models_ [online]. [citované 18-04-2016].
|
||||
|
||||
[6]. GIACAGLIA G.: _How Transformers Work._ [online]. [citované 11-03-2019].
|
||||
|
||||
[7]. _Understanding LSMT Networks_ [online]. [citované 27-08-2015].
|
||||
|
||||
[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-201].
|
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 16 KiB |
@ -2,91 +2,13 @@
|
||||
title: Tomáš Kuchárik
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2021,dp2022]
|
||||
tag: [nmt,translation,question-answer,nlp]
|
||||
category: [dp2021]
|
||||
tag: [annotation,question-answer,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Tomáš Kuchárik
|
||||
(študent KPI)
|
||||
|
||||
Súvisiace práce:
|
||||
|
||||
- [Martin Jancura](/students/2017/martin_jancura)
|
||||
- [Patrik Pavlišin](/students/2016/patrik_pavlisin)
|
||||
- [Projekt SK QUAD](/topics/question)
|
||||
|
||||
|
||||
## Diplomová práca 2022
|
||||
|
||||
[Repozitár s výsledkami](https://git.kemt.fei.tuke.sk/tk634rv/dp2022)
|
||||
|
||||
Názov: Tvorba korpusu otázok a odpovedí v slovenskom jazyku pomocou strojového prekladu
|
||||
|
||||
Zadanie:
|
||||
|
||||
1. Vypracujte prehľad jazykových mutácii overovacej množiny SQUAD a opíšte spôsob ich tvorby.
|
||||
2. Vypracujte prehľad aktuálnych systémov pre generovanie odpovede na otázku v prirodzenom jazyku.
|
||||
3. Navrhnite postup pre vytvorenie korpusu otázok a odpovedí v slovenskom jazyku pomocou strojového prekladu z anglického jazyka,
|
||||
4. Porovnajte strojovo preloženú verziu SQUAD s manuálne vytvorenou verziou.
|
||||
5. Porovnajte presnosť systému generovania odpovedí naučenom na strojovo preloženej verzie SQUAD s s manuálne vytvorenou verziou.
|
||||
|
||||
Stretnutie 21.2.2022
|
||||
|
||||
- Urobený skript na preklad SQUAD pomocou google API.
|
||||
- Text nie je.
|
||||
|
||||
Úlohy
|
||||
|
||||
- Pridali možnosť na preklad pomocou európskeho prekladača etranslation. Transformujte celý squad do textového súboru so špeciálnymi značkami a nazad.
|
||||
- Vypracujte draft práce. Napíšte osnovu, napíšte teóriu, napíšte čo ste robili.
|
||||
|
||||
|
||||
|
||||
|
||||
## Diplomový projekt 2 2021
|
||||
|
||||
Cieľom je vytvoriť strojovo preloženú verziu SQUAD a overiť ju na QA systém.
|
||||
|
||||
Sttetnutie 22.10.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Začatý prieskum jazykových mutácií strojovo preloženého SQUAD - španielsky, taliansky, francúzsky a švédsky.
|
||||
- Začatý priestup prekladových API - napr. na google sa platí 20 $ za milion znakov.
|
||||
- Zaujala ma metód prekladu pomocou špeciálnych znakov.
|
||||
- Španielsky SQUAD má svoju štatistickú metódu zarovnania.
|
||||
- Možnosti pre preklad:
|
||||
- Google, Microsoft v rámci Free kreditu (asi ho je málo).
|
||||
- Zakúpiť kredit cez projekt.
|
||||
- Využiť "nekomerčný" projekt pre preklad, napr. [etranslation](https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eTranslation).
|
||||
|
||||
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v písomnom prieskume jazykových mutácií SQUAD.
|
||||
- Začnite pracovať na skripte na strojový preklad SQUAD. Jedna z možností je prepísať SQUAD do čisto textového formátu obohateného o špeciálne značky. Pripravte skript, ktorý prevedie SQUAD do čisto textového formátu obohateného o špeciálne značky. Vyskúšajte formát v dostupných prekladačoch. V prípade, že značky sú zachované, pripravte aj skript na spätnú konverziu preloženého výsledku do formátu SQUAD.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 15.10.
|
||||
|
||||
Stav:
|
||||
- Pôvodné zadanie neaktuálne
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Upraviť nové zadanie DP.
|
||||
- Urobiť písomný prieskum rôznych jazykových verzií overovacej množiny squad a spôsobov ich vytvorenia. Môžete začať v archíve HuggingFace Datasets.
|
||||
- Vybrať vhodný spôsob ako strojovo preložiť SQUAD. Zistiť aké sú možné problémy.
|
||||
- Zistiť ako funguje strojový preklad cez API.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Urobiť vyhodnotenie SQUAD na knižnici Hugging Face Transformers.
|
||||
|
||||
## Diplomová práca 2021
|
||||
|
||||
Názov: Tvorba korpusu otázok a odpovedí v slovenskom jazyku pomocou crowdsourcingu
|
||||
|
54
pages/students/2016/vzorny_student/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Vzorný študent 2016
|
||||
taxonomy:
|
||||
type: student
|
||||
start_year: 2016
|
||||
teacher: hladek
|
||||
topics:
|
||||
- nlp
|
||||
- python
|
||||
keywords:
|
||||
- sablona
|
||||
---
|
||||
|
||||
# Vzorový študent
|
||||
|
||||
Toto je šablóna pre osobný profil. Do hlavného nadpisu dajte Vaše meno.´Nahraďte obyčajný text podľa inštrukcií, *zvýraznený text* a nadpisy nechajte ako sú.
|
||||
|
||||
*Rok začiatku štúdia*: uveďte rok začiatku štúdia.
|
||||
|
||||
Môžte pridať odkaz na Vašu osobnú stránku, fotografiu alebo zoznam Vašich osodných alebo odborných záujmov.
|
||||
|
||||
## Diplomová práca 2021
|
||||
|
||||
*Názov diplomovej práce*: Napíšte názov diplomovej práce
|
||||
|
||||
*Meno vedúceho*: meno vedúceho
|
||||
|
||||
*Zadanie diplomovej práce*: Tu napíšte zadanie Vašej diplomovej práce
|
||||
|
||||
## Tímový projekt 2019
|
||||
|
||||
*Písomná práca* : [Názov písomnej práce](./timovy_projekt) Uveďte odkaz na text vytvorený v rámci tímového projektu
|
||||
|
||||
*Ostatné výsledky* - odkaz na zdrojové kódy, ak sú nejaké
|
||||
|
||||
*Úlohy tímového projektu*: Uveďte zoznam úloh riešených v rámci predmetu Tímový projekt
|
||||
|
||||
- Úloha 1
|
||||
- Úloha 2
|
||||
|
||||
Poznámky k vypracovaniu projektu (od vedúceho alebo Vaše) uveďte ako sekcie nižšej úrovne
|
||||
|
||||
## Bakalárska práca 2019
|
||||
|
||||
*Meno vedúceho*: meno vedúceho
|
||||
|
||||
*Názov bakalárskej práce*: Napíšte názov bakalárskej práce
|
||||
|
||||
*Text bakalárskej práce*: uvedte odkaz na text Vašej bakalárskej práce, Odkaz na text vyhľadajte v [Centrálnom registri záverečných prác](https://opac.crzp.sk/?fn=*AdvancedSearch&search=advanced&entity=0&seo=CRZP-H%C4%BEadanie)
|
||||
|
||||
*Zadanie bakalárskej práce*: Tu napíšte zadanie Vašej bakalárskej práce
|
||||
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
# Moja výborná práca
|
@ -2,178 +2,14 @@
|
||||
title: Martin Jancura
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2021,dp2023]
|
||||
category: [bp2021]
|
||||
tag: [opennmt,translation,demo,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
# Martin Jancura
|
||||
|
||||
*Rok začiatku štúdia*: 2017
|
||||
|
||||
## Diplomový projekt
|
||||
|
||||
- [GIT repozitár](https://git.kemt.fei.tuke.sk/mj130zg/DP2023)
|
||||
- [DP Práca](https://opac.crzp.sk/?fn=detailBiblioForm&sid=E4E659F3575B0C5BCF0C726CCD36)
|
||||
|
||||
Názov diplomovej práce:
|
||||
|
||||
Rozpoznávanie emócií v texte
|
||||
|
||||
Zadanie diplomovej práce:
|
||||
|
||||
1. Vypracujte prehľad metód rozpoznávania sentimentu z textu.
|
||||
2. Vytvorte slovenskú overovaciu množinu pre rozpoznávanie sentimentu.
|
||||
3. Vyberte vhodný model pre rozpoznávanie sentimentu v slovenských textoch.
|
||||
4. Vyhodnoťte vybraný model pomocou vytvorenej množiny a navrhnite jeho zlepšenia.
|
||||
|
||||
|
||||
|
||||
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 10.1.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Scraper je na GITe
|
||||
- Písomná časť je začatá.
|
||||
- Vyskúšaný SlovakBERT so sentiment classification
|
||||
- anotované množina topky, príliš veľa HATE.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vypracovať prehľad datasetov
|
||||
- Treba anotovať inú množinu, kde budú aj pozitívne príspevky.
|
||||
- Vyhodnotiť P R F1
|
||||
- Pripraviť zero shot experiment s Slovak GPT2.. Dostupné na Huggingface Hub.
|
||||
- Výsledky experimentov dať do tabuľky
|
||||
- Pokračovať v písomnej práci.
|
||||
|
||||
|
||||
Stretnutie 20.1.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vylepšený scraper, tak by zachytával jednotilivé príspevky, autora, text aj rating.
|
||||
- Teoretická časť nebola urobená.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zdrojové kódy scrapera pridajte na GIT.
|
||||
- Vpracujte písomný prehľad datasetov pre slovenčinu a rozpoznávanie emócií https://github.com/slovak-nlp/resources.
|
||||
- Vypracujte prehľad neurónových metód na rozpoznávanie emócií z textu. bert, roberta, gpt.
|
||||
- Zistite, ako sa pomocou modelu GPT robí "zero shot sentiment classification".
|
||||
- Vyskúšajte slovenský model pre klasifikáciu sentimentu https://huggingface.co/kinit/slovakbert-sentiment-twitter.
|
||||
- Ručne anotujte vytvorenú databázu diskusných príspevkov z topky.sk
|
||||
- Urobte klasifikáciu príspevkov pomocou neurónového modelu a vyhodnoťte presnosť (accuracy, precision, recall).
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Do scrapera skúste doplniť zaznamenanie ID nadradeného príspevku. ID môže byť aj nejaký hash.
|
||||
- Urobte zero shot classification pomocou slovenského GPT .
|
||||
|
||||
|
||||
|
||||
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:
|
||||
|
||||
- Vypracovaný tutoriál huggingface
|
||||
- Vytvorený jednoduchý scraper Beautifulsoup na Topky.sk
|
||||
- Rozpracovaný scraper Selenium
|
||||
|
||||
Ú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.
|
||||
|
||||
Stretnutie 20.5.2022
|
||||
|
||||
Mierny pokrok nastal len v oblasti Python.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
- Chceme sa sústrediť na "sledovanie medií".
|
||||
- [x] Vytvoriť skript pre sledovanie Twitter kanálov. Skript by mal v pravidelných interovaloch získať nový obsah a uložiť ho do databázy (cassandra?). Zistitie, ktoré informácie o príspevkoch sú dôležité. čo vieme zistiť o príspevkoch?
|
||||
- Aký emočný náboj je v príspevku? Cieľom môže byť detekcia nenávistného obsahu.
|
||||
|
||||
|
||||
11.3.2022
|
||||
|
||||
Návrh na tému:
|
||||
|
||||
- Sledovanie médií alebo sociálnych sietí. - blogy, noviny, diskusie, twitter.
|
||||
- Zistenie metainformácií o príspevkoch.
|
||||
- Spracovanie príspevku - identifikácia sentimentu, detekcia nenávistnej reči, určenie témy príspevku, lepšie vyhľadávanie v databáze príspevkov. Ktorý materiál sa týka určitej témy?
|
||||
|
||||
Návrh na postup:
|
||||
|
||||
1. Oboznámenie sa s problematikou.
|
||||
2. Zostavenie databázy príspevkov. Stiahnutie a predspracovanie.
|
||||
3. Spracovanie databázy - natrénovanie neurónovej siete, klasifikácia a vyhodnotenie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Zistite ako funguje neurónový jazykový model typu BERT - ako ho trénujeme a ako ho dotrénujeme. Zistite ako vieme pomocou neurónového jazykového modelu rozpoznávať sentiment v texte. Napíšte o tom krátku správu.
|
||||
- [ ] Nainštalujte si Anaconda, Oboznámte sa s knižnicou *HuggingFace Transformers*. Vyberte si tutoriál, prejdite ho a napíšte krátku správu.
|
||||
- [ ] Vyskúšajte tento [model](https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment) pre klasifikáciu anglických textov.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Pokračujte v štúdiu Pythonu, Oboznámte sa s Twitter API a zistite ako získať nejaký príspevok na Twitteri.
|
||||
- [ ] Naučte sa pracovať s knižnicou BeautifulSoup a pripravte scraper na vybraný zdroj.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 4.3.2022
|
||||
|
||||
Nápady na tému diplomovej práce:
|
||||
|
||||
- Strojový preklad pomocou neurónových sietí.
|
||||
- Rozpoznávanie reči pomocou transformerov - Hubert.
|
||||
- Rozpoznávanie nenávistnej reči pomocou transfomers.
|
||||
- Sledovanie medií - vytvorenie databázy a jej analýza.
|
||||
- Rozpoznávanie (klasifikácia) obrázkov pomocou neurónovej siete.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Porozmýšľajte nad každou hore uvedenou témou.
|
||||
- Porozmýšľajte nad témou čo by Vás bavila.
|
||||
- Pokračujte v štúdiu Pythonu.
|
||||
- Oboznámte sa s knižnicou HuggingFace Transformers alebo s knižnocou fairseq.
|
||||
|
||||
## Bakalárska práca 2020
|
||||
|
||||
Názov: Webová aplikácia pre demonštráciu strojového prekladu
|
||||
|
@ -1,155 +0,0 @@
|
||||
---
|
||||
title: Adrián Remiáš
|
||||
published: true
|
||||
date: 01-02-2014
|
||||
taxonomy:
|
||||
category: [dp2024]
|
||||
tag: [nlp, transformers, interpuction]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Adrián Remiáš
|
||||
|
||||
Rok začiatku štúdia: 2018
|
||||
|
||||
|
||||
# Diplomová práca 2024
|
||||
|
||||
Návrh na zadamie:
|
||||
|
||||
1. Vypracujte prehľad metód obnovy interpunkcie v slovenskom jazyku.
|
||||
2. Vypracujte prehľad metód jazykového modelovania pomocou neurónovej siete typu Transformer.
|
||||
3. Pripravte dátovú množinu pre trénovanie a vyhodnotenie neurónovej siete na úlohu dopĺňania a opravy interpunkcie.
|
||||
4. Vyberte viacero neurónových modelov, natrénujte ich na úlohu dopĺňania a opravy interpunkcie.
|
||||
5. Vyhodnoťte experimenty a vyberte najlepší model.
|
||||
|
||||
|
||||
Ciele:
|
||||
|
||||
- Natrénovanie modelu pre opravu iterpunkcie a jeho vyhodnotenie.
|
||||
- Výsledky by mali byť prezentovateľné vo vedeckom článku.
|
||||
|
||||
Stretnutie 3.1.2024
|
||||
|
||||
Stav:
|
||||
|
||||
. Funguje zero shot metóda založená na dopňĺňaní mask tokenu.
|
||||
|
||||
Úlohy:
|
||||
|
||||
1. Vyskúšajte príklad [token classification](https://github.com/huggingface/transformers/tree/main/examples/pytorch/token-classification) z repozitára HF transformers pre úlohu NER alebo POS. Oboznámte sa s argumentami príkazového riadka.
|
||||
2. Pripravte si trénovacie dáta. Použite formát JSON. Na jeden riadok ide jeden príklad. Príklad je tvorený textom (zoznamom slov) a interpunkciou (zoznam tried). Budete mať súbor train.json a test.json. Na prípravu dátovej množiny si pripravte skript aby to bolo opakovateľné.
|
||||
3. Spustite skript so svojimi dátami a so slovenským BERTOMN. Nastavte parametre príkazového riadku a formát trénovacej množiny tak aby tomu skript rozumel.
|
||||
4. Vyskúšajte viaceré experimenty s viacerými rôznymi BERT modelmi s podporou slovenčiny a výžsledky zapíšte do tabuľky.
|
||||
5. Skúste číselne vyhodnotiť aj Vašu "zero shot" metódu.
|
||||
- Pokračujte v písaní tectu práce.
|
||||
|
||||
Stretnutie 7.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vytvorený program na trénovanie neurónovej siete. Masked language modeling skript run_mlm.py. Roberta for Masked LM DataCollatorForLanguageModelling.
|
||||
- Navrhnutý skript pridáva mask token medzi slová a sleduje, čo doplní model. Časť s trénovaním je v tomto prípade zbytočná.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyhoddnotte prenosť Vami navrhnutého prístupu. Mali by ste zostaviť kontingenčnú tabuľku. (confusion matrix). Tabuľka má na jednej osi očakávané hodnoty a na druhej osi skutočné hodnoty. https://www.analyticsvidhya.com/blog/2020/09/precision-recall-machine-learning/
|
||||
- O spôsobe vyhodnotenia môžete napísať aj krátku podkapitolu.
|
||||
- Uvedte zdroje odkiaľ ste čerpali pri tvorbe.
|
||||
|
||||
```
|
||||
Pôvodný text: Dnes je pekný deň .
|
||||
Opravený text Dnes , je pekný deň .
|
||||
|
||||
. , ? ! x toto dáva sieť
|
||||
. 2 1 0 0 0
|
||||
,
|
||||
?
|
||||
!
|
||||
x 1 1
|
||||
očakávané hodnoty
|
||||
```
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Dotrénujte neurónovú sieť na úlohu dopňlňania interpunkcie. Úloha je formulovaná ako "klasifikácia postupností" a je podobná úlohám "part of speech tagging" alebo "named entity recognition". Pokračujte v prieskume literatúry na túto tému a robte si poznámky o prístupoch.
|
||||
- Podrobné {vysvetlenie](https://medium.com/@alexmriggio/bert-for-sequence-classification-from-scratch-code-and-theory-fb88053800fa).
|
||||
|
||||
Takto by mala vyzerať trénovacia množina.
|
||||
|
||||
```
|
||||
x x x . , x x .
|
||||
Dnes je pekný den Povedala že ostane doma
|
||||
```
|
||||
|
||||
- Môžete využiť [skripty](https://github.com/huggingface/transformers/tree/main/examples/pytorch/token-classification). Tam je potrebn0 správne pripraviť dátovú množinu tak, aby na ľavej strane bole len slová a na pravej strane bola ku kažnédmu slovu pridelená trieda. Formát by mal byť JSON, na jeden riadok jeden dokument, zrozumiteľný pre [HF datasets](https://huggingface.co/docs/datasets/loading#json).
|
||||
|
||||
Stretnutie 23.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Boli nainštalované softvéry na idoc podľa pokynov.
|
||||
- Śtúdium a kódovanie: problémy.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Podrobne sa oboznámte https://github.com/xashru/punctuation-restoration/tree/master . Prečítajte si
|
||||
článok. Urobte si poznámky čo ste sa dozvedeli. Zistite, aké metódy iné sa používajú na PR a aká metóda je v článku. Zistitie, ako to súvisí s Modelom BERT.
|
||||
- Pohľadajte iný podobný repozitár.
|
||||
- Získajte zdrojové kódy a spustite experimenty v naglickom a bangla jazyku s dátami dodanými v repozitári. Oboznámte sa so zdrojovými kódmi a skúste pochopiť ktorá časť robí čo.
|
||||
- Pokračujte v štúdiu jazyka Python. https://diveintopython3.net/
|
||||
- Pokračujte v písaní práce podľa pokynov vyššie.
|
||||
|
||||
Stretnutie 26.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Štúdium a poznámky podľa pokynov. Vyskúšaná Anaconda a transformers.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Pokračovať v štúdiu a v poznámkach. To je teoretická časť DP.
|
||||
- [-] Na katedrovom gite si vytvorte repozitár s názvom DP2024, do neho dajte kódy pre tvorbu dát a trénovanie siete. Dáta nedávajte na git.
|
||||
- [x] Inštalujte Pytorch s podporou CUDA 10.1 alebo 10.2 z https://pytorch.org/get-started/previous-versions/
|
||||
- [x] Na idoc nainštalujte transformers, pytorch s CUDA 10.1 pomocou Anaconda.
|
||||
- Vyberte množinu slovenských textov a upravte ju do podoby vhodnej na trénovanie neurónovej siete. Dáta sa nachádzajú na servri idoc.fei.tuke.sk v /mnt/sharedhome/hladek/bert-train/data/corpus3/.
|
||||
Na ľavej strane bude text bez interpunkcie. Na pravej strane bude len interpunkcia.
|
||||
- [ ] Natrénujte neurónovú sieť. Množinu rozdeľte na trénovaciu a testovaciu časť. Začneme s modelom SlovakBERT.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšajte iný model ako je Slovak BERT.
|
||||
- Pripravte dáta na "čiastočné" dopňlňanie. Skúste identifikovať iba koniec vety. Skúste náhodne "pokaziť" interpunkciu a pomocou neurónovej siete ju opraviť.
|
||||
|
||||
Stretnutie 5.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobená bakalárska práca na tému "Analýza textu z pohľadu forenznej lingvistiky".
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Nainštalujte si balíček Anaconda. Pomocou neho si nainštalujete knižnicu Pytorch s podporou CUDA.
|
||||
|
||||
|
||||
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
|
||||
pip install transformers
|
||||
|
||||
- [x] Oboznámte sa s frameworkom HuggingFace [Transformers](https://huggingface.co/docs/transformers/index). Vypracujte si viacero úvodných tutoriálov.
|
||||
- [x] Podrobne sa oboznámte s úlohou [token classificaton](https://huggingface.co/docs/transformers/tasks/token_classification).
|
||||
- [x] Prečítajte si [článok](https://ieeexplore.ieee.org/abstract/document/9089903 Comparison of Recurrent Neural Networks for Slovak Punctuation Restoration, urobte si poznámky.
|
||||
- [x] Prečítajte si "Attention is all you need" https://arxiv.org/abs/1706.03762, urobte si poznámky.
|
||||
- [-] Vyhľadajte heslo "punctuation restoration" na google scholar, poznačte si najdôležitejšie články. Prečítajte si ich a napíšte, akú metódu používaju.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyberte množinu slovenských textov a upravte ju do podoby vhodnej na trénovanie neurónovej siete. Natrénujte neurónovú sieť.
|
||||
- Na katedrovom gite si vytvorte repozitár s názvom DP2024, do neho dajte kódy pre tvorbu dát a trénovanie siete. Dáta nedávajte na git.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,52 +0,0 @@
|
||||
---
|
||||
title: Dávid Iľaš
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2023]
|
||||
tag: [nlp,emotion]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
Rok začiatku štúdia: 2018
|
||||
|
||||
Už neštuduje tento študijný program.
|
||||
|
||||
## Diplomová práca 2023
|
||||
|
||||
Téma: Rozpoznávanie emócií z textu.
|
||||
|
||||
TODO: Návrh na zadanie diplomovej práce.
|
||||
|
||||
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 18.2.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyberte 3 vedecké články, prečítajte si ich a napíšte poznámky čo ste sa dozvedeli. Poznačte si bibliografické informácie o článkoch.
|
||||
- Heslá na vyhľadávanie: eomotion recognition, transfer learning, deep learning, emotion classification, emotion detection
|
||||
- Na vyhľadávanie článkov použite google scholar alebo scopus.com.
|
||||
- Nainštalujte si balíček Anaconda
|
||||
- Prejdite si niekoľko Python tutoriálov, odporúčam online knihu Dive Into Python 3
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Oboznámte sa s knižnicou Huggingface Transformers
|
||||
|
||||
|
@ -1,228 +0,0 @@
|
||||
---
|
||||
title: Dávid Omasta
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2023,dp2024]
|
||||
tag: [lm]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
Začiatok štúdia: 2018
|
||||
|
||||
Súvisiace stránky:
|
||||
|
||||
- [Question Answering](/topics/question) - interný projekt
|
||||
- Jozef Olekšák
|
||||
- Matej Čarňanský (BERT)
|
||||
- Ondrej Megela
|
||||
|
||||
# Diplomová práca 2024
|
||||
|
||||
Vedúci: Daniel Hládek
|
||||
|
||||
Návrh na názov:
|
||||
|
||||
Generatívne modely pre automatické odpovede na otázky v slovenskom jazyku
|
||||
|
||||
Návrh na zadanie DP:
|
||||
|
||||
- Vypracujte prehľad najnovších generatívnych neurónových jazykových modelov.
|
||||
- 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 v kontexte.
|
||||
- Analyzujte výsledky experimentu vhodným spôsobom a identifikujte možné zlepšenia.
|
||||
|
||||
Ciele:
|
||||
|
||||
- Pripraviť demo.
|
||||
- Pripravť vedecký článok z DP.
|
||||
|
||||
Stretnutie 9.2.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Dotrénovaný mt5-small na poľský jazyk.
|
||||
- Práca na texte
|
||||
- Urobené demo streamlit a Dockerfile.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zdrojáky dajte na GIT
|
||||
- Pridajte výsledky do tabuľky
|
||||
- Pokračujte v práci na texte.
|
||||
- Pridajte experimenty s modelom https://huggingface.co/google/umt5-small na slovenský, anglický aj poľský jazyk.
|
||||
|
||||
|
||||
Stretnutie 8.12.
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobený Dockerfile a compose.
|
||||
- Pridaný experiment s mT5.
|
||||
- Práca na teoretickej časti.
|
||||
- Vyskúšaná LLAMA na idoc aj mt5-base ale nejde kvôli GPU
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v písomnej práci. Výsledky experiemntov opíšte a dajte do tabuliek.
|
||||
- Dokončite DEMOZ
|
||||
- pre porovnanie, vyskúšajte dotrénovať mt5 na dátovej sade pre iný jazyk. Angličtina - squad, Poľský jazyk clarin-pl/poqaud .
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Keď bude k dispozícii, vyskúšajte nový slovenský t5 model.
|
||||
|
||||
|
||||
|
||||
Stretnutie 10.11
|
||||
|
||||
Stav:
|
||||
|
||||
- DP je rozpísaná. Existuje draft.
|
||||
- Vypracovaný experiment s Slovak t5 small
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Opravte DP podľa pokynov
|
||||
- [x] Pridajte experiment s mt5 small .https://huggingface.co/google/mt5-small
|
||||
- [-] Pripravte demo na nasadenie. Zmente Windows kontajner na Linux.
|
||||
- [x] zdrojáky dajte na kemt GIT
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [-] Skúste generovanie odpovedí s modelom LLAMA alebo podobným.
|
||||
- [x] Skúste generovanie odpovedí s "base" modelmi na školskom servri.
|
||||
|
||||
Stretnutie 6.10
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na Dockerfile so streamlit
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pozrieť a pracovať na minulých otvorených úlohách.
|
||||
- Pripraviť draft na prečítanie.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšať aj iné generatívne modely a pripraviť z nich experimenty.
|
||||
- Pripraviť a vyskúšať aj iné dátové množiny.
|
||||
|
||||
|
||||
# Diplomová práca 2023
|
||||
|
||||
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.
|
||||
- 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:
|
||||
|
||||
Praktické:
|
||||
|
||||
- Rozbehajte proces dotrénovania jazykových modelov pomocou knižnice Huggingface Transformers
|
||||
- Vyberte alebo vytvorte vhodnú dátovú množinu ktorá bude obsahovať slovenské dialógu.
|
||||
- Vyskúšajte slovenský generatívny model GPT a dotrénujte ho pre použitie v dialógovom systéme.
|
||||
- Vytvorte demonštračnú aplikáciu.
|
||||
|
||||
Teoretické:
|
||||
|
||||
- Vypracujte prehľad najnovších generatívnych neurónových jazykových modelov (cca 20 strán).
|
||||
- Napíšte návod na inštaláciu a návod na použitie skriptov pre dotrénovanie (cca 5 strán).
|
||||
|
||||
Stretnutie 25.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísaný draft práce
|
||||
- Pripravené demo s generovaním otázok pomocou t5, huggingface, streamlit, fastapi.
|
||||
- Git je momentálne na https://git.kpi.fei.tuke.sk/do867bc
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pracovať na textovej časti podľa poznámok - zlepšiť text, štruktúru a úpravu.
|
||||
- Vytvoriť repozitár na git.kemt.fei.tuke.sk a dajte tam zdrojáky
|
||||
- Finalizovať repozitár s demom. Pridajte odkazy na modely, modely nedávajte na GIT. Na git dajte zdrojové kódy v Python a Notebooky. Pridajte README s opisom kódov a návodom na inštaláciu.
|
||||
- Skontrolujte výsledky ROUGE, vyzerajú podozrivo.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte Dockerfile
|
||||
|
||||
|
||||
Stretnutie 24.2.2023
|
||||
|
||||
Stav:
|
||||
|
||||
|
||||
- Rozbehaný notebook na dotrénovanie slovenského t5 na úlohu generatívneho question answering.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Dajte notebook na GIT
|
||||
- [x] Vyhodnnotte presnosť generovania odpovede pomocou P-R-F1 pre celú dev množinu.
|
||||
- [-] Pokračujte v písaní textu DP. Opíšte slovenský QA dataset. Slovne opíšte experiment. Aký postup ste použili, aké dáta, aké modely.
|
||||
- [x] Zopakujte experiment pre model mt5-small, mt5-base. Výsledky dajte do tabuľky.
|
||||
|
||||
|
||||
Stretnutie 24.11
|
||||
|
||||
Stav:
|
||||
|
||||
- nainštalované prostredie na idoc, spustený hf skript run_generation.py
|
||||
- prečítané články.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] písomne vysvetlite ako funguje neurónová sieť typu Transformer . Uveďte odkazy na odborné články.
|
||||
- [ ] Písomne vysvetlite, čo to je generatívny jazykový model a ako funguje. Uveďte odkazy na najnovšie články o generatívnych jazykových modeloch - T5, GPT, BART.
|
||||
- Vyskúšajte tento skript run_clm.py : https://github.com/huggingface/transformers/tree/main/examples/pytorch/language-modeling. Pozrite si príklad na run_mlm.py v repozitári https://git.kemt.fei.tuke.sk/dano/bert-train v adresári hugging/roberta-train
|
||||
- Pozrite si tento tutoriál https://towardsdatascience.com/fine-tune-a-non-english-gpt-2-model-with-huggingface-9acc2dc7635b
|
||||
- Pozrite si toto demo https://huggingface.co/blog/few-shot-learning-gpt-neo-and-inference-api
|
||||
- Vytvorte si git repozitár do ktoréhu budete ukladať Vaše skripty.
|
||||
- Vyskúšajte slovenský GPT model https://huggingface.co/Milos/slovak-gpt-j-162M (je malý, stredný, veľký)
|
||||
|
||||
|
||||
Stretnutie 14.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Na vlastnom počítači rozbehané Anaconda, Pytorch a CUDA.
|
||||
- Prečítané články.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať.
|
||||
|
||||
Stretnutie 7.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Obznámený s Google Colab. Vyskúšané tutoriály BERT text classification,
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Prečítajte si ako funguje neurónová sieť typu Transformer a [ ] písomne to vysvetlite. Uveďte odkazy na odborné články.
|
||||
- [ ] Písomne vysvetlite, čo to je generatívny jazykový model a ako funguje. Uveďte odkazy na najnovšie články o generatívnych jazykových modeloch - T5, GPT, BART.
|
||||
- [x] Nainštalujte si prostredie Anaconda, knižnicu PyTorch s podporou CUDA a knižnicu HF transformers. Použite server idoc.
|
||||
- [x] Vyskúšajte tento skript: https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-generation.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Prečítajte si ako funguje neurónová sieť typu GPT a písomne to vysvetlite, Uveďte odkazy na odborné články.
|
||||
- Vyskúšajte tento tutoriál https://towardsdatascience.com/fine-tune-a-non-english-gpt-2-model-with-huggingface-9acc2dc7635b
|
||||
- Pozrite si toto demo https://huggingface.co/blog/few-shot-learning-gpt-neo-and-inference-api
|
||||
- Vytvorte si git repozitár do ktoréhu budete ukladať Vaše skripty.
|
||||
- Vyskúšajte slovenský GPT model https://huggingface.co/Milos/slovak-gpt-j-162M (je malý, stredný, veľký)
|
@ -2,7 +2,7 @@
|
||||
title: Ondrej Megela
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2021,dp2023]
|
||||
category: [bp2021]
|
||||
tag: [nlp,fairseq,lm,bert,question-answer,qa]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
@ -17,251 +17,6 @@ Súvisiace stránky:
|
||||
- [Question Answering](/topics/question) - interný projekt
|
||||
- Matej Čarňanský (BERT)
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
@ -1,201 +0,0 @@
|
||||
---
|
||||
title: Alina Vitko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022]
|
||||
tag: [ir,qa,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2019
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
Systémy pre generovanie odpovede na otázku v prirodzenom jazyku
|
||||
|
||||
|
||||
1. Vypracujte prehľad aktuálnych metód pre generovanie odpovede na otázku v prirodzenom jazyku.
|
||||
2. Vyberte a podrobne opíšte existujúci systém pre generovanie odpovede na otázku v prirodzenom slovenskom jazyku.
|
||||
3. Vytvorte demonštračnú webovú aplikáciu pre vybraný systém.
|
||||
4. Navrhnite zlepšenia systému pre generovanie odpovede.
|
||||
|
||||
Stretnutie 8.4.
|
||||
|
||||
Progres zatiaľ nenastal.
|
||||
|
||||
Úlohy platia z minulého stretnutia.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Študujte Python a Docker.
|
||||
- Pripravte nasadenie aplikácie pomocou systému Docker. Napíšte Dockerfile.
|
||||
- Napíšte vlastnú aplikáciu Streamlit alebo inej knižnice (pywebio, gradio).
|
||||
- Inšpirujte sa:
|
||||
- https://github.com/gradio-app/hub-bert-squad
|
||||
- https://www.mihaileric.com/posts/state-of-the-art-question-answering-streamlit-huggingface/
|
||||
|
||||
|
||||
|
||||
Stretnutie 17.1.2022
|
||||
|
||||
- Zmenené texty v demo aplikácii
|
||||
- Pridaná časť do textu práce
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dokončiť demo slovenským modelom podľa minulých úloh.
|
||||
- pokračovať v písaní práce.
|
||||
|
||||
Stretnutie 28.1.
|
||||
|
||||
- Demo aplikácia funguje - vieme ju spustit aj nainstalovat.
|
||||
- Vytvorený repozitár so zdrojovými kódmi demo aplikácie https://git.kemt.fei.tuke.sk/dano/qademo
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Naklonujte si repozitár.
|
||||
- Získajte slovenský model a dajte ho do adresára models. Zistite, akého typu je slovenský model.
|
||||
- Modifikujte demo aplikáciu tak, aby pracovala so slovenským modelom.
|
||||
- Modifikujte demo aplikáciu tak aby bola "naša". Preložte ju, doplnte obrázky.
|
||||
- Oboznámte sa s knižnicou https://streamlit.io/
|
||||
- Do práce pridajte časť, kde podrobne opíšete ako funguje QA s použitím knižnite transformers. Napíšte o modeloch, ktoré budete prezentovať.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte aplikáciu do podoby vhodnej na nasadenie. Vytvorte Dockerfile.
|
||||
|
||||
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
Vytovrenie prehľadu existujúcich systémov QA.
|
||||
|
||||
Stretnutie 17.12.2021
|
||||
|
||||
- Inštalácia funguje, ale spustenie nefunguje. Možný dôvod je to že to nie je kompatibilné s Windows. Alebo nastala chyba pri inštalácii.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalujte si WSL2 a Windows Terminal.
|
||||
- do ubuntu na wsl2 nainštalujte Anaconda for Linux.
|
||||
- Vyskúšajte to ešte raz do čistého prostredia anaconda. Staré zmažte.
|
||||
- Prejdite si knihu https://diveintopython3.net/
|
||||
- Pozrite si https://github.com/gerulata/slovakbert a prečítajte si článok na Arxiv. https://arxiv.org/abs/2109.15254 . Vytvorte si nové Anaconda prostredie a prejdite si tutoriál na tej stránke.
|
||||
|
||||
|
||||
|
||||
Stretnutie 10.12.2021
|
||||
|
||||
- Vyskúšané https://github.com/fastforwardlabs/question_answering, zatiaľ nefunguje.
|
||||
- Mierne vylepšené texty.
|
||||
|
||||
Úlohy:
|
||||
|
||||
Vyskúšajte nainštalovať https://github.com/facebookresearch/DrQA do virtuálneho priostredia Anaconda.
|
||||
|
||||
|
||||
Ako nainštalovať https://github.com/fastforwardlabs/question_answering:
|
||||
|
||||
Je potrebné mať nekoľko GB voľného miesta. Ak je Váš počítač pomalý, vytvorím Vám konto na školskom servri.
|
||||
|
||||
1. Aktivujte si prázdne prostredie Anaconda.
|
||||
|
||||
```
|
||||
conda create -m qa
|
||||
conda activate qa
|
||||
```
|
||||
|
||||
2. Nainštalujte Pytorch:
|
||||
|
||||
```
|
||||
conda install pytorch=1.6 torchvision torchaudio cpuonly -c pytorch
|
||||
```
|
||||
|
||||
3. naklonujte repozitár
|
||||
|
||||
```
|
||||
git clone https://github.com/fastforwardlabs/question_answering
|
||||
cd question_answering
|
||||
```
|
||||
|
||||
4. nainštalujte aplikáciu
|
||||
|
||||
```
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
5. Spustite web rozhranie
|
||||
|
||||
```
|
||||
streamlit run ./apps/wikiqa.py
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 12.11.2021
|
||||
|
||||
- Pokračuje práca na texte
|
||||
- Nainštalovaná Anaconda
|
||||
- Začiatok Python Tutoriálu
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v práci na texte.
|
||||
- Pokračujte v Python Tutoriáli.
|
||||
- Prečítajte si blogy na https://qa.fastforwardlabs.com/ Vyskúšajte si, či Vám to pôjde v Anaconde.
|
||||
- Nainštalujte si HuggingFace transformers: https://huggingface.co/transformers/installation.html do Anacondy
|
||||
- Prejdite si tutoriál https://huggingface.co/transformers/training.html
|
||||
- Ak Vám to pôjde, prejdite si tutoriál https://github.com/huggingface/notebooks/blob/master/examples/question_answering.ipynb
|
||||
- Ak sa zaseknete, skúsime to vyriešiť na konzultácii.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Nainštalujte a vyskúšajte toto: https://github.com/facebookresearch/DrQA
|
||||
|
||||
|
||||
Stretnutie 5.11.2021
|
||||
|
||||
- Splnené zadané úlohy z minulého týždňa, okrem nainštalovania
|
||||
|
||||
Stretnutie 28.10.2021
|
||||
|
||||
Stav:
|
||||
|
||||
Vypracovaný prehľad viacerých systémov QA a viacerých datasetov na QA.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Navrhnite niekoľko spôsobov prekladu výrazu question answering systems do slovenčiny.
|
||||
- napr. systémy odpovedania na otázku, systémy pre generovanie odpovede na otázku v prirodzenom jazyku.
|
||||
- Vyhľadajte tieto termíny na internete.
|
||||
- Nainštalujte a vyskúšajte vybraný systém
|
||||
- Doplňte odkazy na odborné články do textu práce.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Doplňte odkazy na zdroje, aj do textu.
|
||||
- [x] Doplňte teoretický úvod do QA.
|
||||
- [x] Dopíšte informácie o datasetoch SQUAD -1.0 a 2.0. a [MRQA](https://mrqa.github.io/2019/shared).
|
||||
- [x] Doplňte metodiku vyhodnotenia QA, napr. F1-precision-recall.
|
||||
- [ ] Vyberte jeden systém QA, skúste ho nainštalovať a vyskúšať tak ako je.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Nainštalujte si najprv balíček Anaconda.
|
||||
- Prejdite si knihu https://diveintopython3.net/
|
||||
|
||||
Stretnutie 15.10.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Začiatok písania prehľadu QA (nie hotový).
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyberte min. dva odborné články alebo knihy a napíšte čo ste sa z nich dozvedeli o systémoch pre generovanie odpovede na otázku v prirodzenom jazyku, Napíšte bibliografické údaje o zdroji.
|
||||
- Webové stránky a blogy môžete tiež používať.
|
||||
- Nájdite a opíšte čo najviac QA systémov. Začať môžete systémom DRQA.
|
||||
|
@ -1,44 +0,0 @@
|
||||
---
|
||||
title: Artem Yatsenko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022]
|
||||
tag: [ner,spacy,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
Začiatok štúdia 2019
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
Názov: Rozpoznávanie pomenovaných entít v slovenskom jazyku
|
||||
|
||||
Pomenované entity sú väčšinou vlastné podstatné mená v texte. Ich rozpoznanie nám pomôže určiť o čom text je. To sa často využíva v chatbotoch alebo vo vyhľadávaní v texte.
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
1. Vypracujte prehľad metód pre rozpoznávanie pomenovaných entít v texte.
|
||||
2. Vyberte vhodnú metódu a natrénujte model pre rozpoznávanie pomenovaných entít.
|
||||
3. Vykonajte viacero experimentov a zistite s akými parametrami má model najvyššiu presnosť.
|
||||
4. Navrhnite ďalšie zlepšenia modelu pre rozpoznávanie pomenovaných entít.
|
||||
|
||||
Podobné práce:
|
||||
|
||||
- [Jakub Maruniak](/students/2016/jakub_maruniak)
|
||||
- [Martin Wencel](students/2018/martin_wencel)
|
||||
|
||||
# Bakalársky projekt 2021
|
||||
|
||||
- Zlepšite model pre rozpoznávanie pomenovaných entít.
|
||||
- Anotujte korpus, navrhnite lepší klasifikátor.
|
||||
|
||||
Stretnutie 30.9.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Prihláste sa na github.com, získajte prístup k repozitáru https://github.com/hladek/spacy-skmodel. Nainštalujte si prostredie, spustite trénovací skript. Budete potrebovať prostredie Anaconda. Môžete využiť svoj počítač, alebo školský server idoc.fei.tuke.sk (urobím prístup v prípade potreby).
|
||||
- Vyznačte niekoľko (min. 20 článkov) pomenovaných entít cez webové rozhranie https://zp.kemt.fei.tuke.sk/topics/named-entity/navod
|
||||
- Napíšte krátku správu o tom čo je to rozpoznávanie pomenovaných entít a ako sa robí. Napíšte z akých zdrojov ste čerpali.
|
||||
|
||||
|
||||
|
@ -1,208 +1,15 @@
|
||||
---
|
||||
title: Dávid Stromp
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022]
|
||||
tag: [ir,cassandra,nlp,cluster]
|
||||
author: Maroš Harahus
|
||||
---
|
||||
# Dávid Stromp
|
||||
|
||||
Rok začiatku štúdia: 2019
|
||||
|
||||
# Bakalárska práca 2022
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
1. Vypracujte prehľad distribuovaných databáz alebo súborových systémov vhodných pre uloženie veľkého množstva textu.
|
||||
2. Vyberte vhodný spôsob uloženia veľkého množstva webových stránok.
|
||||
3. Nasaďte vybrané distribuované úložisko na testovací klaster pomocou systému Kubernetes.
|
||||
4. Vykonajte sadu testov pre overenia priepustnosti operácií zápisov a čítania.
|
||||
5. Identifikujte slabé miesta distribuovaného úložiska a navrhnite zlepšenia.
|
||||
|
||||
TO-DO na Diplomovku
|
||||
Cieľ práce:
|
||||
|
||||
- Zlepšiť proces získavania informácií
|
||||
- Implementovať algoritmus paralelného spracovania dokumentov v databáze Cassandra.
|
||||
- Implementovať algoritmus Page Rank alebo algoritmus jazykového modelu dokumentu.
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
Ciele:
|
||||
|
||||
- Vytvoriť nasadenie distribuovanej databázy na testovaci K8S klaster.
|
||||
-
|
||||
|
||||
22.8.2022
|
||||
- Praca skontrolovana pripravena na odovzdanie, treba este poriesit zadavaci list
|
||||
|
||||
|
||||
9.8.2022
|
||||
- Doplnene grafy z grafany do prace
|
||||
|
||||
8.8.2022
|
||||
- Skontrolovana praca pridane komentare
|
||||
- Student opravil chyby podla komentarov
|
||||
|
||||
3.8.2022
|
||||
- Poslana praca na kontrolu
|
||||
|
||||
1.8.2022
|
||||
- Prakticka cast hotova
|
||||
- Dohodnutie sa na pisani praktickej casti
|
||||
|
||||
25.7.2022
|
||||
- 1 Giga týka je takmer nemožné kedže je tam teraz 2 milióby entries ( zápis trval vyše 3 hodin a 2 razy mi plne spadlo spojenie ( preto usudzujem že celonočný zápis nebude veľmi účinný )) a má to len 50 Mb, hladal som softwárové riešenia ktoré by generovali veľké množstvo dát pre cassandru, avšak čo som našiel bolo len na normálnu cassandru a nie na k8ssandru bežiacu na kubernete
|
||||
|
||||
25.7.2022
|
||||
- Vytvoreni script na generovanie udajov
|
||||
- Skusanie scriptu
|
||||
- nainstalovana Grafana
|
||||
|
||||
|
||||
22.7.2022
|
||||
- Testovanie clustra prenasanie suborov atd
|
||||
|
||||
8.7.2022
|
||||
- Stretnutie čo dalej
|
||||
|
||||
2.6.2022
|
||||
- Presuvame pracu na September pretoze nestiahame pravit prenasany predmet
|
||||
|
||||
6.5.2022
|
||||
- Teoreticka praca skontrolovane subezne praca na praktickej casti
|
||||
|
||||
8.4.2022
|
||||
- Práca na teoretickej casti prace
|
||||
|
||||
|
||||
1.4.2022
|
||||
- Dohodli sme sa ze vynechame Page rank a budeme sa sustredit iba na distribuovane ulozisko
|
||||
|
||||
14.3.2022
|
||||
- Page rank implemetovany, beži ale nie v takej forme aku si prestavujeme
|
||||
|
||||
1.3.2022
|
||||
- Problem pri implementácii page ranku
|
||||
|
||||
22.2.2022
|
||||
- K8ssandra nainštalovaná na virtuálnych strojoch
|
||||
|
||||
15.2.2022
|
||||
- Kubernetes beží na virtualkach. Potreba nainštalovať ešte k8ssandru, dnes
|
||||
|
||||
14.2.2022
|
||||
- Vytvorené ďalšie 4 virtualky na UVT
|
||||
|
||||
10.2.2022
|
||||
- Vytvorená Virtualka na UVT
|
||||
|
||||
|
||||
Stretnutie 18.10.2021
|
||||
- Nahodený dashboard
|
||||
- Vygenerovaný token
|
||||
- Poslane prihlasovacie údaje
|
||||
|
||||
Stretnutie 22.10.2021
|
||||
- cassandra operátor zatiaľ nie je spojazdnený,
|
||||
- servicy nenabiehajú.
|
||||
- Pracuje sa na odstránení problému
|
||||
|
||||
Stretnutie 27.10.2021
|
||||
- Error standard_init_linux.go:228: exec user process caused: exec format error
|
||||
|
||||
|
||||
|
||||
Stretnutie 29.10.2021
|
||||
- Poslaný návod na k8ssandru
|
||||
- Snaha odstránení problému
|
||||
|
||||
|
||||
Stretnutie 8.11.2021
|
||||
- Na novo inštalácia k8s cluster
|
||||
- Vyskúšanie staršej verzie k8s
|
||||
prvý je ten že ten reaper operator s cass operatorom nesúvisí až tak úplne,
|
||||
a druhý je ten že aj keď staršia verzia k8ssandry opravila cass-operaotr, tak reaper-operator stále je v crashloope, takže to celé nefunguje,
|
||||
|
||||
Stretnutie 12.11.2021
|
||||
Poslaná teória
|
||||
|
||||
Stretnutie 28.11.2021
|
||||
- Prechod na virtulky virtual box
|
||||
|
||||
Stretnutie 3.12.2021
|
||||
- nechce fungovať DNS resolving,
|
||||
- pracuje s ana odstranieni problem
|
||||
|
||||
Stretnutie 4.12.2021
|
||||
- k8ssandra rozbehaná,
|
||||
|
||||
16.12.2021
|
||||
- Zhodnotenie výsledkom
|
||||
- Dohodnutie sa na teórii a odovzdaní
|
||||
|
||||
Stretnutie 19.01.2022
|
||||
- Uvažovanie o možnosti virtualizie na UVT
|
||||
- Ďalšie kroky
|
||||
|
||||
Stretnutie 23.1.2022
|
||||
- Písanie teórie
|
||||
- Poslanie prezentácie na pred obhajoby
|
||||
|
||||
|
||||
Stretnutie 15.10
|
||||
- Rozbehaný dashboard
|
||||
- Vytvorenie účtu
|
||||
- Pridanie ďalších raspberry pi
|
||||
- Predstavenie dashboardu
|
||||
|
||||
|
||||
Úlohy na ďalší týždeň:
|
||||
- Nainštalovanie Casasndry
|
||||
- Prepojenie s databázou
|
||||
|
||||
Stretnutie 08.10
|
||||
|
||||
- Preinštalovanie kubernetes
|
||||
- Nainštalovanie Casasndry
|
||||
- Spravená časť osnovy
|
||||
- Prepojenie s databázou
|
||||
|
||||
Úlohy na ďalší týždeň:
|
||||
|
||||
- Sfunkčnite k8s dashboard
|
||||
- Nainštalovať všetky potrebne veci
|
||||
|
||||
|
||||
Stretnutie 01.10.
|
||||
- Minikube funguje na vlastnom počítací
|
||||
- Pripravené relevantné poznámky k bakalárskej práci
|
||||
- Získaný prístup k RaspberryPi klastru
|
||||
|
||||
Úlohy na ďalší týždeň:
|
||||
- Sfunkčnite Casasndra operator (K8ssandra)
|
||||
- Sfunkčnite k8s dashboard
|
||||
- Naučte sa vkladať dáta do Cassandry a písať dotazy.
|
||||
- pošlite osnovu k bakalárskej práci a relevantný text (stačí aj v poznámkovom bloku)
|
||||
|
||||
|
||||
|
||||
Stretnutie 24.9.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Napíšte osnovu bakalárskej práce a pridajte do nej relevantné text čo máte.
|
||||
- Pripravte Casasndra operator - na začiatok na Vašom počítači. (napr. microk8s, minikube).
|
||||
- Dohodntite sa s Ing. Harahusom a získajte prístup ku RaspberryPi klastru.
|
||||
- Naučte sa vkladať dáta do Cassandry a písať dotazy.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Rozbehať crawler Websucker s Cassandrou.
|
||||
- Implementovať PageRank.
|
||||
- Napísať skript na indexovanie pomocou ElasticSearch.
|
||||
|
||||
|
||||
|
||||
Stretnutie 10.9.
|
||||
|
||||
Úlohy:
|
||||
@ -213,3 +20,7 @@ Stretnutie 10.9.
|
||||
- Naštudujte si článok http://ilpubs.stanford.edu:8090/422/ (Brin and Page). Zistite ako súvisí implementácia algorimtu PageRank s Cassandrou. Napíšte to do záznamu.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
24
pages/students/2019/david_stromp/cassandra-info.md
Normal file
@ -0,0 +1,24 @@
|
||||
## cassandra CQLSH
|
||||
|
||||
cassandra používa **cqlsh** (cassandra query language shell) -> pomocou neho vieme definovať schémy, vkladať dáta, a spúšťať dotazy
|
||||
|
||||
príkaz **cqlsh** -> hodí nás priamo do interaktívneho cql shellu, podporuje aj argumenty pri spustení shellu, ako napr "cqlsh --no color (pustíme cql bez farieb)" alebo "cqlsh --debug (pre debug mode)"
|
||||
|
||||
## cassandra BIG DATA
|
||||
|
||||
Cassandra je **key-value** model -> vkladanie a vyberanie hodnoty podľa kľúča
|
||||
|
||||
Cassandra -> najprv ukladá dáta do memtable ( a ak je preplnená ) udáje sa presunú permanentnej (SSTable).Táto vlastnosť ukladania dát je výhodná pre real-time dátach napríklad pri IoT. CQL je pomerne limitované čo sa requestov týka, preto je pri určitých tabuľáck v DB odporúčané spracovanie dát externými nástrojmi -> napríklad proces dát cez apache spark
|
||||
|
||||
Cassandra ponúka tiež lineárnu **škálovatelnosť**, čo je výhoda pri Big Data. Pri preplnení Datastorov/serverov na uzloch kde beží Cassandra, vieme bez downtimu pridať ďalšie nódy
|
||||
|
||||
Veľká výhoda cassandry je možnosť nastavenia read/write **konzistencie**.
|
||||
**konzistencia** -> vlastnosť systému že každá operácia čítania musí čítať z najnovšieho zápisu Cassandra nám umožnuje túto konzistenciu nastavovať
|
||||
|
||||
## cassandra Page-rank
|
||||
|
||||
Page Rank -> ranking system pre web, hodnôt, primárne hodnotí podľa backlinkov
|
||||
|
||||
Page Rank pri implementácií pomocou matematických funkcií ukladá hyperlinky stránok ako číslo integeru -> to je jedna z priamych súvislostí, ku Cassandra data modelu ktorý je key-value storage
|
||||
|
||||
Benefity PageRanku pri vyhľadávaní sú najviac viditelné pri pomerne nepresne špecifikovaných dotazoch -> to je priama výhoda pre Cassandru, kedže cassandra nepozná mnoho operácií ktoré napríklad SQL áno
|
@ -1,42 +0,0 @@
|
||||
---
|
||||
title: Dmytro Mural
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022]
|
||||
tag: []
|
||||
author: Maroš Harahus
|
||||
---
|
||||
Rok začiatku štúdia: 2019
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
Grafové neurónové siete pre vyhľadávanie na internete.
|
||||
|
||||
https://arxiv.org/abs/1810.05997
|
||||
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
1. Vysvetlite čo je to grafová neurónová sieť
|
||||
2. Vypracujte prehľad najnovších druhov grafových neurónovýsh sietí.
|
||||
3. Vyberte jednu metódu grafových neurónových sietí a navrhnite spôsob experimentálneho ohodnotenia sady prepojených článkov pomocou grafovej neurónovej siete.
|
||||
4. Vyhodnnoťte experimenty a navrhnite zlepšenia Vášho prístupu.
|
||||
|
||||
|
||||
Cieľ práce:
|
||||
|
||||
Zlpešite metódy ohodnotenia prepojených ddkumentov na internete .
|
||||
|
||||
|
||||
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
Ciele:
|
||||
|
||||
Stretnutie 15.10
|
||||
|
||||
- Naštudovať si ako fungujú neurónové siete
|
||||
- Naštudovať ako fungujú grafové neurónové siete
|
||||
- Napísať rešerš
|
||||
|
@ -1,328 +0,0 @@
|
||||
---
|
||||
title: Filip Tomáš
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022,dp2024]
|
||||
tag: [testovanie,javascript,typescript]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2019
|
||||
|
||||
|
||||
DP sa prekladá na rok 2025
|
||||
|
||||
# Diplomová práca 2024 - 2025
|
||||
|
||||
Zadanie:
|
||||
|
||||
1. Napíšte prehľad metód vektorovej reprezentácie dokumentov pomocou neurónových sietí.
|
||||
2. Napíšte prehľad vektorových databáz a ich metód vyhľadávania.
|
||||
3. Nasaďte vybranú vektorovú databázu do testovacieho distribuovaného prostredia.
|
||||
4. Vytvorte index väčšieho množstva textových dokumentov vo vybranej vektorovej databáze.
|
||||
5. Vytvorte webové rozhranie na vyhľadávanie a slovne vyhodnoťte výsledky.
|
||||
|
||||
Ciel:
|
||||
|
||||
- Vytvorte distribuovaný vyhľadávací index pre dáta zo slovenského internetu. Cieľom je vytvoriť vyhľadávanie na (skoro) celom slovenskom internete.
|
||||
|
||||
Spolupráca Michal Stromko, Kristián Sopkovič. Huzenko
|
||||
|
||||
Stretnutie 16.12.
|
||||
|
||||
- Vytvorený indexer
|
||||
- Vytvorené rozhranie vyhľadávania
|
||||
- Deployment Milvus.
|
||||
- Zatiaľ je indexovanie pomalé na domácej karte.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dajte kódy na GIT.
|
||||
- Vyskúšajte indexovanie na servri QUADRO
|
||||
- Pracujte na textovej časti.
|
||||
|
||||
|
||||
Stretnutie 22.11.
|
||||
|
||||
Stav:
|
||||
|
||||
- Použitý HELM chart pre Milvus. Sú potrebné úpravy konfigurácie pre ARM - vymeniť Docker IMAGES.
|
||||
- PV je vyriešené.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Skripty aj konfiguráky dávajte na GIT.
|
||||
- Urobte skripty pre "prípravu" klastra.
|
||||
- Urobte skripty pre nasadenie Mulvus na Klaster.
|
||||
- Pokračujte v písaní práce.
|
||||
|
||||
|
||||
Zásobík úloh:
|
||||
|
||||
- Keď to bude hotové, vyskúšajte skripty na DeskPI Super6C Klastri, p. Huzenko.
|
||||
- Urobte benchamark na Milvus deployment.
|
||||
- Naštudujte si Ansible a urobíte Ansible konfiguráciu microk8s.
|
||||
|
||||
|
||||
Stretnutie 7.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Riešenie problémov súvisiacich s PersistentVolume
|
||||
- Práca na texte
|
||||
|
||||
|
||||
|
||||
Stretnutie 15.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozpísaná práca
|
||||
- Príprava na nasadenie Milvus DB na RPI klaster.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Píšte prácu: Definuje úlohu. Napíšte súčasný stav. Predstavte naše riešenie. Vyhodnotte naše riešenie. Postupujte od všeobnecného ku konkrétnemu.
|
||||
- Pokračujte v práci na HW a SW.
|
||||
|
||||
Stretnutie 27.9.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobené vyhľadávanie Milvus, odstavce sú v sqlite.
|
||||
- Indexovanie je v osobitnom skripte.
|
||||
- Urobené web rozhranie pomocou Flask.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Na indexovanie používajte server quadro - 4 GPU karty 1080 12GB RAM. Prístup dá vedúci. Skript upravte tak, aby používal všetky 4 karty. Urobte meranie o koľko sa zrýchlylo spracovanie. Prihlásite sa ccez SSH `filip@quadro.kemt.fei.tuke.sk` . Server je dostupn7 iba cez VPN. Vytvoríte si prostredie Anaconda. Dlhý skript pustíte pomocou screen alebo tmux.
|
||||
- Na RPI klaster k8s urobte paralelný deployment Milvus a mongodb aj webové rozhranie.
|
||||
- Pokračujte v štúdiu LangChain.
|
||||
- Pokračujte v písaní - sentence transformers, retrieval augmented generation, distributed database.
|
||||
|
||||
Stretnutie 23.7.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Vytvorený jednoduchý index pomocou Milvus, indexovanie pomocou slovakbert-mnlr.
|
||||
- Zatiaľ slovakbert-mnlr vyzerá lepšie, ale treba to ešte vyskúšať.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte pri vytváraní indexu pomocou Milvus- slovakbert-mnlr. Snažte sa zindexovať celú wikipédiu. Indexujte na úrovni odstavcov. Na uloženie textu môžete použiť súborový systém (urobte si funkciu ktorá namapuje ID na meno súboru). Alebo na uloženie použite databázu. Napríklad minio alebo sqlite.
|
||||
- Skripty dávajte na GIT.
|
||||
- Oboznámte sa s knižnicou LangChain, začnite tu https://python.langchain.com/v0.2/docs/tutorials/retrievers/
|
||||
- robte si písomné poznámky. študujte vedecké články (napr. z Arxiv). Odkaz na článok si poznačte a zapíšte si čo sa v článku píše.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- vyhľadávací systém môžete urobiť pomocou langchain alebo inej knižnice.
|
||||
- Pripravte deployment navrhnutého systému na k8s klaster.
|
||||
- skúste spustiť vyhľadávací systém na raspberry pi klastri.
|
||||
- zaindexujte slovenský internet.
|
||||
- Pripravte benchmark rýchlosti indexovania.
|
||||
- Pripravte webové rozhranie pre vyhľadávanie.
|
||||
|
||||
|
||||
Stretnutie 3.5.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozbehaný Milvus lokálne pomocou Docker.
|
||||
- Implementácia vyhľadávania pomocou Python.
|
||||
- Rozpracovaná príprava na Milvus RPI Klaster.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Skúste zaindexovať slovenské dáta. Na vektorovú reprezentáciu použite https://huggingface.co/TUKE-DeutscheTelekom/slovakbert-skquad-mnlr
|
||||
- Na začiatok zaindexujte slovenskú wikipédiu. Sparsovaný text bol dodaný.
|
||||
- Napíšte o tom čo je to SentenceTransformer - ako sa trénuje a ako sa používa.
|
||||
- Pozrite si DP M. Stromko a K. Sopkovič.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Benchmarking vyhľadávania. Vyskúšame viacero embeddingov s rôznym rozmerom. Modely typu Matroshka.
|
||||
- Zhlukovanie dokumentov - zostavenie doménového korpusu s dát.
|
||||
- Dolovanie otázok a odpovedí.
|
||||
- Je priestor pre nákupy RPI pre nový RPI klaster.
|
||||
|
||||
Stretnutie 8.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Funguje microk8s RPI klaster. Aktivované HA.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vypracujte prehľad vektorových databáz. QDRANT, *MILVUS*, Weaviate, a iné. Opíšte ako funguje ich vyhľadávací index. Ako funguje tvorba a vyhľadávanie v distribuovanom indexe?. Citujte odborné články,
|
||||
- Pokračujte v úlohách: nasadte databázu, zaindexujte dokumenty a vypracujte webové rozhranie.
|
||||
|
||||
Stretnutie 10.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Teoretická príprava a tri strany poznámok.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nasadte databázu Milvus na RPi. Vytvorte skripty na nasadenie pomocou Kubernetes. Zvážte možnosž použitia HELM alebo K8S Operátor.
|
||||
- Preštudujte si ako funguje distribuované nasadenie Milvus.
|
||||
- Zistitie si čo je K8S operator.
|
||||
- Zistite čo to je HELM.
|
||||
- Zisite ako nasadit Milvus pomocu Operator alebo pomocou HELM.
|
||||
- Skúste zaindexovať pár dokumentov.
|
||||
- Pokračujte v písaní práce.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte HTML rozhranie pre hybridné vyhľadávanie. Môžete využiť pomoc od Stromko-Sopkovič.
|
||||
|
||||
|
||||
Stretnutie 26.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vypracovaný text na tému: Hardware RPI, kontajnerizácia, Čo je ingress. Paralelné spracovanie dát, o Kubernetes.
|
||||
- Na klastri sú nainštalované všetky potrebné nástroje: Multipass, k8s,
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Je potrebný Multipass na beh MicroK8s RPI klastra? Ak áno tak prečo. Ak nie tak to opravte.
|
||||
- [ ] Pozrite si profily Stromko, Sopkovič.
|
||||
- [x] Zistite, ako funguje "vektorové" vyhľadávanie pomocou neurónových sietí. Ako funguje SBERT-SentenceTransformer? Ako funguje vyhľadávanie BM25? Nájdite články a napíšte poznámky na 3 strany.
|
||||
- [x] Prečítajte si https://qdrant.tech/articles/hybrid-search/
|
||||
- [ ] Použite vektorovú databázu s podporou ukladania textu.
|
||||
- [x] Preskúmajte možnosti nasadenia QDRANT, *MILVUS*, Weaviate. Oboznámte sa s týmito databázami. Umožňujú hybridné vyhľadávanie? Vyberte jednu vhodnú na nasadenie v našich podmienkach. Mala by fungovať aj na RPI klastri, mala by podporovať aj hybridné vyhľadávanie.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zaindexujte slovenský internet.
|
||||
- Pripravte jednoduché webové rozhranie pre vyhľadávanie na slovenskom internete.
|
||||
- Vykonajte záťažové testy pre indexovanie a vyhľadávanie.
|
||||
|
||||
|
||||
|
||||
|
||||
# Diplomový projekt 2023
|
||||
|
||||
Nápady:
|
||||
|
||||
- Zostaviť Raspberry Pi K8S Cluster pre podporu výuky predmetu ZKT. Chceme mať k dispozícii viacero fyzických uzlov, kde je možné spúštať rôzne aplikácie.
|
||||
- Klaster by malo byť jednoduché dať do východiskového stavu.
|
||||
- Klaster by mal mať aj podpornú infraštruktúru: Storage, Ingress, Registry, LoadBalancer.
|
||||
- Možno vytvoriť iný klaster pre skúštanie výukových alebo demonštračných aplikácií. Napr. JupyterLab, NLP demo pre GPU.
|
||||
- Preskúmať možnosti paralelného spracovania dát - Dask, SLURM, Spark,
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
- Podarilo sa nainštalovať a nasadiť Kubernetes klaster na raspberry PI
|
||||
- Bola vytvorená písomná správa
|
||||
- Skripty sú na https://git.kemt.fei.tuke.sk/ft835qr/dp2024
|
||||
- Výsledky boli odovzdané na poslednú chvíľu.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Oboznámte sa so systémom microk8s. Nainštalujte si ho a vyskúšajte.
|
||||
- Zistite čo je Ingress a ako si ho vytvoríme.
|
||||
- Zistite, aké storage podporuje microk8s a ako ho implementovať.
|
||||
- Navrhnite architektúru k8s klastra. Máme k dispozícii 5 jednotiek RPi4 s SD kartami. 1 jednotku Nvidia Jetson Xavier.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Namontovať klaster do serverovne a prideliť IP.
|
||||
- Rozbehať JupyterLab.
|
||||
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
|
||||
Názov bakalárskej práce:
|
||||
|
||||
Aplikačné testy v systémoch kontinuálnej integrácie a nasadenia
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
1. Vypracujte prehľad metód a nástrojov automatického testovania
|
||||
2. Vypracujte prehľad metód a nástrojov systémov kontinuálnej integrácie a nasadenia
|
||||
3. Vyberte vhodné metódy a pomocou systému Docker Compose nasaďte systém automatického testovania do vybraného systému kontinuálnej itengrácie a nasadenia.
|
||||
4. Vypracujte sadu aplikačných testov na vybranú webovú aplikáciu.
|
||||
5. Navrhnite zlepšenia systému spúšťania automatických testov.
|
||||
|
||||
Stretnutie 15.3.
|
||||
|
||||
- Podarilo sa implementovať GitLab CI CD pipeline s Cypress
|
||||
- Výsledky sú na https://git.kpi.fei.tuke.sk/filip.tomas/bp2022
|
||||
- Treba vedúcemu prideliť práva na čítanie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pracujte na texte
|
||||
- Pokračujte v práci na otvorenyých úlohách.
|
||||
|
||||
Stretnutie 25.2.
|
||||
|
||||
- Fungujú automatické testy Cypress
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Vypracovať písomný prehľad CI CD systémov nasaditeľných pomocou Docker Compose.
|
||||
- [ ] Vybrať vhodný systém, optimálne taký, ktorý sa dá integrovať so systémov Gitea. https://gitea.com/gitea/awesome-gitea#user-content-devops
|
||||
- [ ] Pripravte deployment docker compose, kotrý bude obsahovať GITEA aj CI CD podľa výberu. Najčastejšie sa používa asi Jenkins.
|
||||
|
||||
Interakcia medzi Gitea a CI CD sa deje pomocou webhook. Riešenie pomocou GITlab je akceptovateľné, ale nie preferované.
|
||||
|
||||
# Bakalársky projekt 2021
|
||||
|
||||
Ciele:
|
||||
|
||||
1. [ ] Naučiť sa nasadiť a pracovať so systémom CI-CD. Vytvoriť pokusné nasadenie CI CD systému pomocou Docker compose. Môžete použiť [TUKE Cloud](https://cloud.tuke.sk/).
|
||||
2. [x] Vytvoriť automatické aplikačné testy ku aplikácii Traktor.
|
||||
3. [-] Vytvoriť kompletný reťazec CI-CD ku aplikácii Traktor. Automatický build a test, zobrazenie reportu.
|
||||
4. [-] Vypracovanie písomného prehľadu.
|
||||
|
||||
Stretnutie 10.12.2021
|
||||
|
||||
- Pripravený prvý reálny test, skladá sa z viacerých scenárov.
|
||||
- Práca na texte
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať s vytváraním testov
|
||||
- Pokračovať v práci na texte.
|
||||
- Rozbehať vlastný CI CD.
|
||||
|
||||
Práca na texte.
|
||||
|
||||
Úlohy: Pokračujte v otvorených úlohách
|
||||
- Napíšte čo je to testovanie a aké spôsoby testovania poznáme (aplikačné, použiteľnosti, jednotkové... ).
|
||||
|
||||
Stretnutie 22.10.
|
||||
|
||||
- Napísaný prvý draf s poznámkami o CI CD
|
||||
- pripravené prvé test-case
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách
|
||||
- Vytvorte GIT repozitár s názvom bp2022 a nahrajte do neho testovacie scenáre.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Skúste vytvoriť nasadenie vhodného CI CD na tuke cloude.
|
||||
- [ ] Upravte scenáre tak, aby boli ľahko automaticky spustiteľné. vytvorte skript pre inštaláciu potrebných komponentov a pre spustenie testov.
|
||||
|
||||
|
||||
Stretnutie 23.9.
|
||||
|
||||
- Dohodli sme sa na zadaní, cieľoch a názve.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Urobte písomný prehľad systémov CI-CD. Uveďte zdroje z ktorých ste čerpali.
|
||||
- [ ] Nájdite vhodnú odbornú literatúru, uveďte ju do prehľadu. V školskej knižnici môže byť dobrá kniha.
|
||||
- [x] Navrhnite základné testovacie scenáre pre aplikáciu https://traktor.kemt.fei.tuke.sk.
|
||||
|
||||
|
@ -1,462 +1,23 @@
|
||||
---
|
||||
title: Kristián Sopkovič
|
||||
title: Kristán Sopkovič
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2022,dp2024]
|
||||
category: [bp2022]
|
||||
tag: [spacy,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2019
|
||||
|
||||
# Dizertačná práca 2028
|
||||
|
||||
Cieľ:
|
||||
|
||||
- Vylepšiť RAG-QA v slovenskom jazyku.
|
||||
|
||||
Stretnutie 6.11.2024
|
||||
|
||||
Kritériá na rok 24-25:
|
||||
|
||||
- Získať min. 40 bodov za publikácie podľa [tabuľky](https://www.fei.tuke.sk/uploads/1d/fa/1dfad875721c7e707dbe9c1f93f327b3/2022_Zasady_PhD_studia_TUKE_uplne_znenie_po_D1_web.pdf) dole.
|
||||
|
||||
Plán na publikácie - povinná jazda:
|
||||
|
||||
- SCYR 8B
|
||||
- [RADIOELEKTRONIKA 2025 15](https://radioelektronika.uniza.sk/home.php?id_conference=28)
|
||||
- RADIOELEKTRONIKA 2025 15 (Eva Kupcová)
|
||||
- V prípade núdze [EEI](https://eei.fei.tuke.sk/deadlines/) alebo [AEI](https://www.aei.tuke.sk/index.html). Tam sa dajú uverejniť aj výsledky záverečných prác.
|
||||
|
||||
Ďalšie "jednoduché" konferencie kde zvykneme chodiť:
|
||||
|
||||
- ELMAR
|
||||
- SAMI
|
||||
- CINTI
|
||||
- ICETA
|
||||
- ITAT
|
||||
|
||||
Treba overiť konkrétny termín "uzávierky" hodnotenia doktoranda.
|
||||
|
||||
Plán na publikácie - Conference our level:
|
||||
|
||||
- Slovko (výstup ide do Jaz. časopisu)
|
||||
- TSD 2025
|
||||
- LREC-COLING 2026 konferencia.
|
||||
|
||||
Plán na publikácie - Journal our level:
|
||||
|
||||
- Jazykovedný časopis, má dobré hodnotenie (Scopus Q2-eq. WOS Q3)
|
||||
- IEEE Access Q2
|
||||
- PeerJ Computer Science Q2
|
||||
- Pattern Recognition Q2
|
||||
- Nature Scienfic Reports Q2
|
||||
- Language Resources and Evaluation Q3
|
||||
- Natural Language Processing (Journal) asi Q3
|
||||
|
||||
|
||||
Plán na publikácie - Cream de la Creme:
|
||||
|
||||
- INTERSPPECH
|
||||
- ENLP alebo iná ACL konferencia
|
||||
|
||||
Stretnutie 21.6.
|
||||
|
||||
Nápady na tému DP:
|
||||
|
||||
- Agentový prístup k získavaniu informácií. Agent vie iniciatívne získať ďalšie potrebné informácie pre splnenie cieľa získavania informácií.
|
||||
- Grafová reprezentácia informácie - vyhľadávanie v štruktúrovaných, prepojených dokumenotch.
|
||||
- Zlepšenie modelov vektorovej reprezentácie.
|
||||
- Tvorba nových "základných" generatívnych modelov.
|
||||
|
||||
# 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í.
|
||||
|
||||
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.
|
||||
- Vytvorte kognitívne vyhľadávanie pre mesto Košice
|
||||
|
||||
[Slovak Semantic Textual Similarity Benchmark](https://huggingface.co/datasets/crabz/stsb-sk)
|
||||
na trénovanie Sentence Transformer
|
||||
|
||||
|
||||
## Diplomový projekt 2
|
||||
|
||||
|
||||
Stretnutie 1.3.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na teórii
|
||||
- Preskúmané modifikátory stratovej funkcie - Matrioshka embedding. Metóda zníženia dimenzie embeddingov.
|
||||
- Porovnané slovenská (preložená) SNLI-sk a STSB-sk. e5 small model (374dim) MNLR plus loss modifier a matrioshka LOSS.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 29.1.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Príprava prezentácie.
|
||||
- Natrénované viacerá MNLR modely a vyhodnotené na SK QUAD, zostavená tabuľka s výsledkami. Najlepšie vychýdza dotrénovaný e5 model, SlovakBERT dotrénovaný je 2. najlepší. Na dotrénovanie boli použíté preložené SNLI dáta.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 15.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Lepšie preložená databáza (Azure) SNLI a STSB-SK (pôvodne preložená cez OPUS).
|
||||
- Natrénovaný Bi Encoder (SNLI) aj Cross Encoder (STSB) zo SlovakBERT a E5.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyhoddnotte natrénované modely a výsledky sumarizujte v dip. práci. Môžete použit slovenský dataset od M Stromka keď bude.
|
||||
- Datasety a modely nahrajte na HF HUB, zatiaľ privátne. TUKE-DeutscheTelekom ORG. Zistite vo firme podmienky zverejnenia.
|
||||
- Po Novom roku dodajte draft DP.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Porozmýšľajte nad článkom.
|
||||
|
||||
|
||||
Stretnutie 3.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Sú spracované ďalšie dáta o službách z Magistrátu Košíc.
|
||||
- Dotrénovanie multilinguálnych modelov na NLI databázach. MNLR loss. Model E5 a varianty. Batch size by mala byť najmenej 256. LR na finetuning je E-5. Preto je možné pracovať iba so SMALL model. Max seq. len bol orezaný na 256 z 512 aby to išlo na 1x24 GB Titan.
|
||||
- SIMSCE prístup na trénovanie pomocou MNLR, je SOTA. Koher reranker je tiež SOTA, ale je komerčný.
|
||||
- Pokračujeme v minulých úlohách.
|
||||
- Evaluačná množina SK QUAD bola preložená do nemčiny a angličtiny.
|
||||
- Mistrail LLM model natrénovaný na európskych jazykoch.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Chceme dotrénovať E5 model na anglickom, nemeckom a slovenskom SNLI pre úlohu kros linguálneho IR. Vyhodnocovať budeme na SQUADE anglickom, nemeckom a slovenskom jazyku.
|
||||
- Pokračujte v písaní diplomovej práce. Pripravte si osnovu a ku každej časti napíšte čo by v nej malo byť. Udržiavajte si zoznam použitej literatúry. Poznačte si bib. údaje o článkoch a knihách z ktorých čerpáte, priradte kódy jednotlivým záznamom.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Výsledky budeme demonštrovať na košických dátach.
|
||||
|
||||
|
||||
Stretnutie 13.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Spracované dáta z mesta Košice - 110 najčastejších otázok a odpovedí.
|
||||
- Nasadená 13B ChatLLama na Titan, 4 bit kvantizácia.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Chceme vytvoriť model pre cross-lingual information retrieval. Model bude vedieť vytvoriť "vyhľadávací embedding" pre texty a otázky vo viacerých jazykoch.
|
||||
- Na základe dostupných dát natrénujte takýto model. K dispozícii máme preloženú Slovak NLI, Anglickú NLI. Určite existujú aj iné jazyky. Zoberte viacero NLI databáz a dotrénujte z nich multilinguálny model. Aký model je najlepší ako "základ"? Možno multilinguálne SBERT: E5, mpnet, miniLM.
|
||||
- Model vyhodndotte na dostupných databázach.
|
||||
- Prečítajte si viacero nových článkov na tému "mutlilingual alebo crosslingual" "information retrieval" "document embeddings". Urobte si poznámky do DP.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Košické dáta je možné využiť pri vyhdonotení.
|
||||
- Možno dáta na vyhodnotenie slovenského IR vytvorí aj M. Stromko.
|
||||
- Pripraviť API na ChatLLAma.
|
||||
|
||||
Stretnutie 28.9.20023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vieme pracovať - natrénovať SBERT (Sentence Transformer).
|
||||
- Je strojovo preložená SNLI databáza pomocou Marian NMT setup.
|
||||
|
||||
Nápady:
|
||||
|
||||
- Získať dáta-dokumenty z webovej stránky mesta Košice.
|
||||
- Získať informácie z webovej stránky https://www.esluzbykosice.sk/
|
||||
- Spracovať dáta o často kladených otázkach, ktoré sme dostali z mesta Košice.
|
||||
- Spracovať dáta o agende, ktoré sme dostali z mesta Košice.
|
||||
- Vytvoriť ku týmto dátam "asistenta" pre získavanie informácí.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Porozmýšľať ktorú časť problému "pomoci občanom mesta Košice" by sme mohli riešiť.
|
||||
- [-] Spracujte dodané dáta od mesta Košice (vedúci pripraví a pošle).
|
||||
- [ ] Dáta zaindexujte a pripravte jednoduché vyhľadávanie.
|
||||
- [ ] Pokračujte v písomnej teoretickej príprave na tému "Sentence Transformers".
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte scraper na dáta od mesta Košice.
|
||||
|
||||
|
||||
|
||||
## Diplomový projekt 1
|
||||
|
||||
Stretnutie 2.6.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Natrénovaný IR retriever
|
||||
- Natrénovaný model pre generatívne odpovede na báze Slovak T5 Small.
|
||||
- Práca na texte
|
||||
|
||||
Stretnutie 25.5.
|
||||
|
||||
Stav:
|
||||
|
||||
- Trénovanie MNLR nebolo v poriadku, lebo boli použité iba kladné príklady.
|
||||
|
||||
Úloha:
|
||||
|
||||
- Natrénovať model SNLI. Natrénovať iný model STSB.
|
||||
- Porovnajte ich ako cross-encoder. Vyhodnoťte recall vyhľadávania na databáze sk-quad.
|
||||
- Porovnajte to so základným modelom mnlr sk quad.
|
||||
- Skúste oba modely dotrénovať na MNLR skquad a vyhodnotiť.
|
||||
- pracujte na písomnej časti.
|
||||
|
||||
|
||||
Stretnutie 5.5.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Natrénovaný model MNLR SlovakBERT na preloženej databáze Standformd SNLI.st.: tot je asi zle
|
||||
- Urobnené predbežné vyhodnotenie - analýza strednej hodnoty kosínusovej podobnosti pre triedy entailment, contradiction, neutral.
|
||||
- Výsledkom MNLR je kosínusové podobnisť.
|
||||
- Urobené aj softmax trénovanie. Výsledkom softmax je trieda pre 2 zadané vety.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Upravte a dajte trénovacie skripty na GIT.
|
||||
- Vyhodnotiť presnosť klasifikácie softmax pomocou konfúznej matice - p,r,f1
|
||||
- Dotrénovať SNLI ST na SK Quad a vyhodnotiť na úlohe sémantického vyhľadávania. - recall. To tj e zlá úloha.
|
||||
- Pracujte na písomnej správe, ktorá poslúži ako základ pre DP a pre článok. Do textu opíšte trénovanie ktoré ste vykonali, postup pri preklade, návrh experimentov a výsledky. Do teoretickej časti píšte o sentence transformeroch.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Cieľom je poblikovať kvalitný článok.
|
||||
- Cieľ 2 je aplikovať model pre úlohu vyhonotenia súladu staevebnej dokumentácie so regulatívou - zákonmi a vyhláškami.
|
||||
- Využijeme databázu STSB-sk (na hf hube) ako ďalší zdroj dát
|
||||
- Pripravte porovnávacie experimenty pre anglické datasety.
|
||||
- Do ďalších experimentov zahrňte multilinguálne modely.
|
||||
|
||||
Stretnutie 24.4.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Preložené SNLI - všetky 3 časti.
|
||||
|
||||
|
||||
Stretnutie 17.3.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Je preložená SNLI databáza, trénovacia časť. Použitý OPUS Helsinki NLP model
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Preložiť aj testovaciu časť.
|
||||
- Natrénovať Sentence Transforner (ST) na databáze SNLI, podľa SlovakBERT.
|
||||
- Dotrénovať SNLI ST na SK Quad a vyhodnotiť na úlohe sémantického vyhľadávania. - recall
|
||||
- Podobným spôsobom vyhodnotiť Slovakbert-stsb.
|
||||
- Napíšte o tom čo je to ST, ako funguje. Pripravte prehľad databáz na trénovanie ST.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Porovnať s slovakbert-crossencoder na tuke-dtss modelmm.
|
||||
|
||||
Stretnutie 17.2.2023
|
||||
|
||||
Úlohy
|
||||
|
||||
- Zoberte existujúci model SlovakBERT-stsb a použite ho na dotrénovanie bi-encódera na databáze SK quad. Porovnajte presnosť vyhľadávania s bi-encóderom natrénovaným iba na SlovakBERT (dodá vedúci). Použite skripty v repozitári slovak-retrieval.
|
||||
- Urobte prehľad databáz potrebných na dotrénovanie Sentence Transformer. Vyberte vhodnú databázu na strojový preklad, napr. nejakú NLI databázu. Použite ju na dotrénovanie bi-encódera.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zistite ako využiť slovenský generatívny model pre sémantické vyhľadávnaie. Pripravte experiment a vyhodnotte ho.
|
||||
- Vyberte databázu pre sémantické vyhľadávanie alebo question answering na vhodnú na vytvorenie slovenského klonu.
|
||||
|
||||
|
||||
Stretnutie 24.11.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Porozmýľať ďalej o téme, komuikovať o možnom grante na anotáciu.
|
||||
- Vyskúšajte [Sentence Transformers framework](https://github.com/UKPLab/sentence-transformers/tree/master/examples). Pozrite si príklady, ako trénovať.
|
||||
- Prečítajte si článok https://arxiv.org/abs/1908.10084.
|
||||
- Zistite, čo je Natural Language Inference, aké sú dostupné databázy.
|
||||
- Zistite, čo je Semantic Textual Similarity, aké sú dostupné databázy.
|
||||
- Pozrite si https://git.kemt.fei.tuke.sk/dano/slovakretrieval/
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
Návrh na názov bakalárkej práce:
|
||||
|
||||
Model Spacy pre spracovanie prirodzeného jazyka v slovenčine
|
||||
Model Spacy pre spracovanie prirodzeného jazyka v slovenčine
|
||||
|
||||
Ciele bakalárskej práce:
|
||||
|
||||
- Zlepšiť presnosť modelu Spacy pre slovenčinu
|
||||
|
||||
|
||||
Zadanie:
|
||||
|
||||
1. Zistite ako pracuje knižnica Spacy a opíšte metódy ktoré používa.
|
||||
2. Natrénujte model pre spracovanie slovenského prirodzeného jazyka.
|
||||
3. Vykonajte viacero experimentov a zistite presnosť pri rôznych parametroch.
|
||||
4. Identifikujte slabé miesta a zlepšite presnosť spracovania.
|
||||
|
||||
25.3.2022
|
||||
|
||||
- Zopakované trénovanie POS aj NER
|
||||
- Zisitili sme, že keď sa NER trénuje osobitne bez POS tak dáva lepšie výsledky. Prečo?
|
||||
- konfiguračné súbory sú na githube. malý nepoužíva slovné vektory, stredný používa 200000 ti. slov vektorov.
|
||||
- uncased multilingual bert vychadza lepsie ako cased.
|
||||
- v konfiguácii sú fasattext slovné vektory aj multilingualbert uncased. Používajú sa slovné vektory pri klasifikácii???
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zosumarizovať výsledky experimentov do písomneč časti
|
||||
- Finalizovať BP - na ďalšom stretnutí prejdeme spolu draft.
|
||||
- Pripraviť skripty na natrenovanie modelov na verejnú distribúciu.
|
||||
|
||||
|
||||
4.3. 2022
|
||||
|
||||
- Natrénované NER modely Spacy Transformers, výsledky sú na wandb
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Pripraviť modely (návody na trénovanie) na verejnú distribúciu.
|
||||
- [x] Natrénovať menšie modely bez slovných vektorov.
|
||||
- [-] Pokračovať v písaní.
|
||||
- [x] Vytvoriť rozhranie pre využitie modelov huggingface ,modelov slovakbert. Využiť spacy-transformers alebo spacy-sentence-transformers.
|
||||
- [x] Na githube vytvorte fork alebo branch repozitára, dajte mi prístup. tam bude pracovná verzia s novými modelmi.
|
||||
|
||||
25.2.2022
|
||||
|
||||
- Vyskúšané experimenty s hyperparametrami s pôvodnou architektúrou POS modelu.
|
||||
- Zmenená architektúra POS na Spacy Transformer (bez BERT predtrénovania, využíva slovné vektory). Dosiahnuté zlepšenie POS z 0.8 na 0,9. Výsledky sú vo forme grafu dostupné na wandb
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zdieľať wandb projekt,
|
||||
- Vyskúšať transformers architektúru na NER model.
|
||||
- Vyskúšať BERT architektúry - MultilingualBERT, SlovakBERT, LABSE, Slovak GPT
|
||||
- Pracujte na texte
|
||||
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
|
||||
18.2.2022
|
||||
|
||||
- Na idoc je problém s timeout pri zostaení pip balíčka, ale funguje trénovanie spacy pos
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Zatiaľ sa sústrediť na POS model čo funguje.
|
||||
- [x] Do týždňa opraviť idoc (pre vedúceho).
|
||||
|
||||
|
||||
7.2.2022
|
||||
|
||||
- Rozbehaný trénovací skript na vlastnom počítači
|
||||
- Spustených niekoľko experimentov.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Pokračujte v otvorených úlohách.
|
||||
- [x] Výsledky experimentov dajte do tabuľky do práce.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Skúste použiť logovací nástroj https://docs.wandb.ai/guides/integrations/spacy
|
||||
- [x] Skúste rozbehať trénovacie skripty na školskom servri. Problémy vytriešime na konzultácii.
|
||||
|
||||
26.11. 2021
|
||||
|
||||
- Absolvovaný kurz Explosion https://course.spacy.io/en/
|
||||
- Mierne zlepšený text práce.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vytvorte GIT a vložte do neho svoje trénovacie skritpy. Nedávajte tam veľké textové súbory. Dajte odkazy odkiaľ ste získali dáta. Celý proces by mal byť opakovateľný,
|
||||
- [x] Skúste zlepšiť hyperparametre môjho trénovacieho skriptu spacy3
|
||||
- [ ] Skúste pridať MultilingualBert do trénovania.
|
||||
- [ ] Pokračujte v práci na textovej časti.
|
||||
- [x] Vytvorené modely je potrebné vyhodnotiť. Pozrite ako to je v mojom Spacy repozitári.
|
||||
|
||||
|
||||
Zápis 21.10.
|
||||
|
||||
Vyskúšať toto:
|
||||
|
||||
- [MultilingualBert](https://github.com/google-research/bert/blob/master/multilingual.md). Dá sa adaptovať na Slovak Treebank.
|
||||
- [Spacy Transformers](https://spacy.io/universe/project/spacy-transformers)
|
||||
|
||||
Stretnutie 15.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozpracovaná kapitola o Spacy
|
||||
- Pokusné trénovanie HuggingFace v Pytorch
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Aplikovať model BERT do Spacy Pipeline.
|
||||
|
||||
Stretnutie 1.10
|
||||
|
||||
Stav:
|
||||
|
||||
- Vypracovaných asi 8 strán osnovy
|
||||
- Preštudované Transformery a Spacy
|
||||
- Vyskúšané trénovanie Pytorch
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte si prostredie Anaconda a v ňom spustite trénovanie.
|
||||
- Pokračovať v otvorených úlohách.
|
||||
|
||||
Stretnutie 24.9.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Naštudovaná knižnica Spacy - pozreté tutoriály
|
||||
- Vytvorený prístup na idoc
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Spustite trénovanie podľa skriptov na githube. Môžete použiť server idoc.
|
||||
- Skúste napísať osnovu BP práce.
|
||||
- Nájdite odborný článok na tému "Transformer neural network" a do BP napíšte čo ste sa dozvedeli.
|
||||
- Stručne napíšte čo je to knižnica Spacy a ako pracuje. Citujte aspoň jeden odborný článok.
|
||||
- Zistite ako by sa dal zlepšiť proces trénovania.
|
||||
|
||||
|
||||
Stretnutie 25.6.2021
|
||||
|
||||
- Vytvorený prístup do repozitára spacy-skmodel na GIThube
|
||||
|
@ -2,521 +2,13 @@
|
||||
title: Michal Stromko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2021,bp2022,dp2024]
|
||||
category: [vp2021]
|
||||
tag: [ir,cloud,demo,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2019
|
||||
|
||||
# Diplomová práca 2023/24
|
||||
|
||||
Sémantické vyhľadávanie v slovenskom texte
|
||||
|
||||
|
||||
Zadanie práce:
|
||||
|
||||
1. Vypracujte prehľad najnovších metód sémantického vyhľadávania pomocou neurónových sietí.
|
||||
2. Implementujte sémantické vyhľadávanie na slovenskej wikipédii pomocou existujúcich modelov.
|
||||
2. Vyberte dátovú množinu otázok a odpovedí a ručne anotujte výsledky sémantického vyhľadávania.
|
||||
3. Pripravte, vykonajte a opíšte experimenty na vyhodnotenie vyhľadávania pomocou Vami ručne vytvorenej množiny.
|
||||
4. Vyhodnoťte experimenty a identifikujte slabé miesta a navrhnite zlepšenia.
|
||||
|
||||
Ciele DP:
|
||||
|
||||
- Bolo by fajn, keby z DP bol vedecký článok.
|
||||
- Dotrénovať slovenský ST model.
|
||||
- Porovnať viacero metód na vyhľadávanie v slovenskom texte - BM25, TF IDF, WordEmbedding, SentenceTransformers, Alebo iné embeddingy.
|
||||
|
||||
|
||||
Stretnutie 6.3.
|
||||
|
||||
- Hotová anotácia 1134 otázok, ku každej je 20 odpovedí v 5 kategóriách.
|
||||
- Hotové vyhodnotenie modelu Slovakbert-mnlr, metriky recall, MRR, MAP, NDCG. Model je "podpriemerný".
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ]Dokončiť text DP, asi bude treba niektoré časti skrátiť.
|
||||
- [ ] Nájsť podobnú databázu. STSB je podobná, ale možno iná je podobnejšia.
|
||||
- [x] Spraviť nový dockerfile pre vyhľadávacie demo.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripraviť databázy do kompletnej podoby pre uverejnenie. Na jedno miesto dať všetky potrebné súbory, vrátane sk quad.
|
||||
- Databázu treba dať do podoby, aby bola kompatibilná s inými vyhodnocovacími skriptami.
|
||||
- Pripraviť vlastný vyhodnocovací skript. 1. vstup sú výsledky z vyhľadávania (predicted), druhé sú pravdivé výsledky (gold, actual). Výstupom sú hodnoty metrík v JSON.
|
||||
- * Napísať článok, zverejniť databázu *. Zvážiť spoločný článok s Kristiánom S.
|
||||
|
||||
|
||||
Stretnutie 16.2.
|
||||
|
||||
Stav:
|
||||
|
||||
- Dokončená teoretická časť DP.
|
||||
- Dokončená aplikácia "Vyhľadávanie na slovenskej wikipédii". Treba ešte dorobiť Dockerfile.
|
||||
- Začatá práca na kapitole - Tvorba korpusu pre vyhodnotenie sémantického vyhľadávania.
|
||||
- Treba urobiť ešte vyhodnotenie na modeli Slovakbert-mnlr. Porovnanie s bm25 baseline, aj hybrid.
|
||||
|
||||
|
||||
# Diplomový projekt 2
|
||||
|
||||
Stretnutie 30.11.20
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozrobený text
|
||||
- Anotovaných cca 1000 dokumentov
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Skúsiť experimenty
|
||||
- Pokračovať v anotáciách
|
||||
- Pokračovať v písaní textu.
|
||||
|
||||
|
||||
Stretnutie 9.11. 2023
|
||||
|
||||
Stav - urobené úlohy:
|
||||
- Je anotovaných cca 240 otázok, ku každej cca 20 dokumentov
|
||||
- [x] Pridať kódy na Git
|
||||
- [x] Napísať návod pre anotovanie
|
||||
- [x] Spaviť jednu stránku pre vypísanie počtu už anotovaných otázok z danej sady
|
||||
- [x] Pridať do indexu search, každému kontextu ID
|
||||
- [x] Pri vyhľadávaní sprrávnych odpovedí uložiť uložiť tak, aby bol súbor odpovede, ktorý bude mať parametere id_odpovede a k nemu priradený text odpovede
|
||||
- [x] Rozdelenie anotačného datasetu na sady (anotačné sady je ich 8)
|
||||
- [x] Zamiešanie správnych odpovedí okrem odpovede zo skquad tá je na index = 0 vždy
|
||||
- [x] Prerobiť anotačnú aplikáciu tak, aby mala po anotovaní štruktúru id správnej odpovede a kategóriu.
|
||||
- [x] Pri anotovaní budem ťahať z id odpovede presný text z toho datasetu
|
||||
- [x] Anotovacie kategórie: sú na gite skwiki
|
||||
- [x] Zapísať nové veci a poznámky do Mira
|
||||
- [x] Zmeniť v Mire štruktúru anotačného aj finálneho datasetu
|
||||
- [x] Opovedí môže byť rôzne množstvo nie iba po jednej odpove
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v anotácia prvých a druhých 1000 otázok
|
||||
- Pripraviť experimenty pre vyhodnotenie presnosti s novými dátami
|
||||
- Pokračovať v písaní.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zvážiť indexovať kratšie kontexty. Nevýhody: vznikne neporiadok. Výhody: Môže sa urýchliť práca anotátorov.
|
||||
- Zvážiť nasadenie, úpravu django appky a anotovať s náhodnými študentami.
|
||||
|
||||
|
||||
Stretnutie 2.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Prvá verzia anotačnej aplikácie v Streamlit
|
||||
- Pripravené dáta na anotovanie.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Prideliť ID pre kontexty a pridať ich do indexu.
|
||||
- Upraviť rozhranie. Defaultná položka je 0 - "nevidel som - ignoroval som". Premenovať ostatné kategórie na "Nevidel som", "Neviem","Relevantné", "Slabo relevantné", "Nerelevantné". Kontext zo SQUAD bude 1, neviditeľný pre antátorov.
|
||||
- Premiešať 20 najlepších odpovedí.
|
||||
- Pracujte na texte DP - robte si poznámky z článkov o metrikách vyhodnotenia.
|
||||
|
||||
|
||||
Stretnutie 26.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobený preskum dostupných databáz na vyhodnotenie IR.
|
||||
- Prípravený plán na tvorbu databázy. Zoberieme otázky zo SK QUAD a ku nim vyhľadáme 20 najlepších paragrafov z celej wikipédie 2023. Kategória 1 budú kontexty zo SKQUAD. Kategória 2 budú iné správne kontexty. Kategória 3 budú čiastočne správne. Kategória 4 budú nesprávne kontexty. Na vyhľadávanie použijeme aktuálny demo systém.
|
||||
Zatiaľ sa nebude robiť kros validácia.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte anotačné prostredie na báze Streamlit. Otázky berte podľa poradia v poslednej verzii SKQUAD databázy. Anotujte čo najviac otázok. Ku každej otázke bude 20 dokumentov.
|
||||
- Urobte prehľad článkov, ktoré anotujú databázu podobným spôsobom.
|
||||
- Anotovať aj "nezodpovedateľné" otázky. Zodpovedajúci "nesprávny" kontext so SKQUAD bude kategória 5.
|
||||
- Kontexty zo SQUADU by nemali byť v indexe. Doplníme ich neskôr. Bude potrebné ich identifikovať vo nájdených kontextoch, lebo sa môžu mierne líšiť.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zvážiť strojový preklad vybranej databázy a ich porovnanie.
|
||||
- Čo urobiť s kontextami zo SKQUAD vo Wiki2023 - vyznačiť?
|
||||
|
||||
|
||||
Stretnutie 5.10.2023
|
||||
|
||||
Nápad:
|
||||
|
||||
- Vytvoriť novú databázu pre vyhodnotenie získavania informácií v slovenskom jazyku.
|
||||
- Predošlá práca je https://nlp.kemt.fei.tuke.sk/language/categorizednews
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Definovať úlohu pre ktorú chceme vytvoriť overenie. Ako by mala vyzerať "otázka"? Ako by mala vyzerať "odpoveď"? Čo znamená dobrá odpoveď?
|
||||
- Zostaviť prehľad existujúcich databáz pre vyhodnotenie vyhľadávania. Napíšte si poznámky.
|
||||
- Vyberte vhodnú databázu na "klonovanie".
|
||||
- Zvážiť vytvorenie strojovo preloženej databázy na porovnanie.
|
||||
- Vybrať vhodnú metódu anotácie dát. K tejto metóde implementovať anotačné nástroje. Je možnosť použiť "vyhľadávacie demo na wikipédiu".
|
||||
|
||||
Stretnutie 28.9.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Naindexovaná nová verzia Wikipédie (14.8.2023). Sentence Transformers a BM25.
|
||||
- Otázky sú v angličtine aj v slovenčine.
|
||||
- Zistili sme, že otázky v SK QUAD sú veľmi jednoduché.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dajte skripty na parsovanie Wiki na GIT.
|
||||
- Vytvorte a vyhoddnoťte kros linguálny QA systém. Otázky v slovenčine by fungovali aj pre anglickú databázu.
|
||||
- Nájdite vedecké články publikované na túto tému. Prečítajte si ich a urobte si poznámky. Aké databázy a aké spôsoby vyhodnotenia sa používajú? Systém sa skladá z dvoch modulov - information retrieval a question answering. Každý sa vyhodnocuje inak. Vyhľadávajte "cross lingual information retrieval", "cross lingual question answering". Môže sa použiť ako esej AKT.
|
||||
- Skúste vytvoriť systém na "kros linguálne" indexovanie na "information retrieval". Je potrebné zistiť, aké modely a metódy sa na to používajú. MPnet alebo LABSE?
|
||||
|
||||
|
||||
Nápad:
|
||||
|
||||
- Vytvoriť alebo vybrať zložitejšie otázky a vyhodnotiť ich.
|
||||
|
||||
|
||||
# Diplomovy projekt 1
|
||||
|
||||
|
||||
Nápady na semester (spolu s K. Sopkovicom)
|
||||
|
||||
- Chceme rozbehat demo vyhľadávanie. Existuje streamlit verzia.
|
||||
- Chceme natrénovať a vyhodbnotiť model pre sémantické vyhľadávanie. Existuje prvá verzia sentence transformera (Cross Encoder, Dual Encoder natrénovaná na SK QUAD. Porovnať s STS SlovakBERT.
|
||||
- Chceme využiť aj QA model - využiť ho v deme.
|
||||
- Chcemem vyhodnotiť výkonnosť celého systému - všetky komponenty naraz. Aké sú možné metriky.
|
||||
- Pripraviť slovenskú databázu STS a NLI.
|
||||
- Vypracovať prehľad metód na vyhodnotenie IR systémov a kompletných systémov QA.
|
||||
- Preskúmať možnosti zlepšenia - Sentence Transformer skripty pre doménovú adaptáciu a multilinguálne modely.
|
||||
- Vypracovať prehľad článkov, ktoré riešia kompletné sémantické vyhľadávanie.
|
||||
- Podrobne opísať proces fungovania a trénovanie sentence transformera. Princíp dual-encoder, cross-encoder.
|
||||
- Pripraviť multi-lingual experiment na vyhľadávanie, napr. Angličtina, Slovenčina, Nemčina.
|
||||
- Vyskúšať vyhľadávanie v inej doméne (noviny, mestské dokumenty).
|
||||
|
||||
|
||||
|
||||
Stretnutie 26.6.
|
||||
|
||||
Stav:
|
||||
|
||||
- Demo funguje, je odladene aj nasadene
|
||||
- Praca naa pisomenj casti pokracuje
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripraviť vyhľadávanie čislo anglické, čislo slovenské a slovensko anglické multilinguálne.
|
||||
- Vyčísliť p-r-f1 celého vyhľadávania pre tieto tri prípady to tak, že jeden dokument (jedna jednotka) je jeden odsek (paragraf). Teda indexujete po paragrafoch.
|
||||
- Cieľ je aby bola diplomovka publikovateľná.
|
||||
- Pokračovať v písaní. Text by mal byť podkladom na prezentované experimenty.
|
||||
Mal by vysvetľovať základné pojmy. Pozrite si články na tému "information retrieval in wikipedia".
|
||||
|
||||
Stretnutie 27.3.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Jednoduché demo stremalit fuguje - vektorové vyhľadávanie pomocou transformers utils.semantic_search.
|
||||
- Cieľ: ku každému paragrafu vypočítať embedding pomocou mnlr. Poznačiť si dokument id. V prvom kroku ku otázke vyhľadať paragrafy. V druhom kroku ku otázke vyhľadať odpovede v paragrafoch. V treťom kroku zobraziť odpoveď na otázku aj najrelevantnejšie dokumenty.
|
||||
- Pokračovať v písomnej časti.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- util_semanticsearch vymentiť za qdrant alebo faiss alebo iné.
|
||||
- Určiť prah, na základe ktorého sa zistí, že odpoveď nie je v databáze.
|
||||
- Neskôr dorobiť "fallback" na "fuzzy" vyhľadávanie relevatných dokumentov.
|
||||
|
||||
|
||||
Stretnutie 20.2.2023
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Spravte QA demo pomocou streamlit. Najprv vytvorte faiss index, do pamäte nahrajte všetky paragrafy.
|
||||
- [ ] Dotaz transformuje na vektor. Nájdite 5 najlepších odsekov. Vykonajte QA na všety odseky. Zobrazte odseky. Zobrazte najlepšiu odpoveď a názov dokumentu kde sa nachádza.
|
||||
- [ ] Modely sa nachádzajú na HF TUKE-DeutscheTelekom.
|
||||
|
||||
Zásobník:
|
||||
|
||||
- Na uloženie odsekov a vektorov vyberte a použite vhodnú databázu (faiss, sqlite, qdrtant, jina ....).
|
||||
- Implementujte stránkovanie (ak bude potrebné), zlepšite výzor.
|
||||
|
||||
|
||||
|
||||
Stretnutie 17.2.2023
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zoberte existujúci model bi-encoder. Indexujte všetky odseky do vektorovej databázy FAISS.
|
||||
- Upravte streamlit demo na QA systém. Skript sa nachádza v slovak-retrieval/qademo. Skript bude vyhľadávať k najlepších dokumentov vektorovým vyhľadávaním.
|
||||
- Potom v najlepších dokumentoch vykonajte QA vyhľadávanie.
|
||||
- Zobrazte výsledky používateľovi.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte experimenty, kde prezentujeme komponenty, porovnáme rôzne možnosti do podoby článku.
|
||||
|
||||
|
||||
|
||||
# Vedecky projekt 2022/23
|
||||
|
||||
|
||||
Súvisiace práce:
|
||||
|
||||
- Matej Kobyľan
|
||||
- Suchanič
|
||||
- Kristián Sopkovič
|
||||
|
||||
Ciele na semester:
|
||||
|
||||
- Zistiť ktorá knižnica je dobrá a ktorý model je dobrý na slovenské vyhľadávnaie vo wikipédii pre QA.
|
||||
- Možnosti pre knižnice sú: JinaDocArray, Elasticsearch-Opensearch, Faiss, Haystack
|
||||
- Možnosti pre modely sú: DPR, LABSE, LASER, Iný Sentence Transformer, WordEmbedding.
|
||||
- Vypracovat demonštračné vyhľadávanie v slovenskej wikipédii.
|
||||
- Vypracovat spravu o precitanych clankoch spolu s odkazmi, cca 4 strany
|
||||
- Vyslovit ciele diplomovej prace.
|
||||
|
||||
|
||||
Klucove slova:
|
||||
|
||||
- Jina, Rasa, Vektorova Databaza
|
||||
- Hierarchicke vztahy medzi dokumentami
|
||||
- Faiss, Elasticsearch-Opensearch, Fasttext
|
||||
- https://aclanthology.org/2020.emnlp-main.550/, Dense Passage Retrieval for Open-Domain Question Answering.
|
||||
- Urobit demo vyhladavanie v slovenskej wikipedii.
|
||||
- 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:
|
||||
|
||||
- Konvertovaný SCNC do JSON.
|
||||
- Práca s Jina-Elasticsearch pre uloženie embeddingov.
|
||||
- Prečítaný a spoznámkovaný článok "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation".
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Rozbehať skript SlovakRetrieval ktorý využíva FAISS. V skripte je už aj BM25, ostatné modely aj vyhodnotenie Recall na množine SK QUAD.
|
||||
- Vytvoriť slovenské vyhľadávanie pomocou WordEmbeding. Použiť slovenský Spacy Model.
|
||||
- Prečítať a spoznámkovať ďalšie články z https://github.com/UKPLab/sentence-transformers
|
||||
|
||||
|
||||
Zasobnik uloh:
|
||||
|
||||
- Dotrénovať sentence transformer na slovenský jazyk. Ako?
|
||||
|
||||
Stretnutie 14.10.2022
|
||||
|
||||
Ulohy:
|
||||
|
||||
- Precitat si clanok, napiste poznamky
|
||||
- Navrhnite na co by ste sa chceli sustredit.
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
- Naštudovaný článok Kharpukin Dense Passage Retrieval
|
||||
- Naštudované Jina-DocArray.
|
||||
- Je k dispozícci ES na školskom servri - aj tak je lepšie pracovať na vlastnej inštancii.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dodaný skript na indexovanie SCNC do ES. Upravte skript na Jina DocArray
|
||||
- Skúste zaindexovať slovenské dokumenty pomocou JinaDoc Array. Vyberte vhdoný existujúci model, napr. LABSE.
|
||||
- Skúste ich vyhľadávať.
|
||||
- Nájdite si článok o vyhľadávaní pomocou LABSE. Napíšte si z neho poznámky. Ako prebieha vyhľadávanie pomocou LABSE?
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- skúste zaindexovať slovenské dokumenty pomocou Elasticsearch.
|
||||
- Zistite ako funguje vektorové vyhľadávanie v ES.
|
||||
|
||||
|
||||
# Bakalárska práca 2022
|
||||
|
||||
|
||||
- [Repozitár](https://git.kemt.fei.tuke.sk/ms111of/bp2022)
|
||||
|
||||
Názov: Indexovanie slovenského textu pomocou Elasticsearch
|
||||
|
||||
1. Vypracujte prehľad metód pre získavanie informácií.
|
||||
2. Vytvorte vyhľadávací index dokumentov zo slovenského internetu.
|
||||
3. Vytvorte demonštračnú webovú aplikáciu pre vyhľadávanie na slovenskom internete.
|
||||
4. Navrhnite zlepšenia vyhľadávania.
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
4.3.2022
|
||||
|
||||
- Prebehlo viacero stretnutí
|
||||
- Spravená Flask aplikácia, funguje, doplnené stránkovanie, zobrazenie otázok samosttne aj s ohodnotením , zobrazenie článku. Vyhľadanie podľa ľubovoľnej otázky.
|
||||
- Urobený compose pre ES a Kibanu
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dorobiť Dockerfile pre web aplikáciu.
|
||||
- Pracovať na texte práce.
|
||||
|
||||
|
||||
Stretnutie 18.2.2022
|
||||
|
||||
- Boli viaceré stretnutia
|
||||
- Aplikácia funguje
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Doplniť stránkovanie, vyhľadanie vo voľnej otázke, zobrazenie článku.
|
||||
- Pracovač na texte.
|
||||
|
||||
|
||||
Stretnutie 7.1.2022
|
||||
|
||||
- Vytvorená Flask aplikácia a Dockerfile
|
||||
- Urobené jednoduché vyhodnotenie pomocou počtu výsledkov.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Urobte konfiguráciu url Elasticsearch pomocou premennej prostredia alebo argumentu príkazového riadka do Dockerfile.
|
||||
- Môžete dať všetko do docker-compose.
|
||||
- Urobte vyhodnotenie vyhľadávania pomocou Precision-recalll. Pozrite si DP Ján Holp. Zaindexujete testovaciu množinu. V testeovacej množine sú vzorové otázky a vzorové vyýsledky. Zoberiete vzorovú otázu a ku nej vyhľadáte výsledky. Porovnáte Vašu množinu a vzorovú množinu. zistíte veľkosť ich prieniku. Podľa veľkosti vzorovej množiny a výsledkovej množiny vypožítate precision-recall.
|
||||
- Dorobte prezentáciu
|
||||
- Do práce pridajte opis toho ako funguje Flask aplikácia a ako komunikuje s Elasticsearch.
|
||||
|
||||
|
||||
|
||||
Stretnutie 3.12.2021
|
||||
|
||||
- Podarilo sa zaindexovať dokument do ES pomocou Python skriptu
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zaindexujte viac dát
|
||||
- Vytvorte webové rozhranie pre vyhľadávanie. Flaśk aplikácia.
|
||||
|
||||
|
||||
Stretnutie 26.11.2021
|
||||
|
||||
- Vypracované skripty na vkladanie, ale zatiaľ nefungujú.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zoznámte sa s ES API
|
||||
- Prejdite tutoriál http://blog.adnansiddiqi.me/getting-started-with-elasticsearch-in-python/
|
||||
|
||||
|
||||
Stretnutie 12.11.2021
|
||||
|
||||
Pokračujú práce na písomnej časti, na praktickej zatiaľ nie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zlepšiť štruktúru práce.
|
||||
- Doplniť do textu odkazy na literatúru.
|
||||
|
||||
Ciele na semester:
|
||||
|
||||
- vedieť zaindexovať väčšie množstvo slovenských textov.
|
||||
- vytvoriť funkčné webové demo na vyhľadávanie v týchto textoch.
|
||||
|
||||
|
||||
Stretnutie 22.10.2021:
|
||||
|
||||
- Pokračovanie na otvrených úlohách - problémy s Essential Data Docker setup
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalovať ES a Kibana, upravte compose na https://alysivji.github.io/elasticsearch-kibana-with-docker-compose.html
|
||||
- Pozrieť si knihu https://nlp.stanford.edu/IR-book/ a urobiť z nej poznámky do teoretickej časti BP. Odvolávajte sa na túto knihu v texte.
|
||||
- Skúste cez Kibanu zaindexovať jeden text a vyhľadať niečo.
|
||||
- Preštudujte si ES Analyzer.
|
||||
|
||||
|
||||
|
||||
Stretnutie 15.10.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalovaný ES na UVT virtuálke s dostatkom miesta.
|
||||
- Naštudovaný Docker.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
- Vyberte vhodnú klientskú knižnicu pre prácu s ES.
|
||||
- Pozrite podporu slovenčiny na ES od [Essential Data](https://github.com/essential-data/elasticsearch-sk).
|
||||
|
||||
|
||||
Stretnutie 1.10.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobený GIT, Overleaf aj virtuálny stroj na tuke cloud.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách.
|
||||
|
||||
|
||||
Stretnutie 24.9.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobené poznámku ku knihe "Learning to Rank".
|
||||
- Naštudované Cassandra.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Kódy dávajte na GIT do repozitára bp2022
|
||||
- Začnite pracovať na Flask Web aplikácii. Aplikácia by mala vedieť zadať dotaz a zobraziť výsledky vyhľadávania.
|
||||
- Vytvorte skript na indexovanie wikipédie do ES
|
||||
- Napíšte si osnovu bakalárskej práce a dopíšte do nej relevantné texty ktoré máte.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte si virtuálny stroj na cloud.tuke.sk
|
||||
- Web aplikácia by mala byť Dockerizovaná - vytvoríme Docker image.
|
||||
- Vytvorte si pracovné prostredie s ElasticSearch a docker-compose: nainštalujete Docker Swarm
|
||||
|
||||
## Vedecký projekt 2021
|
||||
|
||||
Návrh na zadanie bakalárskej práce:
|
||||
@ -563,6 +55,10 @@ Do budúcnosti:
|
||||
- Zaindexovať texty
|
||||
- Vytvoriť webové rozhranie pre vyhľadávací index.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 7.5.
|
||||
|
||||
Stav:
|
||||
|
@ -1,39 +0,0 @@
|
||||
# Evaluation Set for Slovak News Information Retrieval
|
||||
|
||||
Vyhodnocovací datset pre vyhľadávanie informácii
|
||||
|
||||
## Poznámky
|
||||
- článok ukazuje ako vytvoriť vyhodnocovací súbor (databázu) otázok a odpovedí v slovenčine pre rôzne typy úloh v NLP.
|
||||
- databáza je kompatibilná s datasetom Cranfield
|
||||
- táto databáza je zostavená z relevantých dokumentov pre vyhodnotenie vyhľadávania
|
||||
- v databáze sa nachádzajú tieto polia:
|
||||
- názov článku
|
||||
- meno autora
|
||||
- dátum publikovania článku
|
||||
- text článku
|
||||
- kategória článku (napr. politika, ekonomika)
|
||||
- databáza obsahuje 3980 novinových článkov rozdelených do 6tich kategórii: ekonomika a podnikanie, kultúra, šport, domáce správy, svetové správy a zdravotníctvo
|
||||
- v databáze môžeme nájsť aj 80 otázok, ktoré sa týkajú novynových článkov.
|
||||
- každej jednej otázke je priradený atribút, ktorí hovorí relevanciu danej otázky v intervale 1 - 4
|
||||
|
||||
**Vyhodnotenie vyhľadávania informácii**
|
||||
|
||||
- je to proces merania ako dobrý je daný systém, ktorý vyhľadáva informácie v danej databáze na základe preddefinovaných kritérii
|
||||
- pre vyhodnotenie potrebujeme relevantné dokumenty, v ktorých sa nachádza odpoveď na otázku
|
||||
- Vyhodnotenie vieme zapísať pomocou rôznych metrík ako:
|
||||
- Presnosť
|
||||
- Návratnosť
|
||||
- F miera
|
||||
|
||||
## Túto tému dať do DP má veľký význam aspoň podkapitola
|
||||
**Lingvistické problémy Information Retreival v slovečine**
|
||||
|
||||
- aby sme mohli implementovať systém IR pre slovenský jazyk, alebo podobný jazyk ako je slovenčina je potrebné zohľadniť nasledujúce špecifické problémy:
|
||||
- streaming or lemmatization
|
||||
- viacslovnsé výrazy a pomenované entity
|
||||
- synonymá a hononymá
|
||||
|
||||
- jedným hlavným problémom, ktorý je špecifický pre slovenský jazyk je identifikovanie slov v texte
|
||||
- prvý krok je vykonanie morfologickej analýzi na identifikáciu pôvodnej základnej morfologickej formy
|
||||
- pre slovenský jazyk v tomto článku bola navrhnutá morfologická forma s využitím skrytého Markovho modelu.
|
||||
- skoro rovanký prístup môžeme zvoliť aj pre indetifikáciu koreňa slova s použitím systému, ktorí je založený na. pravidlách (Hunspell)
|
@ -1,22 +0,0 @@
|
||||
# Prehľad existujúcich databáz pre vyhodnotenie vyhľadávania
|
||||
|
||||
- Začiatok IR sa datuje až do 60. rokov 20-teho storočia -> prvé Granfields experiments
|
||||
- V roku 1968 Gerrard Salton vynašiel model vektorového priestoru, definoval, že IR je oblasť týkajúca sa genrovania, ukladania, klasifikácie, analýzy a vyhľadávania
|
||||
|
||||
![Research Timeline](images/research_timeline.png)
|
||||
|
||||
Najrošírenejšie databázy
|
||||
- TREC (Text Retrieval Conference) vzniklo tu viacero datasetov pre sémantické vyhľadávanie
|
||||
- Cranfield Collection
|
||||
- ClueWeb Datasets, existujú viacré verzie.
|
||||
- ClueWeb09 - 1 040 809 705 webových stránok v 10 tich jazykoch
|
||||
- ClueWeb12 - 733 019 372 webových stránok v angličtine
|
||||
- ClueWeb22 - projekt Lemur 10 miliárd webových stránok
|
||||
- MS MARCO - dataset zameraný na hĺbkové učenie, prvý súbor obsahoval 100 tisíc skutočných otázok BING a odpovede generované ľuďmi
|
||||
- CORD-19 - je to databáza súboru údajov, ktorá bola vytvorená výskumnými skupinami na tému COVID 19. Jej zdroje tvoria viac ako jeden milión článkov
|
||||
- SQUAD dataset
|
||||
- je tvorený dátami z Wikipédie, kde existuje na každú otázku opoveď vo verzii jeden.
|
||||
- vo verzii 2 sa nachádza 100 000 otázok zo SQuAD1.1 s viac ako 50 000 nezodpovedateľnými otázkami, ale sú napísané tak, aby to vyzeralo, že na danú otázku odpoveď existuje
|
||||
- bol vytvorený v anglickom jazyku a existujú aj jeho iné varianty v iných jazykoch
|
||||
- je vytorený aj multijazyčný squad má názov xquad skladá sa z jazykov Angličtina, Nemčina, Španielčina, Turečtina a ďalšie
|
||||
- ako posledný je squad v slovenčine squad-sk
|
@ -1,23 +0,0 @@
|
||||
# Slovak Categorized News Corpus
|
||||
|
||||
## Poznámky
|
||||
- článok opisuje vytvorenie a používanie slovenského kategorizovaného korpusu z novynových článkov pre rôzne v NLP
|
||||
- dáta boli zbierané pomocou bota a boli použité funkcie, ktoré realizovali detekciu hraníc slov a viet, rozpoznávanie entít, morfologické zakončenia, lemantizáciu do hovorenej formy.
|
||||
- Výsledný korpus obsahuje 1,5 milióna tokenov a 102 tisíc viet, rozdelených do šiestich kategórii.
|
||||
- Kategórie korpusu:
|
||||
- politika
|
||||
- šport
|
||||
- kultúra
|
||||
- ekonomika
|
||||
- zdravotníctvo
|
||||
- svet
|
||||
|
||||
- Korpus môže byť použitý na automatické extrahovanie entít, hodnotenie jazykových modelov, kategorizáciu dokumentov, lingvistický výskum
|
||||
|
||||
### Lemantizácia
|
||||
- je proces v NLP, ktoré zahŕňa premenovanie slov na ich základnú formu (koreň slova), tento proces je užitočný pri analýze textu, pretože umožňuje porovnávať a analyzovať rôzne formy toho istého slova ako jednu entitu.
|
||||
- pre tento článok môžeme povedať, žš každý token (slovo, alebo časť slova) v korpuse má priradenú najpravdepodobnejšiu lemu
|
||||
|
||||
# Transcription to a Spoken Form
|
||||
- je sémantické zobrazenie hovoreného jazyka vo forme písaného textu. Transkripcia by nemala byť zamieňaná s prekladom, ktorý znamená preloženie významu textu z jedného jazyka do druhého jazyka
|
||||
- transkripcia sa často používa pri prepisovaní audio a video súborov
|
Before Width: | Height: | Size: 113 KiB |
@ -1,149 +0,0 @@
|
||||
<h1 align="center">
|
||||
<b>TECHNICKÁ UNIVERZITA V KOŠICIACH <br>
|
||||
FAKULTA ELEKTRONIKY A INFORMATIKY</b>
|
||||
</h1>
|
||||
<br> <br> <br> <br>
|
||||
|
||||
<p align="center", style="font-size:35px; line-height:normal;" > <b>Hodnotenie vyhľadávania modelu </b></p>
|
||||
<br> <br> <br> <br> <br> <br> <br>
|
||||
|
||||
<b>
|
||||
<p style="text-align:left;">
|
||||
2022
|
||||
<span style="float:right;">
|
||||
Michal Stromko
|
||||
</span>
|
||||
</p>
|
||||
</b>
|
||||
|
||||
<br> <br>
|
||||
|
||||
# Úvod
|
||||
|
||||
Cieľom tejto práce je zoznámenie s možnosťami hodnotenia modelov. Natrénovaný model dokážeme vyhodnotiť viacerými technickými metódami 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 napríklad 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 najbližš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.
|
||||
|
||||
Vyhodnotenie vyhľadávania je v modeli dôležité z hľadiska budúceho použitia modelu do produkcie. Pokiaľ sa do produkcie dostane model, ktorý bude mať nízke ohodnotenie bude sa stávať, že vyhľadávanie bude nepresné čo znamená, že výsledky nebudú relevantné k tomu čo sme vyhľadávali.
|
||||
|
||||
## Zameranie práce
|
||||
|
||||
V tejto práci som realizoval viaceré experimenty, v ktorých som hodnotil vyhľadávanie pomocou modelov, do ktorých bol zaembedovaný text. Každý text obsahuje ďalšie atribúty, ako otázky a odpovede. Otázky sa následne pošlú na vyhľadanie a čaká sa na výsledok vyhľadávania. Výsledky, ktoré prídu sa následne porovnajú s očakávanými odpoveďami. Najdôležitejšie je nájsť v jednej odpovedi čo najviac správnych výsledkov. Následne je potrebné spočítať počet správnych výsledkov a použiť správne vypočítanú presnosť a návratnosť vyhľadávania. V tomto prípade presnosť a návratnosť počítame pre hodnotenie všetkých otázok. Čím sú hodnoty vyššie, tak môžeme konštatovať, že vyhľadávanie pomocou danej metódy je presné a dokážeme ho používať v produkcii.
|
||||
|
||||
Dôležtým atribútom, s ktorým sme vykonávali testovanie bolo menenie parametra **top_k**. Tento parameter znamená počet najlepších odpovedí na výstupe vyhľadávania. Čím je tento paramter väčší, tým môžeme očakávať, že sa v ňom bude nachádzať väčšie množstvo správnych odpovedí. V konečnom dôledku to vôbec nemusí byť pravda, pretože ak máme kvalitne natrénovaný model a dobre zaembedované dokumenty dokážeme mať správne výsledky na prvých miestach čo nám ukazuje, že parameter *top_k* može mať menšiu hodnotu.
|
||||
|
||||
Najčastejšie je táto hodnota nastavovaná na top 10 najlepších výsledkov vyhľadávania. Pri experimentoch som túto hodnotu nastavoval na hodnoty **5, 10, 15, 20, 30**. Každá metóda, ktorá bola pouťitá na vyhľadávanie dosiahla iné výsledky.
|
||||
|
||||
### Použité metódy vyhľadávania v experimentoch
|
||||
|
||||
V tejto práci som použil na vyhľadávanie 4 rôzne metódy, ktorým som postupne nastavoval parameter **top_k** od 5 až 30.
|
||||
Použil som vyhľadávanie pomocou:
|
||||
- Faiss
|
||||
- BM25
|
||||
- LaBSE
|
||||
- sts-slovakbert-stsb
|
||||
|
||||
Každá jedna metóda pracuje s úplne iným modelom. Modely LaBSE a sts-slovakbert-stsb používali rovnakú knižnicu na vytvorenie vektorov aj vyhľadávanie.
|
||||
|
||||
#### Faiss
|
||||
|
||||
Faiss používal knižnicu spacy, do ktorej parameter model_name vstupoval model ktorý bol natrénovaný pre slovenské dáta na mojej katedre. Následne boli dáta indexované pomocou knižnice faiss, ktorá má funkciu indexovania dát. Vyhľadávanie dát bolo tak isto realizované pomocou funkcie *faiss.search()*, ktorej parametre sú otázka a počet očakávaných dokumentov, inak povedané odpovedí.
|
||||
|
||||
#### BM25
|
||||
|
||||
BM25 je jeden z najstarších možností vyhľadávania v neuónových sieťach, napriek tomu je stále stabilný a relatívne presní aj v dnešnej dobe.
|
||||
|
||||
Pri vyhľadávaní informácii v BM25, označený Okapi je navrhnutý tak, že vyhľadáva na základe najlepšej zhody. Vyhľadávanie funguje na nájdení najlepších dokumentov, ktoré sú zoradené podľa relevantnosti k vyhľadanej požiadavke. Je založený na zoradení na pravdepodobnostnom rámci. BM 25 bol v priebehu rokov modifikovaný a vylepšovaný.
|
||||
|
||||
Pre vypočítanie skóra používa Inverse documents frequency (IDF). Vypočíta sa ako N a značí celkový počet dokumentov. Pri výpočte sa používa maximálna hodnota zo všetkých indexov, ktorá pochádza z najväčšieho indexu disku. Pre lepšie pochopenie IDF vypočítava uzol obsahu a index, treba však rátať s tým, že sa môžu vyskytovať mierne odchylky.
|
||||
|
||||
Jedným z dôležitých atribútov je či sa konenčný výsledný dokument vyskytne viackrát v relevantých odpovediach. Čím viackrát sa opakuje jeden dokument, tým je väčšia pravdepodobnoť, že bude označený za jeden z najlepších výsledkov vyhľadávania.
|
||||
|
||||
|
||||
Evaluovanie pomocou modelu LaBSE a sts-slovakbert-stsb som realizoval použítím knižnice **Sentence tranformers**. Práca s touto knižnicou je veľmi jednoduchá, pretože v dokumentácii, ktorú obsahuje, vieme veľmi jednoducho zaembedovať dokumenty a zároveň aj vyhľadávať.
|
||||
|
||||
Ako môžete vidieť v práci som použil model LaBSE aj keď som mal k dispozícii priamo natrénovaný model pre slovenčinu. Bolo to z dôvodu zistiť ako sa bude správať model LaBSE oproti modelu, ktorý bol natrénovaný pre Sloveský jazyk. Model LaBSE nebol vybratý len tak náhodou. Je to špecifický model, ktorý bol natrénovaný tak, aby podporoval vyhľadávanie, klasifikáciu textu a ďalšie aplikácie vo viacerých jazykoch. Vo všeobecnosti je označovaný ako multilangual embedding model. Je to model, ktorý je prispôsobený rôznym jazykom nielen pri indexovaní, ale aj vyľadávaní. Nájväčšou výhodou modelu je, že môžeme mať dokument, v ktorom sa nachádzajú vety vo vicacerých jazykoch. Pre niektoré modeli je to veľké obmedzenie, s ktorým si neporadia, avšak LaBSE je stavaný na takéto situácie, a tak si ľahko poradí a zaindexuje tento dokument.
|
||||
|
||||
#### slovakbert-sts-stsb
|
||||
Môžeme ho označiť ako sentence similarity model založený na SlovakBERT. Model bol dotrénovaný na STSbenchmark a preložený do slovenčniny pomocou M2M100. Model používa univerzálny sentence enkóder pre slovenské vety. Autory článku, ktorý trénovali SlovakBERT uvádzajú, že model je založený na large-scale transformers-based a používa 19,35 GB dát získaných z crawlovania webov so slovenským textom. Autori nakoniec vyhodnotili a prirovnali tento model ku ostatným veľkým jayzykovým modelom, ako napríklad XLM-R-Large.
|
||||
|
||||
Je to síce prvý model, ktorý dosahuje najlepšie výsledky oproti ostatným jazykovým modelom pre slovenčinu, ale treba si všimnúť, že stále tu existujú viacjazyčné jazykové modely, ktoré sú stále konkurencieschopné.
|
||||
|
||||
Hodnotenie modelu prebiehalo hlavne pomocou metriky F1. F1 bola priemerovaná zo súborov údajov. Autori modelu uvádzajú, že pri použití nízkych hodnôť hyperparametrov sa váhy moc nemenia, čo znamená lepšie výsledky hodnotenia.
|
||||
|
||||
Nevýhodou tohto jazykového modelu je nedostatok hodnotiacich benchmarkov. Ďalej vznikal problém s korpusom textov, tento model bol natrénovaný na dátach, ktoré boli vytvorené strojovým prekladom. Práve kvôli tomu vznikali chyby ako *noisy datasets (v prípade analýzy sentimentu)*.
|
||||
|
||||
|
||||
|
||||
### Výsledky experimentov
|
||||
|
||||
Spolu bolo realizovananých 20 experimentov vyhnotenia vyhľadávania na trénovacom datasete skquad. Každý jeden experiment pozostával z indexovania datasetu a následním vyhľadávaním na vopred vytvorených otázkach. Metódy medzi sebou mali spoločný počet experimentov a pri každej metóde boli vypočítané metriky Precission a Recall.Zároveň na každej metóde bolo vykonaných 5 experimentov s rôznymi parametrami top_k. Z týchto experimentov vznikla jedna veľká, nie moc prehľadná tabuľka, ktorú môžete vidieť nižšie.
|
||||
|
||||
| Evaluation mode | 5 Precision | 5 Recall | 10 Precision | 10 Recall | 15 Precision | 15 Recall | 20 Precision | 20 Recall | 30 Precision | 30 Recall |
|
||||
|----------------- |------------- |---------- |-------------- |----------- |-------------- |----------- |-------------- |----------- |-------------- |----------- |
|
||||
| FAISS | 0.0015329215534271926 | 0.007664607767135963 | 0.0012403410938007953 | 0.012403410938007953 | 0.0010902998324539249 | 0.016354497486808874 | 0.001007777138713146 | 0.020155542774262923 | 0.0008869105670726116 | 0.02660731701217835 |
|
||||
| BM 25 | 0.113256145439996 | 0.56628072719998 | 0.06176698592112831 | 0.6176698592112831 | 0.043105187259829786 | 0.6465778088974468 | 0.033317912425917126 | 0.6663582485183426 | 0.023139696749939567 | 0.694190902498187 |
|
||||
| LABSE | 0.09462602215609292 | 0.47313011078046463 | 0.05531896271474655 | 0.5531896271474656 | 0.039858461076796116 | 0.5978769161519418 | 0.031433644252169345 | 0.6286728850433869 | 0.022339059908141407 | 0.6701717972442421 |
|
||||
|slovakbert-sts-stsb | 0.08082472679986996 | 0.4041236339993498 | 0.04856210457875916 | 0.4856210457875916 | 0.03553810631256929 | 0.5330715946885394 | 0.028241516417014677 | 0.5648303283402936 | 0.020285578534096876 | 0.6085673560229063 |
|
||||
|
||||
V poslednom kroku je potrebné vyhodnotiť experimenty. Z takejto neprehľadnej tabuľky je to zložité, preto som zvolil prístup vytvorenia grafov, na ktorých presne vidno, ktorá metóda je najlepšia. Boli vytvorené grafy, ktoré ukazujú výskedky presnosti a návratnosti na rovnakom počte vrátaných odpovedí medzi métódami. Posledné 4 grafy znázorňujú každú metódu samostatne s narastajúcim počtom odpovedí.
|
||||
|
||||
#### Správanie metód pri rovnkakom počte najlepších odpovedí
|
||||
- Top 5 odpovedí
|
||||
|
||||
V tomto grafe môžete vidieť, že pri vyhľadávaní top 5 odpovedí najlepšiu presnosť a návratnosť mala metóda BM25, ktorá dosiahla najlepšie výsledky. Najhoršie výsledky boli dosiahnuté metódou Faiss. Metóda sentence transformers s použitím LaBSE dosiahla druhý najlepší výsledok.
|
||||
|
||||
![Top 5 rovnakých odpovedí](img/k_5.png)
|
||||
|
||||
- Top 10 odpovedí
|
||||
|
||||
Pri 10 najlepších odpovediach BM25 dosiahlo lepší výsledok Recall, ako pri top 5 výsledkoch, ale zároveň Precision sa zhoršila. Faiss má naďalej najhoršie výsledky. Sentence tranformers s použitím slovenského modelu slovakbert-sts-stsb sa zlepšila oproti predchádzajúcemu grafu.
|
||||
|
||||
![Top 10 rovnakých odpovedí](img/k_10.png)
|
||||
|
||||
- Top 15 odpovedí
|
||||
|
||||
Na tomoto grafe ďalej môžeme sledovať zlepšovanie Recall pre BM25, ale treba si však všimnúť, že Precission klesá. Dôležtým mýlnikom pri tomto grafe je porovnanie modelu LaBSE s slovakbert-sts-stsb, pretože slovakbert sa začína správať pri najlepších 15 odpovediach ako model LaBSE, to nám môže aj naznačit, že s rastúcim počtom odpovedí pre model LaBSE neprichádza viac správnych dokumentov, ako by sa očakávalo. Najväčšie priblíženie modelu slovakbert k modelu LaBSE môžete vidieť na metrike Precision.
|
||||
|
||||
![Top 15 rovnakých odpovedí](img/k_15.png)
|
||||
|
||||
- Top 20 odpovedí
|
||||
|
||||
Na tomto grafe už môžeme vidieť, že model LaBSE a slovakbert majú skoro rovnaké hodnoty Precision a Recall. To nám môže nazanačovať, že použitie modelu slovakbert bude silnejšie pri vracaní väčšieho počtu výsledkov.
|
||||
|
||||
![Top 20 rovnakých odpovedí](img/k_20.png)
|
||||
|
||||
- Top 30 odpovedí
|
||||
|
||||
Posledný graf v tejto kategórii nám ukazuje, že aj pri 30 odpovediach má metóda BM25 najlepší Recall, ale treba sa pozrieť na model slovakbert, ktorý má pri top 30 odpovedach minimálnu odchýlku od modelu LaBSE.
|
||||
|
||||
![Top 30 rovnakých odpovedí](img/k_30.png)
|
||||
|
||||
|
||||
#### Správanie metódy s narastajúcim počtom najlepších odpovedí
|
||||
|
||||
V tejto časti práce skúsim bližšie zobraziť dva grafy, na ktorých môžete vidieť správanie metódy hodnotenia vyhľadávania s narastajúcim počtom výsledkov z vyhľadávania. Nižšie sa nachádzajú iba 2 metódy, ktoré podľa mňa v experimentoch dosiahli najlepšie výsledky.
|
||||
|
||||
- Metódou BM25
|
||||
|
||||
Metóda BM25 počas všetkých experimentov vykazovala najlepšie výsledky, nie len Precission, ale aj Recall. Na grafe môžete vidieť, že s narastajúcim počtom výsledkov Precission klesal, ale zároveň Recall stúpal. Pri tejto metóde vidím môžnosti experimentovania, napríklad pri 50 alebo 100 odpovediach z vyhľadávania
|
||||
|
||||
![BM25](img/bm25.png)
|
||||
|
||||
- Metódou sentence transformers s použitím slovakbert-sts-stsb
|
||||
|
||||
Model slovakbert, ktorý bol zverejnený na konci minulého roka, dosiahol pri poskytnutom datasete perfektné výsledky. Dovoľujem si to tvrdiť z toho dôvodu, že nebol trénovaný na datasete, ktorým bol hodnotený. V budúnosti by mohlo byť zaujímavé dotrénovať tento model pomocou použitého datasetu a následne takýto model ohodnotiť. Predpokladám, že tento model by mohol lepšie vyhľadávať aj pri menšom množstve najlepších výsledkov z vyhľadávania.
|
||||
|
||||
![slovakbert](img/slovakbert_sts.png)
|
||||
|
||||
|
||||
|
||||
### Záver vyhodnotenia experimentov
|
||||
|
||||
V tejto práci sa mi podarilo úspešne vykonať 20 experimentov, ktoré ukázali, že dokážeme efektívne využiť natrénovaný slovenský model na iných dátach. Zároveň môžeme vidieť aj efektívne vyhľadávanie metódou BM25, ktorá dosahovala nadpriemerné výsledky.
|
||||
|
||||
Pokračovanie v práci by som mohol realizovať použitím dvoch techník vyhľadávania. Ideálnym prípadom môže byť použitie oboch metód. Je dôležité, aby metódy išli v správnom poradí. Po prvom vyhľadávan by bolo ideálne použiť text similarity pre efektívne zoradenie výsledkov.
|
||||
|
@ -1,12 +0,0 @@
|
||||
# Dense Passage Retrieval for Open-Domain Question Answering
|
||||
## Clanok č.1
|
||||
|
||||
### Dense Passage Retriever (DPR)
|
||||
- výskum tejto práce je zameraný na zlepšenie vyhľadávania v QA.
|
||||
- pre používanie DPR je dôležité používať správny Encoder, ktorý mapuje text na dimenzionálne vektory skutočnej hodnoty a vytvára index __M__, ktorý sa používa pre vyhľadávanie
|
||||
- pri behu DPR sa aplikuje iný Enkóder, ktorý mapuje vstupnú otázku na d-rozmerný vektor, a vyhľadáva podľa toho ktorý vektor je najbližšie k vektoru otázky. Podobnosť medzi otázkou a pasážou definujeme pomocou bodového súčinu ich vektorov.
|
||||
- doležitou súčasťou takéhoto vyhľadávania je správne vypočítanie kosínusovej vzdialenosti.
|
||||
- trénovanie Encodera sa vykonáva z dôvodu lepšieho vypočítania metrických údajov.
|
||||
- cieľ trénovania je vytvorenie dvoch vektorov, tak aby tieto dve relevantné dvojice otázok a odpovedí mali najmenšiu vzdialenosť medzi sebou.
|
||||
__Pozitívne a negatívne pasáže__
|
||||
- pri vyhľadávaní sa často stretávame s pozitívnymi výsledkami ktoré sú k dispozícii explicitne, zatiaľ čo negatívne výsledky je potrebné vybrať z veľkého súboru.
|
@ -1,8 +0,0 @@
|
||||
# Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation
|
||||
|
||||
## Abstrak
|
||||
- tento článok predstavuje vylepšenia vyhľadávania, na základe rozšírenia modelu, pomocou pridania nových viet do modelu.
|
||||
- tieto vety su podobne tym ktore sa uz nachadzali v modeli, a vypocitane vektory by mali byt umiestnene, tak aby boli blyzko pri predtym vypocitanom embedingu.
|
||||
- pri takomto trenovani pouzivame trenovanie viacjazycnych viet.
|
||||
- vyhodou takéhoto použitia je jednoduché rozšírenie existujúcich modelov s relatívne malým počtom vzoriek.
|
||||
- článok je zameraný na ukážku účinosti vyhľadávania pre viac ako 50 jazykov z rôznych rodín, v konečnom dôsledku to môže znamenať aj zahrnutie slovenského jazyka.
|
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.1 KiB |
@ -1,47 +0,0 @@
|
||||
### 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
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
|
||||
|
||||
Bol uvedený pre širokú verejnosť v roku 2021
|
@ -1,104 +0,0 @@
|
||||
---
|
||||
title: Patrik Pokrivčák
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2025]
|
||||
tag: [nlp, hate]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2019
|
||||
|
||||
# Diplomová práca
|
||||
|
||||
|
||||
Téma:
|
||||
|
||||
Rozpoznávanie nenávistnej reči pomocou veľkých jazykových modelov
|
||||
|
||||
Cieľe:
|
||||
|
||||
- Naučiť sa rozpoznávať nenávistnú reči HS pomocou LLM - lokálnych alebo komerčných.
|
||||
- Zlepšiť chopnosti LLM pre rozpoznávanie HS - dotrénovaním alebo promptingom.
|
||||
- Vytvoriť demo
|
||||
- Výsledky prezentovať na konferencii - alebo článku.
|
||||
|
||||
Nápad:
|
||||
|
||||
- Generovanie nenávistnej reči pre účely trénovania.
|
||||
- Rozpoznávanie HS pomocou embeding modelov, few shot alebo dotrénovanie.
|
||||
|
||||
Súvisiaca téma:
|
||||
|
||||
- [Python](/topics/python)
|
||||
- [Hate Speech](/topics/hatespeech)
|
||||
- [Tetiana Mahorian](/students/2022/tetiana_mohorian)
|
||||
|
||||
|
||||
Stretnutie 15.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Staré poznámky.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Navrhnite prompt na klasifikáciu nenávistnej reči a vyhodnotte, aký presný je model na množine https://huggingface.co/datasets/TUKE-KEMT/hate_speech_slovak. Vyskúšajte viac modelov. Vyskúšajte aj https://huggingface.co/slovak-nlp/mistral-sk-7b
|
||||
- Pokračujte v písaní DP. Použite odkazy na odborné články,
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Dotrénujte model na klasifikáciu nenávistnej reči.
|
||||
- Dotrénujte model na generovanie nenávistnej reči.
|
||||
- Vyskúšajte SentenceTransformer (me5) na klasifikáciu.
|
||||
|
||||
|
||||
|
||||
## Diplomový projekt 2024
|
||||
|
||||
Stretnutie 10.5.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Poznámky o neurónových sieťach a rozbehané HF transformers.
|
||||
- Práca s Kaggle.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách a štúdiu.
|
||||
- [ ] Zistite čo je to SentenceTransformer. Prejdite si tutoriál https://sbert.net/docs/usage/semantic_textual_similarity.html Ako model použite multilingual e5 base alebo slovakbert-mnlr.
|
||||
- Prečítajte si niekoľko vedeckých článkov o klasifikácii HS, poznačte si ich informácie a urobte si poznámky. Na vyhľadanie článkov použite google scholar.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšajte Ollama a niekoľko jazykových modelov (LLAMA3, mistral, ) pre few-shot rozpoznávanie HS.
|
||||
- Dotrénujte embedding model na HS detection
|
||||
- Pripravte dáta na vyhodnotenie few shot klasifikácie.
|
||||
|
||||
|
||||
Stretnutie 5.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Začiatok štúdia Python a LMM.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Pokračujte v štúdiu neurónových sietí a klasifikácie nenávsistnej reči podľa otvorených úloh. Píšte si poznámky.
|
||||
- [-] Zistite, ako pracuje model GPT. Zistite čo je to prompting. Navrhnite "prompt" pre ChatGPT ktorý by klasifikoval nenávistnú reč.
|
||||
- [x] Oboznámte sa s knižnicou HF transformers. Nainštalujte si ju. Prejdite si jeden alebo 2 tutoriály.
|
||||
- [ ] Zistite ako funguje "few shot" alebo "zero shot" learning s GPT modelom. Vyskúšajte si to z HF Transformers. napr. https://huggingface.co/blog/few-shot-learning-gpt-neo-and-inference-api
|
||||
|
||||
Stretnutie 15.2.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Nainštalujte si prostredie Anaconda. Naučiť sa lepšie programovať v jazyku Python.
|
||||
- [x] Prečítajte si Dive into Python 3.
|
||||
- [x] Priečítajte si Dive into Deep learning.
|
||||
- [x] Zistite si čo je to nenávistná reč a ako sa rozpoznáva pomocou neurónových sietí. Napíšte si o tom poznámky na dve strany.
|
||||
- [-] Zistite, aké existujú veľké jazykové modely a ako pracujú. Napíšte o tom poznámky na 2 strany.
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
title: Samuel Horáni
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2021,bp2022]
|
||||
category: [vp2021]
|
||||
tag: [chatbot,rasa,dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
@ -24,163 +24,6 @@ Nápady na balakársku prácu:
|
||||
- dá sa dorobiť aj rečové rozhranie.
|
||||
- dá sa to prepojiť aj na QA systém.
|
||||
|
||||
Výsledky:
|
||||
|
||||
- [Repozitár s webovou aplikáciou](https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website)
|
||||
- [Repozitár s chatbotom](https://git.kemt.fei.tuke.sk/sh662er/Rasa)
|
||||
|
||||
## Bakalársky projekt 2021
|
||||
|
||||
Ciele:
|
||||
|
||||
- Vypracovať draft B. práce.
|
||||
- Mať funkčné demo vo forme nasadenej webovej aplikácie.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
6.1.2022
|
||||
|
||||
- Chatbot vie "rezervovať" stôl - rozpoznať entitu s názvom stola.
|
||||
- Urobený Dockerfile pre Rasa bot
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dorobiť Dockerfile pre Flask App
|
||||
- Skúsiť urobiť docker-compose.yaml (Swarm Mode Docker)
|
||||
- Pre deployment je dobré zmeniť databázu na Postgres. Postgres sa robí "jednoducho" cez compose.
|
||||
- Upraviť konfiguráciu do podoby vhodnej na nasadenie. Nasadenie aplikácia bude mať inú konfiguráciu (napr. databázu) ako aplikácia vo vývoji.
|
||||
- Naučte robota hovoriť o aktuálnom jedálnom lístku.
|
||||
- čo mi ponúknete na obed?
|
||||
- Aké máte menu na pondelok?
|
||||
- čo obsahuje "čiernohorský rezeň"?
|
||||
- Naučte robota hiečo o reštaurácii.
|
||||
- Ako sa tam dostanem?
|
||||
- Naučte robota aby vedel pomôcť človeku.
|
||||
- Čo vieš urobiť?
|
||||
- Pracujte na prezentácii.
|
||||
- Pracujte na písomnej časti.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Stretnutie 17.12.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Pridané testy na RASA test, urobené vyhodnotenie pomocou konfúznej matice.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Pridajte schopnosť rozlišovať pomenované entity typu LOC. Spacy model by to mal vedieť.
|
||||
- [ ] Vylepšite chatbota do prvej funkčnej verzie.
|
||||
- [x] Pripravte deployment pomocou Docker.
|
||||
- [ ] Dajte vyskúšať chatbota tretej osobe a zapíšte si story.
|
||||
|
||||
---
|
||||
|
||||
Stretnutie 10.12.
|
||||
|
||||
- Naštudujte si https://rasa.com/docs/rasa/testing-your-assistant
|
||||
- Pokračujte v otvorených úlohách.
|
||||
|
||||
---
|
||||
|
||||
Stretnutie 3.12.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Teoretická čast BP je v celkom dobrom stave. Prebehlo viacero stretnutí k BP.
|
||||
|
||||
Ulohy:
|
||||
|
||||
1. [x] Navrhnite a napíšte intenty a utterance pre chatbota
|
||||
2. [x] Natrénujte model, výskúšajte ho, opravte ho.
|
||||
3. [x] Vytvorte testovacie stories a vyhonotte model.
|
||||
4. [x] Kódy dajte na GIT
|
||||
5. [x] Pripravte deployment pomocou Docker.
|
||||
|
||||
|
||||
- - -
|
||||
|
||||
Stretnutie 12.11.2021
|
||||
|
||||
Vyhodnotenie zatiaľ nefunguje.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Pokračovať v písaní práce.
|
||||
- [x] Dokončiť web demo.
|
||||
- [x] Vytvorte dockerfile.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyhdonotiť NLU (úlohy z 12.10.)
|
||||
|
||||
Stretnutie 22.10.2021
|
||||
|
||||
- Urobené webové rozhranie pre analýzu konverzácií.
|
||||
|
||||
Pokračovať v otvorených úlohách.
|
||||
|
||||
Stretnutie 12.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Vytvorené prepojenie s databázou a RASA pre uchovanie logov z konverzácií.
|
||||
- Rozpracovaná knižnica pre prácu s databázou konverzácií.
|
||||
- Vyskúšaný nový Spacy jazykový model.
|
||||
- Vypracovaný report pre odovzdanie v 4. týždni - šablóna, osnova, krátky článok.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vyhodnotiť NLU model.
|
||||
- [x] Pripraviť sadu na vyhodnotenie NLU a spôsob ako ju v skripte vykonať. Vytvoriť niekoľko modelových situácií a sledovať, ako "dobre" bude chatbot reagovať.
|
||||
- [x] Zistiť z odbornej literatúry akým spôsobom sa zvyčajne vyhodnocuje NLU úloha. Prečítajte si článok o NLU a napíšte ako sa vyhodnocuje NLU model. Nájdite anglickú databázu na vyhdonotenie NLU a pozrite sa ako vyzerá. [blog rasa](https://rasa.com/blog/evaluating-rasa-nlu-models-in-jupyter/).
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Analyzovať logy z konverzácií. Pripraviť export konverzácií v JSON pre spracovanie a HTML formáte pre zobrazenie.
|
||||
|
||||
- - -
|
||||
|
||||
Stretnutie 1.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Minulé úlohy dokončené: Osnova,
|
||||
- flask aplikácia je rozpracovaná a komunikuje s RASA.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vytvoriť Word s osnovou práce a do neho zapísať relevantné texty.
|
||||
- [x] Pokračujte na Flask aplikácii
|
||||
- [x] Zistite čo je to Dockerfile.
|
||||
|
||||
|
||||
|
||||
- - -
|
||||
|
||||
Stretnutie 24.9.
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozpracovaná flask aplikácia pre napojenie sa na RASA chatbota
|
||||
- Veľmi základná ale funkčná verzia RASA bota
|
||||
- Odovzdaný nový jazykový model Spacy.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Dorobiť komunikáciu Flask a RASA s novým jazykovým modelom. Zdrojáky na GIT.
|
||||
- [x] Vytvorte draft práce, napíšte osnovu a pridajte tam relevantné texty ktoré máte.
|
||||
- [x] Nájdite aspoň jeden vedecký článok na tému "dialogue management" a napíšte čo ste sa dozvedeli.
|
||||
|
||||
- - -
|
||||
|
||||
## Vedecký projekt 2021
|
||||
|
||||
Dialógový systém pomocou RASA framework
|
||||
@ -191,14 +34,7 @@ Cieľom projektu je naučiť sa niečo o dialógových systémoch a oboznámiť
|
||||
- Vyberte a prejdite najmenej jeden tutoriál pre prácu s RASA frameworkom.
|
||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
- Výstup je tu https://git.kemt.fei.tuke.sk/sh662er/Rasa
|
||||
- - -
|
||||
Stretnutie 16.6.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Stránka s UI je vo Flask
|
||||
- Problém je so stavom spojenia s RASA servrom.
|
||||
- - -
|
||||
Stretnutie 6.5.2021
|
||||
|
||||
- prebehla aj Komunikácia cez teams a email.
|
||||
@ -206,8 +42,15 @@ Stretnutie 6.5.2021
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] podmienky na zápočet sú splnené - ale poprosím dokumentáciu konvertovať do Markdown a nahrať na GIT.
|
||||
- - -
|
||||
- podmienky na zápočet sú splnené - ale poprosím dokumentáciu konvertovať do Markdown a nahrať na GIT.
|
||||
|
||||
Stretnutie 16.6.2021
|
||||
|
||||
Stav:
|
||||
|
||||
- Stránka s UI je vo Flask
|
||||
- Problém je so stavom spojenia s RASA servrom.
|
||||
|
||||
Stretnutie 9.4.2021
|
||||
|
||||
Stav:
|
||||
@ -218,8 +61,9 @@ Stav:
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vyskúšať slovenský spacy model od vedúceho.
|
||||
- - -
|
||||
- Vyskúšať slovenský spacy model od vedúceho.
|
||||
|
||||
|
||||
Stretnutie 26.3.2021
|
||||
|
||||
Stav:
|
||||
@ -229,14 +73,17 @@ Stav:
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Fast tex model implememntovať
|
||||
- [x] napísať dokumentáciu
|
||||
- - -
|
||||
- Fast tex model implememntovať
|
||||
- napísať dokumentáciu
|
||||
|
||||
|
||||
|
||||
Stretnutie 19.3.2021
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Doplniť podporu slovenčiny do fr. RASA
|
||||
- Doplniť podporu slovenčiny do fr. RASA
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
@ -246,5 +93,5 @@ Stav:
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Skúsiť vytvoriť agenta ktorý komunikuje po slovensky. Najprv by sa preložili trénovacie príklady.
|
||||
- [x] Zistiť ako doplniť podporu slovenčiny do RASA. Komponenty ktoré máme k dispozícii sú: spacy model, fastext a glove word embedding model, BERT model (fresh and secret).
|
||||
- Skúsiť vytvoriť agenta ktorý komunikuje po slovensky. Najprv by sa preložili trénovacie príklady.
|
||||
- Zistiť ako doplniť podporu slovenčiny do RASA. Komponenty ktoré máme k dispozícii sú: spacy model, fastext a glove word embedding model, BERT model (fresh and secret).
|
||||
|
@ -1,72 +0,0 @@
|
||||
---
|
||||
title: Dávid Kostilník
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2025]
|
||||
tag: [ir]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Diplomová práca 2025
|
||||
|
||||
Ešte sa rozhodne.
|
||||
|
||||
Téma:
|
||||
|
||||
Sémantické vyhľadávanie pomocou veľkých modelov
|
||||
|
||||
- Tvorba datasetu prekladom, využitie existujúcich datasetov
|
||||
- Dotrénovanie existujúceho modelu typu BERT pomocou preloženého MS MARCO.
|
||||
|
||||
Ciele:
|
||||
|
||||
- Zlepšiť RAG.
|
||||
|
||||
|
||||
Stretnutie 29.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Prečítané nejaké články. Inak nič.
|
||||
|
||||
Úlohy:
|
||||
|
||||
|
||||
- Podrobne si naštudujte a vyskúšajte framework Sentence Transformers https://sbert.net/index.html. Využite Google Colab na príklady.
|
||||
- Podrobne si naštudujte databázu MS MARCO. Zistite a vyskúšajte dotrénovanie anglického modelu typu BERT (bert, roberta, xlm, deberta ...) na databáze MS Marco.
|
||||
- Píšte si poznámky o tom čo ste zistili o SBERT. Použite odkazy na vedecké články. Vedecké článkuý nájdete na Google Scholar.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- pracujte na servri quadro a prostredí Anaconda.
|
||||
- Natrénujte slovenský BERT model na preloženej databáze MS MARCO (WIP K. Sopkovič).
|
||||
|
||||
|
||||
|
||||
## Diplomový projekt 2024
|
||||
|
||||
Stretnutie 4.4. 2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Oboznámte sa s tým, ako funguje neurónová sieť typu Transformer. Urobte si poznámky. Poznačete si zdroje, uprednostnite vedecké články.
|
||||
- Oboznámte sa ako funguje rekurentná neurónová sieť. Sústreďte sa na typ RWKV. Urobte si poznmámy.
|
||||
- Vyskúšajte si túto NN. Začnite tu https://wiki.rwkv.com/basic/play.html
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Oboznámte sa ako funguje NN Mamba.
|
||||
- Zostavte RAG systém s pomocou RWKV.
|
||||
- Oboznámte sa ako funguje Sentence Transformer.
|
||||
- Porovnajte embeddingy RWKV s inými metódami (Sentence Transformers)
|
||||
|
||||
|
||||
Stretnutie 15.2.2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Oboznámte sa s prácou [K. Sopkovič](/students/2019/kristian_sopkovic) a [M. Stromko](/students/2019/michal_stromko).
|
||||
|
||||
|
@ -1,71 +0,0 @@
|
||||
---
|
||||
title: Jakub Kristián Lukas
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2023]
|
||||
tag: [hatespeech]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Bakalárska práca 2023
|
||||
|
||||
Téma: Systém pre rozpoznávanie nenávistnej reči v online diskusiách
|
||||
|
||||
Súvisí s PhD prácou [Manohar Gowdru Shridhara](students/2021/manohar_gowdru_shridharu)
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
- Preštudovať teóriu.
|
||||
- Zopakovať jednoduchý experiment pre rozpoznávanie nenávistnej reči v anglickom jazyku s pomocou frameworku HuggingFace transformers.
|
||||
- Vypracovať webové demo.
|
||||
|
||||
Stretnutie 3.111.
|
||||
|
||||
Stav:
|
||||
|
||||
- štúdium Python.
|
||||
- Vyskúšané niektoré HF HS modely.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Prejdite si Streamlit tutoriál.
|
||||
- Pokračovať v otvorených úlohách. Spojazdnite streamlit HS demo. Píšte si poznámky z prehľadového článku, Prečítajte si súvisiace články a napíšte poznánky.
|
||||
|
||||
|
||||
Stretnutie 7.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalované prostredie Anadonda, HF, Pytorch
|
||||
- Zdieľaný priečinok [google drive](https://drive.google.com/drive/folders/1voblyxpAwsjNWBSFB-8F_heQCb5cGakJ?usp=sharing)
|
||||
- Vypracovaný text na 2 strany o BERT modeli.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Prečítať a napísať poznámky na jednu stranu. Pozrite si aj súvisiace články,
|
||||
- https://arxiv.org/abs/2004.06465
|
||||
- [ ] Prejdite si HF Tutoriál.
|
||||
- [ ] Pozrite si https://git.kemt.fei.tuke.sk/mg240ia/Hate-Speech-Detector-Streamlit
|
||||
- [x] Prejdite si knihu Dive into Python 3.
|
||||
- [x] Vyskúšať a preštudovať tieto modely
|
||||
- https://huggingface.co/Hate-speech-CNERG/dehatebert-mono-english
|
||||
- https://huggingface.co/Narrativa/byt5-base-tweet-hate-detection
|
||||
|
||||
|
||||
Stretnutie 29.9.
|
||||
|
||||
Stav:
|
||||
- Oboznamili sme sa s projektom.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistiť ako funguje model BERT. Napísať o tom správu na 2 strany. Priložiť odkazy na odborné články.
|
||||
- Nainštalovať si HuggingFace Transformers a vypracovať tutoriál. HF Transformers bude vyžadovať CUDA a Pytorch. Dostupné to je na školskom servri idoc.
|
||||
- [x] Nainštalovať Anaconda
|
||||
- [x] Nainštalovať Pytorch
|
||||
- [x] nainštalujete transformers.
|
||||
- [ ] prejdide si tutoriál
|
||||
|
@ -1,77 +0,0 @@
|
||||
---
|
||||
title: Kamil Tomčufčík
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2025]
|
||||
tag: [lm]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Diplomová práca 2025
|
||||
|
||||
Ciel:
|
||||
|
||||
Overiť a zlepšiť možnosti generovania jednotkových testov
|
||||
|
||||
Stretnutie 12.12.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Metrika Pass@K sa používa na vyhodnotenie generovaného kódu. Meria, koľko automatických textov bolo splnených. Používa sa aj BLEU, verzia CodeBLEU. CodeJudge.
|
||||
- Na testovanie generovaných testov sa používajú: vykonanie produkčného kódu, pokrytie testov, mutácie kódu, statická analýza generovaného kódu.
|
||||
- Vyskúšaný model polycoder (na C),codeparrot (na python) na kaggle. Code T5 zatiaľ nie je vyskúšaný.
|
||||
- Copilot by mal byť pre študentov zadarmo. Študneti majú aj Azure kredity.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách.
|
||||
- Pripravte sa na predobhajobu - prezentácia s výsledkami.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pomocou vybranej množiny porovnajte vybrané modely pre generovanie kódu.
|
||||
|
||||
Stretnutie 14.11. 2924
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyhľadané modely na generovanie kódu. Nie sú vyskúšané. Codex, CodeParrot a Incoder. Na unittesty CodeT5 a AthenaTest.
|
||||
- Rozčítané knihy podľa pokynov.
|
||||
|
||||
Úlohy:
|
||||
|
||||
Zistite odpovede na tieto otázky:
|
||||
- [x] Ako zistíme, že vygenerovaný kód je dobrý.
|
||||
- [x] Ako zistíme, že vygenerovaný test vyhovuje špecifikácii?
|
||||
- [-] Vypracujte písomný prehľad modelov pre generovanie kódu. Napíšte aké modely sa používajú, Akým spôsobom sa vyhodnocujú. Napíšte na akej neurónovej sieti sú založené, aké sú veľk=, aké jazyky podporujú, aké výsledky dosahujú. Použite odborné články. Odborné články nájdete na google scholar alebo scopus.
|
||||
- [-] Pripravte vzorovú dátovú množinu. Hotové testy, implementácie aj dokumentáciu. Možno vybrať existujúci open source projekt alebo hotovú dátovú množinu.
|
||||
- [-] Vyskúšajte niekoľko jazykových modelov pre generovanie kódu aj generovanie testov.
|
||||
- [ ] Do diplomovej práce vypracujte experimenty kde vyhodnotíte jazykové modely pre generovanie testov v rôznych prostrediach.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Dotrénujte model pre lepšie generovansie testov.
|
||||
|
||||
|
||||
|
||||
Stretnutie online 5.2.2024:
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalujte si prostredie Anaconda, pozrite si knihu https://diveintopython3.net/
|
||||
Dive Into Python 3
|
||||
- pre úvod do neurónových sietí si prečítajte knihu https://d2l.ai/index.html Dive into Deep Learning — Dive into Deep Learning 1.0.3 documentation
|
||||
- vyskúšajte viac modelov pre generovanie kódu. Codex, Copilot, ChatGPT
|
||||
- zistite ako funguje veľký jazykový model
|
||||
|
||||
|
||||
Zásobník úloh (zadanie na ďalšie stretnutie):
|
||||
|
||||
- Zistite zoznam open source modelov pre generovanie kódu a porovnajte ich možnosti. Zoznam zapíšte do textového súboru.
|
||||
- Vyberte si jeden z modelov na generovanie kódu, nainštalujte si ho a vyskúšajte.
|
||||
- Zistite, ako sa číselne vyjadrí kvalita generovania počítačového kódu. Aké metriky sa používajú? Zistie aké trénovacie a vyhodnocovacie množiny sa používaju. Zoznam zapíšte do súboru.
|
||||
- Zistite, ako sa dá taký model "dotrénovať" na špecifickú úlohu generovania testov.
|
||||
|
||||
|
@ -1,109 +0,0 @@
|
||||
---
|
||||
title: Matej Kobyľan
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2023]
|
||||
tag: [ir]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
Cieľ: Vytvoriť dialógový systém pre podporu komunikácie občana s mestom Košice
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistite, čo je to Natural Language Understanding. Napíšte o tom správu na 2 strany.
|
||||
- Prečítajte si BP Samuel Horáni. https://opac.crzp.sk/?fn=detailBiblioForm&sid=A770A18E340C6018B48DE7BDD5C2 Napíšte čo ste sa dozvedeli.
|
||||
- Prečítajte si článok https://link.springer.com/article/10.1007/s10462-022-10248-8 a napíšte, čo ste sa dozvedeli.
|
||||
- Vyskúšajte si chatbota z repozitára https://git.kemt.fei.tuke.sk/sh662er/Rasa.
|
||||
Nainštalujte si https://pytorch.org/get-started/locally/
|
||||
Nainštalujte si https://github.com/hladek/spacy-skmodel
|
||||
- Skúste ho upraviť tak, aby dával informácie o meste Košice.
|
||||
|
||||
|
||||
|
||||
# Bakalárska práca 2023
|
||||
|
||||
Systém pre monitoring médií
|
||||
|
||||
Práca súvisí s [DP Michal Stromko](/students/2019/michal_stromko)
|
||||
|
||||
Návrh na zadanie:
|
||||
|
||||
- Navrhnite a implementuje systém pre extrakciu textu a metainfrmácií z webových stránok alebo sociálnych sietí
|
||||
- Modifikujte agenta pre získavanie textu tak aby do databázy ukladal sledované webové stránky v pravidelných intervaloch.
|
||||
- Aplikujte neurónovú sieť na klasifikáciu získaných článkov.
|
||||
|
||||
Analýza úlohy:
|
||||
|
||||
Chceme vytvoriť databázu novinových článkov.
|
||||
|
||||
Pre článok chceme evidovať:
|
||||
|
||||
- zdroj
|
||||
- autor
|
||||
- titulok
|
||||
- text rozdelený na odseky
|
||||
- odkazy na iné články
|
||||
- autorská sekcia
|
||||
- autorské tagy alebo kľúčové slovíčka.
|
||||
- perex
|
||||
- dátum vydania.
|
||||
- pôvodné html
|
||||
|
||||
Ku databáze chceme vytvoriť agenta ktorý by v pravidelných intervaloch dopĺňal nové články. Agenta pre zber textu stačí modifikovať.
|
||||
|
||||
Ku databáze chceme vytvoriť webové rozhranie.
|
||||
|
||||
V databáze chceme vedieť vyhľadávať.
|
||||
|
||||
Chceme vedieť automaticky zistiť tému článku.
|
||||
|
||||
Chceme automaticky zistiť sumár článku.
|
||||
|
||||
- Vyberte vhodnú databázu.
|
||||
- Postgres, Cassandra.
|
||||
- Navrhnite schému.
|
||||
- Modifikujte agenta pre zber textu.
|
||||
- Implementujte webové rozhranie na prístup k databáze.
|
||||
|
||||
|
||||
Stretnutie 24.1.2022
|
||||
|
||||
Stav:
|
||||
|
||||
- Začiatok štúdia Python.
|
||||
- Prečítané články: "COVID a kľúčové slová", o Elasticsearch.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v otvorených úlohách z 30.9.
|
||||
- Zistite, čo je to systém RASA a ako pracuje.
|
||||
- Skúste prejsť tutoriál https://rasa.com/blog/category/tutorials/
|
||||
- Zvážiť zmenu témy na "RASA" dialógový systém.
|
||||
|
||||
|
||||
Stretnutie 30.9.2022
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Prečítajte si záverečné práce J. Holp, M. Stromko.
|
||||
- [ ] Nainštalujte si systém Anaconda. Naučte sa pracovať s virtuálnymi prostrediami.
|
||||
- [x] Prejdite si Python tutoriál.
|
||||
- [ ] Zistite ako pracuje agent pre zber textu - web crawler. Vyhľadajte odborné články alebo knihy na túto tému a urobte si poznámky.
|
||||
- [ ] Oboznámte sa s kódom agenta websucker https://git.kemt.fei.tuke.sk/dano/websucker-pip.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pozrieť sa na https://github.com/microsoft/playwright-python
|
||||
- Zistite, ako funguje knižnica BeautifulSoup, vypracujte tutoriál.
|
||||
- Vypracujte prehľad literatúry na tému "Monitorovanie médií". Otvorte si google scholar, hyhľadajte heslo "news monitoring" , "social media monitoring". Vyberte články ktoré sa Vám zadajú zaujímavé, prečítajte si ch a napíšte na min. jednu stranu poznámky čo ste sa dozvedeli. Uveďte zdroje - názy článkov a autorov.
|
||||
- Zistite si, čo je systém Elasticsearch a ako pracuje. Napíšte o tom správu na jednu stranu.
|
||||
- Pomocou systému Docker si nainštalujte Elasticsearch 8.4
|
||||
- Prejdite si tutoriál https://elasticsearch-dsl.readthedocs.io/en/latest/index.html
|
||||
- Urobte si GIT repozitár, kde budeme dávať kódy.
|
||||
|
@ -1,138 +0,0 @@
|
||||
---
|
||||
title: Matúš Suchanič
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2022,bp2023]
|
||||
tag: [ir]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Bakalárska práca 2023
|
||||
|
||||
Téma: Vyhľadávanie na slovenskej Wikipédii
|
||||
|
||||
Úloha:
|
||||
|
||||
- Implementujte systém na kategorizáciu slovenských novinových článkov. Systém by mal kategorizovať ľubovoľný článok do wiki kategórií.
|
||||
- Vytvorte dátovú množinu pre vyhodnotenie kategorizácie na základe wiki kategórií.
|
||||
|
||||
Názov:
|
||||
|
||||
Automatická kategorizácia slovenského textu
|
||||
|
||||
1. Vypracujte prehľad najnovších metód kategorizácie textu pomocou neurónových sietí aj pomocou štatistických metód.
|
||||
2. Vyberte a pripravte vhodnú dátovú množinu pre otestovanie kategorizácie.
|
||||
3. Vyberte vhodnú metódu kategorizácie, pripravte a vykonajte experimenty na jej vyhodnotnie.
|
||||
4. Vyhodnoťte experimenty a identifikujte slabé miesta zvoleného prístupu.
|
||||
|
||||
Práca súvisí s:
|
||||
|
||||
- [DP Michal Stromko](/students/2019/michal_stromko)
|
||||
- [BP Matej Kobyľan](/students/2020/matej_kobylan)
|
||||
|
||||
Stretnutie 27.1.2023
|
||||
|
||||
Podmienky na zápočet:
|
||||
|
||||
- Pripravte slovenskú databázu na trénovanie úlohy klasifikácie článkov.
|
||||
- Zopakujte experiment pre klasifikáciu článkov v prostredí HF transformers.
|
||||
- Natrénujte vlastný model na HF transformers na klasifikáciu článkov.
|
||||
- Vykonaný experiment opíšte na min. 2 strany. Napíšte aký model sa používa, aký druh neurónovej siete. Ako prebieha dotrénovanie?
|
||||
|
||||
|
||||
Stretnutie 21.1.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Prečítané články, urobený report na cca 7 strán.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Boli vedúcim poskytnuté dáta, ktoré obsahujú názvy článkov, kategórie, aj texty článkov.
|
||||
- Urobte skript, ktorý spojí dáta tak, aby boli dáta spolu - názov, text a zoznam kategórií.
|
||||
- Natrénujte na týchto dátach neurónovú sieť pre kategorizáciu článkov.
|
||||
- Vedúci Vám poskytne ďalšiu množinu v takom istom formáte s vyhodnocovacími dátami. Na tejto množine to vyhodnotíte. Alebo rozdeľte trénovaciu množinu na dve časti a vyhodnocovaciu množinu dajte stranou.
|
||||
- Na klasifikáciu použite: toolkit transformers, model slovakbert, alebo model slovak gpt, slovak t5
|
||||
- Začnite písať BP. Do práce dajte definíciu úlohy a zoznam metód, ktorou sa táto úloha rieši. Vysvetlite, ako funguje klasifikácia dokumentov pomocou modelu BERT alebo Roberta, a GPT.
|
||||
Opíšte experiment - použitý model, použité dáta, spôsob vyhodnotenia a výsledky. Napíšte čo z toho vyplýva - kde je priestor na zlepšenie.
|
||||
|
||||
Stretnutie 28.10.2022
|
||||
|
||||
Stav:
|
||||
|
||||
- Preštudované články o text categorization, BERT, KNN. Napísaný krátky report.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v štúdiu odborných článkov o kategorizácii textu. Použite Scholar. Robte si poznámky, poznačte si bibl. odkazy. Min. 5 nových článkov. Toto pôjde do BP.
|
||||
- Pokračujte v experimente s HF transformers a kategorizáciou.
|
||||
- Pozrite si skripty na repozitári slovakretrieval a skúste ich rozbehnúť.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte skript, ktorý spracuje dump slovenskej wikipédie a zistí, ktorý článok patrí do ktorých kategórií. Cieľ je spraviť systém ktorý zaradí neznámy článok do wikipédia kategórií.
|
||||
- Spýtajte sa vedúceho na skripty ku spracovaniu dumpu wikipédie.
|
||||
|
||||
|
||||
Stretnutie 30.9.2022:
|
||||
|
||||
Stav:
|
||||
|
||||
- Je nainštalovaný Anaconda a HF transformers.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Prečítajte si BP Michal Stromko a DP Ján Holp. Napíšte z toho poznámky na pol strany.
|
||||
- [x] Zistite, čo to je model BERT a ako sa s sním pracuje. Napíšte o tom poznámku.
|
||||
- [-] Vypracujte prehľad novej odbornej literatúry na tému Text Categorization. Zistite aké štatistické a neurónové metódy sa používajú. Ako základ Vám poslúži článok nižšie. Prehľad by mal mať aspoň 2 strany.
|
||||
- [x] Prečítajte si článok "Comparison of Statistical Algorithms and Deep Learning for Slovak Document Classification" https://ieeexplore.ieee.org/abstract/document/9869155 dostupný z TUKE siete. Napíšte na pol strany čo ste sa dozvedeli.
|
||||
|
||||
- [ ] Zopakujte experiment s klasifikáciou slovenských novinových článkov. Použite knižnicu HF transformers, Skripty Vám dodá vedúci. Použite knižnicu HF transformers, Skripty Vám dodá vedúci. Použite "Slovak Categorized News Corpus" na trénovanie.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Pripravte skript, ktorý bude vedieť klasifikovať neznáme články uložené v databáze.
|
||||
|
||||
# Vedecký projekt 2022
|
||||
|
||||
Extrakcia informácií z webových stránok
|
||||
|
||||
Finálny cieľ:
|
||||
|
||||
- Vytvoriť skript ktorý spracuje HTML kód a identifikuje zaujímavé časti z webstránky, napr. noviny alebo diskusie (modrý koník)
|
||||
- Naučte sa niečo o spracovaní prirodzeného jazyka
|
||||
|
||||
Výstupy:
|
||||
|
||||
- Report na cca 4 strany - ako si nainštalovať anacondu, niečo o knižnici HuggingFace Transformers
|
||||
- Skript na parsovanie dvoch stránok
|
||||
|
||||
Stretnutie 3.6.
|
||||
|
||||
Stav:
|
||||
|
||||
- Odovzdaná písomná správa nie je uspokojivá.
|
||||
|
||||
Úlohy:
|
||||
|
||||
|
||||
- Nainštalujte si Hugging Face Transformers
|
||||
- Prejdite si tento tutoriál, https://huggingface.co/docs/transformers/tasks/sequence_classification. Po slovensky zapíšte vlastnými slovami čo ste urobili a čo ste zistili. Zapíšte každý krok.
|
||||
- Vlastnými slovami zapíšte, čo všetko bude potrebné urobiť, aby sme vedeli klasifikovať slovenské texty.
|
||||
- Vytvorte si GIT repozitár a dajte do neho vytvorené skripty na parsovanie stránok.
|
||||
|
||||
Stretnutie 18.3.2022
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalovať si systém Anaconda
|
||||
- Napíšte návod ako nainštalovať a používať systém Anacona
|
||||
- Nainštalovať si knižnicu BeautifulSoup4, prejsť si tutoriál
|
||||
- napíšte krátky úvod do knižnice Huggingface Transformers
|
||||
- Prečítajte si články o hlbokých neurónových sieťach a spracovaní prirodzeného jazyka
|
||||
|
||||
|
||||
|
@ -1,130 +0,0 @@
|
||||
---
|
||||
title: Pavol Hudák
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [dp2025]
|
||||
tag: [ir]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Diplomová práca 2025
|
||||
|
||||
Ciel:
|
||||
|
||||
- Dotrénovanie LLM pre zlepšenie jeho schopnosti odpovedať na otázku v slovenskom jazyku.
|
||||
- Dotrénovanie a vyhodnotenie LLM na slovenský instruct dataset.
|
||||
- Strojový preklad vybranej množiny instruct.
|
||||
|
||||
Stretnutie 14.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Dotrénovaný slovenský Mistral 7B na malej časti Slovak Alpaca ma Kaggle.
|
||||
- Pokračuje písanie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračovať v trénovaní tak aby sa využila celá množina. Môžeme využiť školské servre. Vedúci vytvorí prístup.
|
||||
- Pokračujte v púísaní
|
||||
- Zdrojové kódy dajte na GIT. Nedávajte tam dáta ani modely.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Dotrénujte aj iné modely a porovnajte výsledky.
|
||||
- Zverejnite dotrénovaný model alebo viac modelov na HF HUB. využijeme TUKE-KEMT org.
|
||||
|
||||
|
||||
Stretnutie 15.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísané 4 strany poznámok o Transformers.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dotrénujte slovenský model na instruct množine. Ako model použite https://huggingface.co/slovak-nlp/mistral-sk-7b a PEFT.
|
||||
- Nainštalujte si Ctranslate2 a model https://huggingface.co/facebook/m2m100_1.2B. Skúste preložiť OpenORCA.
|
||||
Použite server quadro alebo Kaggle.
|
||||
- Pracujte na texte DP - vysvetlite ako funguje model ChatGPT, Mistral a napíšte ako funguje "instruct model", uvedte odkazy na odborné články.
|
||||
|
||||
|
||||
|
||||
|
||||
# Diplomový projekt 2024
|
||||
|
||||
Ciele na semester:
|
||||
|
||||
- Zobrať veľký jazykový model (základný alebo instruct alebo chat).
|
||||
- Skúsiť ho dotrénovať metódou PEFT pre úlohu Question Answering na korpuse SK QUAD. Vieme sa inšpirovať výsledkami E. Matovka.
|
||||
- Strojovo preložiť vybranú databázu otázok a odpovedí a pomocou nej skúsiť vylepšiť model.
|
||||
- Vyhodnotiť presnosť QA dotrénovaného modelu.
|
||||
|
||||
Ďalšie nápady:
|
||||
|
||||
- Automaticky zlepšiť "prompt" pre QA.
|
||||
|
||||
Vybrať jednu z úloh:
|
||||
|
||||
- Tvorba instruct datasetu - Anotácia alebo preklad množín
|
||||
- Dotrénovanie LLM na dostupnom hardvéri - LORA-PEFT
|
||||
|
||||
|
||||
Stretnutie 7.6.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na dotrénovaní LLama3 a Phi2 cez kaggle, zatiaľ nefunguje.
|
||||
|
||||
Stretnutie 5.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalované PrivateGPT.
|
||||
- Nainštalovaná Anaconda a Python, aj štúdium a príprava.
|
||||
- Oboznámenie sa s LangChain a SlovakAlpaca aj PEFT.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Skúste dotrénovať veľký jazykový model metódou PEFT s množinou SlovakAlpaca. Vyberte vhodný model.
|
||||
- Vyskúšajte modely cez ollama.
|
||||
- Prihláste sa na quadro.kemt.fei.tuke.sk tam nainštalujte anaconda. Vedúci Vám musí urobiť prístup.
|
||||
- Kandidáti sú UMT5, TinyLLama, LLama3, Mistral, mt0, Phi alebo iné.
|
||||
- Vyhodnote presnosť dotrénovania (BLEU - založené na porovnávaní ngramov výsledku a očakávania).
|
||||
- Robte si poznámky o tom ako funguje veľký jazykový model a metóda PEFT.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Strojovo preložiť databázu OpenORCA.
|
||||
|
||||
Stretnutie 23.2.
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozbehané prostredie s Pytorch aj CUDA Anaconda na vlastnom PC.
|
||||
- Vyskúšaný HF google/t5 ... na úlohu strojového prekladu
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v štúdiu podľa otvorených úloh.
|
||||
- Nainštalujte a vyskúšajte softvér PrivateGPT.
|
||||
- Prihláste sa na systém IDOC a nainštalujte si tam systém Anaconda.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Nainštalujte a vyskúšajte balíček LangChain.
|
||||
- Zistite čo je to metóda PEFT - LORA.
|
||||
- Skúste dotrénovať veľký jazykový model s množinou SlovakAlpaca.
|
||||
- Skúste vylepšiť LLM pomocou inej množiny, strojovo preloženej.
|
||||
|
||||
Stretnutie 14.2.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Oboznámiť sa s veľkými jazykovými modelmi LLM. Ako funguje ChatGPT? Čo je to LLAMA? Napíšte si poznámky.
|
||||
- [x] Nainštalujte si Anaconda.
|
||||
- [-] Pokračujte v štúdiu Python. Preštudujte si knihu Dive deep into deep learning.
|
||||
- [x] Nainštalujte si knižnicu Huggingface Transformers.
|
||||
- [ ] Vyskúšajte LLM model LLAMA https://huggingface.co/meta-llama/Llama-2-70b
|
||||
- [ ] Prejdite si tento tutoriál https://huggingface.co/blog/llama2
|
@ -1,181 +0,0 @@
|
||||
---
|
||||
title: Vladyslav Krupko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2024]
|
||||
tag: [spelling]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2020
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
|
||||
1. Napíšte prehľad existujúcich jazykových modelov pre generovanie slovenského jazyka.
|
||||
2. Získajte a pripravte korpus dát pre úlohu generovania odpovedí v slovenskom jazyku. Vyberte vhodný zdroj a pripravte ho do podoby vhodnej na trénovanie neurónových sietí. Sumarizujte získané dáta v tabuľke.
|
||||
3. Natrénujte neurónovú sieť pre úlohu generovania odpovede a vyhodnoťte výsledky.
|
||||
4. Vyhodnoťte experimenty, identifikujte slabé miesta a navrhnite vylepšenia.
|
||||
|
||||
|
||||
Na Maise je vypísaná nová téma ohľadom "konverzačnej umelej inteligencie". Je potrebné čím skôr finalizovať tému aj praconvé úlohy.
|
||||
|
||||
Ciele:
|
||||
|
||||
- Dotrénovať ChatGPT alebo iný generatívny model pre vlastnú databázu otázok a odpovedí.
|
||||
|
||||
Stretnutie 15.5.2025
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozpísaná práca
|
||||
- Experimenty sú pripravené (podrobne neviem).
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dajte prácu do šablóny a vypracujte ASAP.
|
||||
- Do práce môžete dokresliť diagramy. Dôsledne citujte - uvádzajte referencie aj pre obrázky.
|
||||
- Stiahnite si zadávací list a šablónu z ETD knižnice.
|
||||
- Zaregistrujte sa do knižnice na vytlačenie práce. Na to budete potrebovať titulný list a počet strán.
|
||||
- Pošlite vedúcemu na kontrolu čím skôr (do budúceho utorka).
|
||||
- Na vyhodnotenie generatívneho modelu použite metriku BLEU. Na to potrebujete očakávaný výstup modelu.
|
||||
|
||||
Stretnutie 26.4. 2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na dátach GymBeam. Scraper ide. Máme otázky o procese objednania.
|
||||
- Vyskúšané mt5, llama 2 7B, mixtral,
|
||||
|
||||
Úloha:
|
||||
|
||||
- Pripravte dáta na úlohu odpovede na otázku. V jednej jednotke by mala byť otázka, odpoveď a dokument kde sa nachádza odpoveď. Urobte niekoľko 100 jednotiek. Dáta rozdeľte na dve skupiny - trénovaciu aj testovaciu. Dáta dajte do podoby kompatibilnej s databázou sk-quad.
|
||||
- Ku Vašim dátam môžete primešať dáta zo SK QUAD.
|
||||
- Naučte rôzne neurónové siete mt5base, Slovakbert, llama odpovedať na otázku a vyhodnnotte výsledky. Na quadro nainštaluje Anaconda.
|
||||
- Nainštalujte Pytorch, Transformers z repozitára. Použite screen alebo tmux na spustenie.Kartu vyberiete pomocou premennej prostredia CUDA_VISIBLE_DEVICES.
|
||||
- Použite skripty z https://github.com/huggingface/transformers/tree/main/examples/pytorch/question-answering .
|
||||
- Pokračujte v písaní práce.
|
||||
|
||||
Zásobník:
|
||||
|
||||
- Na dotrénovanie LLAMA alebo podobného modelu musíte použiť PEFT. https://www.theaidream.com/post/fine-tuning-large-language-models-llms-using-peft
|
||||
|
||||
|
||||
Stretnutie 29.1.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Prezentácia je.
|
||||
- Získané dáta z GymBeam. Selenium Scraper je veľmi pomalý, nevieme prečo.
|
||||
- Vyskúšané ChatGPT API s dátami čo máme. Odpoveď je zatiaľ po anglicky.
|
||||
- Na prevod z csv do json je použitá LLAMA.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Na vyhdonotenie je potrebné rozdeliť dáta na dve časti, trénovaciu a testovaciu. Testovacie dáta vynechajte z trénovania. Sledujte čo generuje model a porovnajte to s tým čo je očakávané v dátach. Ako metriku porovnania použite ROUGE alebo BLEU.
|
||||
- Výsledky dajte do tabuľky do práce.
|
||||
- Pokračujte v písaní práce.
|
||||
- Pokračujte v získavaní a príprave dát.
|
||||
|
||||
Zásobník:
|
||||
|
||||
- Na rovnakých dátach natrénujte "lokálny model" pomocou skriptov Huggingface (machine translation) - mt5-base, llama-7B-4bit . Musíte nainštalovať transformers zo zdrojákov. Musíte si vytvoriť nové virtuálne prostredie a najprv nainštalovať pytorch.
|
||||
|
||||
|
||||
|
||||
Stretnutie 15.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísané texty podľa pokynov. Experimenty ešte neboli vykonané.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Z webu získajte vhodnú sadu otázok a odpovedí. Uložte ju vo formáte json - jeden dokument na jede riadok. Využite Váš scraper. Ako zdroj skúste použiť Otázky zákazníkov z GymBeam. Uložte - v jednom dokumente by mal byť informácie o produktem otázky aj odpovede. Ak sa to nepodarí, zamerajte sa na iný zdroj dát. Napríklad https://www.modrastrecha.sk/forum/ , alebo https://www.modrykonik.sk/forum.
|
||||
- Pripravte dáta do vhodnej podoby a natrénujte generatívny model - ChatGPT, T5-SMALL,
|
||||
- Vyhoddnotte všetky modely, výsledky sumarizujte v tabuľkách. Experimenty opíšte do práce.
|
||||
- Urobte si repozitár bp2024 na git.kemt.fei.tuke.sk. Skripty dávajte na git.
|
||||
|
||||
|
||||
|
||||
Stretnutie 21.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísaný text na tému Seq2Seq.
|
||||
- Napísaný scraper pre získavanie dát z E shopu.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Skúste dotrénovať model ChatGPT. Využijeme kredity [Azure pre študentov](https://azureforeducation.microsoft.com/devtools) . Prihlásite sa ako študent do MAISU. Prejdite si [tutoriál](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/fine-tuning?tabs=turbo&pivots=programming-language-studio). Dávajte pozor, aby ste si nevyčerpali študentské kredity.
|
||||
- Zistite, ako funguje ChatGPT a ako ho dotrénovať. Prečítajte si niekoľko blogov a napíšte si poznámky. Použite aj odkazy na odborné články.
|
||||
- Zistite, ako vyhodnotiť dotrénovaný model. Ako funguje https://github.com/openai/evals ? Napíšte o tom poznánky.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Na generovanie odpovedí použijeme jednoduchý model T5-small v HF transformers.
|
||||
- Vytvorte trénovaciu databázu ktorá Vás zaujíma vo formáte ktorý je požadovaný. Druhá možnosť je využiť "Košické dáta".
|
||||
- Preštudujte si knihu https://d2l.ai/ a napíšte si z nej poznámky.
|
||||
- Zistite ako funguje model T5 a model BART a napíšte o tom správu na 3 strany. Odborné články vyhľadajte na Google Scholar. Do správy zapíšte ktoré odborné články ste prečítali.
|
||||
- Nainštalujte si prostredie Anaconda.
|
||||
- Nainštalujte si knižnicu HF transformers, prejdite si základný tutoriál.
|
||||
- Prejdite si tutoriál https://huggingface.co/docs/transformers/tasks/summarization
|
||||
|
||||
|
||||
# Bakalárska práca 2023
|
||||
|
||||
Téma: Oprava preklepov v slovenskom jazyku.
|
||||
|
||||
Súvisiaca dizertačná práca [Maroš Harahus](/students/2016/maros_harahus).
|
||||
|
||||
Cieľ:
|
||||
|
||||
- Naštudovať si problematiku opravy preklepov a napísať prehľad aktuálnych metód.
|
||||
- Vykonať jednoduchý experiment na automatickú opravu preklepov pomocou neurónovej siete.
|
||||
- Naprogramovať webovú demo aplikáciu.
|
||||
|
||||
|
||||
|
||||
Stretnutie 28.9.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalovaná Anaconda, problém s CUDA.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách z minulého roka.
|
||||
- Na inštalovanie Pytorch je potrebné nainštalovať najprv CUDa cez Anaconda.
|
||||
|
||||
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch
|
||||
|
||||
Nápad:
|
||||
|
||||
- Natrénovať chatbota pre pomoc zákazníkom. Aké trénovacie dáta a aký model použiť?
|
||||
|
||||
Stretnutie 29.9.2022
|
||||
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Prečítajte si článok "Survey of Automatic Spelling Correction" a napíšte z neho poznámky na cca 2 strany.
|
||||
- [ ] Prečítajte si článok Comparison of recurrent neural networks for slovak punctuation restoration.
|
||||
- [ ] Zistite, ako funguje neurónový strojový preklad. Prečítajte si niekoľko blogov a napíšte si poznámky na jednu stranu, uveďte aj odkazy na články. Kľúčové slovíčko je enkóder-dekóder architektúra.
|
||||
- [x] Nainštalujte si systém Anaconda.
|
||||
- [-] Nainštalujte si knižnicu Pytorch
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Nainštalujte si systém Fairseq
|
||||
- [ ] Prejdite si aspoň jeden fairseq tutoriál, napr. https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vybrať dáta a urobiť experiment.
|
||||
- naprogramovať demo.
|
||||
|
||||
|
||||
|
||||
|
@ -1,191 +0,0 @@
|
||||
---
|
||||
title: Eduard Matovka
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2024]
|
||||
tag: [dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2021
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
Spolupráca [Vladimír Ferko](/students/2021/vladimir_ferko)
|
||||
|
||||
Nadväzuje [Martin Jancura](/students/2017/martin_jancura)
|
||||
|
||||
Názov: Slovenská konverzačná umelá inteligencia
|
||||
|
||||
Predbežný cieľ:
|
||||
|
||||
Natrénovať jazykový model pre jednoduchú slovenskú konverzáciu.
|
||||
|
||||
Zadanie BP:
|
||||
|
||||
1. Vypracujte prehľad modelov a dátových množín pre generovanie slovenského jazyka.
|
||||
2. Opíšte metódy dotrénovania generatívnych jazykových modelov.
|
||||
3. Vyberte vhodnú dátovú množinu a dotrénujte model pre plnenie jednoduchých úloh podľa zadaných inštrukcií.
|
||||
4. Vyhodnoťte natrénovaný model, identifikujte jeho slabé miesta a navrhnite zlepšenia.
|
||||
|
||||
Predbežné úlohy:
|
||||
|
||||
- Oboznámte sa s existujúcimi modelmi pre generovanie slovenského jazyka.
|
||||
- Pripravte korpus diskusií v slovenskom jazyku. Vyberte vhodný zdroj diskusí a pripravte ho do podoby vhodnej na trénovanie neurónových sietí. Napr. modrý koník, modrá strecha, íné diskusie.
|
||||
- Natrénujte neurónovú sieť pre odpovedanie v diskusiách.
|
||||
- Vytvorte webové demo.
|
||||
- Napísať vedecký článok z BP
|
||||
|
||||
|
||||
Stretnutie 12.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyskúšaná LLAMA2 cez HF AutoTrain (SlovakAlpaca+). Je náročná na RAM. Zatiaľ to vyzerá horšie ako LLAMA1.
|
||||
- Práca na texte.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyskúšajte model Gemma. Vyskúšajte model RWKV (tento nie je Trannsformer, je to RNN) s množinou SlovakAlpaca. Výsledky experimentov (BLEU alebo ROUGE) dajte do tabuľky.
|
||||
- Pokračujte v písaní práce. Opíšte experimenty. Opíšte aj dataset ktorý používate. V teroetickej časti opíšte metódy neurónových sietí aj úlohu ktorú riešime. Ako súvisí s konverzáciou.
|
||||
- Pokračujte v otvorených úlohách: Zdrojáky dajte na git, dáta na školský server.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Ako zlepšíme veľké jazykové modely pre slovenčinu?
|
||||
|
||||
|
||||
Stretnutie 8.3.
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na evaluatore - Preštudované [LLAMA evaluator od NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/llama/evaluation.html).
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyskúšajte knižnicu https://github.com/EleutherAI/lm-evaluation-harness. Zistite, ako sa dá použiť s našimi vlastnými dátami.
|
||||
- Dajte skript na reddit na git.
|
||||
- Odovzdajte reddit dáta - dajte ich školský server (titan) a povedzte kde.
|
||||
- Pokračujte v otvorených úlohách.
|
||||
|
||||
Stretnutie:
|
||||
|
||||
Stav
|
||||
|
||||
- Prezentácia
|
||||
- Skript na trénovanie funguje na vlastnom 3060Ti 8GB, funguje aj LLAMA 7B 4bit
|
||||
- Natrénované na Instruct (SlovakAlpaca) datasete.
|
||||
- Tento dataset je doplnený o dáta z redditu - r/Slovak.
|
||||
- jedno trénovanie na malom datasete trvalo 28 hod. Trénovanie sa podarilo - zbežná kontrola je ok.
|
||||
- Prečistenie textov pre výskyt vulgarizmov.
|
||||
- Začal "študovať" evaluate.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vyhodnotiť natrénovaný model. Dáta, ktoré máte k dispozícii rozdeľte na trénovaciu a testovaciu časť. Môžeme rozdeliť Instruct dáta osobitne, diskusné dáta osobitne. Vzniknú nám dve testovacie množiny. Vyhoddnotte model pred trénovaním aj po trénovaní. Možné metriky sú: ROUGE a BLEU. Zistite si čo to je. Výsledky zapíšte do tabuľky. Pre urýchlenie trénovania môžete využiť TITAN.
|
||||
- Pokračovať v písaní práce.
|
||||
- Skripty dať na GIT. Na trénovanie aj na prípravu dát. Na git nedávajte veľké dáta.
|
||||
|
||||
|
||||
Zásobnk úloh:
|
||||
|
||||
- Nájsť ďalšie tréningové údaje pre model
|
||||
- Vytvoriť rozšírené webové rozhranie, ktoré sa bude pohodlnejšie používať
|
||||
- Optimalizovať algoritmy, aby sa zvýšila účinnosť
|
||||
- Skúste na Titane natrénovať nejaký "lepší" model LLAMA ako 7B-4bit.
|
||||
|
||||
|
||||
Stretnutie 7.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vytvorený skript pre trénovanie konverzácie LLAMA na datasete SlovakAlpaca na Google Colab. Využíva knižnicu HF, Na spustenie skripty nestačia zdroje na Google Colab. Skript využíva PEFT.
|
||||
- Vytvorený prístup na server Titan
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vytvorte si GIT repozitár na školskom GITe a dajte do neho Vaše skripty. Dáta tam nedávajte.
|
||||
- Skúste natrénovať LLama na servri Titan s SlovakAlpaca Datasetom.
|
||||
- Vyskúšajte natrénovať s datasetom sk-quad.
|
||||
- Zistite ako sa vyhodnocujú "instruct" generatívne modely. Preštudujte si [repozitár](https://github.com/tatsu-lab/alpaca_eval) a napíšte si poznámky.
|
||||
- Prečítajte si článok: AlpacaEval: An Automatic Evaluator of Instruction-following Models a urobte si poznámnky.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Natrénujte model SlovakT5 s Slovak Alpaca Datasetom.
|
||||
- Pozrite si skripty [text-generation](https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-generation} a [seq2seq](https://github.com/huggingface/transformers/blob/main/examples/pytorch/question-answering/run_seq2seq_qa.py)
|
||||
- Natrénovaný model je potrebné vyhodnotiť. Dátovú množinu si rozdelte na 2 časti. Metrika na vyhodnotenie je BLEU alebo Rouge.
|
||||
- Pokračujte na práci na vlastnom diskusnom datasete.
|
||||
|
||||
Stretnutie 23.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Písomná práca pokračuje.
|
||||
- Urobený skript na získanie dát. Skript využíva Praw na získanie dát z Reddit. Skript zatiaľ nepokrýva celú konverzáciu.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Dokončiť skript pre získavanie dát. Alebo nájsť dáta a skript ktorý funguje.
|
||||
- Skúste začať trénovanie generatívneho modelu pomocou dostupných dát. Pozrite si trénovací skript https://git.kemt.fei.tuke.sk/do867bc/DIPLOMOVA_PRACA a skúste ho rozbehať so svojimi dátami.
|
||||
- Pokračujte v písaní BP.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pozrite sa na projekt https://github.com/imartinez/privateGPT. Zisite ako to funguje. Vedeli by sme ho spustiť?
|
||||
|
||||
|
||||
Stretnutie 26.10.2023
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
- Podarilo sa spustiť pipeline pre generovanie pomocou Slovak T5 small.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Pokračovať v otvorených úlohách z minulého stretnutia.
|
||||
- [x] Prečítajte si DP O. Megela.
|
||||
- [x] V texte vysvetlite, čo je to model GPT, T5 a BART. Ku každému modelu nájdite *odborné články* a blogy, prečítajte si ich a napíšte si poznámky. Zapíšte si bibliografické údaje o článku. Odborný článok nájdete cez Google Scholar.
|
||||
|
||||
|
||||
Stretnutie 12.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Pripravený skript na preklad pomoocu HF transformers a Helsinki NLP modelov aj s TKInter rozhraním.
|
||||
- Písomná príprava podľa pokynov.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Dobrý model na generovanie Slov. jazyka je Slovak T5 Small.
|
||||
- [ ] Pokračujte v teoretickej príprave podľa otvorených úloh - prehľad generatívnych jazykových modelov.
|
||||
- [ ] Vytvorte dataset slovenských konverzácií. Vyberte zdroj dát, pomocou scrapera extrahujte dáta a upravte ich do vhodného formátu JSON. Stiahnite časť alebo celú webovú stránku do viacerých htmls súborov. Neposielajte veľa requestov za minútu. Dobrý nástorj na stianutie je wget. Napíšte skript, ktorý pomocu knižnice BeautifulSoup4 extrahuje diskusie a uloží ich do JSON.
|
||||
- [ ] Druhá možnosť je použiť dáta z Reditu alebo Faceboku, podľa skriptov V. Ferko.
|
||||
- [-] Generatívny model už natrénoval p. Omasta a p. Megela. Oboznámte sa s ich profilmi.
|
||||
|
||||
|
||||
Stretnutie 1.8.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Oboznámenie sa s jazykom Python
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v štúdiu jazyka Python. Pozrite si nástroje [zo stránky Python](/topics/python). Pozrite si zdroje [zo stránky NLP ](/topics/nlp).
|
||||
- Nainštalujte si prostredie Anaconda a knižnicu Huggingface transformers.
|
||||
- Prečítajte si knihu https://d2l.ai/
|
||||
- Zistite ako funguje neurónová sieť typu Transformer. https://jalammar.github.io/illustrated-transformer/
|
||||
- Zistite, čo je to generatívny jazykový model. Napíšte na 3 strany čo ste sa dozvedeli o generatívnych jazykových modeloch. Použite aj článok https://arxiv.org/abs/1910.13461
|
||||
- Napíšte jednoduchý skript na strojový preklad pomocou knižnice HF transformers.
|
||||
- Oboznámte sa s https://github.com/karpathy/minGPT
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zoberte korpus slovenských alebo iných diskusí a natrénujte neurónový model aby podľa neho odpovedal na zadané odázky.
|
||||
- Zistite, ako sa vyhodnucujú generatívne modely pre úlohu konverzácie.
|
||||
- Oboznámte sa s frameworkom https://python.langchain.com/docs/get_started/introduction.html
|
||||
|
||||
|
@ -1,379 +0,0 @@
|
||||
---
|
||||
title: Manohar Gowdru Shridhara
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [phd2024]
|
||||
tag: [lm,nlp,hatespeech]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Manohar Gowdru Shridhara
|
||||
|
||||
Beginning of the study: 2021
|
||||
|
||||
repository: https://git.kemt.fei.tuke.sk/mg240ia
|
||||
|
||||
## Disertation Thesis
|
||||
|
||||
in 2023/24
|
||||
|
||||
Hate Speech Detection
|
||||
|
||||
Goals:
|
||||
|
||||
- Publish and defend a minimal thesis
|
||||
- Write a dissertaion thesis
|
||||
- Publish 2 A-class journal papers
|
||||
|
||||
## Second year of PhD study
|
||||
|
||||
Goals:
|
||||
|
||||
- Publish and defend a minimal thesis. Minimal thesis should contain PhD thesis statements - scientific contributions.
|
||||
- Provide state-of-the-art overview.
|
||||
- Formulate dissertation theses (describe scientific contribution of the thesis).
|
||||
- Prepare to reach the scientific contribution.
|
||||
- Publish Q2/Q3 paper
|
||||
- Publish 1 school conference paper.
|
||||
- Publish 1 regular conference paper.
|
||||
- Prepare a demo for hate speech detection.
|
||||
|
||||
Meeting 5.10.
|
||||
|
||||
Status:
|
||||
|
||||
Studied python and ML:
|
||||
- Basics to Advanced python is completed
|
||||
- word2vec and word embedding examples are tried
|
||||
- Basic tools (tensorflow) on Machine Learning and task are completed
|
||||
- learning on ML and Deep learning libraries and fairseq RNN, SVM BERT code samples
|
||||
|
||||
Building the datasets memes based on Dravidian languages:
|
||||
- Collected base papers on Hate speech Multilanguage troll and not troll memes with low resource languages
|
||||
|
||||
Currected the survey paper and shared for review.
|
||||
|
||||
Worked on the baseline HS expriment.
|
||||
- https://git.kemt.fei.tuke.sk/mg240ia/Hate-Speech-Detector-Streamlit
|
||||
|
||||
Tasks:
|
||||
|
||||
- Publish a paper on SAMI 2023
|
||||
- publish a paper on a school conference, ask for deadline.
|
||||
|
||||
Possible paper topics:
|
||||
|
||||
- contine to work on the baseline HS experiment. Evaluate accuracy for the classifiers. This is a possible simple publication.
|
||||
- continue to work on the horsehead experiment. This is another possible paper.
|
||||
- continue work on the dravidian dataset. this in another possible papers.
|
||||
- continue to work on the survey paper. This is another possible Q3 paper.
|
||||
|
||||
|
||||
|
||||
|
||||
Meeting 6.9.2022
|
||||
|
||||
Status:
|
||||
|
||||
- Managed to move to Kosice.
|
||||
- "A systematic review of Hate Sppech" is in progress (cca 50 pages + 100 references).
|
||||
- "Horseheard" paper is in progress.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Gather feedback for "Systematic review",make new revisions according to the feedback, select a journal and publish.
|
||||
- Pick dataset, prepare several methods of HS and compare results.
|
||||
- Work on web demo of HS detection.
|
||||
- Continue working on "horseheard paper".
|
||||
- Read provided books.
|
||||
|
||||
|
||||
## First year of PhD study
|
||||
|
||||
Goals:
|
||||
|
||||
- [x] Provide state-of-the-art overview.
|
||||
- [x] Read and make notes from at least 100 scientific papers or books.
|
||||
- [ ] Publish at least 2 conference papers.
|
||||
- [x] Prepare for minimal thesis.
|
||||
|
||||
Resources:
|
||||
|
||||
- [Hate Speech Project Page](/topics/hatespeech)
|
||||
- https://hatespeechdata.com/
|
||||
- [Hate speech detection: Challenges and solutions](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6701757/)
|
||||
- [HateBase](https://hatebase.org/)
|
||||
- [Resources and benchmark corpora for hate speech detection: a systematic review]
|
||||
(https://link.springer.com/article/10.1007/s10579-020-09502-8)
|
||||
|
||||
Meeting 5.10.
|
||||
|
||||
Status:
|
||||
|
||||
Studied python and ML:
|
||||
- Basics to Advanced python is completed
|
||||
- word2vec and word embedding examples are tried
|
||||
- Basic tools (tensorflow) on Machine Learning and task are completed
|
||||
- learning on ML and Deep learning libraries and fairseq RNN, SVM BERT code samples
|
||||
|
||||
Building the datasets memes based on Dravidian languages:
|
||||
- Collected base papers on Hate speech Multilanguage troll and not troll memes with low resource languages
|
||||
|
||||
Currected the survey paper and shared for review.
|
||||
|
||||
Worked on a baseline HS experiment:
|
||||
|
||||
https://git.kemt.fei.tuke.sk/mg240ia/Hate-Speech-Detector-Streamlit
|
||||
|
||||
|
||||
Tasks:
|
||||
|
||||
- Publish a paper about the dataset on the SAMI 2023 Conference.
|
||||
- Publish a paper in school journal - ask about deadlilne.
|
||||
|
||||
|
||||
14.7:
|
||||
|
||||
Status:
|
||||
|
||||
- Worked on an horseheard implementation.
|
||||
- Picked a feasible dataset and method to start with: kannada dataset, tagging sentiment for movie reviews.
|
||||
- Worked on a paper.
|
||||
- Studied several papers,
|
||||
- started to work on a streamlit demo
|
||||
|
||||
Open tasks:
|
||||
|
||||
- Focus on making a baseline experiment for sentiment classification using classical methods, such as Transformers. PLEASE DO NOT AVOID !!!!
|
||||
- Prepare a survey paper for school journal or a conference. Use and correct the draft form the beginning. PLEASE DO NOT AVOID !!!! The goal is to identify the most current trends in methods for HS detection. Write in your own words what did you learn from the literature. Write what will be you contribution. Contribution is something new that we have to prove that is new and better.
|
||||
- Try to prepare an experiment with the selected dataset. https://git.kemt.fei.tuke.sk/mg240ia/Hate_Speech_IMAYFLY_and_HORSEHERD
|
||||
- For preparing a web application with demo, learn about streamlit. In progress: https://git.kemt.fei.tuke.sk/mg240ia/Hate-Speech-Detector-Streamlit
|
||||
|
||||
Read Papers :
|
||||
|
||||
- https://aclanthology.org/2020.peoples-1.6.pdf
|
||||
- https://aclanthology.org/2022.ltedi-1.14/
|
||||
- https://arxiv.org/abs/2108.03867
|
||||
- https://arxiv.org/pdf/2112.15417v4.pdf
|
||||
- https://arxiv.org/ftp/arxiv/papers/2202/2202.04725.pdf
|
||||
- https://github.com/manikandan-ravikiran/DOSA/blob/main/EACL_Final_Paper.pdf
|
||||
- https://aclanthology.org/2020.icon-main.13.pdf
|
||||
- http://ceur-ws.org/Vol-3159/T6-4.pdf
|
||||
- https://www.researchgate.net/publication/353819476_Hope_Speech_detection_in_under-resourced_Kannada_language
|
||||
- https://www.researchgate.net/publication/346964457_Creation_of_Corpus_and_analysis_in_Code-Mixed_Kannada-English_Twitter_data_for_Emotion_Prediction
|
||||
- https://www.semanticscholar.org/paper/Detecting-stance-in-kannada-social-media-code-mixed-SrinidhiSkanda-Kumar/f651d67211809f2036ac81c27e55d02bd061ed64
|
||||
- https://www.academia.edu/81920734/Findings_of_the_Sentiment_Analysis_of_Dravidian_Languages_in_Code_Mixed_Text
|
||||
- https://competitions.codalab.org/competitions/30642#learn_the_details
|
||||
- https://paperswithcode.com/paper/creation-of-corpus-and-analysis-in-code-mixed
|
||||
- https://paperswithcode.com/paper/hope-speech-detection-in-under-resourced#code
|
||||
|
||||
## Meeting 13.6.
|
||||
|
||||
- Implemented a Mayfly and Horse Heard Algorithms in Python and Matlab for HS datasets.
|
||||
- Written a draft of a paper.
|
||||
- Performed experiments on HS with Word2Vec, FastText, OneHot.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Implement open tasks from the previous meetings !!!!!!!!
|
||||
- Share Scripts with GIT and Drafts with Online Word or Docs !!!
|
||||
- try https://huggingface.co/cardiffnlp/twitter-roberta-base-hate, try to repeat the training and evaluation
|
||||
|
||||
|
||||
|
||||
## Meeting 24.5.
|
||||
|
||||
- shared colab notebook, with on-going implementation of mayfly algorithm for preprocessing in sentiment recognition in a twitter dataset.
|
||||
|
||||
Tasks:
|
||||
|
||||
- Implement open tasks from the previous meetings !!!
|
||||
- [ ] Focus on making a baseline experiment for sentiment classification using classcal methods, such as Transformers.
|
||||
- [x] Consider using pre-trained embeddings. FastText, word2vec, sentence-transformers, Labse, Laser,
|
||||
|
||||
Supplemental tasks:
|
||||
|
||||
- [x] Fininsh the mayfly implementation
|
||||
|
||||
|
||||
## Meeting 20.5.
|
||||
|
||||
- learned about Firefly / mayfly optimization algorithm.
|
||||
- read ten papers,
|
||||
- wrote 1 page abstract about possible system, based od DBN.
|
||||
|
||||
|
||||
## Meeting 25.4.
|
||||
|
||||
- Learned aboud deep learning lifecycle / evaluation, BERT, RoBERTa, GPT
|
||||
- Tried HF transformers, Spacy, NLTK, word embeddings, sentence transformers.
|
||||
- Set up a repo with notes: https://git.kemt.fei.tuke.sk/mg240ia
|
||||
|
||||
Tasks:
|
||||
|
||||
- [ ] Publish experiments into the repository.
|
||||
- [ ] Prepare a paper for publication in faculty proceedings http://eei.fei.tuke.sk/#!/
|
||||
- [ ] Send me draft in advance.
|
||||
|
||||
Suplemental tasks:
|
||||
|
||||
- [x] For presentation of the results, learn about https://wandb.ai/. This can dispplay results (learning curve, etc.)
|
||||
- [ ] For preparing a web aplication with demo, learn about streamlit.
|
||||
|
||||
## Meeting 12.4.
|
||||
|
||||
- Created repositories, empty so far.
|
||||
- Tried to replicate the results from "Emotion and sentiment analysis of tweets using BERT" paper and "Fine-Tuning BERT Based Approach for Multi-Class Sentiment Analysis on Twitter Emotion Data".
|
||||
- The experiments are based on BERT (which kind?), Tweet Emotion Intensity.
|
||||
- Prepared colab notebook with experiments.
|
||||
|
||||
Tasks:
|
||||
|
||||
- [ ] Finish experiments, upload source codes into git, provide a description of the experiments.
|
||||
- [ ] Try to improve the results - try different kind of BERT - roberta, electra, xl-net. Can "generative models" be used? (gpt, bart, t5). Can "sentence transformers be used" - labse, laser.
|
||||
- [x] Learn about "Sentence Transformers".
|
||||
- [ ] Summarize the results in the table, publish the table on git.
|
||||
- [-] Use Markdown for formatting. There is "Typora".
|
||||
- [-] Continue to improve the SCYR paper.
|
||||
- If you have some conference in mind, tell me.
|
||||
|
||||
## Meeting 25.3.22
|
||||
|
||||
- Learned about Transformers, BERT, LSTM and RNN.
|
||||
- Tried HuggingFace transformers library
|
||||
- Started Google Colab - executing sentiment analysis, hf transformers pipeline functions.
|
||||
- prepared datasets: twitter-roberta Datasets. Experiments a re riunnig, no results yet.
|
||||
- prepared a short note about nlp and neural networks.
|
||||
- still working on the SCYR paper
|
||||
|
||||
Tasks:
|
||||
|
||||
- [-] finish experiments about sentiment and present results.
|
||||
- [-] create a repository on git.kemt.fei.tuke.sk and upload your experiments, results and notes. Use you student creadentials.
|
||||
- [-] continue working on "SCYR" review paper, consider publishing it elswhere (the firs version got rejected).
|
||||
- [-] prepare an outline for another paper with sentiment classification.
|
||||
|
||||
## Meeting 10.3.22
|
||||
|
||||
- Improvement of the report.
|
||||
- Installed Transformers and Anaconda
|
||||
|
||||
Tasks:
|
||||
|
||||
- Try [this model](https://huggingface.co/cardiffnlp/twitter-roberta-base-sentiment) with your own text.
|
||||
- Learn how Transformers Neural Network Works. Learn how Roberta Model training works. Learn how BERT model finetuning works. Write a short memo about your findings and papers read on this topic.
|
||||
- Pick a dataset:
|
||||
- https://huggingface.co/datasets/sentiment140 (english)
|
||||
- https://www.clarin.si/repository/xmlui/handle/11356/1054 (multilingua)
|
||||
- https://huggingface.co/datasets/tamilmixsentiment (english tamil code switch)
|
||||
- Grab baseline BERT type model and try to finetune it for sentiment classification.
|
||||
- For finetuning and evaluation you can use this scrip https://github.com/huggingface/transformers/tree/master/examples/pytorch/text-classification
|
||||
- For finetuning you will need to install CUDA and Pytorch. It can work on CPU or NOT.
|
||||
- If you need GPU, use the school server idoc.fei.tuke.sk or google Colab.
|
||||
- Continue working on the paper.
|
||||
- Remind me about the SCYR conference payment.
|
||||
|
||||
|
||||
|
||||
## Meeting 21.2.22
|
||||
|
||||
- Written a report about HS detection (in progress)
|
||||
|
||||
Tasks:
|
||||
|
||||
- Repair the report (rewrite copied parts, make the paragrapsh be logically ordered, teoreticaly - formaly define the HS detection, analyze te datasets in detail - how do they work. what metric do they use).
|
||||
- Install Hugging Face Transformers and come through a tutorial
|
||||
|
||||
|
||||
|
||||
## Meeting 31.1.22
|
||||
|
||||
- Read some blogs about transformers
|
||||
- Installed and tied transformers
|
||||
- Worked on the review paper
|
||||
- Picked the Twitter Dataset on keggle
|
||||
- still selecting a method
|
||||
|
||||
Open tasks:
|
||||
|
||||
- Continue to work on the paper and share the paper with us.
|
||||
- Prepare som ideas for the common discussion about the project.
|
||||
- [ ] Try to prepare an experiment with the selected dataset.
|
||||
- [ ] You can use the school CUDA infrastructre (idoc.fei.tuke.sk).
|
||||
- [ ] Set up a repository for experiments, use the school git server git.kemt.fei.tuke.sk.
|
||||
- [x] Get ready to post a paper on the school PhD conference SCYR, deadline is in the middle of February http://scyr.kpi.fei.tuke.sk/.
|
||||
|
||||
|
||||
### Meeting 10.1.22
|
||||
|
||||
- Set up a git account https://github.com/ManoGS with script to prepare "twitter" dataset and "english" dataset for HS detection.
|
||||
- confgured laptop with (Anaconda) / PyCharm, pytorch, cuda gone throug some basic python tutorials.
|
||||
- Read some blogs how to use kaggle (dataset database).
|
||||
- tutorials on huggingface transformers - understanding sentiment analysis.
|
||||
|
||||
Open tasks:
|
||||
|
||||
- [x] Continue to work on the review - with datasets and methods (specified below).
|
||||
- [x] Read and make notes about transformers, neural language models and finentuning.
|
||||
- [ ] Pick feasible dataset and method to start with.
|
||||
- [ ] You can use the school CUDA infrastructre (idoc.fei.tuke.sk).
|
||||
- [ ] Set up a repository for experiments, use the school git server git.kemt.fei.tuke.sk.
|
||||
- [ ] Get ready to post a paper on the school PhD conference SCYR, deadline is in the middle of February http://scyr.kpi.fei.tuke.sk/.
|
||||
|
||||
#### Meeting 16.12.21
|
||||
|
||||
- A report was provided (through Teams).
|
||||
- Installed Anaconda and started s Transformers tutorial
|
||||
- Started Dive into python book
|
||||
|
||||
Task:
|
||||
|
||||
- Report: Create a detailed list of available datasets for HS.
|
||||
- Report: Create a detailed description of the state of the art approaches for HS detection.
|
||||
- Practical: Continue with open tasks below. (pick datasetm, perform classification,evaluate the experiment.)
|
||||
|
||||
|
||||
#### Meeting 10.12.21
|
||||
|
||||
No report (just draft) was provided so far.
|
||||
|
||||
1. Read papers from below and make notes what you have learned fro the papers. For each note make a bibliographic citation. Write down authors of the paper, name paper of the paper, year, publisher and other important information.
|
||||
When you find out something, make a reference with a number to that paper.
|
||||
You can use a bibliografic manager software. Mendeley, Endnote, Jabref.
|
||||
2. From the papers find out answers to the questions below.
|
||||
3. Pick a hatespeech dataset.
|
||||
4. Pick an approach and Python library for HS classification.
|
||||
5. Create a [GIT](https://git.kemt.fei.tuke.sk) repository and share your experiment files. Do not commit data files, just links how to download the files.
|
||||
6. Perform and evaluate experiments.
|
||||
|
||||
#### Meeting 10.11.21
|
||||
|
||||
#### First tasks
|
||||
|
||||
Prepare a report where you will explain:
|
||||
|
||||
- what is hate speech detection,
|
||||
- where and why you can use hate-speech detection,
|
||||
- what are state-of-the-art methods for hate speech detection,
|
||||
- how can you evaluate a hate-speech detection system,
|
||||
- what datasets for hate-speech detection are available,
|
||||
|
||||
The report should properly cite scientific bibliographical sources.
|
||||
Use a bibliography manager software, such as Mendeley.
|
||||
|
||||
Create a [VPN connection](https://uvt.tuke.sk/wps/portal/uv/sluzby/vzdialeny-pristup-vpn) to the university network to have access to the scientific databses. Use scientific indexes to discover literature:
|
||||
|
||||
- [Scopus](https://www.scopus.com/) (available from TUKE VPN)
|
||||
- [Scholar](httyps://scholar.google.com)
|
||||
|
||||
Your review can start with:
|
||||
|
||||
- [Hate speech detection: Challenges and solutions](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6701757/)
|
||||
- [HateBase](https://hatebase.org/)
|
||||
- [Resources and benchmark corpora for hate speech detection: a systematic review](https://link.springer.com/article/10.1007/s10579-020-09502-8)
|
||||
|
||||
Get to know the Python programming language
|
||||
|
||||
- Read [Dive into Python](https://diveintopython3.net/)
|
||||
- Install [Anaconda](https://www.anaconda.com/)
|
||||
- Try [HuggingFace Transformers library]( https://huggingface.co/transformers/quicktour.html)
|
||||
|
@ -1,288 +0,0 @@
|
||||
---
|
||||
title: Martin Šarišský
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2023,bp2024,dp2026]
|
||||
tag: [chatbot,rasa,dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2021
|
||||
|
||||
# Diplomová praca 2026
|
||||
|
||||
Ciele:
|
||||
|
||||
- Zlepšiť generovanie odpovedí pre úlohy vyžadujúce viac krokov.
|
||||
|
||||
Príprava:
|
||||
|
||||
- Zopakujte si Python.
|
||||
- Vyskúšajte si prácu s veľkými jazykovými modelmi. Nainštalujte si oollama.
|
||||
- Oboznámte sa s framewworkom LangChain.
|
||||
- pozrite si LangChain Transformers Agents.
|
||||
- Ako funguje FunctionCalling - AgentTools?.
|
||||
- Zistite ako funguje REACT (Reasoning and Acting) Agent - nájdite článok na Scholar.
|
||||
- Zistite ako funguje dotrénovnaie veľkých jazykových modelov. Zistite čo je to PEFT (LORA, QLORA) a čo je to kvantizácia. Zisite čo je to "few shot" prompting.
|
||||
- Čo je to inferenčný server. Zistite čo je to VLLM, na čo je to dobré. Pozri si LocalAI.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
|
||||
[Git repo](https://git.kemt.fei.tuke.sk/ms058bd/vp2023)
|
||||
|
||||
Súvisiace materiály:
|
||||
|
||||
- [Projektová stránka](/topics/chatbot)
|
||||
- [Repozitár s webovou aplikáciou](https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website)
|
||||
- [Repozitár s chatbotom](https://git.kemt.fei.tuke.sk/sh662er/Rasa)
|
||||
- Bakalárska práca [Samuel Horáni](/students/2019/samuel_horani)
|
||||
- video kanál s [RASA tutoriálom](https://www.youtube.com/watch?v=rlAQWbhwqLA&list=PL75e0qA87dlHQny7z43NduZHPo6qd-cRc)
|
||||
- Slovenský Spacy model https://github.com/hladek/spacy-skmodel
|
||||
|
||||
Návrh na zadanie BP:
|
||||
|
||||
Dialógový systém pre zodpovedanie najčastejšie kladených otázok
|
||||
|
||||
1. Vypracujte prehľad metód dialógových systémov s použitím pravidiel a jazykových modelov.
|
||||
2. Navrhnite a overte bázu pravidiel pre dialógový systém pre pomoc pri komunikácii občana s mestským magistrátom.
|
||||
3. Vytvorte webové demo pre chatbota.
|
||||
4. Identifikujte slabé miesta a navrhnite zlepšenia dialógového systému.
|
||||
|
||||
|
||||
|
||||
Nápady na balakársku prácu:
|
||||
|
||||
- chatbot pre komunikáciu s mestom
|
||||
- vytvorenie NLU databázy.
|
||||
- Urobenie web rozhrania.
|
||||
- dá sa to prepojiť aj na QA systém.
|
||||
|
||||
Stretnutie 23.02.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na text aj na pravidlách.
|
||||
|
||||
Stretnutie 9.2.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobené nové testovacie scenáre a vyhodnotenie modelu.
|
||||
- Pridané pravidlá pre FAQ a chitchat.
|
||||
- Vyskúšané PrivateGPT.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vytvorte Dockerfile na nasadenie aplikácie.
|
||||
- Podľa výsledkov vyhodnotenia zlepšite bázu pravidiel.
|
||||
- Pracujte na texte
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Ďalej skúšajte PrivateGPT. Zmente "prompt" pre vyhľadávanie. Prompt zmente na slovenský. Napr. "Si asistent pre vyhľadávanie a hovoríš po slovensky." Model nastavte na LLAMA 7B 4bit. Na embedingy skúste SlovakBERT-MNLR.
|
||||
|
||||
|
||||
Stretnutie 4.1.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Splnené úlohy z minulého stretnutia.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vypracujte prezentáciu s výsledkami zo semestra.
|
||||
- Pokračujte v písaní.
|
||||
- Vytvorte nové testovacie scenáre, vyhodnotte model a doplnte výslekdy do práce.
|
||||
- Do chatbota doplňte pravidlá pre [FAQ](https://rasa.com/docs/rasa/chitchat-faqs/)
|
||||
- Zdrojové kódy dajte na GIT.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Rozbehať PrivateGPT a integrovať ho do RASA.
|
||||
|
||||
Stretnutie 8.12.
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na databáze pravidiel pre dialóg. Pravidlá obsahujú najčastejšie otázky týkajúce sa digitálnych služieb.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vedúci finalizuje zadanie.
|
||||
- [x] Pokračujte v písomnej práci.
|
||||
- [x] Pokračujte v tvorbe webovej aplikácie - integrujte pravidlá od kolegu Ščišľaka-
|
||||
- [x] Zistite ako pracujú veľké jazykové modely a napíšte si poznánmky.
|
||||
- [x] Zistite, čo je to "Retrieval Augumented Generation", ako to funguje a na čo je to dobré.
|
||||
- [x] Oboznámte sa so softvérom PrivateGPT. Zistite ako funguje, napíšte is poznámky-
|
||||
- [x] Pridajte kapitolu o Získavaníí dokumentov pre použitie v dialógových systémoch.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [-] Na školský server alebo na vlastnú M1 nainštalujte PrivateGPT.
|
||||
|
||||
|
||||
Stretnutie 10.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Web app funguje. Frontend je HTML, CSS, Javascrip - axios.
|
||||
- Zdrojáky sú na https://git.kemt.fei.tuke.sk/ms058bd/vp2023.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte
|
||||
- Vedúci sa pozrie na build - Dockerfile.
|
||||
|
||||
Stretnutie 27.10.2023
|
||||
|
||||
- Pokračuje písomná príprava.
|
||||
- Pokračuje práca na stránke.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách.
|
||||
- Preskúmajte možnosti vytvorenia vlastného frontentu pre RASA chatbota. Zistite viaceré alternatívy.
|
||||
|
||||
Stretnutie 6.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Dockerfile in progress
|
||||
- Teoretická a písomná príprava in progress
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte
|
||||
|
||||
|
||||
Stretnutie 29.9.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Ten istý ako pri minulom stretnutí, kódy sú na KEMT GITe.
|
||||
- Momentálne vie chatbot poskytnúť kontakt na človeka, ktorý sa zaoberá danou agendou.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Dokončiť demo do podoby vhodnej na nasadenie. Dokončiť Dockerfile, dokončiť pravidlá. Vedúci pomôže so zverejnením.
|
||||
- [-] Zistite, akým spôsobom sa vyhodnocuje-testuje chatbot. Napíšte, ktoré scenáre chatbota sú implementované a ku nim napíšte "testovacie dialógy".
|
||||
- [-] Začnite písať baklársku prácu a pripravte "draft". V práci vysvetlite, čo je to NLU, ako sa robí. Ako príklad uveďte Vášho četbota. Do práce uvedte aj priebeh a výsledky testovania.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Je potrebné aby chatbot sa vedel "učiť", resp. upraviť svoje pravidlá podľa meniacich sa skutočností. Je potrebné vymyslieť webovú aplikáciu pre úpravu bázy pravidiel aj zamestnancami magistrátu.
|
||||
- Identifikuje, aké ďalšie úlohy by mohol riešiť chatbot.
|
||||
- Zlepšite chatbota aby spolupracoval s kognitívnym vyhľadávaním, práca [Kristián Sopkovič](/students/2019/kristian_sopkovic).
|
||||
|
||||
|
||||
## Vedecký projekt 2023
|
||||
|
||||
|
||||
Ciele:
|
||||
|
||||
- Napísať krátku písomnú správu
|
||||
- Oboznámiť sa s technológiou RASA a so súvisiacimi technológiami NLP
|
||||
- Vytvoriť jednoduchého chatbota ktorý bude komunikovať po slovensky.
|
||||
|
||||
Stretnutie 5.5
|
||||
|
||||
Stav:
|
||||
|
||||
- Draft písomnej správy
|
||||
- Začiatok práce s Dockerfile
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Prepracujte "blog" na uverejnenie na stránke.
|
||||
- [-] Zlepšiť bázu pravidiel chatbota a dať na git
|
||||
- [-] Identifikovať slabé miesta, porozmýšľať ako by sa to dalo zlepšiť.
|
||||
|
||||
|
||||
|
||||
Stretnutie 21.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Chatbot funguje pre vybrané časti agendy mesta
|
||||
- Funguje aj lokálne demo pomocou RasaWebWidget. Používa sa Websocket
|
||||
- Rozpracovaný písomný report
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Dať zdrojové kódy na GIT
|
||||
- [-] Dokončiť písomnú správu. Cieľ je mať blog, ktorý oboznámi študenta o možnostiach a práci s RASA.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [-] Dorobiť Dockerfile.
|
||||
- [ ] Zverejniť demo na K8s (pre vedúceho).
|
||||
- [ ] Zverejniť blog vo formáte Markdown.
|
||||
- [-] Zlepšiť bázu pravidiel chatbota.
|
||||
- [-] Identifikovať slabé miesta, porozmýšľať ako by sa to dalo zlepšiť.
|
||||
|
||||
Stretnutie 12.4.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Robot komunikuje po slovensky pre jedoduchú úlohu súvisiacu s esluzby mesta Košice.
|
||||
- Zdrojáky sú na gite https://git.kemt.fei.tuke.sk/ms058bd/vp2023
|
||||
- Napísaný krátky report, draft
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zlepšiť štylistiku reportu.
|
||||
- Pripraviť jednoduchú webovú aplikáciu na demo s chatbotom. Inšpirujte sa prácou S. Horáni. alebo použite Flask, Streamlit alebo Rasa ChatWidget https://rasa.com/docs/rasa/connectors/your-own-website/ .
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zlepšite bázu pravidiel chatbota pre esluzby.
|
||||
- Zistenie kontaktnej osoby pre agendu.
|
||||
- Najčastejšie otázky.
|
||||
- Riešenie problémov.
|
||||
- Vymyslieť postup ktorý by umožnil pretrénovať chatbota aj pracovníkom magistrátu. Editovanie pravidiel vo webovej aplikácii.
|
||||
|
||||
Stretnutie 27.3.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Chatbot funguje po anglicky cez Anaconda.
|
||||
- Napísané niektoré reporty.
|
||||
- Pripravené niektoré testovacie konverzácie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Pozrite si stránku https://www.esluzbykosice.sk/, navrhnite chatbbota ktorý bude informovať o dostupných e-službách pre košický magistrát.
|
||||
- [x] Zdrojáky dajte na KEMT GIT, repozitár nazvite vp2023
|
||||
- [-] Pokračujte v otvorených úlohách.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Preštudujte si ako sa vyhodnocuje RASA chatbot
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Nainštalujte a oboznámte sa s RASA frameworkom. Pri inštalácii využite systém Anaconda.
|
||||
- [x] Vyberte a prejdite najmenej jeden tutoriál pre prácu s RASA frameworkom.
|
||||
- [x] Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
- [x] Vytvorte chatbota, ktorý sa bude vedieť predstaviť a odpovedať koľko je hodín.
|
||||
- [x] Zistite čo je to NLU a napíšte o tom krátku správu.
|
||||
- [-] Prečítajte si Horániho BP.
|
||||
- [-] Zistite ako pracuje RASA a napíšte o tom krátku správu. Zistite, aké neurónové siete sa tam používajú.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Rozbehajte Horániho chatbota.
|
||||
- Pridajte podporu slovenčiny do Vášho chatbota.
|
||||
|
||||
|
||||
|
||||
|
@ -1,215 +0,0 @@
|
||||
---
|
||||
title: Matej Ščišľak
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2024, dp2026]
|
||||
tag: [chatbot,rasa,dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2021
|
||||
|
||||
Ciele:
|
||||
|
||||
- Zlepšiť generovanie odpovedí pre úlohy vyžadujúce viac krokov.
|
||||
|
||||
Príprava:
|
||||
|
||||
- Zopakujte si Python.
|
||||
- Vyskúšajte si prácu s veľkými jazykovými modelmi. Nainštalujte si oollama.
|
||||
- Oboznámte sa s framewworkom LangChain.
|
||||
- pozrite si LangChain Transformers Agents.
|
||||
- Ako funguje FunctionCalling - AgentTools?.
|
||||
- Zistite ako funguje REACT (Reasoning and Acting) Agent - nájdite článok na Scholar.
|
||||
- Zistite ako funguje dotrénovnaie veľkých jazykových modelov. Zistite čo je to PEFT (LORA, QLORA) a čo je to kvantizácia. Zisite čo je to "few shot" prompting.
|
||||
- Čo je to inferenčný server. Zistite čo je to VLLM, na čo je to dobré. Pozri si LocalAI.
|
||||
|
||||
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
|
||||
Názov: Dialógový systém pre potreby samosprávy
|
||||
|
||||
|
||||
Zadanie:
|
||||
|
||||
1. Vypracujte teroretický úvod do modelovania dialógu a povedzte aké metódy sa aktuálne používajú.
|
||||
2. Navrhnite a vytvorte dialógový systém v slovenskom jazyku pre úlohu komunikácie občana s mestom.
|
||||
3. Vykonajte sadu experimentov a dialógovým systémom.
|
||||
4. Vyhodnoťte experimenty a identifikujte miesta pre zlepšenie.
|
||||
|
||||
|
||||
Súvisiace materiály:
|
||||
|
||||
- [Projektová stránka](/topics/chatbot)
|
||||
|
||||
Spolupráca:
|
||||
|
||||
- [Martin Šarišský](/students/2021/martin_sarissky)
|
||||
|
||||
Stretnutie 23.2:
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na pravidlách aj texte
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vypracujte pravidlá pre rozpoznanie neznámeho zámeru. Cieľ je aby chatbot vedel upozorniť na agendu ktorú nemá implementovanú a vedel ponúknuť čo vie.
|
||||
|
||||
Stretnutie 16.2.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Pridanie "domain" pravidiel pre "bežného" používateľa
|
||||
- Pridané pravidlá pre slovenské mená a ulice.
|
||||
- Zlepšenie rozpoznávanie IČO a rodné číslo.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pracujte na zlepšení rozpoznávania firiem, priezvisk. Firma sa môže volač hocijak, Je tam možnosť využiť obchodný register.
|
||||
- pridajte možnosť využiť chatgpt alebo inú službu na generovanie odpoveďe.
|
||||
- Pridajte testovacie scenáre vytvorené 3. neznalým človekom a vyhodnotte chatbota. Chceme vedieť, aký dobrý je pri rozpoznávaní intentov, a ktoré intenty a entity sú problematické. Určite ako to zlepšiť.
|
||||
- Stále píšte. Zlepšite časť o rozpoznávaní intentov a pomentovaných entít.
|
||||
|
||||
Stretnutie 9.2.
|
||||
|
||||
Stav:
|
||||
|
||||
- Zlepšený proces "rozpoznávania" druhu formulára - chatbot sa spýta, aký formulár treba vyplniť.
|
||||
- Pri vypĺnaní nastal problém s rozpoznávaním mien a adries.
|
||||
- Pridané testovacie "stories".
|
||||
- Je problém keď pri firme sa vyplňa formulára niečo iné ako pri fyzickej osobe.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zlepšite chatbota podľa výsledkov vyhodnotenia.
|
||||
- Pridajte zdrojáky na GIT.
|
||||
- Preskúmajte možnosti využitia ChatGPT
|
||||
- Zlepšite rozpoznávanie pomenovaných entít - mená, priezviská, názvy firiem. Najprv vyskúšajte riešenie cez RASA.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšajte trénovanie modelu pomocou spacy. spacy-skmodel na githube.
|
||||
- Vyskúšajte možnosť zlepšenia pomenovaných entít cez model Spacy. Pravidlový rozpoznávač alebo alebo rozpoznávač pomocou neurónovej siete.
|
||||
- Vedúci má niekde dáta.
|
||||
|
||||
|
||||
|
||||
Stretnutie 9.1
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozšírenie možnosti formulárov.
|
||||
- Práca na písomnej časti.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zlepšite Vášho chatbota pomocou ChatGPT. So službou viete komunikovať pomocou Python API a "api tokenu". LLM je možné dotrénovať na vlastných dátach. Alebo LLM vie riešiť špecifickú úlohu ktorú definujete pomocou "promptu".
|
||||
- Pokračujte v písomnej časti.
|
||||
- Pripravte testovacie scenáre pre Vašu sadu pravidiel a vyhodnotte pomocou nej chatbota. Jedna množina na vyhodnotenie bude Vaša a druhá množina kolegu Šarišského.
|
||||
- Pripravte prezentáciu a pošlite texty BP na spätnú väzbu, dajte kódy na GIT.
|
||||
- Upravte kódy tak, aby ich vedúci vedel ľahko vyskúšať pomocou Docker.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zistite čo je to LangChain a na čo sa používa. Nainštalujte si to a vyskúšajte.
|
||||
|
||||
|
||||
|
||||
Stretnutie 8.12.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyriešený problem týkajúci sa SLOTov. Bola potrebná osobnitná funkcia submit.
|
||||
- Práca na písomenj časti.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Vedúci by mal finalizovať zadanie.
|
||||
- [x] Integrovať Vašu bázu pravidiel s kolegom Šarišským. Spraviť z toho jedného bota.
|
||||
- [x] Zistite si ako pracujú veľké jazykové modely LLM a napíšte si o tom poznámky.
|
||||
- [x] Preštudujte si, ako integrovať veľké jazykové modely s RASA. Veľké jazykové modely sú ChatGPT alebo BARD. Na ChatGPT máte k dispozícici študentské kredity cez Azure Dev Tools for Teaching.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Zlepšite Vášho chatbota pomocou ChatGPT. So službou viete komunikovať pomocou Python API a "api tokenu". LLM je možné dotrénovať na vlastných dátach. Alebo LLM vie riešiť špecifickú úlohu ktorú definujete pomocou "promptu".
|
||||
|
||||
Stretnutie 14.11.
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyriešený problém s Policy - problém bol asi na strane Stories.
|
||||
- Nastal problém s rozpoznávaním entít. Podarilo sa naštartovať Form, nepodarilo sa rozpoznať slot. Nevie rozpoznať typ priznania za psa.
|
||||
|
||||
|
||||
Stretnutie 3.11.
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na "Forms" v RASA. Problém s "Policy" konfiguráciou bol skonzultovaný.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Riešte problém s Policy pomocou "debug" výpisov.
|
||||
- Píšte BP. Opíšte ako funguje NLU a ako funguje rozhodovanie pomcou pravidiel v RASA.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Naštudujte si čo je to Reinforcement learning a ako to súvisí s chatbotmi. https://www.telusinternational.com/insights/ai-data/article/reinforcement-learning-primer . Napíšte si o tom aj poznámky.
|
||||
|
||||
|
||||
Stretnutie 27.10
|
||||
|
||||
Stav:
|
||||
|
||||
- Pokračuje písomná príprava a práca na kódoch chatbota.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách, aj zo zásobníka.
|
||||
- Študujte generatívne jazykové modely.
|
||||
|
||||
Zásobník:
|
||||
|
||||
- Integrujeme bázu pravidiel oboch chatbotov.
|
||||
|
||||
Stretnutie 6.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Vypracované úlohy z minulého stretnutia
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nadviažte na prácu p. Šarišského a navrhnite a implementujte chatbota na riešenie vybraných a analyzovaných úloh. Chatbot by mal vedieť identifikovať problém, mal by vedieť či je schopný ho riešiť. Potom by mal naštartovať postup pre riešenie daného problému.
|
||||
- Naštudujte si RASA Forms aby ste vedeli pomôcť človeku vyplniť formulár.
|
||||
- Vytvorte pomôcku pre vyplnenie formulára s pomocou chatbota a RASA Forms pre viacero problémov. Vyberte jednoduché problémy s malým počtom "slotov".
|
||||
- pravidlá pre chatbota uložte na GIT repozitár s názvom bp2023. Môžete prístup zdieľať s kolegom.
|
||||
- Prečítajte si najnovšie články o chatbotoch vo verejnej správe "chatbot citizen services". Zistite aké metódy používajú a napíšte o tom do písomnej práce.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- naštudujte si ako sa vyhodnocuje RASA chatbot.
|
||||
- napíšte testovacie konverzácie pre Vaše pravidlá.
|
||||
- Zistite ako pracuje generatívny jazykový model (GPT, T5, LLAMA) a ako sa dá využiť v dialógových systémoch. Sú založené na neurónových sieťach typu Transformer.
|
||||
|
||||
Stretnutie 28.9.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalovaná RASA
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Nainštalujte si Anaconda. Do Anaconda prostredia si nainštalujte RASA.
|
||||
- [-] Pokračujte v štúdiu RASA-Python. Na servri scholar si vyhľadajte termín "natural language understanding".
|
||||
Prečítajte si niekoľko vedeckých článkov alebo kníh na túto tému a napíšte si poznámky.
|
||||
- [x] Pozrite si stránku https://www.esluzbykosice.sk/. Vyberte niekoľko vzorových problémov a ku nim implementuje asistenta na ich riešenie. Napríklad, občan chce zaplatiť za odvoz odpadu a nevie čo má robiť. Alebo občan si kúpil psa a nevie aké má povinnosti.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte pomôcku pre vyplnenie formulára s pomocou chatbota.
|
||||
|
@ -1,127 +0,0 @@
|
||||
---
|
||||
title: Nikita Bodnar
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2023,bp2024,bp2025]
|
||||
tag: [chatbot,rasa,dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2021
|
||||
|
||||
# Bakalárska práca 2025
|
||||
Stretnutie 17.12.
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na skriptoch, nainštalovaný Pytorch, transformers, fairseq,
|
||||
- Skript na prípravu dát - spustený.
|
||||
- chyba pri spustení trénovacieho skriptu - chýba executable.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- ! Začnite pracovať na písomnej časti.
|
||||
- Nainštalujte si Marian NMT.
|
||||
- Vypýtajte si Marian Model na opravu od Ing. Maroš Harahus.
|
||||
- Vyskúšajte ho a vyhodnotte pomocou metriky WER. Zistite si čo je to WER, napíšte to do práce
|
||||
- Nainštalujte si model ByT5 z knižnice HF Transformers. Zistie čo to je, napíšte to do práce.
|
||||
- Vyskúšajte model ByT5 na korekciu textu. Vyhodnoote ho.
|
||||
- Vyskúšajte model SlovakBERT na detekciu preklepov. Model určuje pravdepodobnosť každého slova vo vete. Model vie doplniť chýbajúce slovo, alebo najpravdepodobnejšie slovo. Zistite že ako, napíšte to do práce.
|
||||
- Do práce doplnte odkazy na vedecké články.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Natrénujte model.
|
||||
|
||||
Stav:
|
||||
|
||||
- Nainštalovaný MarianMT a rozbehaný preklad z nemčiny do angličtiny.
|
||||
- Textová časť je neuspokojivá.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Naučte sa trénovať systém pre strojový preklad.
|
||||
- Vytvorte korpus pre trénovanie systému na opravu textu. Korpus vytvoríte z webového textu (mc4-sk) do ktorého programovo pridáte chyby. Text korpusu mc4 nájdete na HuggingFace Hube. Knižnica datasets slúži na prácu s korpusmi. Korpus musí byť "dostatočne" (viac ako 1GB) veľký.
|
||||
- Natrénujte a vyhodnotte model.
|
||||
- Píšte BP do šablóny podľa pokynov. Prečítajte si odborné články a používajte odkazy. Odborné články nájdete na Google Scholar.
|
||||
|
||||
|
||||
|
||||
# Bakalárska práca 2024
|
||||
|
||||
Korekcia textu pomocou neurónových sietí
|
||||
|
||||
Spolupráca: Maroš Harahus, Andrii Pervashov
|
||||
|
||||
Zadanie BP:
|
||||
|
||||
1. Vypracujte prehľad existujúcich systémov pre neurónový strojový preklad.
|
||||
2. Definujte úlohu korekcie textu a vysvetlite, ako je možné ju riešiť pomocou systému pre strojový preklad.
|
||||
3. Vyberte a pripravte dáta do vhodnej podoby a aplikujte existujúci model pre strojový preklad na opravu textu vo vybranej úlohe.
|
||||
4. Číselne a slovne vyhodnoťte model na vybranej úlohe. Identifikujte jeho slabé miesta a navrhnite zlepšenia.
|
||||
|
||||
|
||||
Stretnutie 24.1.2024:
|
||||
|
||||
Stav:
|
||||
|
||||
- Nie je posun.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Natrénujte jednoduchý ľubovoľný model pre strojový preklad pomocou Marian NMT. Skripty su v repozitári bert-train.
|
||||
- Natrénujte model pre opravu korekcie na slovenskom texte a vyhodnoote ho.
|
||||
- Pokračujte v písaní bakalárskej práce.
|
||||
|
||||
|
||||
Stretnutie 23.11.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Prečítaný článok o Spelling a urobené poznámky
|
||||
- Ostatné úlohy: in progress. Treba pridať!!!
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Vedúcim bol odovzdaný funkčný Marian na servri IDOC. Aj model pre generovanie-opravu znakov. Oboznámte sa so systémov. Spustite model pre preklad. Spustite trénovanie.
|
||||
- Vyhodnotte presnosť tohoto systému. Presnosť sa hodnotí metrikou WER, CER. Skripty nájdete v bert-train repozitári.
|
||||
- Zlepšite tento systém.
|
||||
- V texte vysvetlite, ako funguje model typu Transformer. Vysvetlite, ako funguje Marian NMT. Aké neurónové siete používa? Uvedte aj odkazy na odborné články.
|
||||
|
||||
|
||||
Stretnutie 6.10.
|
||||
|
||||
Stav:
|
||||
|
||||
- Štúdium Python a neurónové siete.
|
||||
|
||||
Stretnutie 3.7.
|
||||
|
||||
Stav:
|
||||
|
||||
Existuje model Marian NMT rep korekciu.
|
||||
|
||||
|
||||
Úloha:
|
||||
|
||||
- [-] Zistite ako funguje neurónová sieť typu Transformer.
|
||||
- [x] Nainštalujte si systém Anaconda a prejdite si knihu Dive into Pyhton 3.
|
||||
- [ ] Zistite ako funguje strojový preklad.
|
||||
- [x] Prečítajte si článok Hládek: "Survey of Automatic Spelling Correction" a *urobte si poznámky*.
|
||||
- [-] Prečítajte si knihu https://d2l.ai/
|
||||
- [ ] Vaše zistenia zapíšte do textového súboru. Pridajte odkazy na zdroje - odborné články a blogy.
|
||||
- [ ] Oboznámiť sa zo systémom Marian NMT. Nainštalujte si to a vyskúšajte nejaké demo na strojový preklad.
|
||||
- [ ] Získajte prístup na školský server idoc.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vyskúšaje natrénovať model Marian NMT podľa návodu na stránke.
|
||||
- Získajte od vedúceho skripty pre trénovanie Marian NMT na úlohu korekcie textu.
|
||||
- Podľa nich natrénujte a vyhodnotte model.
|
||||
- Zistite s akými parametrami model pracuje najlepšie. Skúste model vylepšiť.
|
||||
- Vypracujte webové demo.
|
||||
|
@ -1,210 +0,0 @@
|
||||
---
|
||||
title: Vladimír Ferko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2024]
|
||||
tag: [dialog,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2021
|
||||
|
||||
študent KPI, pracovník DTSS
|
||||
|
||||
## Bakalárska práca 2024
|
||||
|
||||
- [Projekt HateSpeech](/topics/hatespeech)
|
||||
- [Pokyny KPI ku záverečným prácam](https://kpi.fei.tuke.sk/sk/zaverecne-prace)
|
||||
- Spolupráca: [Eduard Matovka](/students/2021/eduard_matovka)
|
||||
- Nadväzuje [Martin Jancura](/students/2017/martin_jancura)
|
||||
|
||||
Názov: Anotácia a vyhodnotenie slovenskej databázy nenávistnej reči
|
||||
|
||||
1. Napíšte prehľad existujúcich dátových zdrojov pre úlohu rozpoznávania sentimentu a nenávistnej reči v diskusiách.
|
||||
2. Pripravte korpus diskusií v slovenskom jazyku. Vyberte vhodný zdroj diskusí a pripravte ho do podoby vhodnej na anotáciu.
|
||||
3. Modifikujte existujúcu aplikáciu pre úlohu anotácie nenávistnej reči v diskusiách. Napíšte návod pre anotáciu.
|
||||
4. Anotujte čo najväčšie množstvo dát pre výskyt nenávistnej reči.
|
||||
5. Štatisticky analyzujte výskyt anotovanej nenávistnej reči v diskusiách.
|
||||
|
||||
|
||||
Predbežné zadanie - úlohy na semester:
|
||||
|
||||
- Vytvoriť slovenskú databázu diskusií. Databáza by mala byť prezentovateľná na konferencii a použiteľná pre rozpoznávanie nenávistnej reči.
|
||||
- zobrazte štatistiky získaných dát.
|
||||
- Anotovať sentiment diskusných príspevkov.
|
||||
- Možno anotovať nenávistnú reč. Toto konzultovať s p. Sokolovou.
|
||||
- Z nazbieraných dát zostavte a vyhodnoťte model
|
||||
|
||||
Stretnutie 10.5.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Natrénovaný prvý model slovakbert
|
||||
- Práca na mdeberta
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Konvertujte úlohu na binárnu klasifikáciu.
|
||||
- Zlepšite fitrovanie datasetu.
|
||||
- Natrénujte a vyhodnoťte nové modely pre viac filtrované datasety. Do práce dajte zapíšte výsledné veľkosti a výsledky.
|
||||
|
||||
Pravidlá pre filtrovanie datsetu:
|
||||
|
||||
1. "Dôveryhodní" ľudia idú do testovacej časti
|
||||
2. Máme tri hlasy ku jednému prísmevku. Na určenie triedy nám treba minimálne dva súhlasné hlasy. Ak výjde trieda neviem tak anotáciu vyradíme. Tie hlasy ktoré majú ++= tie sú plus, tieh hlasy ktorú su --=,. tie sú mínus. Ostatné príspevky zahodíme.
|
||||
3. Vyskúšať: Vyhodiť vzorku aj pri akomkoľvek vnútornom nesúhlase. Je viac filtrovaná množina lepšia?
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvoriť HF Dataset.
|
||||
|
||||
|
||||
Stretnutie 22.3.
|
||||
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na vlastnej Flask aplikácii
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte draft práce, ktorý bude obsahovať osnovu a texty ktoré máte. Pracujte na tom ďalej, popri praktických úlohách.
|
||||
- Naštudujte si [OffensEval 2019-20](https://sites.google.com/site/offensevalsharedtask/home). Do práce pridajte časť o tom čo to je, aké články sa o tom publikovali.
|
||||
- Vyhľadajte a opíšte podobné iniciatívy pre anotáciu HS.
|
||||
- Vo vašej antotačnej schéme napodobnite vybraný prístup (OffensEval).
|
||||
- Pred tým než začnete anotovať, konzultujme vybranú anotačnú schému.
|
||||
- Čím skôr začnite anotovať podľa vybranej schémy.
|
||||
|
||||
|
||||
Stretnutie 11.3.
|
||||
|
||||
Stav:
|
||||
|
||||
- Analýza zozbieraných dát z Facebooku pred anotáciou - výber rôznych kanálov. Vo forme notebooku.
|
||||
- Dáta sú v jednom súbore JSON
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Aplikujte detekciu emócií na dataset. Do datasetu zaraďte 20 percent pozitívneho, 20 neutrálneho a 60 negatívneho obsahu.
|
||||
- [x] Dataset premiešajte. Začnite anotovať, akýmkoľvek spôsobom.
|
||||
- [-] Do písomnej časti opíšte postup pri príprave dát.
|
||||
|
||||
Stretnutie 8.2.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na identifikácii podobných príspevkov pomocou embeddingov. V matici sa vyhľadá každý dokument, ktorého kosínusová podobnosť je väčšia ako konštanta.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Získajte dáta z íných zdrojov, vhodné na anotáciu. Kritériá sú: miera výskytu nenávistnej reči, druh nenávistnej reči a legálne nástrahy (osobné dáta, licencia).
|
||||
|
||||
Momentálne máme:
|
||||
|
||||
- Facebook, rôzne profily. Problém je výskyt spamu - tématicky podobných príspevkov.
|
||||
|
||||
Iné možné zdroje:
|
||||
|
||||
- Reddit-Slovakia.
|
||||
- Diskusie pod článkami.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 23.1.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca iba na textovej časti.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte dátovú množinu na anotovanie. Vyberte také dáta, ktoré obsahujú málo spamu a primerané množstvo "hatespeech". Môžete "nascrapovať" nové zdroje, také ktoré sú vhodnejšie.
|
||||
- Pripravte aplikáciu na anotovanie a skúste anotovať pár jednotiek. Zaznamenajte chyby anotačnej aplikácie.
|
||||
- Ak bude aplikácia v poriadku, anotujte viac.
|
||||
- Pokračujte v práci na textovej časti podľa inštrukcií nižšie.
|
||||
- Pokračujte v otvorených úlohách.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Prečistenie databázy na výskyt spamu: Pomocou modelu slovak-bert-mnlr identifikujte sémanticky podobné dokumenty. Ak má jeden dokument príliš veľa podobných, označte ho ako spam. Konzultovať s Stromko alebo Sopkovič. Asi bude treba použiť vektorový index.
|
||||
- Z anotovaných dát natrénujte model.
|
||||
|
||||
|
||||
Stretnutie 27.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Podarilo sa rozbehať anotačnú aplikáciu a pripraviť dáta.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte aplikáciu na nasadenie. Pripravte dockerfile, pridajte CSS. Vyskúšajte aplikáciu a identifikujte chyby.
|
||||
- Pokračujte v teoretickej príprave podľa pokynov nižšie. Sústredte sa na anotáciu a automatické rozpznávanie nenávistnej reči. Môžete vyjadriť aj súvis medzi rozpoznávaním sentimentu a nenávistnej reči. Na vyhľadávanie článkov použite Google scholar. Do práce si poznačte bibliografický odkaz na článok ktorý preštudujete. Ku každému článku si napíšte poznámky čo ste sa dozvedeli.
|
||||
- Oboznámte sa so skriptom https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-classification skúste ho rozbehať aj na iných vlastných dátach.
|
||||
- Prečítajte si knižku https://d2l.ai/
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Analyzujte anotované dáta. Výsledky zobrazte do tabuľky.
|
||||
- Natrénujte a vyhodnoťte model.
|
||||
|
||||
|
||||
Stretnutie 13.10.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Rozbehané Prodigy anotácie
|
||||
- Vyskúšaný model https://huggingface.co/kinit/slovakbert-sentiment-twitter
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Vykonať prieskum literatúry. Aké sú existujúce anglické a slovenské databázy na analýzu sentimentu? Ako sa klasifikuje sentiment pomocou neurónových sietí? Prieskum by mal mať niekoľko strán a mal by obsahovať odkazy na odbornú literatúru a iné zdroje. https://github.com/slovak-nlp/resources Tu pozrite zoznam modelov a datasetov pre sentiment. Nájdite aj niekoľko článkov na tému "crowdsourcing dataset for sentiment classification". Robte si písomné poznámky, použije sa to do BP.
|
||||
- [ ] Vytvorte KEMT GIT repo. Nastavte tam synchronizáciu s KPI Git tak aby som mal prístup k zdrojovým kódom na stiahnutie a na tvorbu modelov.
|
||||
- Preštudujte si zdrojové kódy https://github.com/hladek/hate-annot a skúste ich rozbehať na svojom počítači s Vašimi dátami.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Čím skôr rozbehať anotácie sentimentu alebo hate speech medzi študentami.
|
||||
- Zozbierané dáta využiť na natrénovanie modelu.
|
||||
- Oboznámte sa so skriptom https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-classification skúste ho rozbehať aj na iných vlastných dátach.
|
||||
- Prečítajte si knižku https://d2l.ai/
|
||||
|
||||
|
||||
|
||||
Stretnutie 8.8.
|
||||
|
||||
Stav:
|
||||
|
||||
- vypracovaný skript pre získanie dát z Reditt
|
||||
|
||||
Úlohy:
|
||||
|
||||
|
||||
- [x] Rozbehajte u seba jednoduché anotácie pomocou Prodigy. V texte označujte časti, ktoré sú urážlivé. Môžete to urobiť podľa skritpov v https://git.kemt.fei.tuke.sk/dano/annotation . Dáta anotujete podobne ako "named entities".
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Finalizovať dátovú množinu (facebook alebo reddit) a anotačnú schému.
|
||||
- Pripraviť návod pre anotátorov
|
||||
- Pripraviť webovú appku na sledovanie anotácií.
|
||||
- Natrénovať model.
|
||||
|
||||
Stretnutie 29.6.2023
|
||||
|
||||
Stav:
|
||||
|
||||
- Je hotový skript pre zber diskusií z Facebooku. Skript je Python, Selenium a BS4.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [ ] Vykonať prieskum literatúry. Aké sú existujúce anglické a slovenské databázy na analýzu sentimentu? Ako sa klasifikuje sentiment pomocou neurónových sietí? Prieskum by mal mať niekoľko strán a mal by obsahovať odkazy na odbornú literatúru a iné zdroje. https://github.com/slovak-nlp/resources Tu pozrite zoznam modelov a datasetov pre sentiment.
|
||||
- [ ] Skript na stiahnutie s krátkym komentárom dajte na KEMT GIT. Repo nazvite BP2024
|
||||
- [ ] Vyskúšajte rozpoznávanie sentimentu pre slovenčinu pomocou existujúceho modelu Huggingface Transformers. https://huggingface.co/kinit/slovakbert-sentiment-twitter Vyskúšajte tento model.
|
||||
- V prípade potreby Vám viem prideliť prístup na školský server s GPU.
|
||||
|
||||
|
||||
|
||||
|
@ -1,107 +0,0 @@
|
||||
---
|
||||
title: Andrii Pervashov
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [rag,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
|
||||
## Bakalárska práca 2025
|
||||
|
||||
|
||||
|
||||
Návrh na tému:
|
||||
|
||||
Korekcia textu pomocou neurónových sietí
|
||||
|
||||
- Oboznámte sa s existujúcimi systémami pre neurónový strojový preklad.
|
||||
- Aplikujte existujúci model na opravu textu vo vybraných úlohách.
|
||||
- Vyhodnnotte model pomocou overovacej množiny.
|
||||
|
||||
Návrh na zadanie práce:
|
||||
|
||||
1. Napíšte prehľad metód opravy textu pomcou neurónových modelov.
|
||||
2. Zostavte trénovací korpus a natrénujte vybraný model na úlohu opravy textu v slovenskom jazyku.
|
||||
3. Navrhnite experiment a vyhodnotte kvalitu natrénovaného neurónového modelu.
|
||||
4. Identifikujte možné zlepšenia navrhnutého modelu.
|
||||
|
||||
Stretnutie 19.12.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Nové trénovanie Byt5 z mc4. Vyzerá, že to ide. Vlastný trénovací skript, skript od Ing. Harahusa.
|
||||
- Text prepísaný do Latex, WIP
|
||||
|
||||
|
||||
Stretnutie 22.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- WikiEdits nefunguje.
|
||||
- Trénovanie na korpuse 1 kníh. Program zmení písmená, urobí gramatické chyby. Problém je v tom, že dát na natrénovanie je málo. BLEU ROUGE nie sú dobré metriky.
|
||||
- Na trénovanie sa používa mt5-large.
|
||||
- Konzultácia Ing. Harahusom PhD.
|
||||
- Trénovanie modelu.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v písaní podľa pokynov nižšie.
|
||||
- Implemenujte metódu vyhodnotenia WER-CER-SER. Použite Python balíček alebo ex. kód. python-levenshtein.
|
||||
- Vyhodnnotte model "zero shot" - bez dotrénovnaia. Vyhodnotte viac modelov. Môžťete vyskúšať aj Slovak Falcon, slovak t5 base.
|
||||
- Pokračujte s "base modelmi".
|
||||
- Vyskúšajte opravu textu pomocou "promptu". Použite veľký jazykový model. Vyberte vhodný, napr. chatgpt alebo iný.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Dotrénujte model typu t5-base na väčšom množstve dát. MNôžete použiť webový korpus - mc4.
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 3.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Spustený skript WikiEdits bez úprav. Výsledkom bol (asi) dobrý súbor csv s úpravami v slovenskom jazyku.
|
||||
- Vyskúšané dotrénovanie modelu mt5-base na tejto databáze. Trénovanie sa spustí. Po zatvorení tmux sa trénovanie nepodarí obnoviť.
|
||||
|
||||
|
||||
Online update 4.9.2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Upravte skripty [WikiEdits](https://github.com/snukky/wikiedits/tree/master/wikiedits) na slovenský jazyk
|
||||
|
||||
Stav 14.8.2024:
|
||||
|
||||
- Nainštalovaná Anaconda, rozbehaný anglický trénovací skript s databázou WikiEdits a modelom T5small. Notebook je príliš pomalý na trénovanie.
|
||||
- Oboznámenie sa s materiálmi - d2dl aj Python.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v štúdiu modelov T5 aj GPT aj ChatGPT. Robte si písomné poznámky. Poznačte si odkazy na odborné články, napr. Arxiv.
|
||||
- Použite server google scholar a zistite ako sa robí ooprava textu pomocu modelu T5. Poznačte si články ktoré sa týkajú tejto témy a napíšte o čom tie články sú.
|
||||
- Prečítajte si môj článok Survey of Automatic Spelling Correction a urobte si poznámky,
|
||||
- dotrénujte anglický model t5 small na opravu a vyhodnotte ho. Na vyhodnotneie sa používa metrika WER, CER, SER, BLEU. Zistite čo to je.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Natrénujte model pre opravu textu v slovenskom jazyku.
|
||||
- Pripravte webové demo.
|
||||
|
||||
Stretnutie 26.4. 2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalujte si prostredie Anaconda.
|
||||
- Prejdite si knihu Dive Deep into Python 3.
|
||||
- Prečítajte si knihu https://d2l.ai/ a napíšte si poznámky.
|
||||
- Nainštalujte si Pytorch, a huggingface transformers a oboznámte sa ako funguje táto knižnica.
|
||||
- Zistite ako funguje tento model https://huggingface.co/docs/transformers/en/model_doc/byt5
|
||||
- Napíšte si poznámky o tom ako funguje model Transformers a ako funguje model T5.
|
||||
|
@ -1,106 +0,0 @@
|
||||
---
|
||||
title: Daniil Huzenko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [klaud]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
Vedúci: doc. Matúš Pleva PhD.
|
||||
|
||||
Predbežný názov:
|
||||
|
||||
Testovanie hybridného klaudu s využiťím kombinácie verejného a privátneho riešenia
|
||||
|
||||
Cielom práce je vytvorenie vzelávacích materiálov o Kubernetes a funkčného prototypu privátneho klastra Kubernetes .
|
||||
|
||||
Stetnutie 22.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Klaster funguje. Ku každému node je možné sa pripojiť cez SSH.
|
||||
- Momentálne notebook slúži ako router.
|
||||
- Práca na DNS MASQ prideľovanie IP adries z routra.
|
||||
- Microk8s funguje
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Napíšte návod a skripty pre konfiguráciu routra pre K8s klastra SuperC.
|
||||
- Router by mal vedieť:
|
||||
- prideliť IP adresu v privátnej podsieti pre všetky uzly klastra.
|
||||
- mal by vedieť konfigurovať (resetovať) klaster pomocou Ansible.
|
||||
- Vyporacujte video a textový tutoriál k inštalácii klastra.
|
||||
- Skripty a návody dajte na GIT. Video nedávajte na GIT. (dajte na Youtube).
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Router by mal slúžiť ako rozhranie medzi verejnou a súkromnou sieťou - mal by sprostredkovať služby Kubernetes. Dorobte na to skripty Ansible a K8s konfiguráciu - Ingress, Load Balancer, Dashboard.
|
||||
|
||||
|
||||
Stretnutie 14.11
|
||||
|
||||
Stav:
|
||||
|
||||
- 1 ks klastra je zmontovany
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Napíšte o tom čo je to kontajnerizácia, čo je Kubernetes, stručne o Rpi CM4 a Super6C - opíšte HW.
|
||||
- Píšte o metódach orchestrácie. Čo je to a akými metódami sa to robí?
|
||||
- Napíšte o Ansible. Ako riadiť klaster pomocou Ansible?
|
||||
- Citujte knihy a odborné články. Nájdete to na google scholar.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte skripty Ansible pre "setup" klastra
|
||||
- Pripravte skripty pre "reinstall" klastra poocou Ansible
|
||||
- Zistite ako funguje netboot na rpi, skúste reinstall cez networkboot.
|
||||
|
||||
Stretnutie 12.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Písanie draftu BP
|
||||
- Vyskúšané tutoriály s Minikube.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zmontujte Raspberry Pi klaster: 1x skrinka s príslušenstvom, 6x RPI Compute Module 4, 1 doska a zdroj SUper6C.
|
||||
- Urobte videoblog o tom ako zmontovať RPI klaster. Akým jazykom? Po rusky alebo po slovensky?
|
||||
- Zistite čo je to MicroK8s
|
||||
- Pokračujte v písaní BP. Používajte citácie na odbornú literatúru ()knihy a odborné články. Do BP píšte aj o hardvéri ktorý ste dostali. Odborné články nájdete na google scholar.
|
||||
- Prihláste sa na Azure KLaud.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Oživte klaster a nainštalujte na neho MicroK8s. Inštaláciu urobte ľahko opakovateľnú pomocou skriptu.
|
||||
- Nainštalujte monitorovacie nástroje na klaster.
|
||||
- Urobte deployment aplikácie na privány klaster aj na verejnmý klaster (AKS).
|
||||
- Urobte druhý videoblog o inštalácii softvéru na náš klaster.
|
||||
- Napíšte textový blog o tom čo ste urobili - cieľ je poučiť a inšpirovať študentov.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stretnutie 4.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
Naštudovaný Kubernetes, nainštalované Minikube
|
||||
|
||||
Úlohy:
|
||||
|
||||
|
||||
- [x] Napíšte draft BP. Napíšte čo je to Kubernetes a ako sa používa.čo je to kontajnerizácia
|
||||
- [x] Napíšte, aké nástroje sa používajú na monitoring klastra.
|
||||
- [-] Vyskúšajte a opíšte nástroj Prometheus, Istio. Zistite čo je service-mesh. Čo je „network fabric“ – Calico.
|
||||
|
||||
|
@ -1,139 +0,0 @@
|
||||
---
|
||||
title: Oleh Poiasnik
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [rag,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
Nové zadanie:
|
||||
|
||||
Chceme vytvoriť asistenta pre farmaceuta alebo zákazníka lekárne pre vyhľadávanie v príbalových letákoch.
|
||||
|
||||
|
||||
Staré zadanie:
|
||||
|
||||
Vyhľadávanie právnych informácií pomocou neurónových sietí
|
||||
|
||||
- Oboznámte sa s existujúcimi modelmi pre vyhľadávanie v texte.
|
||||
- Vytvorte systém pre vyhľadávanie v zákonoch a vyhláškach.
|
||||
- Vyhľadajte súvisiace paragrafy so zadanou otázkou
|
||||
- Vyhodnotte či je zadané tvrdenie v súlade s legislatívou alebo nie.
|
||||
|
||||
|
||||
RAG: Generovanie jazyka s pomocou vyhľadávania - Retrieval augmented generation
|
||||
|
||||
8.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Modifikovaný frontend (Tailwind)
|
||||
- Vytvorený Docker Images, Elasticsearch databáza aj index.
|
||||
- Je aj skript na indexovanie.
|
||||
- Vyskúšaný Mistral Small a Mistral Large cez API-
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pracujte na texte, pošlite mi draft.
|
||||
- Pripojte sa na server quadro.kemt.fei.tuke.sk (cez ssh z tuke siete). Použite prostredie Anaconda.
|
||||
- Na inferenciu (beh modelu) vyskúšajte vllm. Alebo ollama alebo localai. Dobrý model pre slovenčinu je Qwen2.5 alebo slovak-t5-base. Na vektorvé vyhľadávnaie je zatiaľ najlepší model multilingual E5. Možno aj BGE - nie je overený.
|
||||
|
||||
17.10.20204
|
||||
|
||||
Stav:
|
||||
|
||||
- Funguje web rozhranie aj vyhľadávanie.
|
||||
- Kódy sú na gite. Využíva sa Flask, Mistral API pre Mistral-Small (nebeží lokálne). Na vektory MiniLM2
|
||||
- Napísané poznámky o praktickej časti.
|
||||
|
||||
|
||||
Úlohy
|
||||
|
||||
- Otázka: Je to hybridné vyhľadávanie?
|
||||
- Začnite písať teoretickú časť práce.
|
||||
- Pokračujte v práci na frontende aj backende, tak aby to dobre vyzeralo aj dobre fungovalo - aby sa to dalo použiť ako demo. Treba dávať pozor na právnu zodpovednosť.
|
||||
- Vyskúšajte rôzne spôsoby vyhľadávania - aj sparse (riedke vyhľadávanie).
|
||||
- Kódy dávajte na git.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte modely na lokálne nasadenie pomocou inferenčného servra (vllm, ctranslate2). Chceme aby modely bežali cez (OpenAI) API na našej infraštruktúre.
|
||||
- Vyskúšajte Váš systém s lepšími modelmi (Slovak Mistral, iný väčší model, na vektory me5 alebo slovakbert-mnlr).
|
||||
- pripravte nasadenie aplikácie pomocou systému Docker Compose.
|
||||
- Urobte číslelné vyhodnotenie vyhľadávania. Toto má na starosti Yevhenii Leonov.
|
||||
|
||||
|
||||
27.9.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyskúšané generatívne modely - OpenAI aj HuggingFace Prakticky sú nepoužiteľné, kvôli tomu, že chybné požiadavky míňajú kredit. Kreditu je málo na deň.
|
||||
- Výskúšaný Slovenský Mistral "slovak-nlp/mistral-sk-7b". Výskúšané cez API skript.
|
||||
- Nainštalovaný PrivateGPT. Zaindexovaná databáza liekov cez ElasticSearch a implementovaný RAG s modelom Slovak Mistral. Funguje to celkom dobre na dopyt o bolesti hlavy.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v štúdiu LangChain. Prejdite si tutoriály.
|
||||
- Čítajte články a robte si poznámky. Pozrite si článok o modeli Mistral, o sentence transformeroch, aj o "retrieval augmented generation". Na vyhľadanie článku použite google scholar.
|
||||
- Vytvorte skript pre indexovanie a prípravu dát, dajte ho na git.
|
||||
- Konfiguračné skripty na Privategpt a skripty pre prípravu dát dajte na git repozitár. Na kemt.git.fei.tuke.sk. Skripty by mali byť opakovateľné.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Lepšie pripraviť dáta. Bude treba vyradiť lieky pre zvieratá. Texty bude treba predpripraviť. O lieku bude treba zistiť metainformácie. Bude treba vyznačiť, či je liek na lekársky predpis alebo nie.
|
||||
- Model bude treba dotrénovať na inštrukcie, použiť databázu Slovak Alpaca.
|
||||
- Pripraviť "inteligentného agenta" pre vyhľadávanie, aby sa vedel spýtať dolnňujúce otázky. Prečítajte si článok o ReACT.
|
||||
- Pripraviť vlastné webové rozhranie a backend LangChain.
|
||||
|
||||
|
||||
|
||||
Stretnutie 18.9.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyskúšaný model bioBERT, cez Transformers, Anaconda na malom datasete na notebooku
|
||||
- ElasticSearch Python API
|
||||
- vlastný skript na indexovanie pomocou SBERT
|
||||
|
||||
Úlohy:
|
||||
|
||||
- vhodné modely pre slovenský jazyk: me5-base pre vektorové vyhľadávanie. Ale ako použijete ES, tak nie je potrebný. Pre generovanie: je možné použiť OpenAI API alebo HuggingfaceAPI, má obmedzenie. Otvorené modely: LLama3, RWKV, Sovenský Mistral 7B TBA.
|
||||
- Na začiatok skúste rozbehať postup s PrivateGPT, OpenAI API a vyhľadávaním (pomocou ES alebo me5-base alebo OpenAI API - ADA embedding).
|
||||
- Urobte si lokálnu inštaláciu PrivateGPT na Vašom notebooku. Zmente konfiguráciu - modely a prompty
|
||||
- Dáta dodá Kristián Sopkovič - cez Teams sa spojte.
|
||||
- Pokračujte v štúdiu Python, Transformers. Oboznámte sa s LangChain.
|
||||
- Prečítajte si tento článok https://arxiv.org/abs/1908.10084 o sentence transformers a urobte si poznámky.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Urobte množinu na vyhdnotenie. Vytvoríte množinu vzorových otázok a odpovedí. Vyhodnotte celý proces.
|
||||
- Modely by mali bežať na našej infraštruktúre. Treba pripravť vhodný inferenčný server na našom HW, vybrať a dotrénovať vhodný model.
|
||||
- Preskúmať využitie Knowledge Graph pre spracovanie medicínskych dát.
|
||||
|
||||
Stretnutie 26.4.2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistite čo je to Retrieval Augmented Generation a napíšte o tom správu.
|
||||
- Naučte sa základy jazyka Python.
|
||||
- Podrobne si prejdite minimálne dva tutoriály.
|
||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
- Nainštalujte si a vyskúšajte softvér PrivateGPT
|
||||
- Nainštalujte si prostredie Anaconda. Prejdite si knihu Dive Deep into Python 3.
|
||||
- Nainštalujte si PrivateGPT. Zistite ako funguje RAG. Zistite ako funguje ChatGPT. Zistite ako funguje vyhľadávanie pomocou SentenceTranformers. Napíšte o tom poznámky.
|
||||
- Prečítajte si knihu https://d2l.ai/ a napíšte si poznámky.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Spracujte a indexujte slovenské zákony a vyhlášky.
|
||||
- Získajte zoznam právnych tvrdení ktoré je možné overiť.
|
||||
- Existuje množina zmlúv o prenájme v slovenskom jazyku. https://huggingface.co/datasets/mtarasovic/ner-rent-sk-dataset
|
||||
|
@ -1,94 +0,0 @@
|
||||
---
|
||||
title: Serhii Yemets
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [ner,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
Cieľ:
|
||||
|
||||
- Zlepšenie slovenského modelu pre rozpoznávanie pomenovaných entít.
|
||||
|
||||
Do budúcnosti:
|
||||
|
||||
- Vypracovanie webového dema
|
||||
- Využitie modelu v nejakej zaujímavej úlohe (chatbot alebo právne texty).
|
||||
|
||||
Návrh na zadanie bakalárskej práce:
|
||||
|
||||
1. Napíšte prehľad neurónových modelov vhodných pre rozpoznávanie pomenovaných entít v slovenskom jazku.
|
||||
2. Napíšte prehľad existujúcich dátových množin, vhodných na trénovanie modelu pre rozpoznávanie pomenovaných entít.
|
||||
3. Vyberte vhodný model a dátovú množinu a natrénujte a vyhodnotte model.
|
||||
4. Vytvorte webové demo pre rozpoznávanie pomenovaných entít.
|
||||
5. Identifikujte spôsoby možného zlepšenia natrénovaného modelu pre rozpoznávanie pomentovaných entít.
|
||||
|
||||
Stretnutie 20.12.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Splnené úlohy z posledného stetnutia
|
||||
- Text je v dobrom stave, treba ešte použiť šablónu.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte si prezentáciu.
|
||||
- Textu dajte na moodle, skripty dajte na git.
|
||||
- Pokračujte v písaní. Doplnte časť o spôsobe anotovania NER - značkovanie BIO (beginning, inside, outside) alebo iné. Doplnte časť o vyhodnotení - precision,recall, F1. Doplnte odkazy na dátové množiny. Používajte odkazy na vedecké články.
|
||||
- Zlepšite presnosť Vášho modelu. Do BP napíšte prioebeh trénovania a vyhodnotenia. Výsledky experimenotv zapíšte do tabuľky.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zostavte webové demo
|
||||
- Pripravte experiment pre ukrajinský a ruský jazyk.
|
||||
- Priprave Dockerfile pre Vaše demo
|
||||
- Vytvorte dátovú množinu spojením viacerých existujúcich množin do jednej. Vedúci Vám dá nejaké skripty.
|
||||
|
||||
|
||||
Stretnutie 30.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísané texty o NE.
|
||||
- Vyskúšané a naštudované veci podľa pokynov,
|
||||
- Začiatok práce na webovom deme.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Naštudujte korpusy s [NER pre slovenský jazyk](https://github.com/slovak-nlp/resources). Napíšte ich zoznam. Ku každému napíšte veľkosť (počet viet, slov) a druhy pomenovaných entít.
|
||||
- [x] Najprv budeme pracovať s ručne anotovanými dátami. Použite ich na natrénovanie modelu typu BERT (napr. SlovakBER alebo mbert) a vyhodnotte ich presnosť. Na trénovanie použite Spacy alebo Transformers.
|
||||
- [x] Pokračujte v písaní BP. Stručne (max. 1.5 strany) vysvetlite ako funguje transformer. Na google scholar nájdite vedecké články o NER a napíšte čo ste sa z nich dozvedeli. Aké majú výsledky a aké metódy používaju?
|
||||
- [x] Prejdite si tutoriál https://huggingface.co/docs/transformers/en/tasks/token_classification
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Natrénujte nový Spacy NER model ktorý by bol lepší ako pôvodný.
|
||||
- Spojte viacero dátových množin (manuálne anotovaných) do jednej a použite je na natrénovanie modelu.
|
||||
- Použite veľký jazykový model pre NER anotáciu a porovnajte ho s menším dotrénovaným NER modelom.
|
||||
- Vykonané experimenty slovne opíšte a výslekdy zapíšte do tabuliek. Výsledky slovne okomentujte.
|
||||
|
||||
|
||||
Stretnutie 20.5.20204
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Zistite čo je to rozpoznávanie pomenovaných entít (named entity recognition) a napíšte o tom správu.
|
||||
- [x] Zopakujte si základy jazyka Python "Dive into Python 3". Nainštalujte si prostredie Anaconda.
|
||||
- [x] Oboznámte sa s knižnicou Spacy a vyskúšajte si skripty v https://github.com/hladek/spacy-skmodel
|
||||
- [x] Nainštalujte si knižnicu Huggingface Transformers. Oboznámte sa s ňou. Zistite, ako sa trénuje model NER pomocou takejto knižnice.
|
||||
- [x] Zistite, aké modely a jazykové zdroje sú dostupné pre túto úlohy pre slovenský jazyk https://github.com/slovak-nlp/resources
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte viacero korpusov pre NER. Môžu byť aj viacjazyčné.
|
||||
- Natrénujte model Huggingface pre NER
|
||||
|
||||
|
@ -1,92 +0,0 @@
|
||||
---
|
||||
title: Tetiana Mohorian
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [rag,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
|
||||
## Bakalárska práca 2025
|
||||
|
||||
- Spolupráca [P. Pokrivčák](/students/2019/patrik_pokrivcak)
|
||||
- [Python](/topics/python)
|
||||
- [Hate Speech](/topics/hatespeech)
|
||||
|
||||
|
||||
Návrh na tému:
|
||||
|
||||
Rozpoznávanie nenávistnej reči pomocou veľkých jazykových modelov.
|
||||
|
||||
- Oboznámte sa s existujúcimi veľkými jazykovými modelmi - uzatvorenými aj otvorenými.
|
||||
- Aplikujte existujúci model na úlohu detekcie nenávistnej reči.
|
||||
- Na adaptáciu použite "prompting" a "LORA".
|
||||
- Vyhodnotte model pomocou [overovacej množiny](https://huggingface.co/datasets/TUKE-KEMT/hate_speech_slovak).
|
||||
|
||||
Stretnutie 12.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Vyskúšané few shot Distillbert, BERT, GPT3, T5, najlepšie výsledky mal DistillBERT : 65F1. Problém je, že tieto modely nevedia po slovensky.
|
||||
- Na vyhodnotenie použitý svoj skript a framework llm-eval-harness.
|
||||
- Pokračuje písanie.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pošlite mi draft BP na ďalšie stretnutie.
|
||||
- Urobte si repozitár na KEMT GIT a dajte tam zdrojové kódy na spustenie experimentov.
|
||||
- Pokračujte v písaní.
|
||||
- Vyskúšajte vyhodnotiť modely v rôznych veľkostiach (small, base, large, 1B, 3B, 7B): mt5, slovak-t5-base, slovak-t5-small, Qwen2.5, Slovak Mistral, LLama3, SlovakBERT .
|
||||
- Napíšte ChatGPT prompt na detekciu nenávistnej reči.
|
||||
- Ak Vám nebude stačiť GPU Vášho počítača, vedúci Vám pridelí prístup na školský server alebo môžete vyskúšať Google Colab.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zistite čo je to PEFT a kvantizácia a ako sa to používa.
|
||||
- Dotrénujte jazykový model pre rozponávanie HS pomocou metódy PEFT.
|
||||
|
||||
Stretnutie 18.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobené 3 prehľadové tabuľky s modelmi - architektúra, presnosť, multilinguaglita.
|
||||
- Pozretá kniha DDIP3 a d2dl. Poznámky na 20 strán.
|
||||
- Nainštalovaná OLLama, Transformers, vyskúšaný Mistral.
|
||||
- Urobené všetko.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v písaní bakalárskej práce. Postupujte od definície úlohy, prehľad súčasného stavu, Vaše riešenie, experimenty a závery. Používajte odkazy na odbornú literatúru (vedecké články cez Google Scholar).
|
||||
- Navrhnite promt (može byť aj viac rôznych) pre veľký jazykový model pre detekciu nenávistnej reči.
|
||||
- Pomocou množiny vyhodnotte model pre detekciu HS v zero shot alebo v few shot scenári. Na vyhodnotenie použite metriku Precision-Recall-F1.
|
||||
- Oboznámte sa ako funguje overenie veľkých jazykových modelov pomocu Eleuther lm-evaluation-harness.
|
||||
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [ ] Dotrénujte vybrané modely na úlohu detekcie nenávistnej reči. Model bude vykonávať binárnu klasifikáciu.
|
||||
- [x] Pripravte skript pre overenie LLM na úlohe rozpoznávanie nenávistnej reči. Pripravte postup pre overenie pomocu existujúceho frameworku pre overenie.
|
||||
|
||||
Stretnutie 3.10.2024
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Oboznámte sa s existujúcimi veľkými jazykovými modelmi - uzatvorenými aj otvorenými. Urobte si poznámky a napíšte prehľad.
|
||||
- [x] Prejdite si knihu Dive Deep into Python 3.
|
||||
- [x] Prečítajte si knihu https://d2l.ai/ a napíšte si poznámky.
|
||||
- [x] Zistite čo je to "prompting", a "few shot learning". Napíšte si poznámky.
|
||||
- [x] Oboznámte sa s OPEN AI Python API.
|
||||
- [x] Nainštalujte si prostredie Anaconda.
|
||||
- [x] Nainštalujte si Pytorch, a huggingface transformers a oboznámte sa ako funguje táto knižnica.
|
||||
- [x] Nainštalujte si prostredie OLLAMA a vyskúšajte lokálne jazykové modely
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [x] Nainštalujte si knižnicu LangChain a pozrite si ako fungujú [ChatModely](https://python.langchain.com/docs/modules/model_io/chat/)
|
||||
|
@ -1,149 +0,0 @@
|
||||
---
|
||||
title: Valerii Kutsenko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2024,bp2025]
|
||||
tag: [rag,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
Generovanie otázok zo zadaného textu.
|
||||
|
||||
|
||||
Cieľ je vylepšiť slovenský model pre generovanie vektrovej reprezentácie. vylepšiť proces RAG: Generovanie jazyka s pomocou vyhľadávania - Retrieval augmented generation
|
||||
|
||||
Nové nápady:
|
||||
|
||||
- Vytvorte systém pre generovanie otázok o zadanom texte.
|
||||
- Vytvorte umelo generovanú množinu otázok a odpovedí o liekoch.
|
||||
- Pomocou umelej množiny zlepšite existujúci systém pre otázky a odpovede o liekoch.
|
||||
|
||||
Ako na to:
|
||||
|
||||
- Natrénujte generatívny model pre generovanie otázok. Použite existujúci skript a množinu SKQUAD.
|
||||
- Určite, ktorá otázka je dobre vygenerovaná a ktorá nie. Tu môžete použiť: systém pre vyhľadávanie alebo neurónovú sieť pre otázky a odpovede. Ku otázke viete nájsť odpovede pomocou neurónovej siete. Výstupom by mala byť čo najkvalitnejšia množina otázok a odpovedí ku odsekom.
|
||||
- Výstupom by mala byť umelo generovaná databáza otázok a odpovedí.
|
||||
|
||||
Stretnutie 22.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Napísané o mt5 a umt5 v BP.
|
||||
- Urobené dotrénovanie na generovanie otázok.
|
||||
- Napísaná tabuľka s výsledkami experimentov. Metriky BLEU a ROGUE.
|
||||
- Napísaný skript, skript je na gite.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v písaní práce. Napíšte aj o metrikách vyhodnotenia.
|
||||
- Vyhľadajte a stručne opíšte vedecké články o generovaní otázok. Na vyhľadanie použite Google scholar.
|
||||
- Pridajte slovak t5 base model do experimentov.
|
||||
- Dotrénujte Slovak Falcon. Tam bude treba iný skript.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vymyslieť systém - natrénovať meurónku na návrh "odpovede".
|
||||
- Vyskúšať generovať otázky bez zadanej odpovede. Odpoveď generujte pomocou modelu. Model pre automatické odpovede už je na HF Hube: slovakbert-skquad.
|
||||
- Vyradiť také otázky, na ktoré systém nevie dopovedať.
|
||||
- Skúsiť generovať otázky z medicínskeho textu.
|
||||
|
||||
|
||||
|
||||
Stretnutie 18.10.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Natrénovaný model SlovakT5 Base. Skripty sú na [GITe](https://git.kemt.fei.tuke.sk/vk202uf/bp2024). Trénovanie funguje.
|
||||
- Naštudované články o T5 a Falcon, napísané poznámky.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Doplnte vyhodnotenie modelu pomocu BLEU Skore. Ako testovaciu množinu použite testovaciu časť SkQUAD.
|
||||
- Natrénujte aj iné modely: mt5-base, SlavicT5-base, umt5-base. Opíšte testovací scenár - ako ste dotrénovali model . Vyhodnotte ich v tabuľke. Do práce napíšte o týchto modeloch.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- SKúste natrénovať aj modely typu GPT. Tam bude treba upraviť skript na model typu GPT - SlovakMistral 7B. Titeo modely sú veľké. Budete potrebovať prístup na školský server. Budete potrebovať použiť mnetódu: quantization (bitsandbytes) a peft (parameter efficient fine tuning).
|
||||
- Ako bude model dobrý, tak ho uverejníme na repoztári Huggingface Hub.
|
||||
- Ak bude práca dobrá, skúsime prepracovať a urobiť článok na konferencii.
|
||||
- V spolupráci Y. Leonov urobiť vyhodnotenie aj v medicínskej doméne.
|
||||
- Skúsíme poprosiť doktorov o názor.
|
||||
|
||||
|
||||
Stretnutie 27.9.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Prezereté repozitáre a články. Napísané poznámky.
|
||||
- Vytvorený prázdny git repozitár.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistite ako sa dotrénujú generatívne modely HuggingFace. Zistite čo je to Few Shot learning a *urobte si poznámky*.
|
||||
- Prečítajte si článok o modele Falcon a napíšte ako funguje. Prečítajte si článok o modele T5 a napíšte ako funguje.
|
||||
- Dotrénujte generatívny model na generovanie otázok podľa zadaného paragrafu. Na dotrénovanie použite databázu SK QUAD. Ako model použite Slovak T5 Base alebo Slovak Mistral 7 B.
|
||||
- Oboznámte sa s Hugggingface API a OpenAI API. Na generovanie môžete použiť aj toto api.
|
||||
- Skripty na dotrénovanie dávajte do GIT repozitára.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Zoberte databázu liekov a generujte otázky o liekoch - od Ing. K. Sopkovič, alebo O. Poiasnik.
|
||||
- Možno bude treba použiť ChatGPT API a príklady z databázy SK QUAD.
|
||||
- Možno bude treba dotrénovať Slovak Mistral 7B na inštrukcie.
|
||||
|
||||
Staré Úlohy:
|
||||
|
||||
- Zistite, aké sú možné prístupy ku generovaniu otázok pomocou generatívneho modelu a aké sú možné prístupy k overeniu vygenerovanej otázky.
|
||||
- Pozrite si repozitár https://github.com/patil-suraj/question_generation
|
||||
- Pozrite si repozitár https://github.com/gauthierdmn/question_generation
|
||||
- Pozrite si článok https://telrp.springeropen.com/articles/10.1186/s41039-021-00151-1
|
||||
- Oboznámte sa s DP Ondrej Megela a článok https://aclanthology.org/2023.rocling-1.20.pdf
|
||||
- Oboznámte sa s knižnicou HF transformers - vyskúšajte si nejaký tutoriál.
|
||||
- Zistite, ako funguje model T5.
|
||||
- Pozrite si skript `generate/run_qg.py` v [repo](https://git.kemt.fei.tuke.sk/dano/slovakretrieval) a vyskúšajte ho.
|
||||
- Čítajte súvisiace odborné články a robte si poznámky.
|
||||
- Urobte si repozitár na git.kemt a dávajte tam Vaše skripty.
|
||||
- Na experimenty použite https://colab.research.google.com/
|
||||
|
||||
|
||||
|
||||
|
||||
Staré Nápady:
|
||||
- Možno pomocou vytvorenia-prekladu vlastnej trénovacej databázy.
|
||||
- alebo pomocou nekontrolovaného učenia, reps. augmentácie alebo generovania.
|
||||
- Alebo zber trénovacích dát z webového korpusu.
|
||||
- Sústrediť sa na vektrovú reprezentáciu dokumentov?
|
||||
|
||||
Úlohy na semester - "nepovinné, oficiálne sa to začne na zimný semester 2024"
|
||||
|
||||
- Zistite čo je to Retrieval Augmented Generation a napíšte o tom správu.
|
||||
- Naučte sa základy jazyka Python.
|
||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
|
||||
Stretnutie 9.5.24
|
||||
|
||||
Stav:
|
||||
|
||||
- Naštudované Deep dive intoi Python a dl2ai, niečo o RAG.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistite, ako funguje [Sentence Transformers](https://sbert.net/). Pozrite si dokumentáciu. Vyskúšajte zopakovať príklady pre slovenské texty a so [slovenským modelom](https://huggingface.co/TUKE-DeutscheTelekom/slovakbert-skquad-mnlr).
|
||||
- Urobe si poznámky.
|
||||
|
||||
Stretnutie 22.3.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Nainštalujte si prostredie Anaconda. Prejdite si knihu Dive Deep into Python 3.
|
||||
- Prečítajte si knihu https://d2l.ai/ a napíšte si poznámky.
|
||||
- Zistite ako funguje RAG. Zistite ako funguje ChatGPT. Zistite ako funguje vyhľadávanie pomocou SentenceTranformers. Napíšte o tom poznámky.
|
||||
- Skúste si tento tutoriál o [LangChain](https://python.langchain.com/docs/get_started/quickstart)
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Nainštalujte si PrivateGPT.
|
@ -1,88 +0,0 @@
|
||||
---
|
||||
title: Vladyslav Yanchenko
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [bp2025]
|
||||
tag: [klaud]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
Názov: Kontinuálne nasadenie a testovanie aplikácie v klaudovom prostredí.
|
||||
|
||||
Úlohy BP:
|
||||
|
||||
- Vypracujte písomný prehľad verejných klaudových služieb pre podporu procesu a nasadenia aplikácie.
|
||||
- Vypracujte písomný prehľad prostriedkov kontinuálneho nasadenie a integrácie.
|
||||
- Vytvorte webovú aplikáciu zloženú z viacerých komponentov a upravte ju do podoby vhodnej na nasadenie v klaude. K aplikácii vytvorte automatické testy.
|
||||
- Vyberte vhodné klaudové riešenia pre nasadenie Vašej aplikácie a vytvorte skripty pre nasadenie aplikácie. Opíšte architektúru Vašej aplikácie.
|
||||
- Vytvorte a opíšte proces kontinuálneho nasadenia a integrácie zmien do Vašej aplikácie pomocou vybraných klaudových služieb.
|
||||
|
||||
|
||||
Vedúci: doc. Matúš Pleva PhD.
|
||||
|
||||
Nápad:
|
||||
|
||||
- Vytvoriť webovú aplikáciu s použitím Spring Boot, využitie klaudovej databázy Azure a klaudového úložiska. realizovať JWT, využiť CI CD.
|
||||
|
||||
Stretnutie 13.12.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- CI-CD GIT HUB pipeline pre backend aj frontend.
|
||||
- Dockerfile je, zatiaľ to nefunguje s Azure Cloud, funguje lokalne. Registry zatiaľ nefunguje.
|
||||
- Auth cez JWT Token do LocalStorage.
|
||||
- Vyskúšaný Docker Compose, zatiaľ nefunguje na lokálny klaster.
|
||||
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Zistiť čo je Registry a ako to funguje.
|
||||
|
||||
|
||||
Stretnutie 8.11.2024
|
||||
|
||||
Stav:
|
||||
|
||||
- Backend SpringBoot, frontend React-Next.js.
|
||||
- Urobená základná autentifikácia pomocou HTTP Basic Auth.
|
||||
- Vyskúšaná kontajnerizácia.
|
||||
- Kódy sú na GitHUBe. https://github.com/MrSid333/bankapp.git
|
||||
- Aktivované Azure a Azure PostgreSQL aj úložisko. Zatiaľ nie je prepojené. úložisko.
|
||||
- Naštudované GITHUB CI-CD.
|
||||
- Nainštalované minikube.
|
||||
- Práca na textoch.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách.
|
||||
- Vytvorte nasadenie aplikácie pomocou Kubernetes.
|
||||
- Napíšte automatické testy a zostavte Github CI-CD pipeline.
|
||||
- Zistite aké obmedzenia má GitHUB Pipeline.
|
||||
- Píšte BP pošlite mi draft.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Vytvorte nasadenie Vašej aplikácie do Azure a skritpy pre nasadenie dajte na GitHUB. Dávajte pozor aby ste nezverejnili Vaše prístupové údaje.
|
||||
- Napíšte článok do "online média" o CI CD v klaude vo forme tutoriálu pre študentov. Z tutoriálu sa študent dozvie, čo je to CI CD, ako to vytvoriť pre konkretny projekt na GITHUbe.
|
||||
- Zostavte pipeline pomocou iného nástroja (Azure, Jenkins) a porovnajte ich.
|
||||
|
||||
|
||||
|
||||
Stretnutie 3.10.2024
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Preštudujte si platformu Kubernetes. Napíšte čo je to. Napíšte čo je to kontajnerizácia.
|
||||
- [x] Nainštalujte si microk8s. Aktivujte si MS Azure a naučte sa to používať.
|
||||
- [x] Vytvorte webovú aplikáciu, kotrá sa bude zkladať z viacerých mikroslužieb a bude využívať klaudové úložisko.
|
||||
- Napíšte čo je to CI CD a na čo sa využíva. Zistitie aké CI CD nástroje existujú. Vyberte si vhodný nástroj. Napr. GIT HUB, aleo GitLAB, alebo Jenkins. Alebo použite pipeline z Azure.
|
||||
- Ku aplikácii navrhnite niekoľko automatických testov.
|
||||
- Zostavte CI CD Pipeline pre automatické zostavenie a testovanie aplikácie
|
||||
|
||||
|
||||
|
@ -1,109 +0,0 @@
|
||||
---
|
||||
title: Yevhenii Leonov
|
||||
published: true
|
||||
taxonomy:
|
||||
category: [vp2024,bp2025]
|
||||
tag: [rag,nlp]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
|
||||
rok začiatku štúdia: 2022
|
||||
|
||||
# Bakalárska práca 2025
|
||||
|
||||
|
||||
Téma:
|
||||
|
||||
|
||||
Generovanie slovenského jazyka s pomocou vyhľadávania
|
||||
|
||||
Predbežné zadanie:
|
||||
|
||||
1. Vypracujte prehľad metód a modelov generovania jezyka s pomocou vyhľadávania
|
||||
2. Vyskúšajte a vyhodnotte vybranú metódu generovania jazyka s pomocou vyhľadávania.
|
||||
|
||||
|
||||
Návrh na tému:
|
||||
|
||||
- Vyhodnotenie systémov RAG
|
||||
|
||||
Spolupráca Oleh Poiasnik
|
||||
|
||||
Stav:
|
||||
|
||||
- Práca na úlohách z minulého stretnutia, vyskúšaný RAGAS.
|
||||
- Nainštalovaný a vyskúšaný systém od p . Poiasnika.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pripravte "vzorovú" množinu na testovanie.
|
||||
- Pripravte testovaciu množinu. Množina by sa mala skladať z čo najväčšieho množstva príkladov.
|
||||
- Vyskúšajte testovaciu množinu pomocou RAGAS a modelov ktoré používa p. Poiasnik. Vyhodnotte modely pomocou množiny.
|
||||
- Kódy dávajte na GIT (napr. branch alebo adresár p Poiasnik GIT).
|
||||
- Pokračujte v písomných úlohách. Hľadajte články cez scholar a píšte si poznámky. Do BP.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- Pripravte (nakódujte, odkopírovať) postup vyhľadávania podobný ako "reálny systém", ale využíval RAGAS.
|
||||
- Pripravte testovacie API pre RAG systém. Bude to funkcia alebo URL cez ktorú sa bude dať systém testovať.
|
||||
- Pomocou metriky a množiny vyhodnotte reálny systém.
|
||||
|
||||
|
||||
Stretnutie 11.1.:
|
||||
|
||||
Stav:
|
||||
|
||||
- Urobené poznámky na tému RAG
|
||||
- Nainštalované PrivateGPT, Ollama na Windowse
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [x] Budeme využívať systém RAGAS. Nainštalujte si ho a vyskúšajte. Optimálne použite systém Anaconda-Linux. V anaconda využívajte virtuálne prostredia.
|
||||
- [x] Naštudujte dokumentáciu a články https://docs.ragas.io/en/stable/index.html
|
||||
- [ ] Vyhľadajte vedecké články na tému "retrieval augmented generation evaluation" a prečítajte si aj článok o "ragas". Použite google scholar. Napíšte si poznámky.
|
||||
- [-] Zistite a opíšte aké metriky sa používajú. Ku každej metrike je potrebný odkaz na článok.
|
||||
|
||||
Zásobník úloh:
|
||||
|
||||
- [-] Zostavte množinu na vyhodnotenie RAG systému pre medicínsku oblasť. Množina bude vyjadrovať "testovací scenár" navštevy lekárne. V prvej fáze neriešime dialóg, ale otázky a odpovede.
|
||||
- [ ] Napíšte príklady alebo použite generatívny model
|
||||
|
||||
|
||||
|
||||
# Vedecký projekt 2024
|
||||
|
||||
|
||||
RAG: Generovanie jazyka s pomocou vyhľadávania -Retrieval augmented generation
|
||||
|
||||
|
||||
Úlohy na semester:
|
||||
|
||||
- Zistite čo je to Retrieval Augmented Generation a napíšte o tom správu.
|
||||
- Naučte sa základy jazyka Python.
|
||||
- Podrobne si prejdite minimálne dva tutoriály.
|
||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
||||
- Nainštalujte si a vyskúšajte softvér PrivateGPT
|
||||
|
||||
Stretnutie 12.4.
|
||||
|
||||
Stav:
|
||||
|
||||
- Učenie sa Pythonu, nainštalovaná Anaconda.
|
||||
- Urobené stručné poznámky o RAG o BERT a o GPT.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- Pokračujte v otvorených úlohách.
|
||||
- Vyskúšajte systém OLLAMA. Keď to nejde na Windows, vyskúšajte Ubuntu WSL(2).
|
||||
- Pracujte na "článku".
|
||||
|
||||
|
||||
Stretnutie 22.3.
|
||||
|
||||
Úlohy:
|
||||
|
||||
- [-] Nainštalujte si prostredie Anaconda. Prejdite si knihu Dive Deep into Python 3.
|
||||
- [-] Nainštalujte si PrivateGPT. Zistite ako funguje RAG. Zistite ako funguje ChatGPT. Zistite ako funguje vyhľadávanie pomocou SentenceTranformers. Napíšte o tom poznámky.
|
||||
- [-] Prečítajte si knihu https://d2l.ai/ a napíšte si poznámky.
|
||||
|
@ -12,13 +12,9 @@ taxonomy:
|
||||
- [Ako písať záverečnú prácu](http://akopisatprace.sk/wp-content/uploads/ako_pisat_zav_prace_final_skratene2_6.pdf)
|
||||
- [Odovzdanie a šablóna](https://portal.lib.tuke.sk/etd/)
|
||||
|
||||
## Osnova záverečnej práce
|
||||
|
||||
1. Úvod: Predstavte čitateľovi problém
|
||||
2. Teória (State-of-the-art): Vysvetlíte možné spôsoby riešenia definovaného problému a vysvetlíte dôležité pojmy. Mali by ste sa odvolávať na najnovšie vedecké články a knihy.
|
||||
3. Riešenie: Z možných spôsobov riešenia vyberte jeden a odôvodnite prečo ste ho vybrali. Opíšte ho podrobnejšie.
|
||||
4. Vyhodnotenie (Experimenty): Vaše riešenie predstavte vo viacerých modelových situáciách a navrhnite experimenty ktoré číselne vyhodnotia Vaše riešenie. Experimenty navrhnite a opíšte tak, aby ich bolo možné zopakovať a aby Vaše výsledky boli porovnateľné s inými.
|
||||
5. Záver (Diskusia). Identifikujte slabé miesta Vášho prístupu navrhnite zlepšenia. Definujte ako by mal vyzerať budúci výskum v oblasti riešenia Vášho problému. Zhrňte Vášu prácu a Váš prínos do vybranej oblasti.
|
||||
Predstavte čitateľovi problém a možné spôsoby riešenia. Z možných spôsobov vyberte jeden a odôvodnite prečo ste ho vybrali.
|
||||
V praktickej časti opíšte vykonané experimenty a výsledky uch vyhodnotenia tak aby ich bolo možné opakovať.
|
||||
V závere identifikujte slabé miesta a navrhnite zlepšenia.
|
||||
|
||||
## Ako citovať
|
||||
|
||||
|
@ -1,120 +0,0 @@
|
||||
---
|
||||
title: Jazykový model slovenského jazyka
|
||||
published: true
|
||||
author: Daniel Hládek
|
||||
---
|
||||
|
||||
! Cieľ:
|
||||
!
|
||||
! - Natrénovať a vyhodnotiť slovenský jazykový model typu BERT z korpusu webových textov
|
||||
|
||||
## Súvisiace projekty
|
||||
|
||||
- [SlovakBERT](https://github.com/gerulata/slovakbert) od Kinit, a [článok](https://arxiv.org/abs/2109.15254)
|
||||
- [SK Quad](/topics/question) - Slovak Question Answering Dataset
|
||||
- bakalárska práca [Ondrej Megela](/students/2018/ondrej_megela)
|
||||
- diplomová práza Jozef Olekšák (in progress, trénovanie electra na colab).
|
||||
- https://git.kemt.fei.tuke.sk/dano/bert-train
|
||||
|
||||
## Rozpracované úlohy
|
||||
|
||||
- Trénovanie na TPU Google Colab Electra Base. (Olekšák)
|
||||
- trénovanie XLNet Base
|
||||
- Tokenizer SentencePiece pre XLNet
|
||||
- Trénovanie Roberta Base (zatiaľ najlepšie 0.65)
|
||||
|
||||
|
||||
## Hotové úlohy
|
||||
|
||||
## Trénovací korpus
|
||||
|
||||
Deduplikované a tokenizované webové dáta pomocou nášho tokenizátora a deduplikátora.
|
||||
|
||||
- Wikipédia
|
||||
- Oscar Dedup
|
||||
- Sita
|
||||
- Websucker 2010,2012,2017
|
||||
- Websucker 2022 in progress
|
||||
|
||||
Spolu 25 GB po deduplikovaní.
|
||||
|
||||
### Electra Model
|
||||
|
||||
- Vyhodnotenie Electra na SK SQUAD, UDP POS tagging
|
||||
- Trénovacie skripty Electra
|
||||
- Konvertovanie Electra do Transformers pomocou ransformers/src/transformers/models/electra/convert_electra_original_tf_checkpoint_to_pytorch.py
|
||||
- Natrénovaný model Electra-small 128, 256 batch size, learning 2e-4, skweb2017dedup, Slovník 32K wordpiece, 0.83 POS, 0.51 Squad
|
||||
|
||||
### Hugging Face Models Finetuning
|
||||
|
||||
- Dotrénovaný model multilingual BERT base na SK QUAD, funguje demo skript. (0.72)
|
||||
- Dotrénovany Slovak Bert na SK QUAD (0.75)
|
||||
- Dotrénovaný model multilingual BERT na SQUAD anglickej, overné na slovenskej SK QUAD
|
||||
- SK Quad Datasets Interface
|
||||
|
||||
### Hugging Face Roberta
|
||||
|
||||
- Natrénovaný HF Roberta Small
|
||||
- Deduplikovaný webový korpus oscar plus skweb2017
|
||||
- tokenizer BPE Roberta
|
||||
- natrénovaný roberta base na 17GB korpuse, 0.65 na Squad
|
||||
- trénovanie pomocou deepspeed (zrýchľuje cca 2x).
|
||||
- pri efektívnej veľkosti dávky 1000 je asi najrýchlejčia konvrergencia pri lr 1e-4. , adam (0.9-0.999).
|
||||
- Tokenizátor BPE treba trénovať na celkom korpuse.
|
||||
|
||||
## Budúce úlohy
|
||||
|
||||
- Pripraviť aj iné množiny na vyhodnotnie: kategorizácia textu na SCNC1.
|
||||
- trénovanie na HPC
|
||||
- trénovanie Large modelu
|
||||
- trénovanie BART
|
||||
|
||||
## Poznámky Roberta
|
||||
|
||||
- Trénovanie roberta base s deepspeed 5 epoch, 25G korpus trvá 400 hod. BEz deepsdpeed 900 hod. na dvoch kartách.
|
||||
- Veľkosť dávky roberta base na jedno zariadenie Titan24GB je 64 pre deepspeed.
|
||||
- Dáta z prokuratúry asi zhoršujú model kvôli anonymizácii, skratkám a právnickému jazyku.
|
||||
- Konfigurácia deepspeed po čase nastavila lr na nula a trénovanie sa zastavilo.
|
||||
|
||||
## Poznámky Electra
|
||||
|
||||
- Electra vie využiť iba jednu Titan kartu, druhú zbytočne blokuje.
|
||||
- Trénovanie base electra trvá cca 40 dní na jednej karte.
|
||||
- Trénovanie electra small trvá asi 3 dni na jednej karte Titan RTX, ale model už ďalej nekonverguje po jednom dni.
|
||||
- Trénovanie electra small trvá asi 7 dní na jednej karte GTX1080
|
||||
- Dotrénovanie trvá iba niekoľko hodín.
|
||||
- Electric small 128 nefunguje na Quadre kvôli pamäti,
|
||||
- Electra small 512/32 batch funguje na Titane.
|
||||
- ELECTRA ingoruje pokyn na ponechanie diakritiky!!!! Ponechanie diakritiky funguje iba pre "prepare", inak sa diakritika stále odstraňuje. Ne ponechanie diakritiky sú potrebné úpravy v zdrojových kódoch.
|
||||
- TODO: Vytvorenie slovníka ako pri BERT https://github.com/google-research/electra/issues/58
|
||||
- electra prepare skript defaultne odstraňuje diakritiku a dáva malé písmená.
|
||||
|
||||
|
||||
## Poznámky ku hyperparametrom
|
||||
|
||||
- V SLovak Bert bola veľkosť vstupného vektora 512. Máme toľko pamäte?
|
||||
- Spotrebu pamäte ovplyvňujú veľkosť vstupného vektora, veľkosť trénovacej dávky.
|
||||
- Nie každý model je vhodný na QA. Je potrebné aby mal veľký rozmer vstupného vektora aby aj dlhší odsek mohol byť na vstupe. Z toho dôvodu 128 "small model" asi nestačí na QA.
|
||||
- Väčší vstupný rozmer je obmedzený veľkosťou RAM pri trénovaní.
|
||||
- learning rate by malo byť priamo úmerné s batch_size. Malý batch size by mal mať malý learning rate.
|
||||
|
||||
## Budúci výskum
|
||||
|
||||
- Zistiť aký je optimálny počet tokenov? V Slovak BERT použili 50k.
|
||||
- Pripraviť webové demo na slovenské QA.
|
||||
- Integrovať QA s dialógovým systémom.
|
||||
- Integrovať QA s vyhľadávačom.
|
||||
- Zostaviť multilinguálny BERT model.
|
||||
- Natrénovať BART model.
|
||||
- Natrénovať model založený na znakoch.
|
||||
|
||||
## Hardvérové požiadavky
|
||||
|
||||
[https://medium.com/nvidia-ai/how-to-scale-the-bert-training-with-nvidia-gpus-c1575e8eaf71](zz):
|
||||
|
||||
When the mini-batch size n is multiplied by k, we should multiply the starting learning rate η by the square root of k as some theories may suggest. However, with experiments from multiple researchers, linear scaling shows better results, i.e. multiply the starting learning rate by k instead.
|
||||
|
||||
| BERT Large | 330M |
|
||||
| BERT Base | 110M |
|
||||
|
||||
Väčšia veľkosť vstupného vektora => menšia veľkosť dávky => menší parameter učenia => pomalšie učenie
|
@ -7,44 +7,25 @@ taxonomy:
|
||||
author: Daniel Hladek
|
||||
---
|
||||
|
||||
Navrhnite a vytvorte dialógový systém komunikujúci v slovenskom jazyku pre úlohu komunikácie občana s mestom.
|
||||
# Chatbot
|
||||
|
||||
## Úlohy
|
||||
|
||||
- Zostavte bázu pravidiel pre systém RASA.
|
||||
- Vyhodnoťte chatbota pre rôzne úlohy.
|
||||
- Vytvorte a nasaďte webovú aplikáciu pre testovací prístup.
|
||||
|
||||
- Spracujte dáta o digitálnych služnách od mesta. Vytvorte z nich trénovaciu databázu.
|
||||
- Identifikujte agendu ktorú by riešil chatbot.
|
||||
- Identifikujte, ktoré časti pravidiel sa budú dať meniť.
|
||||
- Vytvorte webovú aplikáciu pre úpravu bázy pravidiel a pretrénovanie chatbota.
|
||||
- Integrujte chatbota s QA systémom.
|
||||
Ciele: Vytvorenie demonštračnej aplikácie pre interaktívnu komunikáciu s
|
||||
automatom
|
||||
|
||||
## Zdroje
|
||||
|
||||
- video kanál s [RASA tutoriálom](https://www.youtube.com/watch?v=rlAQWbhwqLA&list=PL75e0qA87dlHQny7z43NduZHPo6qd-cRc)
|
||||
- https://chatbotslife.com/how-you-can-build-your-first-chatbot-using-rasa-in-under-15-minutes-ce557ea52f2f
|
||||
- https://medium.com/analytics-vidhya/building-a-simple-chatbot-in-python-using-nltk-7c8c8215ac6e
|
||||
- <https:%%//%%chatbotslife.com/how-you-can-build-your-first-chatbot-using-rasa-in-under-15-minutes-ce557ea52f2f>
|
||||
- <https:%%//%%medium.com/analytics-vidhya/building-a-simple-chatbot-in-python-using-nltk-7c8c8215ac6e>
|
||||
|
||||
### Prostriedky
|
||||
|
||||
- [Repozitár s webovou aplikáciou](https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website)
|
||||
- [Repozitár s chatbotom](https://git.kemt.fei.tuke.sk/sh662er/Rasa)
|
||||
- [RASA toolbox](https://rasa.com/)
|
||||
- Slack(<https:%%//%%slack.com>) - ako rozhranie
|
||||
- Slovenský Spacy model https://github.com/hladek/spacy-skmodel
|
||||
- [RASA toolbox](https://rasa.com/)
|
||||
- Slack(<https:%%//%%slack.com>) - ako rozhranie
|
||||
|
||||
## Riešitelia
|
||||
|
||||
- [Matej Ščišľak](/students/2021/matej_scislak)
|
||||
- [Martin Šarišský](/students/2021/marin_sarissky)
|
||||
|
||||
## Predošlí riešitelia
|
||||
|
||||
- Bakalárska práca [Samuel Horáni](/students/2019/samuel_horani)
|
||||
- Dmytro Ushatenko (Daniel Hládek), 19/20
|
||||
- Jozef Olekšák (Stanislav Ondáš) 18/19 Riadenie dialógu na báze
|
||||
- Dmytro Ushatenko (Daniel Hládek), 19/20
|
||||
- Jozef Olekšák (Stanislav Ondáš) 18/19 Riadenie dialógu na báze
|
||||
štatických metód
|
||||
|
||||
## Existujúce riešenia
|
||||
@ -52,3 +33,11 @@ Navrhnite a vytvorte dialógový systém komunikujúci v slovenskom jazyku pre
|
||||
- [KEMT Bot](https://kemt.fei.tuke.sk)
|
||||
- <https:%%//%%jobothq.slack.com/>
|
||||
|
||||
## Riešiteľ 1
|
||||
|
||||
Zadanie:
|
||||
|
||||
1. Vypracujte úvod do problematiky systémov pre riadenie dialógu
|
||||
2. Vypracujte prehľad používaných metód riadenia dialógu
|
||||
3. Navrhnite a implementujte agenta pre zisťovanie informácií o katedre
|
||||
KEM
|
||||
|
@ -1,69 +0,0 @@
|
||||
---
|
||||
title: Hate Speech
|
||||
category: [project]
|
||||
tag: [hatespeech,nlp,nlm]
|
||||
---
|
||||
|
||||
# Hate Speech Scientific Project
|
||||
|
||||
Goal:
|
||||
|
||||
- To be able to recognize parts of text that contains hate or vulgarisms.
|
||||
|
||||
Possible applications:
|
||||
|
||||
- Management of discussion forums / detection of spam or abuse.
|
||||
- "Postprocessing" for biased generative language models - preventing to generate inapropriate responses.
|
||||
|
||||
Plan:
|
||||
|
||||
- Perform a review of the state-of-the-art
|
||||
- Pick established (english) corpora
|
||||
- Formalize the problem - classification of sentiment, recognition of topic, keyword selection,
|
||||
- Propose a preliminary system, repeat existing approach.
|
||||
- Create small evaluation set in Slovak
|
||||
- Try multilingual/crosslingual approach. Possibility of machine translation.
|
||||
- Annotate a bigger Slovak Corpus
|
||||
- Recognize and publish scientific contribution
|
||||
|
||||
Future Tasks:
|
||||
|
||||
- Evaluate existing multilingual model. E.G. https://huggingface.co/Andrazp/multilingual-hate-speech-robacofi
|
||||
- Translate existing English dataset into Slovak. Use OPUS English Slovak Marian NMT model. Train Slovak munolingual model.
|
||||
- Train or finetune or prompt a large langauge model.
|
||||
|
||||
In progress tasks:
|
||||
|
||||
- Annotate a Twitter Dataset. Possible guidelines are: https://developers.perspectiveapi.com/s/about-the-api-training-data?language=en_US
|
||||
- Annotate a Facebook Dataset. Use some other guidelines. e.g. sentence-level annotation, for context sensitive hate.
|
||||
- Prepare existing Slovak Twitter dataaset, train evaluate a model.
|
||||
|
||||
Finished tasks:
|
||||
|
||||
- Perform preliminary experiments with HS detection (Bulburu)
|
||||
- Prepare an anotation infrastructure for Facebook data annotation (Ferko)
|
||||
- Gather Facebook data and prepare for annotation. (Ferko)
|
||||
|
||||
People:
|
||||
|
||||
|
||||
- Ján Staš
|
||||
- Daniel Hládek
|
||||
- Zuzana Sokolová
|
||||
- [Vladimír Ferko](/students/2021/vladimir_ferko)
|
||||
- [Tetiana Mohorian](/students/2022/tetiana_mohorian)
|
||||
- [Patrik Pokrivčák](/students/2019/patrik_pokrivcak)
|
||||
|
||||
|
||||
Former participants:
|
||||
|
||||
- [Sevval Bulburu](/interns/sevval_bulburu)
|
||||
- [Manohar Gowdru Shridharu](/students/2021/manohar_gowdru_shridharu)
|
||||
|
||||
|
||||
Links:
|
||||
|
||||
|
||||
- https://europeanonlinehatelab.com/
|
||||
- https://hatespeechdata.com/
|
||||
- https://oznacuj-dezinfo.kinit.sk/
|
@ -6,14 +6,11 @@ taxonomy:
|
||||
tag: [python]
|
||||
author: Daniel Hladek
|
||||
---
|
||||
# Práca s jazykom Python v prostredí Anaconda
|
||||
# Jazyk Python
|
||||
|
||||
Vhodný na spracovanie prirodzeného jazyka
|
||||
|
||||
|
||||
Podobné prostredie si viete vytvoriť na Vašom počítači, na školskom servri alebo na Google Colab.
|
||||
|
||||
|
||||
## Ako začať s Pythonom
|
||||
|
||||
Prečítajte si
|
||||
@ -53,71 +50,6 @@ conda activate mojeprostredie
|
||||
|
||||
[Ťahák Anaconda](https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf)
|
||||
|
||||
## Inštalácia Pytorch s podporou CUDA do prostredia Anaconda
|
||||
|
||||
Na inštaláciu ľubovoľnej verzie CUDA a Pytorch nepotrebujete admin práva.
|
||||
Verzia Python, CUDA a Pytorch musí spolu sedieť.
|
||||
Najnovšiu verziu všetkého potrebného stiahnete zo stránky [Pytorch](https://pytorch.org/)
|
||||
|
||||
Napríklad takto:
|
||||
|
||||
```
|
||||
conda install python=3.10
|
||||
conda install pytorch pytorch-cuda=11.8 -c pytorch -c nvidia
|
||||
```
|
||||
|
||||
Inštalácia bude chvíľu trvať.
|
||||
|
||||
Overte si že CUDA funguje správne:
|
||||
|
||||
```
|
||||
python
|
||||
>>> import torch
|
||||
>>> torch.cuda.is_available()
|
||||
```
|
||||
|
||||
|
||||
## Spustenie dlhších procesov na GPU
|
||||
|
||||
Na servri QUADRO sú k dispozícii 4 karty NVIDIA 1080, 12 GB RAM.
|
||||
|
||||
Overte si, ktoré karty sú voľné:
|
||||
|
||||
```
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
Pri trénovaní si zvoľte na ktorej karte budete trénovať pomocou premennej prostredia `CUDA_VISIBLE_DEVICES`.
|
||||
|
||||
Napr.
|
||||
|
||||
```
|
||||
CUDA_VISIBLE_DEVICES=2,3 python train.py
|
||||
```
|
||||
|
||||
spustí trénovanie na 3. a na 4. karte. Prosím vždy si vyberte toľko koľko potrebujete a zbytočne nebolujte karty pre druhých.
|
||||
|
||||
|
||||
Dlhšie procesy môžete manažovať cez príkaz `tmux`.
|
||||
|
||||
Najprv si spustíte nové sedenie:
|
||||
|
||||
```
|
||||
tmux
|
||||
```
|
||||
|
||||
```
|
||||
CTRL+B C si viete urobiť nové okno.
|
||||
CTRL+B B prepnete okno.
|
||||
CTRL+B N prepnete okno.
|
||||
CTRL+B D vypnete tmux, ale procesy budú stále bežať aj keď sa odhlásite.
|
||||
```
|
||||
|
||||
```
|
||||
tmux a -t 0
|
||||
```
|
||||
|
||||
obnovíte posledné sedenie
|
||||
|
||||
## Virtualenv
|
||||
|
||||
@ -158,3 +90,4 @@ Vymazanie virtuálneho prostredia
|
||||
rm -r venv
|
||||
```
|
||||
|
||||
|
||||
|
@ -9,57 +9,23 @@ taxonomy:
|
||||
|
||||
[Trénovanie modelov Spacy](https://spacy.io/usage/training)
|
||||
|
||||
## Ciele
|
||||
## Úlohy
|
||||
|
||||
- Vytvoriť modul v jazyku Python pre podporu slovenčiny
|
||||
- Pripraviť trénovacie dáta pomocu frameworku [Prodigy](/topics/prodigy).
|
||||
- Natrénovať štatistické modely:
|
||||
- pre morfologickú analýzu
|
||||
- rozpoznávanie pomenovaných entít
|
||||
- Unifikovaný systém pre predspracovanie slovenského jazyka
|
||||
- Možné aplikácie:
|
||||
- Podporiť dialógový systém RASA
|
||||
- Neurónové vyhľadávanie
|
||||
|
||||
## Hotové úlohy
|
||||
|
||||
- trénovanie modelu Spacy 2, kompletné skripty
|
||||
- trénovanie modelu Spacy 3 do SNK POS tagsetu (ver. 3.0), kompletné skripty
|
||||
- trénovanie modelu Spacy 3 do UD tagsetu (ver. 3.1.), kompletné skripty
|
||||
- zahrnuté slovné vektory Fasttext Common Crawl
|
||||
- Trénovanie Dependency, POS pomocu UD Corpus
|
||||
- Trénovanie NER pomocou automatického korpusu WikiNER (druhý model).
|
||||
|
||||
## Budúce úlohy
|
||||
|
||||
- Zahrnúť predtrénované modely (MultilingualBert, SlovakBert....).
|
||||
- Nájsť optimálne hyperparametre.
|
||||
- Zostaviť korpus pomenovaných entít.
|
||||
- Zaradiť model do oficiálnej distribúcie Explosion AI, podmienka je vlastný korpus pomenovaných entít.
|
||||
|
||||
## Neprioritné úlohy (zásobník)
|
||||
|
||||
- Zaradiť vlastné WordEmbedding (fasttext).
|
||||
- Pridať lexikálne pravidlá (skratky, stop slová) do oficiálnej distrubúcie Spacy.
|
||||
- Zaradiť MultextEast do trénovania. Tam je ale potrebné konvertovať tagy do UD, napr. pomocou [Interset](https://github.com/dan-zeman/interset)
|
||||
|
||||
## Súvisiace projekty
|
||||
|
||||
- Anotácia pomenovaných entít pomocu frameworku [Prodigy](/topics/named-entity).
|
||||
- [Predtrénovanie jazykového modelu](/topics/bert)
|
||||
|
||||
## Repozitár
|
||||
|
||||
- https://github.com/hladek/spacy-skmodel
|
||||
- [Repozitár Jozef Olekšák](https://git.kemt.fei.tuke.sk/jo673fv/sk-spacy)(slovenské stop words a pravidlá)
|
||||
- https://git.kemt.fei.tuke.sk/jo673fv/sk-spacy (slovenské stop words a pravidlá)
|
||||
- https://git.kemt.fei.tuke.sk/dano/spacy-skmodel (slovenské NER a POS, vychádza s oficiálneho modelu, obsahuje niektoré dátové zdroje)
|
||||
- https://files.kemt.fei.tuke.sk/minio/models/spacy/ Hotové spacy modely
|
||||
|
||||
## Ľudia
|
||||
|
||||
- [Maroš Harahus](/students/2016/maros_harahus) (štatistické značkovanie)
|
||||
- [Kristián Sopkovič](/students/2019/kristian_sopokovic) (vylepšenie parametrov, transformery)
|
||||
|
||||
## Ukončené projekty
|
||||
|
||||
- Jozef Olekšák (slovenské stop words a pravidlá),
|
||||
- Jozef Olekšák
|
||||
- [Lukáš Pokrývka](/students/2016/lukas_pokryvka) (Word Embedding Modely)
|
||||
- [Martin Wencel](/students/2018/martin_wencel) demo aplikácia
|
||||
|
@ -1,57 +0,0 @@
|
||||
# AI4Steel
|
||||
|
||||
## Cieľ
|
||||
|
||||
- Návrh modelu zloženia tavnej zmesi v konvertore s využitím hlbokých neurónových sietí
|
||||
|
||||
## Riešitelia
|
||||
|
||||
- [Maroš Harahus](/students/2016/maros_harahus)
|
||||
- Lukáš Hruška
|
||||
|
||||
## Metódy
|
||||
|
||||
- klasické (štatistické) metódy predikcie postupností a predikcie časových radov.
|
||||
- modelovanie pomocou hlbokých neurónových sietí (RNN, LSTM, VAE, CNN, Transformer, GNN, GAN)
|
||||
- https://en.m.wikipedia.org/wiki/Basic_oxygen_steelmaking
|
||||
- Time Series Prediction
|
||||
- Markov Decision Process?
|
||||
- Možné nástroje: Keras, Pytorch Lightning ...
|
||||
|
||||
## Stretnutia
|
||||
|
||||
|
||||
|
||||
## Úlohy
|
||||
|
||||
- Pochopiť modelovaný proces a zostaviť podrobný prehľad metód modelovania a možných overovacích množin.
|
||||
- Predpripraviť dáta
|
||||
- Vybrať vhodnú sadu nástrojov, zostaviť a vyhodnotiť model.
|
||||
- Overiť model v praxi
|
||||
|
||||
## Harmonogram
|
||||
|
||||
(zatiaľ bez termínov)
|
||||
|
||||
### Fáza teoretickej prípravy
|
||||
|
||||
Vo fáze teoretickej prípravy sa zameriame na pochopenie technologického procesu výroby ocele. Absolvujeme osobnú exkurziu v železiarni a porozprávame sa s pracovníkmi pri tavbe. V oblasti dátovej analytiky sa oboznámime so základnými predikcie postupností a predikcie časových radov klasickými metódami aj metódami pomocou neurónových sietí. Vypracujeme prehľadový článok kde zhrnieme aktuálne vedecké práce na túto tému.
|
||||
|
||||
### Fáza prípravy dát
|
||||
|
||||
Zhromaždíme všetky dostupné dáta z technologického procesu a konvertujeme ich do strojovo ľahko čitateľnej formy. Očistíme ich od šumu a doplníme chýbajúce hodnoty.
|
||||
|
||||
Analyzujeme dáta aby sme identifikovali závislé a nezávislé veličiny, ich dátový typy a jednotky. Z očistených dát zostavíme trénovaciu a vyhodnocovaciu množinu. Navrhneme vhodnú metódu a metriku vyhodnotenia. Identifikujeme vhodné softvérové prostriedky a knižnice.
|
||||
|
||||
### Fáza modelovania
|
||||
|
||||
Navrhneme a implementujeme prvotný model. Na základy prvých výsledkov budeme skúšať rôzne metódy reprezentácie pomocou vektorovej formy – kódovanie do jednotkového vektora, zníženie rozmeru matice alebo kvantizáciu. Vyskúšame rôzne spôsoby modelovania založené na štatistike aj na neurónových sieťach. Začneme vyvíjať používateľskú aplikáciu pre nasadenie modelu do praxe. Predbežné výsledky budeme publikovať a konzultovať s odborníkmi z praxe.
|
||||
|
||||
### Fáza nasadenia
|
||||
|
||||
Model, ktorý dosiahne najlepšie výsledky v simulácii skúsime overiť v praxi. Dokončíme aplikáciu pre podporu rozhodovania pri technologickom procese. Zozbierame spätnú väzbu od pracovníkov tavby a podľa toho vylepšíme model a aplikáciu.
|
||||
|
||||
|
||||
### Fáza vyhodnotenia a prezentácie výsledkov:
|
||||
|
||||
Odmeriame vplyv nového modelu na technologický proces. Zorganizujeme PR aktivity (tlačovú konferencium, PR články, reportáže) pre prezentovanie výsledkov projektu. Prezentujeme finálne výsledky na konferenciách a v časopisoch.
|
36
readme.md
Normal file
@ -0,0 +1,36 @@
|
||||
Google’s neural machine translation system
|
||||
|
||||
NMT používa end-to-end vzdelávací prístup pre automatický preklad, ktorého cieľom je prekonať slabé stránky konvenčných frázových systémov. Bohužiaľ systémy NMT sú výpočtovo nákladné počas trénovania ako aj pri samotnom preklade (niekedy kvôli ochrane napr. pri vysokom množstve veľkých súborov a veľkých modelov). Niekoľko autorov tiež uviedlo, že systémom NMT chýba robustnosť, najmä keď vstupné vety obsahujú zriedkavé, alebo zastaralé slová. Tieto problémy bránili používaniu NMT v praktických nasadeniach a službách, kde je nevyhnutná presnosť aj rýchlosť. Spoločnosť Google preto predstavila GNMT (Google´s Neural Machine Translation) systém , ktorý sa pokúša vyriešiť mnohé z týchto problémov. Tento model sa skladá z hlbokej siete Long Short-Term Memory (LSTM) s 8 kódovacími a 8 dekódovacími vrstvami, ktoré využívajú zvyškové spojenia, ako aj pozorovacie spojenia zo siete dekodéra ku kódovaciemu zariadeniu. Aby sa zlepšila paralelnosť a tým pádom skrátil čas potrebný na tréning, tento mechanizmus pozornosti spája spodnú vrstvu dekodéra s hornou vrstvou kódovacieho zariadenia. Na urýchlenie konečnej rýchlosti prekladu používame pri odvodzovacích výpočtoch aritmetiku s nízkou presnosťou. Aby sa vylepšila práca so zriedkavými slovami, slová sa delia na vstup aj výstup na obmedzenú množinu bežných podslovných jednotiek („wordpieces“). Táto metóda poskytuje dobrú rovnováhu medzi flexibilitou modelov oddelených znakom a účinnosťou modelov oddelených slovom, prirodzene zvláda preklady vzácnych slov a v konečnom dôsledku zvyšuje celkovú presnosť systému.
|
||||
|
||||
Štatistický strojový preklad (SMT) je po celé desaťročia dominantnou paradigmou strojového prekladu. Implementáciami SMT sú vo všeobecnosti systémy založené na frázach (PBMT), ktoré prekladajú sekvencie slov alebo frázy, kde sa môžu dĺžky líšiť. Ešte pred príchodom priameho neurónového strojového prekladu sa neurónové siete s určitým úspechom používali ako súčasť systémov SMT. Možno jeden z najpozoruhodnejších pokusov spočíval v použití spoločného jazykového modelu na osvojenie frázových reprezentácií, čo prinieslo pozoruhodné zlepšenie v kombinácii s prekladom založeným na frázach. Tento prístup však vo svojej podstate stále využíva frázové prekladové systémy, a preto dedí ich nedostatky.
|
||||
|
||||
O koncepciu end-to-end učenia pre strojový preklad sa v minulosti pokúšali s obmedzeným úspechom. Po seminárnych prácach v tejto oblasti sa kvalita prekladu NMT priblížila k úrovni frázových prekladových systémov pre bežné výskumné kritériá. V anglickom až francúzskom jazyku WMT’14 dosiahol tento systém zlepšenie o 0,5 BLEU v porovnaní s najmodernejším frázovým systémom. Odvtedy bolo navrhnutých veľa nových techník na ďalšie vylepšenie NMT ako napríklad použitie mechanizmu pozornosti na riešenie zriedkavých slov, mechanizmu na modelovanie pokrytia prekladu, rôznymi druhmi mechanizmov pozornosti, minimalizáciou strát na úrovni vety. Aj keď presnosť prekladu týchto systémov bola povzbudivá, systematické porovnanie s veľkým rozsahom chýba, frázové prekladové systémy založené na kvalite výroby chýbajú.
|
||||
|
||||
LSTM sú špeciálny typ Rekurentných neurónových sietí (RNN), ktorý slúži na dosiahnutie dlhodobého kontextu (napr. Pri doplnení chýbajúcej interpunkcie alebo veľkých písmen). Najväčšie využitie LSTM je v oblasti strojového učenia a hĺbkového učenia.
|
||||
|
||||
Vlastnosti LSTM:
|
||||
|
||||
pripravený spracovať nielen jednoduché dáta, ale aj celé sekvenčné dáta (napr. reč alebo video),
|
||||
|
||||
sú vhodné na klasifikáciu, spracovanie a vytváranie predikcií na základe časových údajov
|
||||
|
||||
LSTM boli definované tak, aby si na rozdiel od RNN vedeli pomôcť s problémom, ktorý sa nazýva „Exploding and vanishing gradient problems“.
|
||||
|
||||
Exploding and vanishing gradient problems
|
||||
|
||||
V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii tréningu. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom tréningu. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly.
|
||||
|
||||
Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s dlhodobou krátkodobou pamäťou (LSTM), orezaním gradientu a regularizáciou hmotnosti. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami.
|
||||
Wordpiece Model
|
||||
|
||||
Tento prístup je založený výlučne na dátach a je zaručené, že pre každú možnú postupnosť znakov vygeneruje deterministickú segmentáciu. Je to podobné ako metóda použitá pri riešení zriedkavých slov v strojovom preklade neurónov. Na spracovanie ľubovoľných slov najskôr rozdelíme slová na slovné druhy, ktoré sú dané trénovaným modelom slovných spojení. Pred cvičením modelu sú pridané špeciálne symboly hraníc slov, aby bolo možné pôvodnú sekvenciu slov získať zo sekvencie slovného slova bez nejasností. V čase dekódovania model najskôr vytvorí sekvenciu slovných spojení, ktorá sa potom prevedie na zodpovedajúcu sekvenciu slov.
|
||||
|
||||
|
|
||||
Obr 1. príklad postupnosti slov a príslušná postupnosť slovných spojení
|
||||
|
||||
Vo vyššie uvedenom príklade je slovo „Jet“ rozdelené na dve slovné spojenia „_J“ a „et“ a slovo „feud“ je rozdelené na dve slovné spojenia „fe“ a „ud“. Ostatné slová zostávajú ako jednotlivé slová. „“ Je špeciálny znak pridaný na označenie začiatku slova.
|
||||
|
||||
Wordpiece model sa generuje pomocou prístupu založeného na údajoch, aby sa maximalizovala pravdepodobnosť jazykových modelov cvičných údajov, vzhľadom na vyvíjajúcu sa definíciu slova. Vzhľadom na cvičný korpus a množstvo požadovaných tokenov D je problémom optimalizácie výber wordpieces D tak, aby výsledný korpus bol minimálny v počte wordpieces, ak sú segmentované podľa zvoleného wordpiece modelu. V tejto implementácii používame špeciálny symbol iba na začiatku slov, a nie na oboch koncoch. Počet základných znakov tiež znížime na zvládnuteľný počet v závislosti na údajoch (zhruba 500 pre západné jazyky, viac pre ázijské jazyky). Zistili sme, že použitím celkovej slovnej zásoby medzi 8 000 a 32 000 slovnými jednotkami sa dosahuje dobrá presnosť (skóre BLEU) aj rýchla rýchlosť dekódovania pre dané jazykové páry.
|
||||
|
||||
V preklade má často zmysel kopírovať zriedkavé názvy entít alebo čísla priamo zo zdroja do cieľa. Na uľahčenie tohto typu priameho kopírovania vždy používame wordpiece model pre zdrojový aj cieľový jazyk. Použitím tohto prístupu je zaručené, že rovnaký reťazec vo zdrojovej a cieľovej vete bude segmentovaný presne rovnakým spôsobom, čo uľahčí systému naučiť sa kopírovať tieto tokeny. Wordpieces dosahujú rovnováhu medzi flexibilitou znakov a efektívnosťou slov. Zistili sme tiež, že naše modely dosahujú lepšie celkové skóre BLEU pri používaní wordpieces - pravdepodobne kvôli tomu, že naše modely teraz efektívne pracujú v podstate s nekonečnou slovnou zásobou bez toho, aby sa uchýlili iba k znakom.
|
||||
|