Kuidas AI treenimine tegelikult toimib: juhuslikust kaosest kasuliku intelligentsuseni

Training is see, kus AI muutub kasutust väärtusetust kasulikuks. Siin on, mis tegelikult toimub nende tundide, päevade või nädalate arvutamise jooksul.

Kuidas AI treenimine tegelikult toimib: juhuslikust kaosest kasuliku intelligentsuseni

Ümberkujundamine, mida keegi ei näe

Treeneritud AI-mudelitest räägitakse kogu aeg. ChatGPT. Pildigeneraatorid. Isesõitvad süsteemid. Need töötavad. Need on kasulikud. Vahel isegi muljetavaldavad.

Aga need ei alustanud nii. Need alustasid täiesti kasututena. Juhuslikena. Tootes mõttetuid ennustusi. Genereerides rämpsu.

Treening on protsess, mis muudab selle juhusliku kaose kasulikuks intelligentsuseks. Ja see on metsikum, kui arvad.

Mis treening tegelikult on

AI-mudeli treenimine seisneb põhiliselt õigete numbrite leidmises.

Mäletad närvivõrkude artiklist: mudel on täis parameetreid (kaale). Alguses juhuslikke. Mudel teeb juhuslikke ennustusi. Treening kohandab neid kaale, kuni ennustused muutuvad heaks.

See on kõik. Kohanda numbreid. Kontrolli, kas on parem. Kohanda uuesti. Korda miljoneid kordi. Lõpuks on sul kasulik mudel.

Lihtne kontseptsioon. Naeruväärselt keeruline teostus.

"What Training Actually Is" on tsükkel: vaatle, vali, tegutse ja testi uuesti.

Treeningprotsess (samm-sammult)

Vaatame täpselt, mis treeningu ajal toimub:

  • Samm 1: lähtesta juhuslikult Alusta juhuslike kaaludega. Täiesti juhuslikult. Mudel ei tea midagi. Tema ennustused on rämps. See on lähtepunkt.
  • Samm 2: tee ennustusi (edasisuunaline läbimine) Sööda sisse treeningandmed. Mudel töötleb neid oma praeguste (juhuslike) kaaludega. Toodab ennustusi. Need on valed. Väga valed. Aga me teame õigeid vastuseid.
  • Samm 3: mõõda eksimust (kao arvutamine) Võrdle ennustusi õigete vastustega. Arvuta number, mis näitab kogu eksimust. See on "kadu" ehk "viga". Suurem tähendab halvemat.
  • Samm 4: arvuta, kuidas paremaks muutuda (tagasisuunaline läbimine) Kasutades matemaatilist analüüsi, arvuta täpselt, kuidas iga kaalu kohandada, et kadu vähendada. Millises suunas iga numbrit nihutada. Kui palju. See on gradient: kõige järsema laskumise suund paremate ennustuste poole.
  • Samm 5: uuenda kaale Kohanda kõiki kaale veidi kadusid vähendavas suunas. Mitte liiga palju (ebastabiilne). Mitte liiga vähe (aeglane). Täpselt õigesti (õppimiskiirus).
  • Samm 6: korda Mine tagasi sammu 2 juurde. Järgmine andmehulk. Järgmine edasisuunaline läbimine, kao arvutamine, tagasisuunaline läbimine, kaalude uuendamine. Korda tuhandeid või miljoneid kordi.

Järk-järgult kadu väheneb. Ennustused paranevad. Lõpuks on mudel kasulik.

See on treening. Optimeerimine korduva kohandamise kaudu. Lihtne kontseptsioonilt. Tohutu mastaabilt.

Treeninguaeg: miks see nii kaua aega võtab

Väikesed mudelid väikeste andmekogumitega? Tunnid. Suured mudelid suurte andmekogumitega? Nädalad. Mõnikord kuud. Miks nii kaua?

  • Miljardid parameetrid: Suurtel keelemudelitel on sadu miljardeid parameetreid. Igaüht neist tuleb kohandada. Mitu korda. See tähendab miljardeid arvutusi treeninguastme kohta. Miljoneid treeningastmeid. Matemaatika kuhjub.
  • Hiiglaslikud andmekogumid: Treening miljardite näidete peal. Kõigi nende töötlemine mitu korda (epohhid). Iga näide läbib kogu mudeli. Edasi ja tagasi. Tohutu arvutusmaht.
  • Iteratiivne täpsustamine: Kaalusid ei saa lihtsalt üks kord reguleerida ja asi on tehtud. Väikesed kohandused, mida korratakse miljoneid kordi, lähenevad aeglaselt headele väärtustele. See on järkjärguline. Otseteid pole.
  • Riistvara piirangud: Isegi võimsatel GPU-del on piirid. Mälu ribalaius. Arvutusläbilaskevõime. Suhtluse üldkulud mitme GPU-ga seadistustes. Need pudelikaelad aeglustavad kõike.

Suurte mudelite treenimine on tõesti üks kõige arvutusmahukamaid ülesandeid, mida inimesed teevad. Eksaskaalne andmetöötlus. Petabaidid andmeid. Nädalaid pidevat GPU-aega. Skaala on absurdne.

Kulud (raha ja energia)

Treening pole ainult aeg. See on kallis. Tõesti kallis.

  • Arvutuskulud: GPU-de rentimine maksab tuhandeid kuus. Suure mudeli treenimine kasutab sadu või tuhandeid GPU-sid korraga. Nädalaid. Arve ulatub miljonitesse dollaritesse. Ainult arvutuse eest.
  • Energiatarve: Iga GPU tarbib 300-500 vatti. Korruta tuhandetega. Käivita nädalaid. Tarbid elektrijaama tasemel elektrit. Süsiniku jalajälg on tohutu.
  • Andmekulud: Kvaliteetne treeningandmestik pole tasuta. Kogumine. Puhastamine. Märgendamine. Salvestamine. Edastamine. Kõik maksab raha. Mõnikord rohkem kui arvutus.
  • Inimkulud: Andmeteadlased. ML-insenerid. Infrastruktuurimeeskonnad. Järelevalve 24/7. Vigade silumine. Hüperparameetrite optimeerimine. Tööjõukulud kogunevad.

Tipptasemel mudeli treenimine võib maksta 10-100 miljonit eurot. Ainult ühe treeningu eest. Kui midagi läheb poole peal valesti? Alusta otsast peale. Kaota nädalaid arvutusaega ja miljoneid eurosid.

Sellepärast saavad ainult hästi rahastatud organisatsioonid treenida suurimaid mudeleid. Takistus pole teadmised. See on ressurss.

Mis võib valesti minna (ja sageli lähebki)

Treening on habras. Palju rikkerežiime:

  • Kaduvad gradiendid: Väga sügavates võrkudes võivad gradiendid tagasi levides muutuda pisikesteks. Lõpuks on nad nii väikesed, et kaalud vaevu uuenevad. Treening jääb seisma. Mudel lõpetab õppimise.
  • Plahvatavad gradiendid: Vastupidine probleem. Gradiendid muutuvad hiiglaslikeks. Kaaluvärskendused muutuvad massiivseteks. Mudel lahkneb. Kaoväärtus tõuseb lõpmatusse. Treening kukub kokku.
  • Ülepaigutumine: Mudel jätab treeningandmed meelde selle asemel, et mustreid õppida. Töötab treeningnäidete peal suurepäraselt. Uute andmete peal ebaõnnestub. Klassikaline rikkerežiim.
  • Režiimi kollaps: Teatud mudelite puhul (nagu GAN-id) võib treening kokku kukkuda nii, et toodetakse ainult ühte tüüpi väljundit. Mitmekesisus kaob. Muutub kasutuks.
  • Katastroofiline unustamine: Uute andmete peal treenides unustab mudel selle, mida ta vanadest andmetest õppis. Varasemad teadmised kirjutatakse üle. Levinud pideva õppimise stsenaariumides.
  • Riistvaratõrked: GPU sureb. Võrguühendus katkeb. Elektrikatkestus. Treening kukub kokku. Kaota tunde või päevi edasiminekut. Loodetavasti salvestasid kontrollpunktid.

Treening nõuab pidevat jälgimist. Probleemide varajast märkamist. Kohanduste tegemist. Mõnikord lihtsalt otsast alustamist, kui asjad lähevad parandamatult valesti.

Kompromiss peatükis "What Can Go Wrong (And Often Does)" näitab, kus väärtus kaob või kontroll taastub.

Binaarne vs. ujukoma-treening

Standardne lähenemine kasutab ujukoma-tehteid. Täpne. Paindlik. Ressursimahukas.

Binaarne treening on teistsugune. Nii see käib:

Hübriidtäpsus:

Edasisuunalise käigu ajal: binariseeri kaalud ja aktiveerimised. Kasuta odavaid XNOR- ja popcount-tehteid. Kiire.

Tagasisuunalise käigu ajal: säilita täistäpsusega gradiendid. Uuenda täistäpsusega kaalusid. Seejärel binariseeri uuesti järgmiseks edasisuunaliseks käiguks.

Binaarne kiiruseks. Täistäpsus õppimiseks. Parim mõlemast maailmast.

  • Straight-Through-hinnangud: Binariseerimine pole diferentseeritav. Selle kaudu ei saa tavapäraselt gradiente arvutada. Lahendus: teeskle tagasisuunalisel käigul, et see on diferentseeritav. Lase gradiendid otse läbi. See töötab. Teoreetiliselt pole täiuslik, kuid praktikas tõhus.
  • Stohhastiline binariseerimine: Deterministliku binariseerimise (märgifunktsiooni) asemel kasuta tõenäosuslikku. Aitab pääseda lokaalsetest miinimumidest. Lisab treeningu ajal kasulikku müra. Parandab lõplikku täpsust.
  • Dweve lähenemine: Meie Core raamistik kasutab neid tehnikaid binaarse närvivõrgu treenimiseks. Tulemus: 2× kiirem treening võrreldes ujukoma-aritmeetikaga, säilitades samaväärse täpsuse. Pole maagia. Lihtsalt binaartehete tõhus kasutamine seal, kus need töötavad.

Piirangute avastamine vs. kaalude õppimine

Traditsiooniline treening kohandab kaalusid. Dweve Loom teeb midagi muud: avastab piiranguid.

  • Evolutsiooniline otsing: Gradiendi laskumise asemel kasuta evolutsioonilisi algoritme. Genereeri kandidaatpiirangute komplekte. Hinda nende toimivust. Säilita head. Muuda ja kombineeri neid. Korda.
  • Piirangute kristalliseerumine: Kui piirang osutub usaldusväärseks paljudes stsenaariumides, "kristalliseerub" see püsivaks teadmiseks. Muutub muutumatuks. Ei kuulu enam muutmisele. Tagatud rakendamine.
  • Disaini poolest selgitatav: Iga piirang on loogiline seos. Inimloetav. Auditeeritav. Jälgitav. Puudub must kast. Iga otsus järgib selgeid piirangute ahelaid.

Erinev õppimisparadigma. Erinev treeningprotsess. Erinevad garantiid. Teatud ülesannete puhul (loogiline arutlus, piirangute rahuldamine) sageli parem kui traditsiooniline kaalude õppimine.

Hüperparameetrite häälestamine (varjatud keerukus)

Treening ei ole lihtsalt "algoritmi käivitamine". See nõuab hüperparameetrite seadistamist. Neid on palju.

  • Õppimiskiirus: Kui suured on kaaluvärskendused? Liiga suur: ebastabiilne. Liiga väike: aeglane.
  • Partii suurus: Mitu näidet värskenduse kohta? Mõjutab konvergentsi ja riistvara tõhusust.
  • Optimeerija valik: SGD? Adam? RMSprop? Igaüks käitub erinevalt.
  • Regulaarimine: Kui palju karistada keerukuse eest? Hoiab ära üleliigendamise, kuid võib kahjustada jõudlust.
  • Võrgu arhitektuur: Mitu kihti? Kui lai? Millised aktiveerimisfunktsioonid? Eksponentsiaalsed valikud.
  • Andmete täiendamine: Milliseid teisendusi rakendada? Kui agressiivselt?

Iga valik mõjutab treeningut. Heade hüperparameetrite leidmine nõuab katsetamist. Palju proovikäike. Igaüks kestab tunde või päevi. See on kulukas. Aeganõudev. Tihti rohkem kunst kui teadus.

Sellepärast on kogenud ML-insenerid väärtuslikud. Nad on näinud piisavalt treeningkäike, et omada intuitsiooni hüperparameetrite valikute kohta. Nad raiskavad vähem aega halbadele konfiguratsioonidele.

Ruum "Hyperparameter Tuning (The Secret Complexity)" ümber kahaneb, kui reeglid, otsing ja tõestus kohtuvad.

Siirdeõpe (praktiline lühend)

Nullist treenimine on kulukas. Siirdeõpe on alternatiiv.

  • Alusta eeltreenitud mudelist: Keegi teine on juba treeninud mudeli tohutul andmehulgal. ImageNet visiooni jaoks. Raamatud ja veebiandmed keele jaoks. Sina alustad nende treenitud kaaludega.
  • Peenhäälesta oma andmetel: Kohanda neid eeltreenitud kaalusid veidi oma konkreetse ülesande jaoks. Vaja on palju vähem andmeid. Palju kiirem. Palju odavam.
  • Miks see töötab: Varased kihid õpivad üldisi tunnuseid (servad, tekstuurid, põhimustrid). Need kanduvad üle ülesannete vahel. Ainult hilisemad kihid vajavad ülesandepõhist kohandamist.

Selle asemel, et kulutada nädalaid ja miljoneid dollareid, jõuab ülekandeõpe sinna mõne tunni või päevaga minimaalse kuluga. Nii ehitatakse tegelikult enamik praktilist tehisintellekti.

Treeningu jälgimine (tea, millal lõpetada)

Kuidas tead, et treening toimib? Jälgimise teel.

  • Treeningukadu: Peaks aja jooksul vähenema. Kui see jääb platoole või kasvab, on midagi valesti.
  • Valideerimiskadu: Jõudlus kõrvalejäetud andmetel. Kui see kasvab, samal ajal kui treeningukadu väheneb, oled üle sobitanud.
  • Gradiendi normid: Liiga suured? Plahvatavad gradiendid. Liiga väikesed? Hääbuvad gradiendid.
  • Kaaluvärskendused: Ei tohiks olla liiga suured ega liiga väikesed. Kuldne kesktee.
  • Õppimiskiiruse ajakava: Sageli vähendatakse õppimiskiirust aja jooksul. Alguses kiirem, hiljem peenemad kohandused.

Kogenud praktikud jälgivad neid mõõdikuid pidevalt. Avasta probleemid varakult. Kohanda hüperparameetreid treeningu ajal, kui vaja. See on aktiivne haldamine, mitte seadista-ja-unusta.

Millal treening lõpetada

Lõputu treenimine ei aita. Sul on vaja lõpetamiskriteeriume:

  • Varajane peatamine: Valideerimiskadu lakkab paranemast N järjestikusel epohhil? Peata. Oled valmis.
  • Sihttäpsus: Saavutasid oma täpsuseesmärgi? Peata. Edasine treenimine raiskab ressursse.
  • Eelarve piir: Aeg või raha sai otsa? Peata. Kasuta seda, mis sul on.
  • Konvergents: Kadu vaevu muutub? Kahanev tulu. Peata.

Teadmine, millal lõpetada, on ülioluline. Liiga vara: ala sobitamine. Liiga hilja: üle sobitamine ja raisatud arvutusvõimsus. Õige koha leidmine nõuab kogemust ja otsustusvõimet.

Mida pead meeles pidama

Kui sa ei võta sellest midagi muud kaasa, siis pea meeles:

  • 1. Treening on optimeerimine. Kohanda parameetreid, et minimeerida ennustusviga. Korda miljoneid kordi. Järkjärguline liikumine kasuliku mudelini.
  • 2. Skaala loeb tohutult. Miljardid parameetrid. Miljardid näited. Miljonid värskendussammud. Arvutusmaht on tõeliselt suur.
  • 3. Treening on kallis. Miljonid arvutuskuludes. Tohutu energiatarbimine. Nädalaid aega. Suur ressursiinvesteering.
  • 4. Palju asju võib valesti minna. Hääbuvad/plahvatavad gradiendid. Üle sobitamine. Režiimi kollaps. Riistvaratõrked. Nõuab pidevat jälgimist.
  • 5. Hüperparameetrid on kriitilised. Õppimiskiirus, partiisuurus, arhitektuurivalikud. Heade väärtuste leidmine nõuab katsetamist. Garanteeritud valemeid pole.
  • 6. Ülekandeõpe on praktiline. Alusta eeltreenitud mudelitest. Peenhäälesta oma ülesande jaoks. Suurusjärkude võrra odavam ja kiirem kui nullist treenimine.
  • 7. Binaarne treening pakub tõhusust. Hübriidtäpsus. Otseste hinnangute meetodid. 2× kiirem samaväärse täpsusega. Praktiline paljude ülesannete jaoks.
Ruum "What You Need to Remember" ümber tõmbub kokku, kui reeglid, otsing ja tõestus kohtuvad.

Alumine rida

Treening muudab juhuslikud parameetrid kasulikuks intelligentsuseks miljonite väikeste kohanduste kaudu.

See on arvutusmahukas. Kallis. Aeganõudev. Habras. Nõuab asjatundlikkust. Aga see toimib.

Iga kasulik tehisintellekti mudel on selle protsessi läbinud. Juhuslikust kaosest praktilise kasutuseni. Treening on koht, kus maagia juhtub. Välja arvatud see, et see pole maagia. See on optimeerimine. Massiivne, kallis ja hoolikalt jälgitud optimeerimine.

Treeningu mõistmine aitab sul mõista tehisintellekti piiranguid. Miks suured mudelid on kallid. Miks andmete kallutatus on oluline. Miks hüperparameetrid on pirtsakad. Miks asjad valesti lähevad.

Tehisintellekti glamuurne osa on treenitud mudel. Raske osa on sinna jõudmine. Nüüd saad aru, mis tegelikult toimub nende tundide, päevade või nädalate jooksul, mil treening kestab. See on lihtsalt matemaatika. Tohututes kogustes matemaatikat. Aga lihtsalt matemaatika.

Tahad näha tõhusat treeningut tegevuses? Tutvu Dweve Core'iga. Binaarne närvivõrgu treening sirge hinnangu andjate ja stohhastilise binariseerimisega. 2× kiirem lähenemine. Sama täpsus. Selline treening, mis austab sinu arvutuseelarvet ja ajakava.