Suasmeninti gilaus mokymosi modeliai gali įgalinti dirbtinio intelekto pokalbių robotus, kurie prisitaiko suprasti vartotojo akcentą, arba išmaniąsias klaviatūras, kurios nuolat atnaujinamos, kad geriau nuspėtų kitą žodį pagal kieno nors spausdinimo istoriją. Šis pritaikymas reikalauja nuolat koreguoti mašininio mokymosi modelį su naujais duomenimis.
Kadangi išmaniesiems telefonams ir kitiems kraštiniams įrenginiams trūksta atminties ir skaičiavimo galios, reikalingos šiam koregavimo procesui, naudotojų duomenys paprastai įkeliami į debesies serverius, kur modelis atnaujinamas. Tačiau duomenų perdavimas sunaudoja daug energijos, o slaptų vartotojų duomenų siuntimas į debesies serverį kelia pavojų saugumui.
Tyrėjai iš MIT, MIT-IBM Watson AI Lab ir kitur sukūrė techniką, kuri leidžia gilaus mokymosi modeliams efektyviai prisitaikyti prie naujų jutiklių duomenų tiesiai ant krašto įrenginio.
Jų įrenginyje naudojamas mokymo metodas, vadinamas „PockEngine“, nustato, kurias didžiulio mašininio mokymosi modelio dalis reikia atnaujinti, kad būtų pagerintas tikslumas, ir saugomos ir skaičiuojamos tik su tomis konkrečiomis dalimis. Ji atlieka didžiąją dalį šių skaičiavimų, kol modelis ruošiamas, prieš vykdymo laiką, o tai sumažina skaičiavimo išlaidas ir pagreitina koregavimo procesą.
Palyginti su kitais metodais, „PockEngine“ žymiai pagreitino mokymą įrenginyje, kai kuriose aparatinės įrangos platformose veikdamas iki 15 kartų greičiau. Be to, „PockEngine“ nesukėlė modelių tikslumo. Tyrėjai taip pat nustatė, kad jų koregavimo metodas leido populiariam AI pokalbių robotui tiksliau atsakyti į sudėtingus klausimus.
„Įrenginio patikslinimas gali užtikrinti didesnį privatumą, sumažinti išlaidas, pritaikyti tinkinimo galimybes ir mokytis visą gyvenimą, tačiau tai nėra lengva. Viskas turi vykti naudojant ribotą išteklių skaičių. Norime turėti galimybę paleisti ne tik išvadas, bet ir treniruotis kraštutiniu įrenginiu. Su „PockEngine“ dabar galime“, – sako Song Han, Elektros inžinerijos ir kompiuterių mokslo (EECS) katedros docentas, MIT-IBM Watson AI laboratorijos narys, žymus NVIDIA mokslininkas ir vyresnysis autorius. atviros prieigos popierius, aprašantis PockEngine.
Straipsnyje Han prisijungė pagrindinis autorius Ligengas Zhu, EECS absolventas, taip pat kiti MIT, MIT-IBM Watson AI Lab ir Kalifornijos San Diego universiteto darbuotojai. Straipsnis neseniai buvo pristatytas IEEE / ACM tarptautiniame mikroarchitektūros simpoziume.
Sluoksnis po sluoksnio
Giluminio mokymosi modeliai yra pagrįsti neuroniniais tinklais, kuriuos sudaro daug tarpusavyje sujungtų mazgų arba „neuronų“, kurie apdoroja duomenis, kad būtų galima prognozuoti, sluoksnių. Kai modelis vykdomas, procesas, vadinamas išvada, duomenų įvestis (pvz., vaizdas) perduodama iš sluoksnio į sluoksnį, kol pabaigoje išvedama numatymas (galbūt vaizdo etiketė). Atliekant išvadą, kiekvieno sluoksnio nebereikia saugoti, kai jis apdoroja įvestį.
Tačiau treniruočių ir koregavimo metu modelis patiria procesą, vadinamą atgaliniu platinimu. Atgalinio propagavimo metu rezultatas lyginamas su teisingu atsakymu, o tada modelis paleidžiamas atvirkščiai. Kiekvienas sluoksnis atnaujinamas, kai modelio išvestis priartėja prie teisingo atsakymo.
Kadangi gali tekti atnaujinti kiekvieną sluoksnį, visas modelis ir tarpiniai rezultatai turi būti saugomi, todėl koreguoti reikia daugiau atminties nei daryti išvadas.
Tačiau ne visi neuroninio tinklo sluoksniai yra svarbūs siekiant pagerinti tikslumą. Ir net svarbių sluoksnių atveju viso sluoksnio gali nereikėti atnaujinti. Šių sluoksnių ir sluoksnių dalių saugoti nereikia. Be to, norint pagerinti tikslumą, gali nereikėti grįžti prie pirmojo sluoksnio – procesas gali būti sustabdytas kažkur viduryje.
„PockEngine“ naudojasi šiais veiksniais, kad pagreitintų koregavimo procesą ir sumažintų skaičiavimo bei atminties kiekį.
Sistema pirmiausia tiksliai suderina kiekvieną sluoksnį po vieną pagal tam tikrą užduotį ir matuoja tikslumo pagerėjimą po kiekvieno atskiro sluoksnio. Tokiu būdu „PockEngine“ nustato kiekvieno sluoksnio indėlį, taip pat kompromisus tarp tikslumo ir koregavimo sąnaudų ir automatiškai nustato kiekvieno sluoksnio procentą, kurį reikia tiksliai sureguliuoti.
„Šis metodas labai gerai atitinka tikslumą, palyginti su visišku sklidimu skirtingose užduotyse ir skirtinguose neuroniniuose tinkluose”, – priduria Han.
Sumažintas modelis
Paprastai atgalinio skleidimo grafikas generuojamas vykdymo metu, o tai reikalauja daug skaičiavimų. Vietoj to, „PockEngine“ tai daro kompiliavimo metu, kol modelis ruošiamas diegti.
„PockEngine“ ištrina kodo bitus, kad pašalintų nereikalingus sluoksnius ar sluoksnių dalis, sukurdama sumažintą modelio grafiką, kuris bus naudojamas vykdymo metu. Tada ji atlieka kitus šios diagramos optimizavimus, kad dar labiau pagerintų efektyvumą.
Kadangi visa tai reikia padaryti tik vieną kartą, tai sutaupo skaičiavimo išlaidų vykdymo laikui.
„Tai tarsi prieš išsiruošiant į žygį pėsčiomis. Namuose kruopščiai planuotumėte – kokiais takais eisite, o kurių nekreipsite dėmesio. Taigi vykdymo metu, kai iš tikrųjų keliauji pėsčiomis, jau turi labai kruopštų planą, kurio reikia laikytis“, – aiškina Han.
Kai jie pritaikė „PockEngine“ gilaus mokymosi modeliams skirtinguose įrenginiuose, įskaitant „Apple M1 Chips“ ir skaitmeninius signalų procesorius, įprastus daugelyje išmaniųjų telefonų ir „Raspberry Pi“ kompiuterių, jis įrenginyje atliko mokymą iki 15 kartų greičiau, nesumažėdamas tikslumo. „PockEngine“ taip pat žymiai sumažino atminties kiekį, reikalingą koregavimui.
Komanda taip pat pritaikė techniką dideliam kalbos modeliui Llama-V2. Naudojant didelius kalbos modelius, koregavimo procesas apima daug pavyzdžių, todėl labai svarbu, kad modelis išmoktų bendrauti su vartotojais, sako Hanas. Šis procesas taip pat svarbus modeliams, kurių užduotis yra išspręsti sudėtingas problemas arba samprotauti apie sprendimus.
Pavyzdžiui, Llama-V2 modeliai, kurie buvo tiksliai sureguliuoti naudojant PockEngine, atsakė į klausimą „Koks buvo paskutinis Michaelo Jacksono albumas? teisingai, o modeliai, kurie nebuvo tiksliai sureguliuoti, žlugo. „PockEngine“ sutrumpino kiekvieno tikslaus derinimo proceso iteracijos laiką nuo maždaug septynių sekundžių iki mažiau nei vienos sekundės „NVIDIA Jetson Orin“, pažangioje GPU platformoje.
Ateityje mokslininkai nori naudoti „PockEngine“, kad sureguliuotų dar didesnius modelius, skirtus tekstui ir vaizdams apdoroti kartu.
„Šis darbas sprendžia didėjančius efektyvumo iššūkius, kylančius dėl didelių AI modelių, tokių kaip LLM, pritaikymo įvairiose programose įvairiose pramonės šakose. Tai ne tik žada pažangias programas, kuriose yra didesni modeliai, bet ir sumažina didelių dirbtinio intelekto modelių priežiūros ir atnaujinimo debesyje išlaidas“, – sako Ehry MacRostie, „Amazon“ Dirbtinio bendrojo intelekto skyriaus vyresnysis vadovas, nedalyvavęs šioje srityje. studijuoti, bet bendradarbiauja su MIT susijusiais AI tyrimais per MIT-Amazon Science Hub.
Šį darbą iš dalies palaikė „MIT-IBM Watson AI Lab“, „MIT AI Hardware Program“, „MIT-Amazon Science Hub“, Nacionalinis mokslo fondas (NSF) ir „Qualcomm Innovation Fellowship“.