dmytro_ushatenko/pages/students/2019/michal_stromko/README.md

349 lines
11 KiB
Markdown

---
title: Michal Stromko
published: true
taxonomy:
category: [vp2021,bp2022,dp2024]
tag: [ir,cloud,demo,nlp]
author: Daniel Hladek
---
rok začiatku štúdia: 2019
# Vedecky projekt 2022/23
Návrh na zadanie diplomovej práce:
- Vypracujte prehľad najnovších metód sémantického vyhľadávania pomocou neurónvých sietí.
- Vyberte vhodnú metódu pre vyhľadávanie a modifikujte ju tak aby bola použiteľná pre slovenské texty.
- S vybranou metódou vykonajte experiment s vyhľadávaním. Metódu porovnajte s najmenej jednou inou metódou.
- 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.
Súvisiace práce:
- Matej Kobyľan
- Suchanič
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 10.11.2022
Stav:
- Konvertovaný SCNC do JSON.
- Práca s Jina-Elasticsearch pre uloženie embeddingov.
- Prečítaný a spoznámkovaný článok "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation".
Úlohy:
- Rozbehať skript SlovakRetrieval ktorý využíva FAISS. V skripte je už aj BM25, ostatné modely aj vyhodnotenie Recall na množine SK QUAD.
- Vytvoriť slovenské vyhľadávanie pomocou WordEmbeding. Použiť slovenský Spacy Model.
- Prečítať a spoznámkovať ďalšie články z https://github.com/UKPLab/sentence-transformers
Zasobnik uloh:
- Dotrénovať sentence transformer na slovenský jazyk. Ako?
Stretnutie 14.10.2022
Ulohy:
- Precitat si clanok, napiste poznamky
- Navrhnite na co by ste sa chceli sustredit.
Stav:
- Naštudovaný článok Kharpukin Dense Passage Retrieval
- Naštudované Jina-DocArray.
- Je k dispozícci ES na školskom servri - aj tak je lepšie pracovať na vlastnej inštancii.
Úlohy:
- Dodaný skript na indexovanie SCNC do ES. Upravte skript na Jina DocArray
- Skúste zaindexovať slovenské dokumenty pomocou JinaDoc Array. Vyberte vhdoný existujúci model, napr. LABSE.
- Skúste ich vyhľadávať.
- Nájdite si článok o vyhľadávaní pomocou LABSE. Napíšte si z neho poznámky. Ako prebieha vyhľadávanie pomocou LABSE?
Zásobník úloh:
- skúste zaindexovať slovenské dokumenty pomocou Elasticsearch.
- Zistite ako funguje vektorové vyhľadávanie v ES.
# Bakalárska práca 2022
- [Repozitár](https://git.kemt.fei.tuke.sk/ms111of/bp2022)
Názov: Indexovanie slovenského textu pomocou Elasticsearch
1. Vypracujte prehľad metód pre získavanie informácií.
2. Vytvorte vyhľadávací index dokumentov zo slovenského internetu.
3. Vytvorte demonštračnú webovú aplikáciu pre vyhľadávanie na slovenskom internete.
4. Navrhnite zlepšenia vyhľadávania.
## Bakalársky projekt 2021
4.3.2022
- Prebehlo viacero stretnutí
- Spravená Flask aplikácia, funguje, doplnené stránkovanie, zobrazenie otázok samosttne aj s ohodnotením , zobrazenie článku. Vyhľadanie podľa ľubovoľnej otázky.
- Urobený compose pre ES a Kibanu
Úlohy:
- Dorobiť Dockerfile pre web aplikáciu.
- Pracovať na texte práce.
Stretnutie 18.2.2022
- Boli viaceré stretnutia
- Aplikácia funguje
Úlohy:
- Doplniť stránkovanie, vyhľadanie vo voľnej otázke, zobrazenie článku.
- Pracovač na texte.
Stretnutie 7.1.2022
- Vytvorená Flask aplikácia a Dockerfile
- Urobené jednoduché vyhodnotenie pomocou počtu výsledkov.
Úlohy:
- Urobte konfiguráciu url Elasticsearch pomocou premennej prostredia alebo argumentu príkazového riadka do Dockerfile.
- Môžete dať všetko do docker-compose.
- Urobte vyhodnotenie vyhľadávania pomocou Precision-recalll. Pozrite si DP Ján Holp. Zaindexujete testovaciu množinu. V testeovacej množine sú vzorové otázky a vzorové vyýsledky. Zoberiete vzorovú otázu a ku nej vyhľadáte výsledky. Porovnáte Vašu množinu a vzorovú množinu. zistíte veľkosť ich prieniku. Podľa veľkosti vzorovej množiny a výsledkovej množiny vypožítate precision-recall.
- Dorobte prezentáciu
- Do práce pridajte opis toho ako funguje Flask aplikácia a ako komunikuje s Elasticsearch.
Stretnutie 3.12.2021
- Podarilo sa zaindexovať dokument do ES pomocou Python skriptu
Úlohy:
- Zaindexujte viac dát
- Vytvorte webové rozhranie pre vyhľadávanie. Flaśk aplikácia.
Stretnutie 26.11.2021
- Vypracované skripty na vkladanie, ale zatiaľ nefungujú.
Úlohy:
- Zoznámte sa s ES API
- Prejdite tutoriál http://blog.adnansiddiqi.me/getting-started-with-elasticsearch-in-python/
Stretnutie 12.11.2021
Pokračujú práce na písomnej časti, na praktickej zatiaľ nie.
Úlohy:
- Zlepšiť štruktúru práce.
- Doplniť do textu odkazy na literatúru.
Ciele na semester:
- vedieť zaindexovať väčšie množstvo slovenských textov.
- vytvoriť funkčné webové demo na vyhľadávanie v týchto textoch.
Stretnutie 22.10.2021:
- Pokračovanie na otvrených úlohách - problémy s Essential Data Docker setup
Úlohy:
- Nainštalovať ES a Kibana, upravte compose na https://alysivji.github.io/elasticsearch-kibana-with-docker-compose.html
- Pozrieť si knihu https://nlp.stanford.edu/IR-book/ a urobiť z nej poznámky do teoretickej časti BP. Odvolávajte sa na túto knihu v texte.
- Skúste cez Kibanu zaindexovať jeden text a vyhľadať niečo.
- Preštudujte si ES Analyzer.
Stretnutie 15.10.2021
Stav:
- Nainštalovaný ES na UVT virtuálke s dostatkom miesta.
- Naštudovaný Docker.
Úlohy:
- Pokračovať v otvorených úlohách.
- Vyberte vhodnú klientskú knižnicu pre prácu s ES.
- Pozrite podporu slovenčiny na ES od [Essential Data](https://github.com/essential-data/elasticsearch-sk).
Stretnutie 1.10.2021
Stav:
- Urobený GIT, Overleaf aj virtuálny stroj na tuke cloud.
Úlohy:
- Pokračovať v otvorených úlohách.
Stretnutie 24.9.2021
Stav:
- Urobené poznámku ku knihe "Learning to Rank".
- Naštudované Cassandra.
Úlohy:
- Kódy dávajte na GIT do repozitára bp2022
- Začnite pracovať na Flask Web aplikácii. Aplikácia by mala vedieť zadať dotaz a zobraziť výsledky vyhľadávania.
- Vytvorte skript na indexovanie wikipédie do ES
- Napíšte si osnovu bakalárskej práce a dopíšte do nej relevantné texty ktoré máte.
Zásobník úloh:
- Vytvorte si virtuálny stroj na cloud.tuke.sk
- Web aplikácia by mala byť Dockerizovaná - vytvoríme Docker image.
- Vytvorte si pracovné prostredie s ElasticSearch a docker-compose: nainštalujete Docker Swarm
## Vedecký projekt 2021
Návrh na zadanie bakalárskej práce:
1. Vypracujte teoretickú úvod do problematiky získavania informácií.
2. Navrhnite spôsob vytvorenia indexu vybranej databázy a implementujte vyhľadávanie.
3. Vykonajte niekoľko experimentov a identifikujte mesto pre zlepšenie vyhľadávania.
Podobná práca [Ján Holp](/students/2016/jan_holp)
Klaudové služby pre získavanie informácií
Cieľom projektu je zistiť ako fungujú klaudové služby pre umelú inteligenciu a ako fungujú webové vyhľadávače.
Úlohy:
- Zistite čo je to získavanie informácií.
- Oboznámte sa s Azure Cognitive Search a získajte prístup k službe. Pre prihlásenie môžete použiť Váše študentské prihlasovacie údaje.
- Vypracujte minimálne jeden tutoriál pre prácu s Azure Cognitive Search.
- Vypracujte krátky report na 2 strany kde napíšete čo ste robili a čo ste sa dozvedeli.
Zásobník úloh:
- Vytvorte index a vyhľadávanie na ZP Wiki.
- Napíšte tutoriál o tom ako ste to dokázali.
Stretnutie 4.6.
- Dohodli sme sa na vytvorení vyhľadávacieho systému za použitia crawlera, indexu a webového rozhrania.
- Vytvorený prístup na websucker-pip git,
- Vytvorený prístup na idoc
- Pre vedúceho : vytvoriť prístup na cassandra, dorobiť deployment elasticsearch.
Úlohy:
- Zoznámiť sa so zdrojovými kódmi crawlera
- Prečítať si knihu "Learning to Rank for Information Retrieval and Natural Language Processing: Second Edition"
- Nainštalujte si u seba cassandru a vyskúšajte crawler, zistite ako pracuje Cassandra.
- Porozmmýšľajte, ako vytvoriť vyhľadávací index pre text uložený v cassandre. Index môže byť vytvorený pomocou elasticsearch alebo podobného systému.
Do budúcnosti:
- Zaindexovať texty
- Vytvoriť webové rozhranie pre vyhľadávací index.
Stretnutie 7.5.
Stav:
- Vytvorená SQL databáza pomocou az príkazov (SQL Database).
- Nainštalované Azure Data Studio, vytvorená databáza študentov.
- Vytvorený nový ACS index a naindexovaná databáza.
- Azure Blob funguje iba cez Portál kvôli Location. Azure Data Storage. Všetky README sa dali do jedného súboru a to sa zaindexxovalo pomocou ACS.
- [Dokumetácia](vp2021) je rozsiahla, podmienky na zápočet sú splnené.
Stretnutie 23.4.
Stav:
- vytvorené ACS pre vyhľadávanie vo vzorovej databáze hotelov.
- vytvorený prázdny index pre vyhľadávanie na Wiki.
- vytvorená databáza SQL Database - zatiaľ nefunguje. Chýba prístup na shell pre vytvorenie.
- vytvorený Azure BLOB - zatiaľ nefunguje. Vytvorená tabuľka so základnými informáciami -id, meno,... Nefunguje indexovanie blobu - problém s názvami blobu.
- zpwiki viem pridať do kontajnera - statický WEB blob kontajner.
- Vyzerá to tak, že ACS priamo nepracuje s PostgreSQL ani s Mariadb
Možnosti:
- Pokračovať v ceste pomocou ACS.
- Využiť Grav Plugin TNT Search.
- Vymyslieť niečo celkom iné.
Úlohy:
- Zapracovať na indexovaní pomocou Azure SQL.
- Porozmýšľať ako ďalej - chceme použiť hotové riešenie alebo niečo vymyslieť. Napríklad Elasticsearch - vyžaduje si Python, Javascript.
Stretnutie 9.4:
Stav:
- Vytvorená sada tutoriálov o Azure a Azure Cognitive Search. Dobré na ZKT. Tutorály sú na [GIthube](https://github.com/michal552703/Vedecky-projekt).
- Zistili sme, že ACS indexuje iba z Azure Storage.
Úlohy:
- Vytvoriť pokusný Azure Storage zdroj. Môže to byť Azure Blob alebo Azure Table alebo Azure SQL.
- Použiť indexer na indexovanie obsahu zdroja.
- Zapísať postup do súboru MD.
Stretnutie 19.3
Stav:
- Vytvorený prístup na Azure Portal
Úlohy:
- Vypracujte minimálne jeden tutoriál pre prácu s Azure Cognitive Search.