Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
Celá cesta strojového učenia na odhade ceny bytu: dáta a ich rozdelenie, model s parametrami, tréning gradientným zostupom, hyperparametre a rýchlosť učenia, vyhodnotenie, inferencia a slovníček pojmov s odkazmi na diely série.
Séria Základy AI Diel 3 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo znamenajú dáta, model, tréning a inferencia a ako spolu súvisia.
- Rozdiel medzi parametrami a hyperparametrami a prečo záleží na rýchlosti učenia.
- Prečo je tréning drahý raz a inferencia lacná, ale častá.
Čo sa hodí vedieť vopred: Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
V celej sérii sa opakujú štyri slová: dáta, model, tréning a inferencia. Či ide o rozpoznávanie číslic, filter spamu alebo veľký jazykový model, cesta je stále rovnaká: z príkladov sa naučí funkcia, ktorá potom odpovedá na nové otázky. V tomto diele túto cestu prejdeme celú na najmenšom možnom príklade — odhade ceny bytu podľa plochy — a pri každom kroku povieme, ako vyzerá pri veľkých modeloch. Na konci je slovníček pojmov s odkazmi na diely, kde sa o nich dozviete viac.
Nadväzuje na diely Mapa umelej inteligencie a Stručná história AI.
1. Dáta: príklady so správnymi odpoveďami
Definícia — dáta, príznaky a štítky
Dáta sú príklady, z ktorých sa model učí. Každý príklad sa skladá z
- príznakov — vstupov, ktoré o ňom vieme (u nás plocha bytu),
- a pri učení s učiteľom aj zo štítku — správnej odpovede (u nás cena bytu).
Dáta sa delia na tri navzájom disjunktné časti, každú s iným účelom:
- trénovacie — z nich sa model učí (hľadajú sa podľa nich parametre);
- validačné — podľa nich ladíme nastavenie učenia a vyberáme medzi modelmi;
- testovacie — použijú sa len raz, na konci, aby poctivo odhadli, ako model dopadne na nových dátach.
Presný zápis je v definícii „dátová sada formálne“ nižšie.
Učebnica s príkladmi a výsledkami vzadu. Na trénovacích príkladoch sa učíte, na cvičnej písomke zistíte, či to viete, a ostrá písomka (ktorú ste predtým nevideli) ukáže, ako na tom naozaj ste.
Naše dáta sú vymyslené: 60 bytov, pri každom plocha (príznak) a cena v miliónoch korún (štítok). Cena rastie s plochou, ale nie presne — dva rovnako veľké byty sa líšia polohou, stavom, poschodím. Rozdelíme ich na 40 trénovacích, 10 validačných a 10 testovacích.
Definícia — dátová sada formálne
Nech d, n ∈ ℕ, d, n ≥ 1, a nech Y je množina možných štítkov (Y = ℝ pri regresii, konečná množina tried pri klasifikácii). Dátová sada je konečná postupnosť dvojíc
D = ((x(1), y(1)), …, (x(n), y(n))), kde x(i) ∈ ℝd a y(i) ∈ Y pre i = 1, …, n.
Vektor x(i) obsahuje d príznakov i-tého príkladu a y(i) je jeho štítok. Predpokladá sa, že existuje (neznáme) rozdelenie pravdepodobnosti na ℝd × Y, z ktorého sú dvojice vybrané navzájom nezávisle a z ktorého pochádzajú aj budúce dotazy.
Rozdelenie dát je dané rozkladom množiny indexov na tri navzájom disjunktné množiny
{1, …, n} = Itr ∪ Ival ∪ Itest, Itr ∩ Ival = Itr ∩ Itest = Ival ∩ Itest = ∅;
časti dát sú Dtr = ((x(i), y(i)))i ∈ Itr a obdobne Dval, Dtest. Každý príklad teda patrí do práve jednej časti. U nás d = 1 (plocha), Y = ℝ (cena v miliónoch Kč), n = 60 a časti majú 40, 10 a 10 príkladov.
Tabuľka, kde každý riadok je jeden byt: stĺpce s príznakmi a posledný stĺpec s cenou. Disjunktné znamená, že žiadny byt nie je v dvoch častiach zároveň — inak by „ostrá písomka“ obsahovala príklady, ktoré model už videl. A predpoklad rovnakého rozdelenia hovorí, že testovacie byty sú z toho istého trhu ako tie, na ktoré sa potom budeme pýtať; bez neho by chyba na teste o budúcnosti nevypovedala nič.
Pri veľkých jazykových modeloch sú dátami bilióny tokenov textu z webu, kníh a kódu; príznakom je doterajší text a štítkom ďalší token (diel o predtrénovaní). Princíp je rovnaký.
2. Model: funkcia s parametrami
Definícia — model a parametre
Nech X je množina vstupov, Y množina výstupov a Θ ⊆ ℝp, p ≥ 1, množina prípustných hodnôt parametrov. Model je systém funkcií
{fθ : X → Y | θ ∈ Θ},
t. j. pre každú voľbu θ = (θ1, …, θp) ∈ Θ jedna funkcia, ktorá zo vstupu x ∈ X vypočíta výstup fθ(x) ∈ Y. Čísla θ1, …, θp sú parametre modelu (pri neurónových sieťach váhy). Tvar funkcie (a tým X, Y, Θ) volíme my; hodnoty parametrov hľadá učenie.
Náš model je priamka: X = Y = ℝ, Θ = ℝ2, θ = (w, b) a fw,b(x) = w · x + b, kde x je plocha, w hovorí, o koľko stúpne cena s každou jednotkou plochy, a b, kde priamka začína.
Model je stroj s gombíkmi. Náš má gombíky dva. Jazykový model ich má miliardy — ale stále je to stroj, ktorý zo vstupu počíta výstup, a jeho „znalosti“ nie sú nič iné než nastavenie gombíkov.
ŷ = w · x + b
- ŷ
- predpoveď ceny; strieška ju odlišuje od skutočnej ceny y, s ktorou ju potom porovnávame
- w
- sklon — koľko miliónov pridá každý meter navyše; bez neho by cena od plochy vôbec nezávisela
- x
- plocha v m², jediný príznak; to jediné, čo model o byte vie
- b
- posun — „cena nulového bytu“; bez neho by priamka musela prechádzať začiatkom, a ceny bytov k nule nesmerujú
3. Tréning: ladenie parametrov
Definícia — stratová funkcia a tréning
Nech {fθ : θ ∈ Θ}, Θ ⊆ ℝp, je model a Dtr = ((x1, y1), …, (xn, yn)), n ≥ 1, trénovacie dáta. Stratová funkcia je funkcia
J : Θ → [0, ∞),
ktorá každej voľbe parametrov θ priradí číslo J(θ) udávajúce, ako veľmi sa model fθ na Dtr mýli — u nás priemer druhých mocnín chýb (MSE), zapísaný celý v rozbore nižšie. Tréning je hľadanie parametrov s čo najmenšou stratou, ideálne θ* ∈ argminθ ∈ Θ J(θ).
Ak je J diferencovateľná a Θ = ℝp, označme ∇J(θ) = (∂J/∂θ1, …, ∂J/∂θp) jej gradient. Gradientný zostup je algoritmus:
- Vstup: počiatočné parametre θ0 ∈ ℝp, rýchlosť učenia η > 0, počet krokov T ∈ ℕ.
- Výstup: parametre θT ∈ ℝp.
- Pre t = 0, 1, …, T − 1 polož θt+1 = θt − η · ∇J(θt).
- Po T krokoch skonči a vráť θT.
Zostup teda v každom kroku vypočíta, ktorým smerom strata najrýchlejšie rastie, a posunie parametre malým krokom opačne. Epocha je jeden prechod všetkými trénovacími dátami; pri našom zostupe, kde každý krok počíta gradient zo všetkých n príkladov, je jedna epocha práve jeden krok.
Hmla na kopci a cieľ dostať sa do údolia. Vidíte len svah pod nohami, tak urobíte krok z kopca, znova sa pozriete, ďalší krok. Každý krok je jedna úprava gombíkov, údolie sú gombíky, s ktorými sa model mýli najmenej.
Naša stratová funkcia, stredná kvadratická chyba (MSE), zapísaná celá:
J(w, b) = 1/n ∑i=1n ( w xi + b − yi )2
- J(w, b)
- strata ako funkcia parametrov — dáta sú pevné, meniť smieme len w a b, preto sú v zátvorke len ony
- 1/n ∑
- priemer cez všetkých n = 40 trénovacích bytov — aby bola strata porovnateľná pre rôzne veľké dáta a žiadny byt nemal prednosť
- w xi + b − yi
- chyba na i-tom byte: predpoveď ŷi mínus skutočná cena; kladná, keď model prestrelí, záporná, keď podstrelí
- 2
- druhá mocnina — aby sa kladné a záporné chyby nevyrušili, veľké chyby vážili viac než malé a strata sa dala hladko derivovať
Veta — gradient MSE pre priamku
Nech n ≥ 1, (x1, y1), …, (xn, yn) ∈ ℝ2 sú trénovacie dáta a J : ℝ2 → ℝ je MSE priamky,
J(w, b) = 1/n ∑i=1n (w xi + b − yi)2.
Označme ŷi = w xi + b pre i = 1, …, n. Potom pre všetky (w, b) ∈ ℝ2 platí
∂J/∂w = 2/n ∑i=1n (ŷi − yi) · xi, ∂J/∂b = 2/n ∑i=1n (ŷi − yi).
Dôkaz. Derivácia súčtu je súčet derivácií a konštantný násobok 1/n sa derivovaním zachová. Pre jeden člen podľa pravidla o derivácii zloženej funkcie: ∂/∂w (w xi + b − yi)2 = 2 (w xi + b − yi) · xi, pretože vnútro zátvorky má podľa w deriváciu xi; podľa b má deriváciu 1. ∎
Každý byt „ťahá“ za parametre úmerne tomu, ako veľmi sa model na ňom pomýlil. Pri w sa ťah ešte násobí plochou: chyba pri veľkom byte hovorí o sklone viac než chyba pri garsónke.
Jeden krok gradientného zostupu potom posunie oba parametre proti gradientu:
w ← w − η · ∂J/∂w
- w
- parameter pred krokom a po ňom — šípka ← znamená „prepíš novou hodnotou“, nie rovnosť
- −
- ideme opačne než gradient, teda z kopca: stratu chceme zmenšiť, nie zväčšiť
- η
- rýchlosť učenia — aký dlhý krok urobíme; gradient platí len v okolí bodu, takže krok musí byť malý (pozri ďalšiu kapitolu)
- ∂J/∂w
- gradient — ktorým smerom a ako strmo strata rastie, keď w zväčšíme
Celý tréning ako algoritmus (presne tak to počíta obrázok nižšie):
w, b = 0, 0 # počiatočné parametre
for epocha in range(200): # hyperparameter: počet epoch
gw = gb = 0
for plocha, cena in trenovaci_data: # jedna epocha = všetky dáta
x = plocha / 100 # plocha v stovkách m²
chyba = (w * x + b) - cena # ŷ − y
gw += 2 * chyba * x / n # ∂J/∂w
gb += 2 * chyba / n # ∂J/∂b
w, b = w - eta * gw, b - eta * gb # krok z kopca, eta = rýchlosť učenia
Plochu dosadzujeme v stovkách m² (52 m² → 0,52). V metroch by gradient podľa w vychádzal desiatky ráz väčší než podľa b a jedna rýchlosť učenia by nesedela obom parametrom zároveň. Takéto škálovanie príznakov je v praxi bežné. Preto w nižšie vychádza v miliónoch na 100 m².
Príklad — prvý krok zostupu
V bode w = b = 0 model všade predpovedá 0, takže chyba na každom byte je −yi. Gradient je preto
∂J/∂w = −2 · 1/n ∑i=1n xi yi = −2 · 5,678 = −11,36, ∂J/∂b = −2 · ȳ = −2 · 6,88 = −13,76,
kde 5,678 je priemer súčinov plochy (v stovkách m²) a ceny a ȳ = 6,88 priemerná cena v miliónoch. S rýchlosťou učenia η = 0,5 (farby zodpovedajú členom vzorca kroku vyššie):
w ← 0 − 0,5 · (−11,36) = 5,68, b ← 0 − 0,5 · (−13,76) = 6,88.
(w je tu v miliónoch na 100 m².) Strata klesne z 54,2 na 17,7. Oba gradienty boli záporné (model všade podstreľoval), a tak oba parametre vzrástli.
Začneme s w = 0 a b = 0 (model hovorí „všetko stojí nula“, strata 54,2) a urobíme 200 epoch gradientného zostupu. Výsledok: w = 0,0910 milióna na m², teda zhruba 91 000 Kč za každý meter navyše, a b = 0,35 milióna. Presné riešenie metódou najmenších štvorcov (pri priamke sa dá vypočítať vzorcom, pozri diel o lineárnej regresii) sa líši až na štvrtom desatinnom mieste. Zostup dorazil tam, kam mal.
4. Hyperparametre: čo nastavujeme my
Definícia — hyperparametre
Tréning je postup, ktorý z trénovacích dát Dtr a z nastavenia h vypočíta parametre θ* (napr. gradientný zostup vyššie). Hyperparametre sú zložky nastavenia h: veličiny, ktoré ovplyvňujú tvar modelu alebo priebeh učenia, nie sú súčasťou θ, tréning ich nemení a volíme ich my vopred. Patria k nim:
- tvar a veľkosť modelu (tvar funkcie fθ a množina Θ);
- rýchlosť učenia η > 0 — aký veľký je krok gradientného zostupu;
- počet epoch;
- veľkosť dávky B ∈ {1, …, n} — koľko trénovacích príkladov sa použije na výpočet gradientu v jednom kroku.
Hyperparametre sa ladia podľa výsledkov na validačných dátach Dval, nikdy na testovacích.
Parametre sú to, čo sa žiak naučí. Hyperparametre sú to, ako ho učíme: ako rýchlo, ako dlho, koľko príkladov naraz.
S rýchlosťou 0,05 sa model učí pomaly — po 200 epochách má stratu 0,48 a ešte nie je v cieli. S 0,5 dorazí za pár desiatok epoch na 0,165. S 1,6 sú kroky také veľké, že model preskakuje údolie čoraz ďalej a strata exploduje — po piatich epochách je 46 310 590. Správna rýchlosť učenia je jedno z najčastejších ladení v celom strojovom učení.
Pri priamke a MSE sa dá presne vypočítať, kde leží hranica medzi „pomaly“ a „exploduje“. Strata je kvadratická funkcia parametrov, takže jej zakrivenie je všade rovnaké a opisujú ho dve čísla — zakrivenie v strmom a v plochom smere údolia (vlastné čísla λ Hessovej matice, tabuľky druhých derivácií).
et+1 = (1 − η λ) · et
- et+1
- vzdialenosť parametrov od najlepších hodnôt po ďalšej epoche (v jednom z dvoch smerov) — tú chceme dostať k nule
- 1
- bez kroku by vzdialenosť zostala taká, aká bola; krok z nej uberie diel η λ. Ak je |1 − η λ| < 1, vzdialenosť sa zmenšuje, ak je väčšia než 1, rastie geometrickým radom
- η
- rýchlosť učenia — jediné, čo tu volíme my
- λ
- zakrivenie straty v danom smere — dané dátami, nie nami; v strmom smere je gradient veľký, a krok preto dlhý
- et
- vzdialenosť pred epochou; vzorec sa opakuje, takže po t epochách je et = (1 − η λ)t e0
Veta — kedy gradientný zostup konverguje
Nech p ≥ 1, H ∈ ℝp×p je symetrická matica s vlastnými číslami λ1, …, λp, kde λmin = minj λj > 0 a λmax = maxj λj, θ* ∈ ℝp, c ∈ ℝ a strata je kvadratická funkcia
J(θ) = c + 1/2 (θ − θ*)T H (θ − θ*), θ ∈ ℝp,
s Hessovou maticou H a minimom v θ*. Nech η ∈ ℝ a θt+1 = θt − η ∇J(θt) pre t = 0, 1, 2, … Potom θt → θ* pre každý počiatočný bod θ0 ∈ ℝp práve vtedy, keď
0 < η < 2/λmax.
Dôkaz. Platí ∇J(θ) = H(θ − θ*), takže odchýlka et = θt − θ* spĺňa et+1 = (I − ηH) et. V ortonormálnej báze vlastných vektorov H sa j-tá zložka et(j) vyvíja ako et+1(j) = (1 − η λj) et(j), teda et(j) = (1 − η λj)t e0(j). Všetky zložky idú pre každé e0 k nule práve vtedy, keď |1 − η λj| < 1 pre všetky j, t. j. 0 < η λj < 2; keďže λj > 0, najprísnejšia je podmienka pre λmax. ∎
Príklad — hranica pre naše byty
Pre MSE priamky je H = 2/n · [[∑xi2, ∑xi], [∑xi, n]] = [[1,193, 1,435], [1,435, 2]] (plocha v stovkách m²). Vlastné čísla vyjdú λmax = 3,087 a λmin = 0,106, takže zostup konverguje pre η < 2/3,087 = 0,648. Farby zodpovedajú členom vzorca et+1 = (1 − η λ) · et vyššie.
η = 0,05: násobiteľ v plochom smere je 1 − 0,05 · 0,106 =0,9947; po 200 epochách zostáva 0,9947200 ≈ 35 % pôvodnej odchýlky — preto model nie je v cieli.
η = 0,5: násobitele sú |1 − 0,5 · 3,087| = 0,544 a 1 − 0,5 · 0,106 = 0,947; po 200 epochách zostáva 0,947200 ≈ 2 · 10−5 odchýlky — prakticky nič.
η = 1,6 > 0,648: v strmom smere je |1 − 1,6 · 3,087| = 3,94. Odchýlka sa každú epochu zhruba zoštvornásobí a strata, ktorá rastie s jej druhou mocninou, 15,5-krát — v grafe z 801 na 12 395.
Údolie je úzky žľab: naprieč strmý, pozdĺž skoro rovný. Rýchlosť učenia musí byť dosť malá na strmé steny, inak preskočíte na protiľahlý svah vyššie, než ste boli. Lenže potom pozdĺž žľabu postupujete pomaličky. Tento spor medzi strmým a plochým smerom je dôvod, prečo sa pri veľkých modeloch používajú chytrejšie varianty zostupu.
5. Aký dobrý je model
Nech D′ je ľubovoľná časť dát s m ≥ 1 príkladmi (x, y) a ŷ(x) = fθ*(x) predpoveď naučeného modelu. Chybu na D′ meriame odmocninou zo strednej kvadratickej chyby (RMSE):
RMSE = √1/m ∑(x, y) ∈ D′ (ŷ(x) − y)2
- √
- odmocnina vráti výsledok z (mil. Kč)² späť do miliónov korún — číslo sa dá čítať ako „typická chyba“
- 1/m ∑D′
- priemer cez vybranú časť — trénovaciu, validačnú alebo testovaciu; každá odpovedá na inú otázku
- (ŷ(x) − y)2
- štvorec chyby na jednom byte, rovnako ako v strate — meriame tým, čo sme minimalizovali
Priemerná chyba (odmocnina z MSE) je na trénovacích dátach 0,41 milióna, na validačných 0,60 a na testovacích 0,51 milióna, teda zhruba pol milióna korún. Lepšie to s jediným príznakom byť nemôže: šum, ktorý sme do cien pridali (poloha, stav), má práve takú veľkosť a z plochy sa uhádnuť nedá. Kto chce presnejší odhad, potrebuje viac príznakov — nie chytrejšiu priamku. Keby sme naopak model urobili príliš pružný, naučil by sa šum trénovacích dát naspamäť (preučenie) a na nových bytoch by sa mýlil viac.
6. Inferencia: model v prevádzke
Definícia — inferencia
Nech {fθ : θ ∈ Θ} je model a θ* ∈ Θ parametre, ktoré našiel tréning. Inferencia je výpočet predpovede
ŷ = fθ*(x)
pre nový vstup x ∈ X, pričom parametre θ* zostávajú pevné. Model sa pri inferencii neučí (pokiaľ ho výslovne znova netrénujeme). Pri jazykových modeloch je inferenciou každá odpoveď — model generuje token po tokene a pre každý token urobí jeden prechod sieťou.
Tréning je štúdium, inferencia je skúška — alebo práca. Študuje sa raz a dlho, pracuje sa potom denne a rýchlo. Keď si s chatbotom píšete, neučíte ho (to sa deje inokedy a inak), len ho používate.
Náš model pre byt s plochou 65 m² odhadne 6,27 milióna. Stojí to 3 početné operácie. Tréning stál zhruba 72 000 operácií. Pri veľkých modeloch je pomer podobný, len v inej mierke: tréning trvá mesiace na tisícoch grafických kariet, jedna odpoveď sekundy. Lenže odpovedí sú miliardy, takže pri najpoužívanejších modeloch môže inferencia dohromady stáť viac výpočtov než ich tréning — a preto sa toľko rieši, ako modely zmenšiť a zrýchliť.
Príklad — inferencia a počet operácií
Dosadíme naučené parametre w = 9,0957 milióna na 100 m² (t. j. 0,0910 na m²) a b = 0,3538; plochu v stovkách m², x = 0,65:
ŷ = 9,0957 · 0,65 + 0,3538 = 5,9122 + 0,3538 = 6,2660 ≈ 6,27 milióna
(farby zodpovedajú členom vzorca ŷ = w · x + b v kapitole o modeli).
To sú 3 operácie: prevod jednotiek (delenie stom), násobenie a sčítanie. Jedna epocha tréningu urobí pre každý z 40 bytov predpoveď, chybu a oba príspevky ku gradientu — počítame zhruba 9 operácií na byt (presný počet závisí od toho, čo za jednu operáciu považujeme), teda 40 · 9 · 200 = 72 000 operácií za celý tréning. Pomer tréning : jedna predpoveď je 24 000 : 1.
7. Slovníček
Pojmy z tohto dielu a kde sa o nich v sérii dozviete viac:
- dáta
- príklady, z ktorých sa model učí — u nás 60 bytov s plochou a cenou — podrobne
- príznak
- vstupný údaj o príklade (plocha); obrázok má príznakov tisíce — pixely — podrobne
- štítok
- správna odpoveď, ktorú chceme predpovedať (cena) — podrobne
- trénovacie, validačné a testovacie dáta
- na prvých sa model učí, na druhých sa ladí nastavenie, tretie sa použijú raz na konci — podrobne
- model
- funkcia s nastaviteľnými parametrami, ktorá zo vstupu počíta výstup — podrobne
- parameter (váha)
- číslo vnútri modelu, ktoré sa učí; jazykové modely ich majú miliardy — podrobne
- stratová funkcia
- číslo, ktoré meria, ako veľmi sa model mýli; učenie ho zmenšuje — podrobne
- tréning (učenie)
- hľadanie parametrov, pri ktorých je strata na trénovacích dátach malá — podrobne
- gradient
- smer, ktorým strata rastie najrýchlejšie; tréning ide opačne — podrobne
- epocha
- jeden prechod všetkými trénovacími dátami — podrobne
- dávka (batch)
- koľko príkladov sa použije na jeden krok učenia — podrobne
- hyperparameter
- nastavenie, ktoré si volíme my a model sa ho neučí (rýchlosť učenia, počet epoch, veľkosť modelu) — podrobne
- preučenie
- model sa naučí trénovacie dáta naspamäť a na nových dátach zlyháva — podrobne
- inferencia
- použitie naučeného modelu na nový vstup — to, čo robíte, keď sa pýtate chatbota — podrobne
- token
- kúsok textu, s ktorým jazykový model pracuje — podrobne
- embedding
- vektor čísel, ktorý reprezentuje slovo, obrázok alebo iný objekt — podrobne
- kontext a prompt
- všetok text, ktorý model dostane pri inferencii — podrobne
8. Zhrnutie
- Dáta = príklady s príznakmi a štítkami, rozdelené na trénovaciu, validačnú a testovaciu časť.
- Model = funkcia s parametrami; tréning hľadá parametre s najmenšou stratou, typicky gradientným zostupom.
- Náš model sa naučil 91 000 Kč za m² — rovnako ako presný výpočet.
- Hyperparametre volíme my: s malou rýchlosťou učenia je tréning pomalý, s veľkou sa rozpadne.
- Chyba na teste (0,51 mil.) zodpovedá šumu v dátach; lepší model potrebuje viac príznakov.
- Inferencia = použitie naučeného modelu; je lacná na jeden dotaz, ale dotazov je obrovské množstvo.
Chcete si to vyskúšať? Požiadajte AI agenta, nech stiahne skutočné dáta o cenách bytov vo vašom meste, rozdelí ich na tri časti a natrénuje rovnakú priamku — a potom nech pridá druhý príznak (napríklad vzdialenosť od centra) a porovná chybu na teste.
Máte na to iný názor? Napíšte na support@coden-app.com.