- 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.
- 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.
- 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.
- 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.
- 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.
- 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?
- 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ť 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.
- 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.
- [-] 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.
- 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.
- 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.
- 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.
- 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.