Väike keel peab olema avatud mudelites sama hea kui tasulistes.
Ühe GPU peal, ühe inimese poolt, iga samm mõõdetud. Õpetasin avatud keelemudelile Qwen3.8-27B korralikku eesti keelt ühe RTX 5090 abil. Siin on tulemused koos nimetajaga, vead koos hinnaga, mudel ja kood avalikult ning õpik, mille sa saad kohe alla laadida.
Miks ma istusin üheksa päeva ühe GPU taga.
Avatud keelemudelid räägivad inglise keelt hästi ja eesti keelt lohakalt. Nad käänavad valesti, ajavad rektsiooni sassi ja kirjutavad lauseid, mida ükski eestlane ei kirjutaks. Tasulised mudelid on paremad, aga nende taga on kellegi teise otsused ja kellegi teise hind. Ma tahtsin teada, kui kaugele jõuab üks inimene ühe tavalise mänguriarvutiga, kui ta iga sammu mõõdab.
Valisin baasiks Qwen3.8-27B, avatud kaaludega 27 miljardi parameetriga mudeli, ja treenisin seda QLoRA-meetodil ühel RTX 5090-l, millel on 32 GB mälu. Projekt käivitus 22. augustil 2026. Üheksa päevaga tegin 34 salvestatud treeningut: kõigepealt 13 sihitud oskusringi, kus iga ringi materjal sündis mudeli enda eelmise ringi vigadest, siis 110 miljoni tokeni suurune jätku-eeltreening toimetatud eesti proosal ja lõpuks kirurgilised parandusringid selle peal.
Kõige kallim õppetund ei olnud tehniline. See oli mõõtmise oma. Minu 200-ülesandeline eesti keele test oli mõeldud lukustatud kontrolliks, aga ma vaatasin seda pärast igat ringi ja valisin selle järgi järgmise annuse. See teeb sellest definitsiooni järgi arenduskomplekti, mitte testi. Number, mis sealt tuleb, on kallutatud ülespoole, ja ma ei tea, kui palju. Just sellepärast on igal numbril sellel lehel nimetaja ja piirang kõrval, samas kirjasuuruses.
Teine õppetund: väike sihitud annus võidab suure üldise. 720 näidet ühe kindla vea peale andsid rohkem kui 81 268 üldist näidet. Ja kolmas: mudeli enda vead on parim treeningmaterjal, mis üldse olemas on. Sama andmestik ühe suure partiina andis 9 punkti vähem kui 13 ringi, kus iga ring vaatas eelmise vigu.
Eesti keel on väike keel. Tema treenimine peab olema avalikult kättesaadav ja tehtud töö peab kanduma edasi tulevastesse mudelitesse, mitte jääma ühe inimese kõvakettale. Sellel tööl ei ole minu jaoks majanduslikku kaalu, ei otsest ega kaudset. Kood on MIT-litsentsiga, adapterid Apache 2.0 all, raportid CC BY 4.0. Ka vead on avalikud, sest neist õpib rohkem kui puhtast lõpptulemusest.
Iga number koos nimetajaga.
Numbrit ilma nimetajata ei saa kontrollida. Siin on neli mõõtmist, mille ma tegin, ja iga mõõtmise juures see, mida ta ütleb ja mida ta ei ütle. Kõige kaitstavam neist on perpleksus, sest selle vastu ei häälestatud ühtegi ringi.
Kõik numbrid, kontrollpunktid ja kolm hiljem leitud mõõteviga on kirjas repo failis PARANDUSED.md. Loe seda enne, kui mõnda numbrit tsiteerid.
Kaks nädalat, kuus pöördepunkti.
- 22.08.2026
Käivitus ja lähtejoon
Andmete inventuur, 200-ülesandeline eesti test, baasmudeli mõõtmine: 61,7 %.
- 23.08
Esimene ring algab 00:01
Reeglipõhised käänamisnäited, Vabamorfiga ring-kontrollitud. Sealt edasi ring ringi järel mudeli enda vigadest.
- 25.08
Ring 10 ja nõukoda
84,7 % arenduskogumil, aga EstQA kukkus baasist alla. Kolm eri mudelit vaatavad plaani üle ja leiavad augud.
- 30.08
Keelekiht ja tšempion
110 M tokenit proosat, perpleksus −31 %. Kirurgilised ringid peale, EstQA taastub 93,6-ni. LIHV2 on lõppseis.
- 01.09
Avalik ja parandatud
Adapterid, GGUF ja korpus Hugging Face'is. Ristkontroll leiab kolm mõõteviga, kõik avalikud materjalid parandatakse.
- 04.09
Keelekiht võetakse tagasi
Neli viga korraga. Puhas keelekiht üksi tegi mudeli arenduskogumil 5,6 punkti halvemaks. Ehitan uuesti, reeglite väravaga.
Seitse viga, mis maksid kokku umbes 12 päeva GPU-d.
Iga viga siin on mõõdetud, mitte üldistatud. Ilma hinnata ei ole õppetund veenev ja seda ei saa kellelegi edasi anda. Ükski neist ei andnud veateadet. Skript ütles iga kord „valmis".
| Nr | Viga | Mõõdetud hind | Kuidas leiti |
|---|---|---|---|
| 01 | Pakkimine eeldas 4 tähemärki tokeni kohta. Eesti keeles on 2,8. | Umbes 22 % korpusest kärbiti vaikselt ja ei jõudnud kunagi mudelini. | Teine mudel küsis ristkontrollis, kas tükkide arv ja tokenite arv klapivad. Ei klappinud. |
| 02 | Kordusandmed (replay) olid koodis deklareeritud, aga mitte kunagi kasutatud. | Puhas keelekiht tegi mudeli 61,7 → 56,1, unustamine 5,6 punkti. | Kontrollides üht välist soovitust koodi vastu, mitte dokumentide vastu. |
| 03 | Perpleksust mõõdeti ainult ühel žanril. | Moodne uudistekst läks 16,4 % halvemaks ja keegi ei näinud seda. | Mitmežanriline lähtejoon enne järgmist treeningut. |
| 04 | „Lukustatud test" oli tegelikult arenduskomplekt. | 86,1 % ei ole testitulemus. Kallutus on teadmata suurusega. | Cross-model review: kolm sõltumatut mudelit lugesid õppematerjali. |
| 05 | Andmed olid puhastamata: viki-märgend, OCR-müra, mallitekst. | Umbes 24 % korpusest ei olnud terve eesti tekst. | Andmeaudit seitsme kriteeriumiga, 4. septembril. |
| 06 | Õpisamm langes koosinusega nulli iga ploki sees, mitte läbivalt. | Umbes 20 % igast plokist treenis tühja. | Treeneri olekufaili lugedes, mitte logi lugedes. |
| 07 | Vestlusvariant treeniti toortekstiga ilma juhendinäideteta. | Juhendioskuse kadu, osa veast 02. | EstLLM-i teadusartiklit lugedes, mis on ainus avaldatud eesti CPT-miks. |
4. septembril võtsin keelekihi tagasi. Mitte sellepärast, et tulemus oleks olnud halb, vaid sellepärast, et ma ei saanud enam öelda, mis osa tulemusest oli keelekiht ja mis osa oli juhus. Kui ühest veast oleks piisanud, siis neli korraga ei jäta valikut.
Nüüd on kõik, mida me eesti keele mudeli treenimise kohta teame, ühes hoidlas ja ühes reeglifailis. Reegel, mida masin ei kontrolli, on soovitus. Soovitust unustatakse.
36 reeglit, 33 kohustuslikku, igaüks sündinud mõõdetud veast ja iga juures hind. Reeglifail ei ole dokumentatsioon. Seda loeb eelkontroll ja treening ei käivitu, kui mõni kohustuslik reegel ei ole täidetud.
Pakkimine käib tokenisaatoriga, mitte tähemärkidega. Kordusandmed on päriselt miksis. Perpleksust mõõdetakse vähemalt viiel žanril, igas plokis. Ja valideerimiskomplekt on olemas enne treeningut, mitte pärast.
Kõik, mida saab alla laadida ja korrata.
Liidetud mudel GGUF, Q6_K
Tšempion-kontrollpunkt ühes failis, Ollama Modelfile kaasas. Treenitud think-režiimita: kasuta think=false. Q5 või parem, Q4 andis mõõdetavalt kehvemat teksti.
Ava mudelikaart ↗Kolm LoRA adapterit
Lõpptšempion (keelekiht + kirurgilised ringid), puhas keelekiht uurimisobjektina ja 13 ringi oskuste rada ilma keelekihita. Iga adapter oma mõõtude ja hoiatustega.
Ava adapterid ↗Eesti käänamiskorpus
11 011 kirjet, igal kirjel allikas ja litsents. Määramata litsentsiga kirjed on avaldamisest väljas, kuni õigused selguvad. Vabamorfiga ring-kontrollitud.
Ava andmestik ↗Kogu torustik ja laboripäevik
50 nummerdatud skripti ja 26 ahelat: andmetöötlus, reeglipõhised generaatorid, QLoRA treening, lukustatud eval ja välised testid. Raportid, nõukoja süntees, paranduste fail.
Ava repo ↗Mis oli valesti ja mis parandati
Kolm mõõteviga, arenduskomplekti hoiatus ja litsentsipositsioon, kirjas enne, kui keegi teine küsima peab. Numbrid näevad pärast parandust nõrgemad välja. See on õige.
Loe parandusi ↗Lõppraport 30.08.2026
Mis on mõõdetud millisel kontrollpunktil, kategooriate kaupa. Fraasisond 378 nägemata lahtril, pilvemudelite kontekst samal EstQA valimil, ja mida ei tohi sellest välja lugeda.
Ava raport ↗Keelemudelite treenimine: arusaamisest esimese kontrollitud katseni.
See raamat kasvas välja sellestsamast projektist: andmete kogumisest, katsetest, vigadest ja nende parandamisest. 20 peatükki, harjutused vastustega, sõnastik ja kaks käivitatavat laborit. Alguses ei pea sa teadma ühtegi lühendit.
- Alustajale, kes tahab aru saada, mida treeningus tehakse
- Keele- ja valdkonnaeksperdile, kes soovib kaasa aidata
- Arendajale, kes tahab oma esimest katset mõtestatult teha
- Õpetajale: küsimused, lahendatud näited, töölehed
- Kuidas mudel õpib ja mis toimub tema sees
- Andmed, LoRA ja QLoRA, seadistused, mõõtmine
- Eesti keel: kontrolli ka oma kontrollijat
- Riistvara, mälu, aeg ja energia
- Labor Ubuntu ja NVIDIA peal: esimene LoRA-treening
- Labor Apple Silicon Macil: esimene MLX-treening
Sama tee teise keele või mudeliga.
Retsept on järjestikune, sest iga samm eeldab eelmise mõõtu. Skriptide numbrid viitavad repo failidele.
Ehita väike lukustatud test
Oma keele nõrkuste peale. Ja pea kinni: kui vaatad seda pärast igat ringi, ei ole see enam test.
Mõõda baas, leia augud
Kust mudel kõige rohkem eksib? Sinna läheb esimene annus, mitte sinna, kus andmeid on kõige rohkem.
Reeglipõhine generaator
Pluss morfoanalüsaator kontrolliks. Eesti keeles Vabamorf. Näite kuju peab vastama kasutuse kujule.
Kirurgilised ringid mudeli enda vigadest
À 2 kuni 3 tundi. Loe vead enne, kui kogud rohkem teksti. 130 näidet ühe vea peale andis +2,1 punkti.
DPO ainult värskete vigade peal
On-policy. 9 543 võõrast eelistuspaari tegid mudeli 6 punkti halvemaks, 244 oma paari andsid punkti juurde.
Keelekiht, kui oskuste lagi käes
CPT kvaliteetproosaga annab keele, SFT annab oskused. Kordusandmed miksi, valideerimiskomplekt enne, mitte pärast.
Välised testid ausaks kontrolliks
EstQA, MMLU-et, HumanEval. Ja kontrolli pakendatud mudelit eraldi: kvantimine ja think-režiim lõhuvad vaikselt.
Kirjuta vead hinnaga üles
Reegel, mida masin ei kontrolli, on soovitus. Pane iga viga reegliks, mida eelkontroll enne järgmist treeningut päriselt loeb.
Keelemudel on üks süsteem mitmest.
Ma ei räägi AI-st kõrvalt. Iga päev opereerin mitut AI-süsteemi, mis päriselt tööd teevad: kirjutavad ja kontrollivad koodi, hoiavad ajakohasena minu teadmusbaasi ja juhivad Evoluna sobitamist. Sama distsipliin, mis keelemudeli projektis, käib igas neist: ehitab üks mudel, kontrollib teine, ja mõõdetud tulemus võidab tunde.
See on ka minu mentori-töö selgroog. Kui räägin juhiga AI-ajastu otsustest, ei tule see raamatust. See tuleb süsteemidest, mis mul praegu töötavad. Vaata kogu AI-praktikat avalehel →
Kui sul on korpus, küsimus või sama mure, kirjuta.
Andmed, mille litsents on selge. Sõltumatu pimetest, mis teeks numbrid päriselt kaitstavaks. Või lihtsalt küsimus, kuidas oma keele või valdkonnaga alustada. Ma vastan ise.
Kirjuta: info@pertlomp.com