### 1️⃣ Sammud LLM-i ehitamiseks
| Sammu nr | Tegevus | Peamised tööriistad / soovitused |
|----------|---------|-----------------------------------|
| **1. Eesmärgi ja suuruse määratlemine** | Otsusta, kas vajad *decoder‑only* (GPT) või *encoder‑decoder* (T5/Seq2Seq) mudelit ning millise parameetrite arvu (nt 0,3 B – 7 B). Väiksemad mudelid on sobivad piiratud ressurssidega. | Hugging Face **Transformers** modelle kataloogist; *large_language_model_training_playbook* skaleerimissoovitused. |
| **2. Andmekogumine ja puhastamine** | Kogu valdkonnaspetsiifiline tekstikorpus (artiklid, pre‑printid, sisemised aruanded). Eemalda duplikaadid, filtreeri mitte‑teksti (HTML‑märgendid) ning normaliseeri UTF‑8. | 🤗 **Datasets** + `deduplicate-pile`; Python skriptid andmete puhastamiseks. |
| **3. Tokeniseerimine** | Loo või kasuta olemasolevat tokenisaatorit (BPE/WordPiece). Salvestage tokeniser koos metaandmetega, et tagada reprodutseeritavus. | 🤗 **Tokenizer** (`AutoTokenizer.from_pretrained`). |
| **4. Raamistiku valik ja keskkond** | • *Transformers* + *Accelerate* – lihtne lokaalne treening.<br>• *DeepSpeed* (ZeRO‑stage 1–3) või *Megatron‑LM* – suuremate mudelite jaoks.<br>• Kasuta **mixed‑precision** fp16/bf16. | `pip install transformers accelerate deepspeed`. |
| **5. Treeningtoru loomine** | • Defineeri hüperparameetrid (lr, batch size, warmup). <br>• Lülita sisse *gradient checkpointing* ja *CPU offloading*. <br>• Logi metrikad W&B või TensorBoard. | `Trainer`/custom `Accelerate` skript; DeepSpeed config‑fail. |
| **6. Mudeli treenimine** | Käivita treening klastris (mitme GPUga) või pilve spot‑instantsidel. Jälgi õppetöö kaotust, stabiliseerimise meetodeid (loss scaling). | `accelerate launch train.py`. |
| **7. Peenhäälestus / parameetriline tõhusus** | Kasuta *LoRA* või *PEFT* adaptereid olemasoleva baasmudeli peenhäälestamiseks – vajab vaid mõnda GB GPU mälu. | `peft` raamatukogu, `trl` RLHF‑treeninguks (vajadusel). |
| **8. Hinnang ja juurutamine** | Testi mudelit valitud testkorpusega; mõõda täpsust, hallutsinatsioone, kiirust. Deploy’i inference-API Docker/Kubernetes või Hugging Face Inference Endpoints’ile. | `transformers.pipeline`, FastAPI + TorchServe. |

---

### 2️⃣ Peamised eelised (akadeemilistele asutustele)
* **Valdkonnaspetsiifiline täpsus** – mudel õpib oma erialase sõnavara ja kontseptsioonid.
* **Andmete suvereeniklus & privaatsus** – kogu koolitusandmestik ja kaalud püsivad asutuse tulemüüris, vältides kolmandate osapoolte API‑kõnesid.
* **Regulatiivne vastavus (GDPR, HIPAA jt.)** – kontrolli täielikult juurdepääsu andmetele ja mudeli väljunditele.
* **Kulu‑efektiivsus pikas perspektiivis** – pärast esialgset investeeringut on inferentsitasud tunduvalt madalamad kui tasulised tokenipõhised teenused.
* **Kohandatav käitumine & turvameetmed** – saab sisestada reegleid, filtreid ja bias‑mitte‑levikustamise strateegiaid otse mudeli torusse.
* **Reprodutseeritav teadus** – kogu kood, andmekogum, hüperparameetrid ja kontrollpunktid on versioonitud (Git + DVC), võimaldades teistele laboritele täpset kordamist.

---

### 3️⃣ Akadeemilised kasutusjuhtumid
| Rakendus | Kuidas LLM aitab |
|----------|-------------------|
| **Kirjanduse ülevaated** | Massiline PDF‑ ja preprint‑korpuse kokkuvõte, metoodikate tabelite loomine, tsitaatide automaatne ekstrakt. |
| **Hüpoteeside / uurimis­küsimuste genereerimine** | Sisesta valdkonna lühitutvustus → mudel pakub potentsiaalseid järgmisi uuringute teemasid või eksperimentaalseid variatsioone. |
| **Eksperimendi disain** | Protokollide mustandid (valimi suurus, kontrollgrupid) ja statistilised analüüsikoodid. |
| **Õppe‑ ja juhendamisvahendid** | Interaktiivsed Q&A botid õpilastele, automaatne kodutöö tagasiside, testide genereerimine. |
| **Andmete märgistamine / korpusihaldus** | Teksti klassifitseerimine, entiteetide tuvastamine ja metaandmete lisamine suurtele andmekogudele (nt kliinilised märkmed). |
| **Taotluste/rahastuse kirjutamine** | Kokkuvõtete koostamine varasematest töödest ning struktureeritud projekti ettepanekute mallid. |

---

### 4️⃣ Praktilised näpunäited piiratud ressurssidega

1. **Alusta olemasolevast baasmudelist** – nt `EleutherAI/gpt-neo-125M` või `Meta/opt‑350m`. Peenhäälestus LoRA‑ga vajab vaid 2–4 GB GPU mälu.
2. **Kasuta *gradient checkpointing* ja *CPU offloading*** – vähendab VRAM-i nõudlust kuni 50 %.
3. **Treeni “mixed precision” fp16/bf16** – kiirendab treeningut ning säästab mälu.
4. **Andmekogumite voogedastus (streaming)** – `datasets.load_dataset(..., streaming=True)` hoiab kettaruumi madalal tasemel.
5. **Hangi odavaid GPU‑ressursse**: ülikooli HPC klastrid, Google Colab Pro+, Azure Spot VM‑d või AWS EC2 spot instances (pakkumised 30–70 % tavahinnast).
6. **Automatiseeri hüperparameetrite otsing** – kasuta lihtsat *grid search* või `optuna`/`ray[tune]`, kuid piirdu väikese parameetrivahemikuga, et vältida liigset kulutamist.
7. **Logi ja varunda regulaarselt** – igal epoch‑il salvesta kontrollpunkt (`save_strategy="epoch"`), kasutades DVC või Git LFS versioonihaldust.

---

### 5️⃣ Kiire “starter kit” (≈2 B parameetrit)
| Komponent | Valik |
|-----------|-------|
| **Baasmudel** | `EleutherAI/gpt-j-6b` → LoRA‑peenhäälestus annab ~1 GB GPU kasutuse. |
| **Framework** | `transformers + accelerate + peft`. |
| **Treeningandmed** | 10 GB valdkonnaspetsiifilist teksti (arvesta deduplication). |
| **GPU‑vajadus** | Üks NVIDIA A100 40 GB või kaks RTX 3090/4090 koos ZeRO‑stage 1. |
| **Kestvus** | ~3–5 päeva spot‑instantsidel (batch size ≈8, lr = 2e-4). |

---

**Kokkuvõte:**
Järgides ülaltoodud samm-sammult juhendit, kasutades avatud‑allika tööriistu ning rakendades ressursisäästlikke tehnikaid (LoRA, gradient checkpointing, mixed precision), saab ka piiratud eelarvega akadeemiline asutus luua oma privaatse LLM-i. See pakub märkimisväärseid eeliseid – paremat täpsust, andmete privaatsust ja reprodutseeritavust – ning võimaldab automatiseerida kirjanduse ülevaateid, hüpoteeside genereerimist, eksperimentaalse disaini, õppevahendeid ja palju muud.

