## 1. RAG – Retrieval-Augmented Generation (soovitatav alustuseks) RAG tähendab, et sa **ei õpeta mudelit ümber**, vaid annad talle päringu tegemise hetkel kaasa asjakohased artiklid kontekstina. Mudel "loeb" need läbi ja vastab nende põhjal. See on teadustöö jaoks ideaalne, sest: - Sa saad alati kontrollida, **millisele allikale** mudel tugineb (hallutsinatsioonide vähendamiseks kriitiline). - Uute artiklite lisamine on hetkega tehtud – ei mingit uuesti treenimist. - Saad kasutada palju väiksemaid ja kiiremaid mudeleid. ### Kuidas see käiks: 1. **Kogu artiklid** – PDF-id, veebilehed, arXiVi eeltrükid. 2. **Tee neist puhas tekst** – kasuta `pymupdf` (PDF), `markitdown` või lihtsalt kopeeri sisu. 3. **Tükelda tekst** – jaga 500–1000 tähemärgi pikkusteks lõikudeks (chunk'ideks). 4. **Loo vektorindeks** – kasuta embedding-mudelit (nt `BAAI/bge-small-et` või `intfloat/multilingual-e5-large`) ja salvesta vektorid andmebaasi (ChromaDB, FAISS, Qdrant). 5. **Päringu ajal** – otsi kasutaja küsimusele kõige sarnasemad lõigud, lisa need prompt'i kontekstiks ja küsi mudelilt. Lõpptulemus: küsid mudelilt *"Kuidas mõõdetakse liiklussagedust kaudsete meetoditega?"* – RAG otsib su artiklitest asjakohased lõigud, lisab need prompt'i ja mudel vastab nende põhjal koos viidetega. --- ## 2. Peenhäälestus (fine-tuning) Siin õpetad sa baasmudelit oma andmetega – mudel "õpib" liiklussageduse spetsiifilist sõnavara, meetodeid, valemeid ja kirjutamisstiili. **Plussid:** mudel kirjutab ise nagu valdkonnaekspert, ilma et peaks igale päringule eraldi konteksti lisama. **Miinused:** - Nõuab korralikku GPU-d. Sinu arvutil pole eraldi graafikakaarti (APU on integreeritud), seega treenimine oleks aeglane – isegi QLoRA-ga (4-bitine kvantimine) võib 7B mudeli treenimine võtta päevi. - Artiklite lisamine nõuab uuesti treenimist. - Suurem oht hallutsineerimiseks, sest mudel ei näita, kust ta info võttis. **Alternatiiv:** kasuta pilve-GPU-sid (RunPod, Lambda Labs) – paari euro eest saad paariks tunniks A100, mis treenib QLoRA-ga 7B mudeli ära. --- ## Mida ma soovitan sinu olukorras: | Samm | Tegevus | | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **1** | Lae alla mõni 7B–14B suurune avatud mudel (nt `Mistral-7B-Instruct-v0.3` või `Qwen2.5-14B-Instruct`) – mahub vabalt 128 GB RAM-i. | | **2** | Sea üles RAG-torustik: [Ollama](https://ollama.com/) + [Open WebUI](https://openwebui.com/) või [AnythingLLM](https://anythingllm.com/) – viimane on loodud just dokumendipõhiseks RAG-iks ja töötab kohe karbist välja. | | **3** | Lae oma artiklid AnythingLLM-i (toetab PDF-e, URL-e, isegi arXiVi linke). | | **4** | Katseta: esita küsimusi, võrdle vastuseid allikatega. | | **5** | Hiljem, kui RAG töötab ja vajad *stiililiselt* paremat kirjutamist, saad peenhäälestada väiksemat mudelit (nt 7B) oma kogutud küsimuste-vastuste paaride peal. | --- ## Mis puutub "veebist kättesaadavate" artiklite kodeerimisse: Jah, see on RAG-iga triviaalne – kas: - Salvestad PDF-id kohalikku kausta ja loed sisse, - Või kasutad tööriistu nagu [Zotero](https://www.zotero.org/) + [Better BibTeX](https://retorque.re/zotero-better-bibtex/) ekspordiks, - Või kogud artiklid arXiVi API kaudu (nt `arxiv.py`). Kui artiklid on veebis ja avalikult ligipääsetavad, võid lasta RAG-torustikul need ise veebist tõmmata (AnythingLLM oskab URL-i järgi sisu indekseerida). --- Tahad, et paneksime esimese sammu kohe paika? Näiteks: **installime Ollama ja AnythingLLM-i ning laeme esimese 5 artiklit liiklussageduse kohta sisse?** ### Seotud mõisted [[AAA_isiklik/LLM loomine/Tegevusplaan/AnythingLLM]]