Nevronska mreža je matematični model, ki se iz podatkov nauči povezav med vhodom in želenim izhodom. Fotografijo lahko pretvori v prepoznavo predmeta, meritve v napoved, besedilo pa v nadaljevanje besedila. Njeno učenje poteka predvsem s prilagajanjem velikega števila številskih parametrov.

Kratek odgovor

Nevronske mreže delujejo tako, da vhodne podatke pretvorijo v številčno obliko, jih skozi zaporedne sloje matematičnih operacij preoblikujejo v notranje predstavitve, izračunajo napoved in nato med učenjem prilagodijo parametre tako, da se napaka postopoma zmanjšuje. Pri LLM-jih se isti princip uporablja nad tokeni in njihovim kontekstom.

Kaj je nevronska mreža?

Nevronska mreža je ena od metod umetne inteligence. AI je širše področje, ki vključuje tudi pravila, iskanje, načrtovanje in druge pristope. Strojno učenje zajema metode, ki se prilagajajo na podlagi podatkov; nevronske mreže so del tega področja. Globoko učenje uporablja mreže z več zaporednimi plastmi obdelave. LLM je velika nevronska mreža za modeliranje jezika, AI agent pa je širši programski sistem, ki lahko tak model povezuje z orodji, pomnilnikom in izvajanjem nalog.

Ime »nevronska« izhaja iz navdiha z biološkim živčevjem. Podobnost se kaže v povezanih enotah in prilagodljivih povezavah. Običajni umetni nevron pa je zelo poenostavljen matematični gradnik; ne simulira vseh elektrokemičnih procesov žive živčne celice.

Učenje in uporaba modela nista isto

Za razumevanje delovanja je najpomembnejša razlika med učenjem, ko se parametri spreminjajo, in uporabo naučenega modela, ko z njimi izračunamo rezultat. Iz te razlike izhajajo tudi odgovori na vprašanja, kje mreža hrani znanje, zakaj se moti in kaj se zgodi, ko se pogovarjamo z LLM-jem.

Ko model učimo, mu pokažemo primere in merimo napako. Ko model uporabljamo, pa so njegove uteži praviloma že določene. Pogovor z modelom običajno ne spreminja njegovih osnovnih parametrov; spremeni se samo trenutni kontekst, iz katerega model računa odgovor.

Vhodni podatki morajo postati številke

Nevronska mreža neposredno računa s števili. Zato moramo fotografije, zvok, besedilo, video ali senzorske meritve najprej zapisati v številčni obliki.

  • Slika je lahko polje vrednosti slikovnih pik ali zaporedje predstavitev manjših delov slike.
  • Zvok je lahko zaporedje vzorcev zvočnega signala, spektrogram ali naučena predstavitev.
  • Besedilo se razdeli na tokene, njihove identifikatorje pa model preslika v vektorje.
  • Video vključuje slikovne informacije in časovne povezave med njimi.
  • Senzorske meritve so številke, pogosto urejene v časovna zaporedja.
  • Večdimenzionalnim razporeditvam števil pravimo tenzorji. Pred obdelavo moramo pogosto urediti manjkajoče vrednosti, merske enote in velikost številskih razponov. Pri večmodalnih modelih se morajo povezati tudi predstavitve različnih vrst podatkov. Model CLIP se je denimo učil povezav med slikami in pripadajočimi besedilnimi opisi.

    Osnovni gradnik: umetni nevron

    Pri običajnem polno povezanem sloju umetni nevron vhodne vrednosti pomnoži z utežmi, jim prišteje odmik in rezultat pošlje skozi aktivacijsko funkcijo:

    a = φ(w₁x₁ + w₂x₂ + … + wₙxₙ + b)

    Vhodne vrednosti označimo z x, uteži z w, odmik oziroma bias z b, aktivacijsko funkcijo s φ, izhod nevrona pa z a. Pozitivna utež ob povečanju ustreznega vhoda poveča seštevek, negativna ga zmanjša. Končni vpliv na rezultat celotne mreže je odvisen še od drugih povezav in aktivacij.

    Konkreten mini izračun: pri vhodu 2, uteži 0,5 in odmiku −0,3 dobimo 2 × 0,5 − 0,3 = 0,7. Če uporabimo sigmoidno aktivacijo, je izhod približno 0,668. Pri ustrezno naučenem binarnem klasifikatorju lahko tak izhod predstavlja oceno verjetnosti pripadnosti določeni kategoriji.

    Zakaj so pomembne aktivacijske funkcije?

    Aktivacijske funkcije omogočajo modeliranje nelinearnih odnosov. Če bi zaporedoma uporabljali samo množenje z matrikami in prištevanje odmikov, bi lahko celotno verigo združili v eno samo afino preslikavo. Dodajanje slojev samo po sebi ne bi omogočilo bistveno zahtevnejših odnosov.

    • ReLU negativne vrednosti spremeni v nič, pozitivne ohrani.
    • Sigmoid rezultat omeji med 0 in 1.
    • Tanh rezultat omeji med −1 in 1.

    Z zaporednim sestavljanjem nelinearnih preslikav lahko mreža oblikuje zapletene odločitvene meje. Tako lahko prepozna kombinacijo značilnosti, ki je posamezen linearni klasifikator ne more ustrezno ločiti.

    Več slojev pomeni postopno preoblikovanje informacij

    Vhodni sloj predstavlja podatke, skriti sloji izračunavajo vmesne predstavitve, izhodni sloj pa oblikuje rezultat naloge. »Skriti« pomeni, da so ti sloji vmesni del izračuna. Pri prepoznavanju slik se lahko zgodnje plasti odzivajo na robove in teksture, poznejše pa združujejo informacije v zahtevnejše vzorce. To je uporabna ponazoritev, vendar posameznemu sloju ni vedno mogoče pripisati ene jasne človeške kategorije.

    Matematično lahko pod določenimi pogoji že dovolj široka mreža z enim skritim slojem poljubno natančno približa zvezne funkcije na omejenem zaprtem območju. Toda ta rezultat ne zagotavlja, da bomo ustrezne parametre znali učinkovito najti ali da bo model dobro deloval na novih podatkih. Globina lahko nekatere odnose predstavi učinkoviteje.

    Nevroni, parametri in hiperparametri

    Število nevronov in število parametrov sta različni stvari. Polno povezan sloj s 100 vhodi in 50 izhodnimi nevroni ima 5.000 uteži in, če vsakemu izhodu dodamo odmik, še 50 odmikov: skupaj 5.050 parametrov. Oznaka modela »7B« zato običajno pomeni približno sedem milijard parametrov.

    Parametre ločujemo tudi od hiperparametrov. Uteži se med učenjem prilagajajo; število slojev, širino mreže, velikost učnih paketov in začetno učno hitrost pa določimo kot nastavitve postopka. Nekatere od teh nastavitev lahko iščemo avtomatizirano.

    Kako mreža dobi učni signal?

    • Nadzorovano učenje: vsak primer vsebuje želeni odgovor, denimo fotografijo izdelka in oznako »brezhiben« ali »poškodovan«.
    • Samonadzorovano učenje: cilj sestavimo iz podatkov samih. Pri jezikovnem modelu je lahko to napoved naslednjega tokena iz predhodnega besedila.
    • Nenadzorovano učenje: iščemo strukturo podatkov brez ročno določenih odgovorov za končno nalogo.
    • Spodbujevalno učenje: sistem izbira dejanja in se prilagaja glede na nagrajevalni signal.

    Pristopi se lahko kombinirajo. Pri delno nadzorovanem učenju na primer uporabimo manjšo količino označenih podatkov skupaj z večjo količino neoznačenih.

    Učna zanka: napoved, izguba, gradienti, posodobitev

    Običajno učenje globoke mreže poteka v ponavljajoči se zanki. Najprej izberemo učni paket, nato mreža izvede prehod naprej in izračuna napovedi. Sledi izračun izgube, torej številčnega merila razlike med napovedjo in učnim ciljem. Nato backpropagation izračuna gradiente, optimizator pa posodobi parametre.

    1. Izberemo učni paket: skupino primerov.
    2. Izvedemo prehod naprej: mreža izračuna napovedi.
    3. Izračunamo izgubo: merimo razliko med napovedjo in učnim ciljem.
    4. Izračunamo gradiente: ocenimo občutljivost izgube na spremembe parametrov.
    5. Posodobimo parametre: optimizator izvede spremembe na podlagi gradientov.
    6. Pri napovedovanju številskih vrednosti je izguba lahko povprečna kvadratna napaka. Pri razvrščanju ali napovedovanju tokenov pogosto uporabljamo križno entropijo, ki kaznuje prenizko verjetnost pravilnega učnega odgovora. Izbira izgube je pomembna, ker določa, kaj postopek sploh poskuša izboljšati.

      Backpropagation in optimizator

      Povratno razširjanje oziroma backpropagation uporablja verižno pravilo odvajanja. Vpliv na izgubo izračunava nazaj skozi računski graf. Gradient odgovarja na lokalno vprašanje: kako bi se izguba spremenila, če bi ta parameter nekoliko povečali?

      Pri preprostem gradientnem spustu parameter posodobimo po logiki: nova utež je stara utež minus učna hitrost krat gradient. Optimizatorji, kot sta SGD in Adam, se razlikujejo v načinu uporabe gradientov in zgodovine preteklih posodobitev. En učni korak običajno pomeni eno posodobitev parametrov; epoha pa pomeni prehod skozi celotno učno zbirko.

      Posploševanje, overfitting in stabilnost

      Uspešno učenje mora omogočiti posploševanje. Model mora delovati tudi na primerih, ki jih med učenjem ni videl. Zato podatke običajno razdelimo na učno množico, validacijsko množico in testno množico. Delitev mora ustrezati problemu: pri napovedovanju prihodnje prodaje naključno mešanje preteklih in prihodnjih zapisov lahko ustvari zavajajočo oceno.

      Pri pretiranem prilagajanju oziroma overfittingu se mreža preveč prilagodi posebnostim učnih podatkov. Pomagajo boljši podatki, raznolikost primerov, zgodnja ustavitev učenja, regularizacija, weight decay in dropout. Globoke mreže imajo tudi težave s stabilnostjo učenja: gradienti se lahko skozi številne sloje močno zmanjšajo ali povečajo. Pomagajo premišljena inicializacija, normalizacija, ustrezne aktivacije, omejevanje gradientov in preostankovne povezave.

      Arhitekture nevronskih mrež

      Vrsta mreže Osnovni način obdelave Značilne naloge
      MLP Zaporedni sloji kombinirajo vhodne značilnosti. Razvrščanje, regresija, obdelava predstavitev.
      CNN Iste naučene filtre uporablja na različnih delih podatkov. Slike, video, lokalni vzorci v signalih.
      RNN, LSTM, GRU Pri obdelavi zaporedja posodablja notranje stanje. Časovne vrste, govor, zaporedni podatki.
      Transformer Z mehanizmom pozornosti povezuje informacije med elementi. Jezik, slike, zvok, večmodalni modeli.
      GNN Združuje informacije med povezanimi vozlišči grafa. Molekule, omrežja, odnosi med entitetami.
      Mamba in modeli prostora stanj Zaporedje obdelujejo s strukturiranim posodabljanjem stanja. Dolga zaporedja, jezik, signali.

      Pri Mixture of Experts oziroma MoE usmerjevalni del za posamezen vhod izbere nekatere od več podmrež. Zato ločujemo skupno število parametrov od števila aktivnih parametrov pri obdelavi posameznega tokena. »Eksperti« so računski moduli; njihova specializacija ni nujno enaka človeškim poklicnim področjem.

      Kako se to poveže z LLM-ji?

      Pri LLM-ju se osnovna matematika razširi na obdelavo tokenov in njihovega konteksta. Tipičen avtoregresijski jezikovni model s transformerjem pri ustvarjanju besedila izvede približno naslednje:

      1. Besedilo razdeli na tokene in pridobi njihove identifikatorje.
      2. Identifikatorje preslika v vektorske predstavitve oziroma embeddings.
      3. V izračun vključi informacije o položaju tokenov.
      4. Predstavitve obdeluje skozi zaporedne bloke pozornosti in drugih nevronskih operacij.
      5. Izračuna številčne ocene možnih naslednjih tokenov.
      6. Ocene pretvori v verjetnostno porazdelitev in izbere naslednji token.
      7. Novi token doda kontekstu ter postopek nadaljuje.
      8. Token ni nujno cela beseda, zato posamezen korak generiranja ni nujno ena beseda. Pozornost oziroma attention izračuna, kako se informacije med položaji združujejo. Iz predstavitev nastanejo vektorji query, key in value; ujemanje med poizvedbami in ključi določi koeficiente, s katerimi model združi vrednosti. Koeficienti pozornosti se izračunajo na novo glede na trenutni vhod, naučene uteži operacij pa so parametri modela.

        Predtreniranje, fine-tuning, RAG in spomin

        Predtreniranje in učenje pomočnika imata različna cilja. Pri predtreniraju jezikovni model pridobiva široke vzorce iz podatkov. Z nadzorovanim dodatnim učenjem se lahko nauči želenih oblik odgovorov in sledenja navodilom. S povratnimi informacijami ljudi oziroma drugimi nagrajevalnimi signali pa lahko dodatno prilagajamo izbiro odgovorov.

        Postopek Kaj se spremeni Ali spreminja naučene parametre?
        Nov poziv ali dokument v kontekstu Trenutni vhod in vmesne aktivacije. Običajno ne.
        RAG Model dobi pridobljene odlomke iz zunanjih virov. Samo pridobivanje ne.
        Fine-tuning Model se dodatno uči na izbranih podatkih. Da.
        LoRA Učijo se dodatne manjše matrike za prilagoditev. Da, prilagoditvene parametre.
        Trajni spomin aplikacije Podatki se shranijo zunaj modela in pozneje ponovno uporabijo. Samo shranjevanje ne.

        Kje je shranjeno znanje?

        Znanje je porazdeljeno med številne parametre in vzorce aktivacij. V modelu običajno ne najdemo ene pregledne lokacije za vsako dejstvo. Ista nevronska enota lahko sodeluje pri več predstavitvah, posamezna predstavitev pa vključuje več enot. Raziskave razložljivosti poskušajo iz teh prekrivanj izluščiti bolj razumljive značilnosti.

        Mreže lahko poleg splošnih vzorcev pomnijo tudi posamezne učne primere. Raziskovalci so iz jezikovnih modelov s poizvedovanjem pridobili dobesedne odlomke učnih podatkov. Porazdeljena oblika shranjevanja zato sama po sebi ne zagotavlja zasebnosti podatkov.

        Računska zahtevnost in kvantizacija

        Velik del dela sestavljajo matrične operacije, zato so pomembni GPU-ji in namenski pospeševalniki. Hitrost je odvisna tudi od pomnilniške prepustnosti, velikosti paketov in komunikacije med napravami. Pri učenju potrebujemo prostor še za gradiente, vmesne aktivacije in stanje optimizatorja.

        Zapis posamezne uteži Prostor za 7B uteži
        16 bitov približno 14 GB
        8 bitov približno 7 GB
        4 biti približno 3,5 GB

        To je račun za same uteži. Dejanska poraba vključuje dodatne podatke in pomnilnik za izvajanje. Kvantizacija zmanjšuje natančnost številčnega zapisa in s tem porabo pomnilnika; njen vpliv na kakovost in hitrost je treba izmeriti.

        Večji model ni samodejno boljši

        Pomembno je razmerje med velikostjo modela, količino in kakovostjo podatkov ter računskim proračunom. Raziskava Chinchilla je pokazala, da lahko pri primerljivem proračunu manjši model, naučen na več podatkih, preseže večjega. Iz tega ne sledi eno univerzalno pravilo za vse arhitekture in načine uporabe.

        Najpomembnejše omejitve izhajajo iz tega, kaj se mreža dejansko nauči. Model bi lahko na primer poškodovane izdelke prepoznaval po ozadju fotografije, če bi bili poškodovani izdelki v učni zbirki vedno fotografirani na drugi mizi. Ob spremembi okolja bi takšna bližnjica odpovedala.

        • Sprememba podatkovnega okolja: prihodnji primeri se razlikujejo od učnih.
        • Napačna samozavest: velika izhodna verjetnost lahko spremlja napačen odgovor.
        • Halucinacije pri generiranju: model ustvari prepričljivo, vendar nepravilno vsebino.
        • Namerno zavajajoči vhodi: majhne, skrbno izbrane spremembe lahko povzročijo napačno razvrstitev.
        • Zakaj izračun poznamo bolje kot pomen?

          Poznamo operacije, s katerimi model računa. Težje je iz milijard parametrov izluščiti popolno, človeku razumljivo razlago konkretnega odgovora. Raziskovalci zato spreminjajo posamezne aktivacije, izklapljajo dele mreže in preverjajo, kako posegi vplivajo na vedenje. Tudi razlaga, ki jo jezikovni model napiše o svojem odgovoru, ni sama po sebi zanesljiv zapis dejanskih vzrokov njegove odločitve.

          Praktičen primer: pregled izdelkov na proizvodni liniji

          Pri praktičnem projektu delovanje mreže preverimo skozi konkretno nalogo. Za sistem, ki na proizvodni liniji išče poškodovane izdelke, bi najprej določili vrste napak in stroške napačnih odločitev. Nato bi zbrali fotografije različnih serij, osvetlitev in položajev, pripravili oznake ter model preverili na ločenih proizvodnih primerih.

          Merili bi predvsem, koliko poškodovanih izdelkov spregleda, koliko brezhibnih napačno zavrne in ali odgovori dovolj hitro. Po uvedbi bi spremljali spremembe osvetlitve, kamer in izdelkov ter zbirali nove napake za naslednjo izboljšavo. S tem preverimo celoten sistem: podatke, mrežo in odločitev, ki nastane iz njenega izhoda.

          Pogosta vprašanja

          Kaj je nevronska mreža v enem stavku?

          Nevronska mreža je matematični model, ki se iz podatkov nauči povezav med vhodnimi informacijami in želenim izhodom.

          Ali se ChatGPT uči iz vsakega mojega pogovora?

          Sam pogovor praviloma ne spreminja osnovnih uteži modela med odgovarjanjem. Model se odziva na trenutni kontekst; morebitni trajni spomin ali poznejše učenje sta ločena sistema oziroma postopek.

          Kakšna je razlika med parametri in hiperparametri?

          Parametri, kot so uteži in odmiki, se med učenjem prilagajajo. Hiperparametri, kot so število slojev, učna hitrost ali velikost učnega paketa, so nastavitve postopka.

          Zakaj se nevronske mreže motijo?

          Motijo se lahko zaradi slabih ali nereprezentativnih podatkov, napačnih bližnjic v učenju, sprememb okolja, omejitev arhitekture ali zaradi tega, ker napovedujejo verjetne vzorce, ne pa nujno resničnih trditev.

          Zakaj so GPU-ji pomembni za umetno inteligenco?

          Ker nevronske mreže izvajajo ogromno matričnih operacij, GPU-ji in namenski pospeševalniki pa so učinkoviti pri vzporednem računanju takih operacij.

          Zaključek

          Nevronske mreže niso magija, temveč zelo zmogljiv način učenja številčnih povezav iz podatkov. Njihova moč izhaja iz kombinacije velikih količin podatkov, številnih parametrov, nelinearnih preslikav, optimizacije in računske infrastrukture. Njihova omejitev pa je prav tako jasna: naučijo se vzorcev, ki jih omogočajo podatki, arhitektura in učni cilj.

          Za podjetja, izobraževanje in avtomatizacijo je zato najpomembnejše praktično vprašanje: ne samo, ali model deluje na predstavitvenem primeru, ampak ali deluje zanesljivo v resničnem procesu, z resničnimi podatki, z jasnimi merili kakovosti in z odgovornostjo za napake. Tu se začne resna uporaba umetne inteligence.

          Viri in nadaljnje branje