Compare commits

..

5 Commits

57 changed files with 106 additions and 5474 deletions

View File

@ -14,7 +14,6 @@ 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
@ -23,42 +22,30 @@ Wiki stánka pre spoluprácu na záverečných prácach.
## Predmety
- [Diplomové práce 2024](/categories/dp2024)
- [Bakalárske práce 2024](/categories/bp2024)
- [Diplomové práce 2022](/categories/dp2022)
- [Bakalárske práce 2022](/categories/bp2022)
- Diplomový projekt 2022-Diplomová práca 2023
## 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 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)
- [Podpora slovenčiny v knižnici Spacy](/topics/spacy)
- [Slovenský BERT model](/topics/bert)
- [AI4Steel](/topics/steel)
- [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)

View File

@ -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

View File

@ -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).

View File

@ -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.

View File

@ -3,7 +3,7 @@ title: Maroš Harahus
published: true
taxonomy:
category: [dp2021,bp2019]
tag: [spelling,spacy,nlp]
tag: [spacy,nlp]
author: Daniel Hladek
---
# Maroš Harahus
@ -11,234 +11,13 @@ taxonomy:
- [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
Generovanie vektorových reprezentácií štruktúrovaných dát.
Automatické opravy textu a spracovanie prirodzeného jazyka
## Minimovka 2023
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ť
- Grafové neurónové siete
Report 18.3.2022
@ -250,6 +29,10 @@ https://github.com/ShangtongZhang/reinforcement-learning-an-introduction)
- š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)
@ -270,8 +53,10 @@ 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
@ -290,6 +75,20 @@ Report 25.02.2022
- Hľadanie vhodnej implementácie na generovanie dát
- Rozpracovaná (veľmi malo) analýza datasetu peci
Záznam z porady 24.2:
- tavby za sebou súvisia kvôli kalibrácii .. x tavieb
- overiť anomálie v dátach .. ci je problém signifikantný...atď.
- pýtať sa na druh šrotu, lebo niektoré sú podobne
- prečo mame rozdelene modely_ nebude stačiť jeden model ?
- možná kalibrácia , zisti prečo sú horšie dáva ? ci to je kvôli senzorom alebo kedy sa kalibruje atď.
- čo ma andrii model je lepší ako čo majú v USS
- model nemá len vedieť povedať najočakávanejšiu hodnôt ale nech vie aj určovať distribúciu.. aby nepovedal že sira vyjde tak a tak ale že vyjde xy s takou pravdepodobnosťou ... dopočítane pravdepodobnosti
- model s pravdepodobnosťou
- porovnať ktorý model kedy funguje lepšie
- prečo je taká vysoká presnosť? simulovanie meracieho pristroja s danou presnosťou pri normálnej distribúcii chyby
- distribúcia pravdepodobnosti na výstupe
Stretnutie 2.2.2022
In progress:
@ -324,10 +123,11 @@ Zásobník úloh:
Stretnutie 17.1.2022
- Mame dáta z vysokej pece (500GB)
- Mme 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.
@ -363,6 +163,7 @@ Zásobník úloh:
- 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:
@ -379,6 +180,7 @@ Stav:
- Publikovať diplomovú prácu.
## Diplomová práca 2021
- [CRZP](https://opac.crzp.sk/?fn=detailBiblioForm&sid=ECC3D3F0B3159C4F3216E2027BE4)
@ -582,6 +384,8 @@ Stretnutie: 20.2.2020:
## Tímový projekt 2019
Projektové stránky:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -6,129 +6,12 @@ taxonomy:
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:
@ -140,19 +23,20 @@ Návrh na tému:
Návrh na postup:
1. Oboznámenie sa s problematikou.
2. Zostavenie databázy príspevkov. Stiahnutie a predspracovanie.
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.
- 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.
- 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.

View File

@ -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.

View File

@ -10,7 +10,6 @@ taxonomy:
Rok začiatku štúdia: 2018
Už neštuduje tento študijný program.
## Diplomová práca 2023
@ -40,13 +39,21 @@ 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
- Heslá na vyhľadávanie: emotion 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
Splnené úlohy 26.3.2021 :
- Naštudoval som si základy neuronových sieti
- Nainštaloval som si balíček Anaconda + krátky úvod
- Štúdium programovania v programovacom jazyku Python
- Úvod do emotion classification a emotion detection
- Oboznámenie s knižnicou Huggingface
Zásobník úloh:
- Oboznámte sa s knižnicou Huggingface Transformers
.

View File

@ -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ý)

View File

@ -17,134 +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ľ:
@ -152,56 +24,6 @@ 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.

View File

@ -19,23 +19,6 @@ Systémy pre generovanie odpovede na otázku v prirodzenom 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

View File

@ -18,7 +18,6 @@ Návrh na zadanie:
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í
@ -30,62 +29,9 @@ Cieľ práce:
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
- Implementovať algoritmus pre zoradenie (ranking) dokumentov v takejto databáze.
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

View File

@ -2,7 +2,7 @@
title: Filip Tomáš
published: true
taxonomy:
category: [bp2022,dp2024]
category: [bp2022]
tag: [testovanie,javascript,typescript]
author: Daniel Hladek
---
@ -10,232 +10,6 @@ taxonomy:
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

View File

@ -2,309 +2,13 @@
title: Kristiá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:

View File

@ -2,375 +2,13 @@
title: Michal Stromko
published: true
taxonomy:
category: [vp2021,bp2022,dp2024]
category: [vp2021,bp2022]
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

View File

@ -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)

View File

@ -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

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

View File

@ -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.

View File

@ -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.

View File

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -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

View File

@ -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.

View File

@ -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).

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -2,104 +2,18 @@
title: Matúš Suchanič
published: true
taxonomy:
category: [vp2022,bp2023]
tag: [ir]
category: [vp2022]
tag: [spacy,nlp]
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)
@ -107,23 +21,9 @@ Finálny cieľ:
Výstupy:
- Report na cca 4 strany - ako si nainštalovať anacondu, niečo o knižnici HuggingFace Transformers
- 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:

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -10,8 +10,6 @@ taxonomy:
Beginning of the study: 2021
repository: https://git.kemt.fei.tuke.sk/mg240ia
## Disertation Thesis
in 2023/24
@ -20,81 +18,28 @@ 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
## Minimal Thesis
(preliminary dissertaion and exam in 2022/23)
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.
- Provide state-of-the-art overview.
- Formulate dissertation theses (describe scientific contribution of the thesis).
- Prepare to reach the scientific contribution.
- Publish 4 conference papers.
## 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.
- Provide state-of-the-art overview.
- Read and make notes from at least 100 scientific papers or books.
- Publish at least 2 conference papers.
- Prepare for minimal thesis.
Resources:
@ -102,139 +47,7 @@ Resources:
- 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.
- [Resources and benchmark corpora for hate speech detection: a systematic review](https://link.springer.com/article/10.1007/s10579-020-09502-8)
## Meeting 25.3.22
@ -247,10 +60,11 @@ Tasks:
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.
- 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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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/)

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -24,46 +24,16 @@ Plan:
- 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)
- Recognize and publish scientific contribution
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/
- https://oznacuj-dezinfo.kinit.sk/

View File

@ -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
```