---
title: Filip Tomáš
published: true
taxonomy:
    category: [bp2022,dp2024]
    tag: [testovanie,javascript,typescript]
    author: Daniel Hladek
---

rok začiatku štúdia: 2019


DP sa prekladá na rok 2025

# Diplomová práca 2024 - 2025

Zadanie:

1. Napíšte prehľad metód vektorovej reprezentácie dokumentov pomocou neurónových sietí.  
2. Napíšte prehľad vektorových databáz a ich metód vyhľadávania.
3. Nasaďte vybranú vektorovú databázu do testovacieho distribuovaného prostredia. 
4. Vytvorte index väčšieho množstva textových dokumentov vo vybranej vektorovej databáze. 
5. Vytvorte webové rozhranie na vyhľadávanie a slovne vyhodnoťte výsledky.  

Ciel:

- Vytvorte distribuovaný vyhľadávací index pre dáta zo slovenského internetu.  Cieľom je vytvoriť vyhľadávanie na (skoro) celom slovenskom internete.

Spolupráca Michal Stromko, Kristián Sopkovič.

Stretnutie 27.9.2024

Stav:

- Urobené vyhľadávanie Milvus, odstavce sú v sqlite.
- Indexovanie je v osobitnom skripte.
- Urobené web rozhranie pomocou Flask.

Úlohy:

- Na indexovanie používajte server quadro - 4 GPU karty 1080 12GB RAM. Prístup dá vedúci. Skript upravte tak, aby používal všetky 4 karty. Urobte meranie o koľko sa zrýchlylo spracovanie.  Prihlásite sa ccez SSH `filip@quadro.kemt.fei.tuke.sk` . Server je dostupn7 iba cez VPN. Vytvoríte si prostredie Anaconda. Dlhý skript pustíte pomocou screen alebo tmux.
- Na RPI klaster k8s urobte paralelný deployment Milvus a mongodb aj webové rozhranie.
- Pokračujte v štúdiu LangChain.
- Pokračujte v písaní - sentence transformers, retrieval augmented generation, distributed database.  

Stretnutie 23.7.2024

Stav:

- Vytvorený jednoduchý index pomocou Milvus, indexovanie pomocou slovakbert-mnlr.
- Zatiaľ slovakbert-mnlr vyzerá lepšie, ale treba to ešte vyskúšať.

Úlohy:

- Pokračujte pri vytváraní indexu pomocou Milvus- slovakbert-mnlr. Snažte sa zindexovať celú wikipédiu. Indexujte na úrovni odstavcov. Na uloženie textu môžete použiť súborový systém (urobte si funkciu ktorá namapuje ID na meno súboru). Alebo na uloženie použite databázu. Napríklad minio alebo sqlite. 
- Skripty dávajte na GIT.
- Oboznámte sa s knižnicou LangChain, začnite tu https://python.langchain.com/v0.2/docs/tutorials/retrievers/
- robte si písomné poznámky. študujte vedecké články (napr. z Arxiv). Odkaz na článok si poznačte a zapíšte si čo sa v článku píše.


Zásobník úloh:

- vyhľadávací systém môžete urobiť pomocou langchain alebo inej knižnice.
- Pripravte deployment navrhnutého systému na k8s klaster.
- skúste spustiť vyhľadávací systém na raspberry pi klastri.
- zaindexujte slovenský internet.
- Pripravte benchmark rýchlosti indexovania.
- Pripravte webové rozhranie pre vyhľadávanie.


Stretnutie 3.5.2024

Stav:

- Rozbehaný Milvus lokálne pomocou Docker.
- Implementácia vyhľadávania pomocou Python.
- Rozpracovaná príprava na Milvus RPI Klaster.


Úlohy:

- Skúste zaindexovať slovenské dáta. Na vektorovú reprezentáciu použite https://huggingface.co/TUKE-DeutscheTelekom/slovakbert-skquad-mnlr
- Na začiatok zaindexujte slovenskú wikipédiu. Sparsovaný text bol dodaný.
- Napíšte o tom čo je to SentenceTransformer - ako sa trénuje a ako sa používa.
- Pozrite si DP M. Stromko a K. Sopkovič.

Zásobník úloh:

- Benchmarking vyhľadávania. Vyskúšame viacero embeddingov s rôznym rozmerom. Modely typu Matroshka.
- Zhlukovanie dokumentov - zostavenie doménového korpusu s dát.
- Dolovanie otázok a odpovedí.
- Je priestor pre nákupy RPI pre nový RPI klaster.

Stretnutie 8.12.2023

Stav:

- Funguje microk8s RPI klaster. Aktivované HA.

Úlohy:

- Vypracujte prehľad vektorových databáz. QDRANT, *MILVUS*, Weaviate, a iné. Opíšte ako funguje ich vyhľadávací index. Ako funguje tvorba a vyhľadávanie v distribuovanom indexe?. Citujte odborné články, 
- Pokračujte v úlohách: nasadte databázu, zaindexujte dokumenty a vypracujte webové rozhranie. 

Stretnutie 10.11.2023

Stav:

- Teoretická príprava a tri strany poznámok.

Úlohy:

- Nasadte databázu Milvus na RPi. Vytvorte skripty na nasadenie pomocou Kubernetes. Zvážte možnosž použitia HELM alebo K8S Operátor.
- Preštudujte si ako funguje distribuované nasadenie Milvus.
- Zistitie si čo je K8S operator. 
- Zistite čo to je HELM.
- Zisite ako nasadit Milvus pomocu Operator alebo pomocou HELM.
- Skúste zaindexovať pár dokumentov.
- Pokračujte v písaní práce.

Zásobník úloh:

- Vytvorte HTML rozhranie pre hybridné vyhľadávanie. Môžete využiť pomoc od Stromko-Sopkovič.


Stretnutie 26.10.2023

Stav:

- Vypracovaný text na tému: Hardware RPI, kontajnerizácia, Čo je ingress. Paralelné spracovanie dát, o Kubernetes. 
- Na klastri sú nainštalované všetky potrebné nástroje: Multipass, k8s, 

Úlohy:

- [x] Je potrebný Multipass na beh MicroK8s RPI klastra? Ak áno tak prečo. Ak nie tak to opravte.
- [ ] Pozrite si profily Stromko, Sopkovič.
- [x] Zistite, ako funguje "vektorové" vyhľadávanie pomocou neurónových sietí. Ako funguje SBERT-SentenceTransformer? Ako funguje vyhľadávanie BM25? Nájdite články a napíšte poznámky na 3 strany.
- [x] Prečítajte si https://qdrant.tech/articles/hybrid-search/
- [ ] Použite vektorovú databázu s podporou ukladania textu.
- [x] Preskúmajte možnosti nasadenia QDRANT, *MILVUS*, Weaviate. Oboznámte sa s týmito databázami. Umožňujú hybridné vyhľadávanie? Vyberte jednu vhodnú na nasadenie v našich podmienkach. Mala by fungovať aj na RPI klastri, mala by podporovať aj hybridné vyhľadávanie. 

Zásobník úloh:

- Zaindexujte slovenský internet.
- Pripravte jednoduché webové rozhranie pre vyhľadávanie na slovenskom internete.
- Vykonajte záťažové testy pre indexovanie a vyhľadávanie.




# Diplomový projekt 2023

Nápady:

- Zostaviť Raspberry Pi K8S Cluster pre podporu výuky predmetu ZKT. Chceme mať k dispozícii viacero fyzických uzlov, kde je možné spúštať rôzne aplikácie. 
- Klaster by malo byť jednoduché dať do východiskového stavu.
- Klaster by mal mať aj podpornú infraštruktúru: Storage, Ingress, Registry, LoadBalancer.
- Možno vytvoriť iný klaster pre skúštanie výukových alebo demonštračných aplikácií. Napr. JupyterLab, NLP demo pre GPU.
- Preskúmať možnosti paralelného spracovania dát - Dask, SLURM, Spark, 


Stav:

- Podarilo sa nainštalovať a nasadiť Kubernetes klaster na raspberry PI
- Bola vytvorená písomná správa
- Skripty sú na https://git.kemt.fei.tuke.sk/ft835qr/dp2024
- Výsledky boli odovzdané na poslednú chvíľu.

Úlohy:

- Oboznámte sa so systémom microk8s. Nainštalujte si ho a vyskúšajte. 
- Zistite čo je Ingress a ako si ho vytvoríme.
- Zistite, aké storage podporuje microk8s a ako ho implementovať.
- Navrhnite architektúru k8s klastra. Máme k dispozícii 5 jednotiek RPi4 s SD kartami. 1 jednotku Nvidia Jetson Xavier.

Zásobník úloh:

- Namontovať klaster do serverovne a prideliť IP.
- Rozbehať JupyterLab. 


# Bakalárska práca 2022


Názov bakalárskej práce:

Aplikačné testy v systémoch  kontinuálnej integrácie a nasadenia

Návrh na zadanie:

1. Vypracujte prehľad metód a nástrojov automatického testovania
2. Vypracujte prehľad metód a nástrojov systémov kontinuálnej integrácie a nasadenia
3. Vyberte vhodné metódy a pomocou systému Docker Compose nasaďte systém automatického testovania do vybraného systému kontinuálnej itengrácie a nasadenia.
4. Vypracujte sadu aplikačných testov na vybranú webovú aplikáciu. 
5. Navrhnite zlepšenia systému spúšťania automatických testov.

Stretnutie 15.3.

- Podarilo sa implementovať GitLab CI CD pipeline s Cypress
- Výsledky sú na https://git.kpi.fei.tuke.sk/filip.tomas/bp2022
- Treba vedúcemu prideliť práva na čítanie.

Úlohy:

- Pracujte na texte
- Pokračujte v práci na otvorenyých úlohách.

Stretnutie 25.2.

- Fungujú automatické testy Cypress

Úlohy:

- [ ] Vypracovať písomný prehľad CI CD systémov nasaditeľných pomocou Docker Compose.
- [ ] Vybrať vhodný systém, optimálne taký, ktorý sa dá integrovať so systémov Gitea.  https://gitea.com/gitea/awesome-gitea#user-content-devops
- [ ] Pripravte deployment docker compose, kotrý bude obsahovať GITEA aj CI CD podľa výberu. Najčastejšie sa používa asi Jenkins.

Interakcia medzi Gitea a CI CD sa deje pomocou webhook. Riešenie pomocou  GITlab je akceptovateľné, ale nie preferované.

# Bakalársky projekt 2021

Ciele:

1. [ ] Naučiť sa nasadiť a pracovať so systémom CI-CD. Vytvoriť pokusné nasadenie CI CD systému pomocou Docker compose. Môžete použiť [TUKE Cloud](https://cloud.tuke.sk/).
2. [x] Vytvoriť automatické aplikačné testy ku aplikácii Traktor.
3. [-] Vytvoriť kompletný reťazec CI-CD ku aplikácii Traktor. Automatický build a test, zobrazenie reportu.
4. [-] Vypracovanie písomného prehľadu.

Stretnutie 10.12.2021

-  Pripravený prvý reálny test, skladá sa z viacerých scenárov.
- Práca na texte

Úlohy:

- Pokračovať s vytváraním testov
- Pokračovať v práci na texte.
- Rozbehať vlastný CI CD. 

Práca na texte.

Úlohy: Pokračujte v otvorených úlohách
- Napíšte čo je to testovanie a aké spôsoby testovania poznáme (aplikačné, použiteľnosti, jednotkové... ).

Stretnutie 22.10.

- Napísaný prvý draf s poznámkami o CI CD
- pripravené prvé test-case

Úlohy:

- Pokračujte v otvorených úlohách
- Vytvorte GIT repozitár s názvom bp2022 a nahrajte do neho testovacie scenáre.

Zásobník úloh:

- [ ] Skúste vytvoriť nasadenie vhodného CI CD na tuke cloude.
- [ ] Upravte scenáre tak, aby boli ľahko automaticky spustiteľné. vytvorte skript pre inštaláciu potrebných komponentov a pre spustenie testov.


Stretnutie 23.9.

- Dohodli sme sa na zadaní, cieľoch a názve.

Úlohy:

- [ ] Urobte písomný prehľad systémov CI-CD. Uveďte zdroje z ktorých ste čerpali.
- [ ] Nájdite vhodnú odbornú literatúru, uveďte ju do prehľadu. V školskej knižnici môže byť dobrá kniha.
- [x] Navrhnite základné testovacie scenáre pre aplikáciu https://traktor.kemt.fei.tuke.sk.


