zpwiki/pages/students/2021/eduard_matovka/README.md

166 lines
7.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 8.3.
Stav:
- Práca na evaluatore -- [LLAMA evaluator od NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/llama/evaluation.html).
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