Tokenizerių mokymas ir modelių mokymas NLP yra iš esmės skirtingi, tačiau glaudžiai susiję procesai. Pirmasis sukuria žodyną ir kodavimo taisykles, kurios leidžia antrajam mokytis kalbos modelių iš skaitmeninių duomenų.
Akcentai
Tokenizer mokymas naudoja godžius sujungimo algoritmus, o ne gradientinį optimizavimą, todėl iš esmės tai yra išankstinio apdorojimo žingsnis, o ne neuroninis mokymasis.
Modelių mokymas kainuoja nykštukinių tokenizerių mokymą pagal dydį, tačiau tokenizerių kokybė nustato griežtas ribas tolesniam modelio našumui.
Tokenizer žodyno sprendimai yra faktiškai negrįžtami, kai prasideda modelio mokymas, sukuriant užraktą, kuris išlieka atliekant visus vėlesnius tikslinimus.
Daugiakalbiai modeliai susiduria su dideliu tokenizatorių šališkumu, kai anglų ir pagrindinės Europos kalbos efektyviai tokenizuoja, o daugelis kitų kalbų kenčia nuo sekos ilgio infliacijos
Kas yra Tokenizerio mokymai?
Šaltinių žodyno kūrimo ir kodavimo taisyklių, skirtų tekstui konvertuoti į skaitmeninius žetonus, mokymosi procesas.
Tokenizer mokymas analizuoja didelį teksto korpusą, kad surastų efektyviausius kalbos reprezentavimo subžodžių vienetus.
Baitų porų kodavimas (BPE) ir „SentencePiece“ yra plačiausiai naudojami algoritmai tokenizerių mokymui neapdorotame tekste.
Gautas žodyno dydis yra fiksuotas hiperparametras, paprastai svyruojantis nuo 32 000 iki 100 000 žetonų.
Tokenizer mokymas neapima gradiento nusileidimo ar neuroninio tinklo optimizavimo
Prastai apmokytas žetonų generatorius gali smarkiai pabloginti tolesnio modelio našumą, sukurdamas fragmentiškas arba dviprasmiškas žetonų sekas.
Kas yra NLP modelių mokymai?
Neuroninių tinklų optimizavimo procesas, kai kalbos modeliai mokosi šablonų iš tokenizuotų duomenų, naudodami gradientinius metodus.
Modelio mokymui reikalingi iš anksto tokenizuoti duomenys ir naudojamas atgalinis platinimas, siekiant sumažinti prognozavimo nuostolius milijarduose parametrų.
Transformatorinės architektūros dominuoja šiuolaikiniame NLP modelių mokyme, pristatytos 2017 m. straipsnyje „Viskas, ko jums reikia, yra dėmesys“.
Didelių kalbos modelių, tokių kaip GPT-4, mokymas gali kainuoti dešimtis milijonų dolerių skaičiavimo išteklių.
Modelių mokymas apima hiperparametrus, tokius kaip mokymosi greitis, partijos dydis ir apšilimo žingsniai, kurie daro didelę įtaką konvergencijai.
Tikslus derinimas pritaiko iš anksto apmokytus modelius konkrečioms užduotims su daug mažiau duomenų ir skaičiavimo, nei mokant nuo nulio.
Palyginimo lentelė
Funkcija
Tokenizerio mokymai
NLP modelių mokymai
Pagrindinis tikslas
Sukurkite šalutinių žodžių žodyną ir kodavimo taisykles
Išmokite kalbos modelius ir su užduotimis susijusius vaizdinius
Godus dažniu pagrįstas sujungimas (BPE) arba maksimalios tikimybės (SentencePiece)
Gradientinis nusileidimas su atgaline sklidimo sistema
Išvesties artefaktas
Žodyno failas ir kodavimo / dekodavimo funkcijos
Apmokytų neuroninių tinklų svoriai ir architektūros konfigūracija
Skaičiavimo reikalavimai
Santykinai nedidelis; valandos prie vieno aparato
Milžiniška; tūkstančiai GPU/TPU valandų dideliems modeliams
Grįžtamumas
Visiškai grįžtamas; tekstą galima tiksliai atkurti iš žetonų
Negrįžtamas; modelio rezultatai yra prognozės, o ne rekonstrukcijos
Įprasta trukmė
Nuo minučių iki valandų, priklausomai nuo korpuso dydžio
Dienos ar mėnesiai pamatų modeliams
Priklausomybės ryšys
Būtina atlikti prieš pradedant modelio mokymus
Priklauso nuo to, ar tokenizer jau yra apmokytas ir pataisytas
Išsamus palyginimas
Pagrindinė paskirtis ir funkcija
Tokenizerių mokymas tarnauja kaip išankstinio apdorojimo tiltas tarp žmonių kalbos ir mašininio skaitymo skaičių. Jo užduotis – nuspręsti, kaip žodžiai suskaidomi, kurios sekos tampa specialiais žetonais ir kaip elgtis su nežinomais žodžiais. Kita vertus, modelių mokymas yra ta vieta, kur vyksta tikrasis mokymasis – kai neuroninis tinklas atranda statistinius kalbos modelius, sukuria reikšmės reprezentacijas ir lavina gebėjimą generuoti arba klasifikuoti tekstą.
Algoritminiai pagrindai
Tokenizerių mokymo algoritmai stebėtinai skiriasi nuo tų, kurie naudoja modelių mokymą. LŽP pradeda nuo atskirų baitų ir iteratyviai sujungia dažniausias gretimas poras, kol pasiekia norimą žodyno dydį. „SentencePiece“ šią problemą traktuoja kaip kalbos modeliavimo užduotį, naudodamas lūkesčių maksimizavimo algoritmą. Nei viename iš šių metodų nenaudojami neuroniniai tinklai. Modelių mokymas išimtinai naudoja diferencijuojamą optimizavimą, paprastai „Adam“ arba „AdamW“ optimizatorius, kad būtų galima orientuotis daugiamačių nuostolių aplinkoje.
Išteklių intensyvumas ir mastelio keitimas
Skaičiavimo atotrūkis tarp šių procesų yra stulbinantis. „SentencePiece“ žetonų generatoriaus apmokymas su 100 GB teksto standartinėje įrangoje gali užtrukti kelias valandas. Modelio, pavyzdžiui, „Llama 3“, apmokymas tame pačiame korpuse reikalauja didžiulių klasterių su tūkstančiais tarpusavyje sujungtų greitintuvų, veikiančių ištisas savaites. Įdomu tai, kad žetonų generatoriaus apmokymas dažnai atliekamas vieną kartą ir pakartotinai naudojamas keliuose modelio mokymo cikluose, todėl tai yra gana fiksuota bendra kūrimo proceso kaina.
Poveikis modelio elgesiui
Tokenizerių pasirinkimai subtiliai, bet galingai formuoja tai, ko modeliai mokosi. Tokenizeris, kuris suskaido „antidisetistablišmentarizmą“ į daugelį fragmentų, verčia modelį komponuoti reikšmę iš dalių, o tas, kuris ją išlaiko visumą, traktuoja ją kaip atominę sąvoką. Tokenizerių šališkumas netgi gali paveikti teisingumą – kalbos, kurių tokenizerių efektyvumas prastas, suspaudžiamos į ilgesnes sekas, todėl modeliui jas brangiau apdoroti, o kartais ir prastesnis našumas.
Gyvavimo ciklas ir iteracija
Praktiškai žetonų kūrėjų mokymas paprastai yra vienkartinis sprendimas, priimamas projekto pradžioje. Žetonų kūrėjų keitimas po modelio mokymo reiškia visko mokymą iš naujo nuo nulio, nes žetonų ID yra savavališki, o modelio įterpimai yra susieti su konkrečiomis žetonų pozicijomis. Priešingai, modelio mokymas yra labai iteracinis – tyrėjai nuolat eksperimentuoja su architektūromis, mokymo receptais ir tikslinimo strategijomis. Ši asimetrija reiškia, kad žetonų kūrėjų pasirinkimai turi ilgalaikių pasekmių, kurias sunku ištaisyti.
Privalumai ir trūkumai
Tokenizerio mokymai
Privalumai
+Skaičiavimo požiūriu nebrangu eksploatuoti
+Visiškai deterministinis ir atkartojamo
+Įgalina efektyvų teksto glaudinimą
+Pritaikoma konkrečiai sričiai skirtam žodynui
+Sukuria grįžtamąjį teksto kodavimą
Pasirinkta
−Fiksuotas žodynas riboja išraiškingumą
−Sunkumų kelia besivystanti kalba
−Gali sukelti kodavimo šališkumą
−Norint pakeisti, reikia persikvalifikuoti
−Neoptimalus retoms kalboms
NLP modelių mokymai
Privalumai
+Išmoksta turtingų semantinių reprezentacijų
+Perkeliamas tarp užduočių
+Nuspėjamai keičiasi naudojant duomenis ir skaičiavimus
+Įgalina atsirandančias galimybes
+Palaiko tikslųjį prisitaikymą
Pasirinkta
−Labai brangu skaičiavimo požiūriu
−Aplinkai žalingas energijos vartojimas
−Reikalingi dideli kuruojami duomenų rinkiniai
−Polinkis į haliucinacijas ir šališkumą
−Sunku interpretuoti vidinius samprotavimus
Dažni klaidingi įsitikinimai
Mitas
Tokenizer mokymas yra tik nedidelis išankstinio apdorojimo žingsnis, turintis mažai įtakos galutinei modelio kokybei.
Realybė
Tokenizerių kokybė tiesiogiai riboja tai, ką modelis gali išmokti. Prasta tokenizerių sistema sukuria dviprasmiškus atvaizdavimus, išpučia sekų ilgius ir gali padaryti tam tikrus kalbinius reiškinius modeliui beveik neįmanomus. Tyrėjai įrodė, kad tokenizerių pasirinkimas gali keliais procentiniais punktais pakeisti etaloninio testo našumą.
Mitas
Apmokę modelį, galite pakeisti žetonus tiesiog iš naujo susiedami žetonus.
Realybė
Modelių įterpimai yra susieti su konkrečiais žetonų ID tam tikrose išmoktų parametrų erdvės pozicijose. Skirtingas žetonų generatorius sukuria visiškai skirtingus žetonų pasiskirstymus, todėl iš anksto apmokyti svoriai semantiškai nesutampa. Vienintelis tinkamas kelias yra visiškas perkvalifikavimas nuo nulio.
Mitas
Didesni tokenizer žodynai visada yra geresni modelio našumui.
Realybė
Nors didesni žodynai sumažina sekos ilgį, jie padidina įterpimo matricos dydį ir gali pakenkti modelio efektyvumui. Yra optimalus taškas – per didelis žodynas ir modelis nepakankamai panaudoja retus žetonus; per mažas žodynas ir sekos tampa fragmentiškos. Dauguma specialistų mano, kad 32 tūkst.–100 tūkst. žetonų yra optimalūs daugiakalbiams modeliams.
Mitas
Modelio mokymas ir tokenizerio mokymas vyksta kartu kaip to paties viso proceso dalis.
Realybė
Tai yra nuoseklūs, atskiri etapai. Prieš pradedant modelio mokymą, tokenizeris turi būti visiškai apmokytas ir užšaldytas, nes modelio architektūra priklauso nuo žodyno dydžio, atsižvelgiant į jo įterpimo sluoksnio matmenis. Kai kurie naujausi tyrimai nagrinėja bendrą optimizavimą, tačiau standartinė praktika išlieka griežtai nuosekli.
Mitas
Modelis, apmokytas su vienu tokenizeriu, gali būti tiksliai suderintas su skirtingais tokenizeriais.
Realybė
Tiksliam derinimui reikalinga identiška tokenizacija. Įvedus skirtingai tokenizuotą tekstą, modeliui būtų pateikti tokenų ID, kurių įterpimų jis niekada neišmoko, arba, dar blogiau, pažįstami ID su visiškai neteisingomis reikšmėmis. Štai kodėl modelio versijose visada tiksliai nurodoma, kurį tokenizerį naudoti.
Mitas
Tokenizerio mokymui reikalingi paženklinti duomenys, kaip ir modelio mokymui.
Realybė
Tokenizeriai mokomi vien tik su neapdorotu, nepažymėtu tekstu. Jiems nereikia jokių anotacijų, žymų ar konkrečiai užduočiai skirto formatavimo. Šis neprižiūrimas pobūdis leidžia mokyti tokenizerius didžiuliuose žiniatinklio masto korporacijose be brangaus žmogaus atliekamo žymėjimo.
Dažnai užduodami klausimai
Kas nutiks, jei su iš anksto apmokytu modeliu naudosiu netinkamą tokenizerį?
Naudojant nesutampančius žetonų generatorius gaunama nesąmonių. Modelis gauna žetonų ID, kurie atitinka visiškai skirtingus požodžius, nei tie, kuriuos buvo apmokyti pavaizduoti jo įterptieji elementai. Geriausiu atveju išvestis tampa beprasmė; blogiausiu atveju modelis generuoja žalingą turinį, nes žetonai aktyvuoja netyčia išmoktas asociacijas. Visada naudokite tikslų žetonų generatorių, platinamą kartu su modeliu.
Kiek laiko paprastai trunka tokenizerių mokymas, palyginti su modelio mokymu?
Tokenizerių mokymas paprastai trunka valandas, o mažesniems korpusams – kartais minutes. Pagrindinių modelių mokymas dideliuose skaičiavimo klasteriuose trunka savaites ar mėnesius. Net didelio modelio tikslus derinimas paprastai užtrunka ilgiau nei tokenizerių mokymas nuo nulio. Šis skirtumas atspindi tai, kad tokenizeriai naudoja paprastus statistinius algoritmus, o modeliai optimizuoja milijardus parametrų taikydami iteracinį gradientinį mažėjimą.
Ar galiu apmokyti savo tokenizerį esamam modeliui, pvz., GPT-4?
Techniškai taip, bet praktiškai ne. Galite apmokyti pasirinktinį tokenizerį, bet negalite jo naudoti su iš anksto apmokytais GPT-4 svoriais, nes įterpimo matmenys ir išmoktos reprezentacijos yra susietos su originaliu OpenAI tokenizeriu. Jums reikėtų apmokyti naują modelį nuo nulio su savo tokenizeriu, o tai paneigia iš anksto apmokyto modelio naudojimo prasmę.
Kodėl kai kurios kalbos tokenizuoja į daug daugiau žetonų nei kitos?
Tai kyla iš to, kaip BPE ir panašūs algoritmai optimizuoja dažnumą mokymo duomenyse. Kalbos, turinčios didelį atstovavimą mokymo korpuse, ypač anglų kalba, efektyviai tokenizuojamos. Mažiau išteklių turinčios kalbos suskaidomos į simbolių lygio arba požodinius fragmentus, nes jų modeliai retai kada buvo dažniausiai sujungiami. Šis „tokenizerių mokestis“ kai kurių kalbų apdorojimą apsunkina skaičiavimo požiūriu.
Ar „SentencePiece“ geriau nei BPE tokenizerių mokymui?
„SentencePiece“ siūlo pranašumų tam tikrais naudojimo atvejais. Jis traktuoja tarpą kaip įprastą simbolį, todėl jį natūraliau naudoti kalbomis be žodžių ribų, tokiomis kaip japonų ar kinų. Jis taip pat palaiko kelis kodavimo algoritmus, įskaitant BPE ir unigraminius kalbų modelius. BPE išlieka labiau paplitęs anglų kalba paremtuose modeliuose. Geriausias pasirinkimas priklauso nuo jūsų kalbų mišinio ir nuo to, ar jums reikia grįžtamojo kodavimo.
Kaip sužinoti, ar mano tokenizeris sukelia problemų mano modelyje?
Stebėkite neįprastai didelį painiavą konkrečiose kalbose ar domenuose, per didelį sekų ilgį, palyginti su panašiu tekstu gerai reprezentuojamomis kalbomis, ir prastą našumą atliekant užduotis, susijusias su retais žodžiais ar specializuota terminologija. Rankinė tokenizavimo išvesties analizė – kaip reprezentatyvūs žodžiai yra suskaidomi – dažnai greitai atskleidžia problemas.
Kas yra „tokenizer explosion“ ir kaip jis veikia modelio mokymą?
Tokenizer sprogimas įvyksta, kai nedidelis įvesties pokytis sukuria labai skirtingas žetonų sekas, dažniausiai dėl dviprasmiškų ribų taisyklių arba prefikso/priesagos tvarkymo. Tai destabilizuoja modelio mokymą, nes modelis mato nenuoseklius panašių įvesčių atvaizdavimus. Gerai apmokyti tokenizeriai tai sumažina naudodami nuoseklų išankstinį apdorojimą ir patikimas sujungimo taisykles.
Ar dideli kalbų modeliai kada nors perkvalifikuoja savo tokenizerius?
Pagrindinės modelių šeimos paprastai išlaiko fiksuotus tokenizerius skirtingose versijose, kad būtų užtikrintas atgalinis suderinamumas. Kai organizacijos išleidžia naujus tokenizerius, kaip „OpenAI“ tai padarė tarp GPT-2 ir GPT-3, jie lydi visiškai naujų modelių mokymą. Tokenizerių keitimo kaina ir sutrikimai reiškia, kad jie vystosi lėtai, dažnai tik su pagrindinėmis architektūros kartomis.
Ar žetonų mokymai gali padėti su konkrečioms sritims skirtomis programomis, tokiomis kaip medicininė ar teisinė NLP?
Žinoma. Konkrečioms sritims skirti tokenizeriai gali įtraukti specializuotą terminologiją kaip atskirus žetonus, o ne juos fragmentuoti. Tai pagerina ir efektyvumą, ir modelio supratimą. Daugelis biomedicininių NLP projektų apmoko pritaikytus tokenizerius „PubMed“ arba klinikiniuose tekstuose, kad užfiksuotų terminologiją, kurią bendrieji tokenizeriai netinkamai suskaidytų.
Kodėl „ChatGPT“ kartais sunkiai atlieka paprastas skaičiavimo ar rašybos užduotis?
Šis apribojimas iš dalies susijęs su žetonų lygmens įvedimu. Žetonų lyginimo įrankis mato ne atskirus simbolius, o šalutinius žodžių fragmentus, todėl raidžių skaičiavimas reikalauja, kad modelis atliktų atvirkštinę simbolių lygio informacijos inžineriją iš žetonų įterpimų. Panašiai rašyba apima žetonų skaidymą į raides, kurių modelis niekada tiesiogiai neapdoroja. Šios užduotys žmonėms yra paprastos, tačiau išties sudėtingos, atsižvelgiant į žetonų lygio įvesties vaizdavimą.
Nuosprendis
Rinkitės tokenizerių mokymą, kai reikia iš anksto apdoroti tekstą naujai kalbos sričiai arba kai esami tokenizeriai prastai tvarko jūsų specifinį žodyną. Pirmenybę teikite modelio mokymui, kai jūsų tikslas yra sukurti pajėgias kalbos sistemas, ir tiesiog pakartotinai naudokite nusistovėjusius tokenizerius, pvz., iš GPT-2, BERT ar Llama, nebent turite įtikinamų įrodymų, kad tokenizerius reikia pritaikyti pagal paskirtį.