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


Chceme vytvoriť asistenta pre farmaceuta alebo zákazníka lekárne pre vyhľadávanie v príbalových letákoch.


Generovanie jazyka s podporou vyhľadávania v doménovo orientovaných dátach

1. Vypracujte prehľad metód a modelov generovania jazyka s pomocou vyhľadávania.
2. Navrhnite a vytvorte systém pre zodpovedanie otázok v prirodzenom jazyku v doménovo orientovaných dátach.
3. Vyskúšajte a vyhodnoťte vytvorený systém.
4. Navrhnite zlepšenia pre vybranú metódu generovania odpovede.


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

Stretnutie 28.3.2025

Stav:

- Agent funguje super.
- Kódy sú na osobnom githube

Úlohy:

- Kódy dajte na KEMT GIT.
- Dopracujte Docker Compose.
- Zverejnite demo, napr. pomocou TUKE Cloud.



13.2.2025

Stav:

- Funguje QA nad databázou liekov.
- Autentifikacia cez Google.
- História sa ukladá do Postgres DB  na AWS.
- Používa sa Mistral Large. Slovenský Mistral nefunguje lebo ho treba dotrénovať. 
- Vektorový model paraphrase-multilingual-MiniLM-L12-v2
- Projekt beží cez Docker, sú hotové aj Docker skripty.
- V texte je osnova a draft. Treba ešte pracovať hlavne na teoretickej časti - odbornej literatúre.

Úlohy:

- Pokračujte v práci na texte.
- Skúste vyhodnotiť navrhnutý systém. Pripravte dotazník. Osloviť kolegov aby to vyskúšali a slovne vyhodnotili systém.
- dajte nové kódy na git.

Zásobník úloh:

- Zlepšite logiku dialógu. Jazykový model by sa mal správať ak inteligentný agent - mal by mať definovaný cieľ konverzácie. 
- Definujte ciele dialógu - čo by mal agent vedieť pre úspešnú odpoveď. Napr. Interakcie s liekmi. Sú lieky na predpis? Aké sú podrobnejšie symptómy choroby? Suchý kašeľ alebo vykašliavanie? Koľko rokov má pacient? Aká anamnéza je dôležitá.
- Preštudujte si metodiku REACT a Chain of Thought. https://arxiv.org/abs/2210.03629  



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

