žetonų išdavimasnatūralios kalbos apdorojimastransformatoriaisubžodžių algoritmaidirbtinis intelektas
Baitų porų kodavimas ir „WordPiece“ tokenizavimas
Baitų porų kodavimas ir „WordPiece“ yra du plačiai naudojami požodžių žetonų sudarymo algoritmai, kurie palaiko šiuolaikinius NLP modelius ir skiriasi daugiausia tuo, kaip jie sujungia žetonus mokymo metu, ir jų vertinimo metrikomis.
Akcentai
BPE sujungia vien tik pagal dažnių skaičių, o „WordPiece“ optimizuoja pagal mokymo duomenų tikimybę
GPT modeliai naudoja BPE, o BERT ir jo variantai remiasi „WordPiece“ tokenizacija.
„WordPiece“ paprastai sukuria lingvistiškai aiškesnes žetonų ribas nei dažniu pagrįstas BPE
Abu metodai išsprendžia žodyno trūkumo problemą, tačiau taikydami iš esmės skirtingus optimizavimo tikslus.
Kas yra Baitų porų kodavimas?
Požodžių tokenizavimo algoritmas, kuris iteratyviai sujungia dažbiausiai pasitaikančias gretimas simbolių poras į naujus tokenus.
BPE iš pradžių buvo sukurtas 1994 m. kaip duomenų glaudinimo algoritmas, o 2016 m. jį pritaikė NLP Sennrich ir kt.
Algoritmas pradeda nuo atskirų simbolių žodyno ir pakartotinai sujungia dažniausiai pasitaikančią gretimų žetonų porą.
GPT-2, GPT-3 ir RoBERTa naudoja BPE tokenizaciją kaip savo išankstinio apdorojimo srautų dalį.
BPE naudoja dažnių skaičiavimus, kad nustatytų, kurias žetonų poras sujungti, todėl jis yra grynai duomenimis pagrįstas, be kalbos modelio.
Algoritmas gali sukurti žodyno neatitinkančius žodžius, suskaidydamas juos į žinomus šalutinius žodžių vienetus, taip pagerindamas retų terminų apdorojimą.
Kas yra „WordPiece“ žetonų kūrimas?
Povardinių žodžių žetonų sujungimo metodas, kuris sujungia žetonus pagal tikimybės maksimizavimą, o ne neapdorotą dažnį.
„WordPiece“ iš pradžių sukūrė „Google“ japonų ir korėjiečių balso paieškos sistemoms, o vėliau buvo pritaikyta teksto paieškai.
Algoritmas parenka sujungimus, kurie maksimaliai padidina mokymo duomenų tikimybę, o ne tiesiog skaičiuoja dažnius.
BERT, DistilBERT ir ALBERT naudoja „WordPiece“ žetonų kūrimą, paprastai su 30 522 žetonų žodyno dydžiu.
„WordPiece“ dažnai inicijuoja savo žodyną, kad įtrauktų visus atskirus simbolius prieš pradedant sujungimo procesą.
Šis metodas, palyginti su BPE, paprastai sukuria mažiau simbolių lygio žetonų įprastiems žodžiams, todėl padidėja efektyvumas.
Palyginimo lentelė
Funkcija
Baitų porų kodavimas
„WordPiece“ žetonų kūrimas
Sujungimo kriterijus
Gretimų porų dažnis
Mokymo duomenų tikimybė
Pagrindiniai naudojimo atvejai
GPT serija, RoBERTa, CLIP
BERTAS, DistilisBERTAS, ALBERTAS
Žodyno inicijavimas
Atskiri simboliai arba baitai
Individualūs personažai
Retų žodžių tvarkymas
Suskaido į dažnus šalutinius žodžių vienetus
Padalijimai pagal tikimybe pagrįstą segmentavimą
Treniruočių greitis
Paprastai greičiau dėl paprasto skaičiavimo
Šiek tiek lėčiau dėl tikimybių skaičiavimo
Žetono išvesties stilius
Dažnai detalesnis
Dažnai labiau sujungiami įprasti žodžiai
Originalus vystymas
1994 m. kaip suspaudimas; 2016 m. – NLP
„Google“ kalbos atpažinimo komanda
Išsamus palyginimas
Pagrindinė algoritmo filosofija
BPE žetonų išskleidimo metodą naudoja kaip glaudinimo problemą, godžiai suliedamas dažniausiai mokymo korpuse pasitaikančias poras. Šis tiesus, dažnumu pagrįstas metodas leidžia jį intuityviai ir gana greitai apskaičiuoti. „WordPiece“ taiko labiau tikimybinį požiūrį, klausdamas, kuris sujungimas padarytų mokymo duomenis labiausiai tikėtinus pagal unigraminės kalbos modelio prielaidą. Šis subtilus kadravimo pokytis lemia skirtingas žetonų ribas, ypač morfologiškai turtingoms kalboms.
Žetonų ribos ir lingvistinės savybės
Kadangi BPE vien tik gainiojasi dažnumą, kartais žodžiai skaidomi lingvistiškai nenatūraliose vietose, jei tai yra dažni duomenų modeliai. „WordPiece“ tikimybe pagrįstas metodas linkęs geriau atsižvelgti į morfemų ribas, sukurdamas žetonus, kurie labiau atitinka prasmingus vienetus. Anglų kalba abu metodai veikia panašiai, tačiau skirtumas išryškėja kalbose, turinčiose turtingesnę morfologiją, pavyzdžiui, vokiečių ar turkų kalbomis.
Įgyvendinimas ir ekosistemos įsitvirtinimas
Pasirinkimas tarp šių tokenizerių dažnai priklauso nuo naudojamos modelio architektūros, o ne nuo gilaus paties algoritmo pasirinkimo. „OpenAI“ GPT šeima standartizuota BPE pagrindu, todėl kiekvienas, tobulinantis ar diegiantis šiuos modelius, paveldi tą tokenizerių schemą. „Google“ BERT ekosistema įtvirtino „WordPiece“ kaip faktinį pasirinkimą tik kodavimo transformatorių modeliams. Dėl šios ekosistemos įtvirtinimo specialistai retai keičia tokenizerius nepriklausomai nuo modelių architektūrų.
Ypatingų atvejų tvarkymas
Abu algoritmai susiduria su tam tikrais kraštutiniais atvejais, tačiau skirtingais būdais. BPE gali būti nestabilus su tarpais ir skyryba, kartais sukeldamas netikėtus žetonus, kai skiriasi formatavimas. „WordPiece“ paprastai prideda specialų prefikso simbolį (pvz., ## BERT), kad nurodytų tęsinio požodžius, todėl originalaus teksto rekonstravimas tampa aiškesnis, tačiau taip pat įveda žetonų sudarymo artefaktus, kuriuos tolesni modeliai turi išmokti apdoroti.
Šiuolaikiniai variantai ir evoliucija
Pastaraisiais metais pastebimai pasikeitė ne tik abu šie algoritmai. „SentencePiece“ siūlo vieningą sistemą, kuri gali įdiegti BPE, „WordPiece“ arba unigramų kalbos modelio tokenizavimą naudojant vieną biblioteką. Baitų lygio BPE (naudojamas GPT-2) veikia su neapdorotais baitais, o ne su Unicode simboliais, visiškai pašalindamas nežinomų žetonų problemas. Tuo tarpu naujesni metodai, tokie kaip BPE išmetimas, įveda stochastiškumą mokymo metu, siekiant pagerinti patikimumą. Šie pokyčiai rodo, kad nors BPE ir „WordPiece“ išlieka pagrindiniais, ši sritis toliau vystosi.
Privalumai ir trūkumai
Baitų porų kodavimas
Privalumai
+Paprasta ir intuityvu suprasti
+Greitas mokymas su minimaliais skaičiavimais
+Gerai veikia su baitų lygio įvestimis
+Plačiai palaikoma šiuolaikinėse bibliotekose
+Apdoroja bet kokį Unicode tekstą
Pasirinkta
−Gali suskaidyti ties kalbiškai nelygiomis ribomis
−Jautrus mokymo korpuso dažnio iškraipymui
−Mokymo metu nėra aiškaus kalbos modelio
−Gali pernelyg segmentuoti retus techninius terminus
−Tarpų tvarkymas gali būti nenuoseklus
„WordPiece“ žetonų kūrimas
Privalumai
+Geresnis atitikimas morfemų riboms
+Aiški tikimybėmis pagrįsta optimizacija
+Aiškūs tęsinio žymekliai su ## prefiksu
+Subrendusių įrankių kūrimas naudojant „TensorFlow“ ir „Hugging Face“
+Efektyvus naudojant įprastus žodžius mokymo duomenyse
Pasirinkta
−Glaudžiai susieta su BERT ekosistema
−Šiek tiek lėtesnis mokymo skaičiavimas
−Prefiksų simboliai padidina žetonų kūrimo sudėtingumą
−Mažiau lankstumo netekstiniams duomenims, pvz., kodui
−Žodynas gali išsipūsti dėl retų priešdėlių
Dažni klaidingi įsitikinimai
Mitas
BPE ir „WordPiece“ tam pačiam tekstui visada sukuria skirtingas tokenizacijas.
Realybė
Daugeliui įprastų anglų kalbos žodžių abu algoritmai iš tikrųjų konverguoja į identiškas arba beveik identiškas segmentacijas. Skirtumai išryškėja vartojant retus žodžius, morfologiškai sudėtingus terminus ir kalbant apie turtingesnius kaitos modelius nei anglų kalboje.
Mitas
„WordPiece“ tokenizavimo metu naudoja neuroninį tinklą.
Realybė
Nepaisant to, kad „WordPiece“ naudojamas neuroniniuose modeliuose, pats savaime jis visiškai nėra neuroninis. Tikimybių skaičiavimas pagrįstas paprasta unigramų dažnio statistika, o ne kokia nors išmokta neuronine reprezentacija. „WordPiece“ kalbos modelis yra tik dažnių lentelė, o ne transformatorius ar pasikartojantis tinklas.
Mitas
BPE negali apdoroti kalbų su dideliais simbolių rinkiniais, pavyzdžiui, kinų.
Realybė
Baitų lygio BPE specialiai tai sprendžia, veikdamas su neapdorotais UTF-8 baitais, o ne simboliais. Tai reiškia, kad jis gali pavaizduoti bet kokį Unicode tekstą niekada nesusidūręs su nežinomu simboliu, nors scenarijams, kuriuose yra tūkstančiai simbolių, gali prireikti daugiau žetonų.
Mitas
Tokenizer pasirinkimas daro didelę įtaką modelio našumui atliekant tolesnes užduotis.
Realybė
Nors tokenizavimas yra svarbus, modelio architektūra ir mokymo duomenų skalė paprastai nusveria tokenizatoriaus pasirinkimo svarbą. Tyrimai parodė, kad BPE ir „WordPiece“ veikia panašiai, kai visi kiti veiksniai yra vienodi, o skirtumai paprastai būna maži ir priklauso nuo užduoties.
Mitas
„WordPiece“ buvo išrastas specialiai BERT.
Realybė
„WordPiece“ yra keleriais metais senesnis nei BERT. „Google“ jį iš pradžių sukūrė japonų ir korėjiečių kalbų balso paieškai 2010-ųjų pradžioje, o vėliau pritaikė neuroniniam mašininiam vertimui dar prieš pasirodant BERT. Ryšys su BERT yra stiprus vien dėl to, kad BERT jį išgarsino NLP tyrimų bendruomenėje.
Mitas
BPE žodyno dydis nesvarbus, svarbu, kad jis būtų pakankamai didelis.
Realybė
Žodyno dydis daro didelę įtaką tiek modelio našumui, tiek skaičiavimo efektyvumui. Per mažas žodyno dydis eikvoja pajėgumus ilgoms žetonų sekoms. Per didelis žodyno dydis – įterptosios matricos tampa nepatogios, o reti žetonai pateikiami prastai. Dauguma specialistų kruopščiai derina šį hiperparametrą, paprastai nustatydami tarp 30 000 ir 50 000 žetonų.
Dažnai užduodami klausimai
Koks yra pagrindinis skirtumas tarp BPE ir WordPiece?
Esminis skirtumas yra tas, kaip jie nusprendžia, kurias žetonų poras sujungti mokymo metu. BPE tiesiog suskaičiuoja, kaip dažnai poros pasirodo kartu, ir sujungia dažniausią porą. „WordPiece“ vietoj to apskaičiuoja, kuris sujungimas maksimaliai padidintų mokymo duomenų tikimybę pagal unigraminį modelį. Tai reiškia, kad BPE yra grynai dažnio valdomas, o „WordPiece“ įtraukia tikimybinį kriterijų, kuris linkęs sukurti lingvistiškai prasmingesnes ribas.
Kodėl GPT naudoja BPE, o BERT – „WordPiece“?
Šie pasirinkimai labiau atspindi skirtingas tyrimų grupes ir jų istorinį kontekstą, o ne gilų techninį būtinumą. „OpenAI“ GPT linija paveldėjo BPE iš ankstesnių darbų, susijusių su baitų lygio glaudinimu, ir nustatė, kad jis veiksmingas jų generatyvaus kalbos modeliavimo metodui. „Google“ BERT komanda jau buvo sukūrusi „WordPiece“ savo kalbos ir vertimo sistemoms, todėl natūraliai pritaikė esamus įrankius. Abu jie veikia pakankamai gerai, kad nė viena grupė nejautė poreikio pereiti prie kitų.
Ar BPE ir „WordPiece“ gali apdoroti kalbas, kuriose tarp žodžių nenaudojami tarpai?
Taip, abu algoritmai puikiai veikia be tarpų, nors jie gali sukurti mažiau intuityvų segmentavimą. Kadangi abu veikia su simbolių arba baitų sekomis, tarpų nebuvimas jų nesugadina. Tačiau tokios kalbos kaip tajų, kinų ar japonų dažnai naudoja išankstinį segmentavimą arba specializuotą išankstinį apdorojimą, nes grynai statistinis sujungimas gali neatitikti gimtakalbių intuicijos apie žodžių ribas.
Kaip naujam projektui pasirinkti BPE ir „WordPiece“?
Praktiškai retai kada renkatės nepriklausomai nuo savo modelio architektūros. Jei tiksliai derinate GPT-2, GPT-3 arba RoBERTa, turite naudoti jų BPE tokenizerį, kad išlaikytumėte suderinamumą. BERT pagrįstiems modeliams reikalingas „WordPiece“. Jei kuriate nuo nulio, turėkite omenyje, kad BPE yra šiek tiek paprasčiau įdiegti ir derinti, o „WordPiece“ gali pateikti šiek tiek aiškesnius lingvistinius skaidymus. Šiuolaikinės bibliotekos, tokios kaip „SentencePiece“, leidžia lengvai eksperimentuoti su abiem.
Kokį žodyno dydį turėčiau naudoti su BPE arba „WordPiece“?
Dauguma šiuolaikinių NLP modelių naudoja nuo 30 000 iki 50 000 žetonų, o ypač dažnai numatytieji dydžiai yra 32 000 ir 50 000. Mažesni žodynai verčia dažniau skaidyti požodžius, o tai padidina sekos ilgį, bet leidžia geriau apdoroti retus terminus. Didesni žodynai sumažina sekos ilgį, bet reikalauja didesnių įterpimo matricų ir gali būti sunku apdoroti labai retus žetonus. Optimalus taškas priklauso nuo jūsų kalbos, korpuso dydžio ir skaičiavimo biudžeto.
Ar šie tokenizeriai gali apdoroti jaustukus, kodą ar kitą nestandartinį tekstą?
Baitų lygio BPE šiuos uždavinius tvarko patikimai, nes veikia su neapdorotais baitais, o ne iš anksto apibrėžtais simbolių rinkiniais. Standartinis BPE ir „WordPiece“ gali nepavykti apdoroti retų Unicode simbolių, nebent jų pradinis žodynas aiškiai juos apima. Daugumoje gamybinių diegimų dabar naudojamas baitų lygio arba išplėstinis Unicode aprėptis, siekiant išvengti nežinomų žetonų problemų su socialinės žiniasklaidos tekstu, šaltinio kodu ir daugiakalbiu turiniu.
Kas yra „SentencePiece“ ir kaip jis susijęs su BPE ir „WordPiece“?
„SentencePiece“ yra atvirojo kodo „Google“ sukurta tokenizavimo biblioteka, teikianti vieningą kelių subžodžių algoritmų, įskaitant BPE, „WordPiece“ ir unigramų kalbos modelio tokenizavimą, įgyvendinimą. Ji tvarko išankstinį tokenizavimą, normalizavimą ir žodyno mokymą vienoje priemonėje. Užuot buvęs atskiru algoritmu, įsivaizduokite jį kaip lanksčią sistemą, leidžiančią pasirinkti ir konfigūruoti pageidaujamą tokenizavimo strategiją su nuosekliomis sąsajomis.
Ar BPE ir „WordPiece“ vis dar svarbūs naudojant šiuolaikinius didelius kalbų modelius?
Be abejo. Nepaisant didžiulio modelių, tokių kaip GPT-4, Claude ir Gemini, masto, jie visi vis dar remiasi požodžių tokenizacija. Konkretus algoritmas gali skirtis, o kai kurie naujesni modeliai eksperimentuoja su alternatyviais metodais, tačiau pagrindinis iššūkis – kintamo ilgio teksto vaizdavimas fiksuoto dydžio žodyno erdvėse – išlieka universalus. BPE ir „WordPiece“ supratimas suteikia esminės intuicijos apie tai, kaip šie modeliai apdoroja kalbą.
Kodėl tokenizavimo klaidos sukelia tokį painų elgesį kalbos modeliuose?
Tokenizacija įvyksta dar prieš neuroniniam tinklui pamatant tekstą, todėl bet koks eilučių skaidymo būdas yra įterpiamas į modelio įvesties reprezentaciją. Modelius taip pat galima išnaudoti naudojant tokenizacijos artefaktus, kai specialiai sukurtos eilutės apeina saugos filtrus, būdamos tokenizuojamos netikėtais būdais. Dėl to patikimas tokenizacijos dizainas yra stebėtinai svarbus modelio patikimumui ir saugumui.
Ar yra būdas vizualizuoti, kaip BPE arba „WordPiece“ tokenizuoja konkretų tekstą?
Taip, dauguma šiuolaikinių NLP bibliotekų teikia tam skirtus įrankius. „Hugging Face Transformers“ bibliotekoje yra metodai „tokenizer.decode“ ir „tokenizer.convert_ids_to_tokens“, kurie tiksliai parodo, kaip tekstas yra padalijamas. Taip pat yra žiniatinklio vizualizacijos įrankių, kuriuose galite įvesti tekstą ir matyti paryškintas žetonų ribas. Jie yra neįkainojami derinant netikėtą modelio elgesį ir suprantant, kodėl tam tikros įvesties vertės painioja jūsų sistemą.
Kuo skiriasi BPE nutraukimas nuo standartinio BPE?
BPE išmetimas, pristatytas 2020 m., atsitiktinai praleidžia kai kurias sujungimo operacijas mokymo metu su tam tikra tikimybe. Tai sukuria kelias galiojančias to paties žodžio tokenizacijas, kurios veikia kaip duomenų papildymo forma. Gautas modelis tampa atsparesnis tokenizacijos variacijoms ir paprastai geriau veikia tolesnėse užduotyse, ypač turint ribotus mokymo duomenis. Tai paprastas, bet efektyvus klasikinio BPE algoritmo patobulinimas.
Ar galiu tame pačiame sraute derinti BPE ir „WordPiece“ tokenizacijas?
Techniškai įmanoma, bet praktiškai nerekomenduojama. Skirtingi tokenizeriai sukuria nesuderinamus žetonų ID ir žodyno atvaizdavimus, todėl jų maišymas pareikalautų kruopštaus suderinimo sluoksnių arba pakartotinio tokenizeravimo veiksmų, kurie paprastai pablogina našumą. Jei reikia derinti modelius, naudojant skirtingus tokenizerius, standartinis metodas yra iš naujo apmokyti arba pritaikyti vieną, kad atitiktų kitą, arba naudoti vieningą tokenizerį, pvz., „SentencePiece“, visiems komponentams nuo pat pradžių.
Nuosprendis
Rinkitės BPE, kai dirbate su GPT stiliaus modeliais arba kai jums reikia paprastos ir greitos tokenizacijos, kuri apdoroja įvairų tekstą, įskaitant kodą ir daugiakalbius duomenis. Rinkitės „WordPiece“, kai kuriate BERT pagrindu veikiančiomis architektūromis arba kai norite, kad tokenų ribos labiau atitiktų lingvistines morfemas. Daugumai specialistų sprendimas iš esmės priklauso nuo pasirinkto iš anksto apmokyto modelio.