Byte Pair Encoding a WordPiece sú dva široko používané algoritmy tokenizácie podslov, ktoré poháňajú moderné modely NLP a líšia sa predovšetkým v spôsobe, akým zlučujú tokeny počas trénovania, a v ich metrikách hodnotenia.
Zvýraznenia
BPE sa zlučuje čisto na základe počtu frekvencií, zatiaľ čo WordPiece optimalizuje pre pravdepodobnosť trénovacích dát
Modely GPT používajú BPE, zatiaľ čo BERT a jeho varianty sa spoliehajú na tokenizáciu WordPiece.
WordPiece zvyčajne vytvára jazykovo čistejšie hranice tokenov ako frekvenčne riadený BPE.
Obe metódy riešia problém nedostupnosti slovnej zásoby, ale prostredníctvom zásadne odlišných optimalizačných cieľov.
Čo je Kódovanie párov bajtov?
Algoritmus tokenizácie podslov, ktorý iteratívne zlučuje najčastejšie sa vyskytujúce susedné páry znakov do nových tokenov.
BPE bol pôvodne vyvinutý v roku 1994 ako algoritmus kompresie dát, predtým ako ho Sennrich a kol. v roku 2016 adaptovali pre NLP.
Algoritmus začína so slovníkom jednotlivých znakov a opakovane spája najčastejšie sa vyskytujúci pár susedných tokenov.
GPT-2, GPT-3 a RoBERTa používajú tokenizáciu BPE ako súčasť svojich predspracovacích kanálov.
BPE používa frekvencie na určenie, ktoré páry tokenov sa majú zlúčiť, vďaka čomu je čisto dátovo riadený bez jazykového modelu.
Algoritmus dokáže vytvoriť slová mimo slovnej zásoby ich rozložením na známe podslovné jednotky, čím sa zlepšuje spracovanie zriedkavých výrazov.
Čo je Tokenizácia WordPiece?
Metóda tokenizácie podslov, ktorá zlučuje tokeny na základe maximalizácie pravdepodobnosti, a nie na základe surovej frekvencie.
WordPiece pôvodne vyvinula spoločnosť Google pre japonské a kórejské hlasové vyhľadávacie systémy, než bola prijatá pre textové vyhľadávanie.
Algoritmus vyberá zlúčenia, ktoré maximalizujú pravdepodobnosť trénovacích údajov, a nie len počíta frekvencie.
BERT, DistilBERT a ALBERT používajú tokenizáciu WordPiece, zvyčajne s veľkosťou slovníka 30 522 tokenov.
WordPiece často inicializuje svoju slovnú zásobu tak, aby zahŕňala všetky jednotlivé znaky pred začatím procesu zlúčenia.
Táto metóda má tendenciu produkovať menej tokenov na úrovni znakov pre bežné slová v porovnaní s BPE, čím sa zvyšuje efektivita.
Tabuľka porovnania
Funkcia
Kódovanie párov bajtov
Tokenizácia WordPiece
Kritérium zlúčenia
Frekvencia susedných párov
Pravdepodobnosť tréningových údajov
Primárne prípady použitia
Séria GPT, RoBERTa, CLIP
BERT, DistilBERT, ALBERT
Inicializácia slovnej zásoby
Jednotlivé znaky alebo bajty
Jednotlivé postavy
Zaobchádzanie so zriedkavými slovami
Rozdeľuje sa na časté podslovné jednotky
Rozdelenia na základe segmentácie založenej na pravdepodobnosti
Rýchlosť tréningu
Vo všeobecnosti rýchlejšie vďaka jednoduchému počítaniu
Mierne pomalšie kvôli výpočtu pravdepodobnosti
Štýl výstupu tokenu
Často podrobnejšie
Často konsolidovanejšie pre bežné slová
Pôvodný vývoj
1994 ako kompresia; 2016 pre NLP
Tím pre rozpoznávanie reči Google
Podrobné porovnanie
Filozofia základného algoritmu
BPE pristupuje k tokenizácii ako k problému kompresie, pričom nenápadne zlučuje akékoľvek páry, ktoré sa najčastejšie vyskytujú v trénovacom korpuse. Tento priamočiary prístup založený na frekvencii umožňuje intuitívne a relatívne rýchle výpočty. WordPiece zaujíma pravdepodobnostnejší uhol pohľadu a kladie si otázku, ktoré zlúčenie by urobilo trénovacie dáta najpravdepodobnejšími za predpokladu modelu jazyka unigram. Tento jemný posun v rámovaní vedie k rôznym hraniciam tokenov, najmä pre morfologicky bohaté jazyky.
Hranice tokenov a lingvistické vlastnosti
Keďže BPE sa zameriava výlučne na frekvenciu, niekedy rozdeľuje slová na jazykovo neprirodzených miestach, ak sa jedná o bežné vzory v dátach. Prístup WordPiece založený na pravdepodobnosti má tendenciu lepšie rešpektovať hranice morfém a vytvárať tokeny, ktoré sa viac zhodujú so zmysluplnými jednotkami. V prípade angličtiny obe metódy fungujú podobne, ale rozdiel je výraznejší v jazykoch s bohatšou morfológiou, ako je nemčina alebo turečtina.
Implementácia a prepojenie s ekosystémom
Výber medzi týmito tokenizátormi často závisí skôr od architektúry modelu, ktorú používate, než od hlbokej preferencie samotného algoritmu. Rodina GPT od OpenAI sa štandardizovala na BPE, takže každý, kto tieto modely dolaďuje alebo nasadzuje, zdedí túto schému tokenizácie. Ekosystém BERT od spoločnosti Google upevnil WordPiece ako de facto voľbu pre transformačné modely iba s kodérom. Toto zakorenenie ekosystému znamená, že odborníci z praxe zriedka menia tokenizátory nezávisle od architektúry modelu.
Riešenie špeciálnych prípadov
Oba algoritmy zápasia s určitými okrajovými prípadmi, ale rôznymi spôsobmi. BPE môže byť krehký s bielymi znakmi a interpunkciou, niekedy produkuje neočakávané tokeny pri zmene formátovania. WordPiece zvyčajne pridáva špeciálny symbol predpony (ako ## v BERT) na označenie pokračovacích podslov, čo robí rekonštrukciu pôvodného textu explicitnejšou, ale zároveň zavádza artefakty tokenizácie, ktoré sa musia naučiť spracovať následné modely.
Moderné varianty a evolúcia
posledných rokoch došlo k výraznému vývoju, ktorý prekračuje rámec oboch algoritmov. SentencePiece ponúka jednotný rámec, ktorý dokáže implementovať tokenizáciu jazykových modelov BPE, WordPiece alebo unigram pomocou jedinej knižnice. BPE na úrovni bajtov (používané v GPT-2) pracuje so surovými bajtami namiesto znakov Unicode, čím úplne eliminuje problémy s neznámymi tokenmi. Novšie prístupy, ako napríklad BPE-dropout, zároveň zavádzajú stochasticitu počas trénovania na zlepšenie robustnosti. Tento vývoj ukazuje, že hoci BPE a WordPiece zostávajú základom, táto oblasť sa neustále rozvíja.
Výhody a nevýhody
Kódovanie párov bajtov
Výhody
+Jednoduché a intuitívne na pochopenie
+Rýchly tréning s minimálnym výpočtom
+Funguje dobre so vstupmi na úrovni bajtov
+Široko podporované v moderných knižniciach
+Spracováva akýkoľvek text Unicode
Cons
−Môže sa rozdeliť na jazykovo nezvyčajných hraniciach
−Citlivý na skreslenie frekvencie tréningového korpusu
−Žiadny explicitný jazykový model počas tréningu
−Môže nadmerne segmentovať zriedkavé technické výrazy
−Spracovanie bielych medzier môže byť nekonzistentné
Tokenizácia WordPiece
Výhody
+Lepšie zarovnanie s hranicami morfém
+Explicitná optimalizácia založená na pravdepodobnosti
+Vymazať značky pokračovania s predponou ##
+Zrelé nástroje v TensorFlow a Hugging Face
+Efektívne pre bežné slová v tréningových dátach
Cons
−Úzko prepojené s ekosystémom BERT
−Mierne pomalší tréningový výpočet
−Prefixové symboly zvyšujú zložitosť tokenizácie
−Menšia flexibilita pre netextové údaje, ako je kód
−Slovná zásoba sa môže nafúknuť zriedkavými predponami
Bežné mylné predstavy
Mýtus
BPE a WordPiece vždy vytvárajú rôzne tokenizácie pre ten istý text.
Realita
Pre mnohé bežné anglické slová oba algoritmy v skutočnosti konvergujú na identických alebo takmer identických segmentáciách. Rozdiely sú zreteľnejšie pri zriedkavých slovách, morfologicky zložitých termínoch a v jazykoch s bohatšími inflexnými vzormi ako angličtina.
Mýtus
WordPiece používa počas tokenizácie neurónovú sieť.
Realita
Napriek tomu, že sa používa v neurónových modeloch, samotný WordPiece je úplne neneurálny. Výpočet pravdepodobnosti je založený na jednoduchých štatistikách frekvencií unigramov, nie na žiadnej naučenej neurónovej reprezentácii. „Jazykový model“ vo WordPiece je iba frekvenčná tabuľka, nie transformátor ani rekurentná sieť.
Mýtus
BPE nedokáže spracovať jazyky s rozsiahlymi znakovými sadami, ako je čínština.
Realita
BPE na úrovni bajtov to rieši tým, že pracuje so surovými bajtami UTF-8 namiesto znakov. To znamená, že dokáže reprezentovať akýkoľvek text Unicode bez toho, aby narazil na neznámy znak, hoci pre skripty s tisíckami znakov môže vyžadovať viac tokenov.
Mýtus
Výber tokenizátora významne ovplyvňuje výkon modelu pri následných úlohách.
Realita
Hoci je tokenizácia dôležitá, architektúra modelu a škálovateľnosť trénovacích dát zvyčajne prevyšujú dôležitosť výberu tokenizátora. Štúdie ukázali, že BPE a WordPiece fungujú porovnateľne, keď sú všetky ostatné faktory rovnaké, pričom rozdiely sú zvyčajne malé a závisia od úlohy.
Mýtus
WordPiece bol vynájdený špeciálne pre BERT.
Realita
WordPiece predchádza BERT o niekoľko rokov. Spoločnosť Google ho pôvodne vyvinula pre japonské a kórejské hlasové vyhľadávanie začiatkom roku 2010 a neskôr ho upravil pre neurónový strojový preklad, ešte predtým, ako sa vôbec objavil v BERT. Spojenie s BERT je silné jednoducho preto, že BERT ho preslávil vo výskumnej komunite NLP.
Mýtus
Veľkosť slovnej zásoby BPE nezáleží, pokiaľ je dostatočne veľká.
Realita
Veľkosť slovnej zásoby významne ovplyvňuje výkon modelu aj výpočtovú efektivitu. Príliš malá veľkosť spôsobuje plytvanie kapacitou modelu na dlhé sekvencie tokenov. Príliš veľká veľkosť spôsobuje, že vkladacie matice sa stávajú nepraktickými, zatiaľ čo vzácne tokeny dostávajú zlú reprezentáciu. Väčšina odborníkov na túto problematiku starostlivo ladí tento hyperparameter, pričom sa zvyčajne ustáli na hodnote medzi 30 000 a 50 000 tokenmi.
Často kladené otázky
Aký je hlavný rozdiel medzi BPE a WordPiece?
Zásadný rozdiel spočíva v tom, ako sa počas trénovania rozhodujú o tom, ktoré páry tokenov zlúčiť. BPE jednoducho počíta, ako často sa páry objavujú spolu, a zlúči najčastejšie sa vyskytujúci pár. WordPiece namiesto toho vypočíta, ktoré zlúčenie by maximalizovalo pravdepodobnosť trénovacích údajov v rámci unigramového modelu. To znamená, že BPE je čisto frekvenčne riadené, zatiaľ čo WordPiece obsahuje pravdepodobnostné kritérium, ktoré má tendenciu vytvárať lingvisticky zmysluplnejšie hranice.
Prečo GPT používa BPE, zatiaľ čo BERT používa WordPiece?
Tieto voľby odrážajú skôr rôzne výskumné skupiny a ich historický kontext než hlbokú technickú nevyhnutnosť. Rodokmeň GPT od OpenAI zdedil BPE z predchádzajúcej práce na kompresii na úrovni bajtov a zistil, že je efektívny pre ich prístup k generatívnemu modelovaniu jazyka. Tím BERT od spoločnosti Google už vyvinul WordPiece pre svoje systémy reči a prekladu, takže prirodzene použil svoje existujúce nástroje. Oba fungujú dostatočne dobre, takže sa ani jedna skupina necítila nútená prejsť na iný nástroj.
Dokážu BPE a WordPiece spracovať jazyky, ktoré nepoužívajú medzery medzi slovami?
Áno, oba algoritmy fungujú dobre aj bez medzier, hoci môžu vytvárať menej intuitívne segmentácie. Keďže oba pracujú so sekvenciami znakov alebo bajtov, absencia medzier ich neruší. Jazyky ako thajčina, čínština alebo japončina však často profitujú z predsegmentácie alebo špecializovaného predspracovania, pretože čisto štatistické zlúčenie nemusí byť v súlade s intuíciou rodených hovoriacich o hraniciach slov.
Ako si mám vybrať medzi BPE a WordPiece pre nový projekt?
V praxi si len zriedka vyberáte nezávisle od architektúry vášho modelu. Ak dolaďujete GPT-2, GPT-3 alebo RoBERTa, musíte na zachovanie kompatibility použiť ich tokenizátor BPE. Pre modely založené na BERT je potrebný WordPiece. Ak vytvárate od nuly, zvážte, že BPE je o niečo jednoduchšie implementovať a ladiť, zatiaľ čo WordPiece môže poskytnúť o niečo čistejšie lingvistické rozdelenia. Moderné knižnice ako SentencePiece vám umožňujú ľahko experimentovať s oboma.
Akú veľkosť slovnej zásoby by som mal použiť s BPE alebo WordPiece?
Väčšina moderných modelov NLP používa 30 000 až 50 000 tokenov, pričom 32 000 až 50 000 sú obzvlášť bežné predvolené hodnoty. Menšie slovníky si vynucujú väčšie rozdelenie podslov, čo zvyšuje dĺžku sekvencie, ale umožňuje lepšie spracovanie zriedkavých termínov. Väčšie slovníky znižujú dĺžku sekvencie, ale vyžadujú väčšie matice vkladania a môžu mať problém s veľmi zriedkavými tokenmi. Ideálna kombinácia závisí od vášho jazyka, veľkosti korpusu a výpočtového rozpočtu.
Dokážu tieto tokenizátory spracovať emoji, kód alebo iný neštandardný text?
BPE na úrovni bajtov spracováva tieto problémy robustne, pretože pracuje so surovými bajtami a nie s preddefinovanými sadami znakov. Štandardné BPE a WordPiece môžu zlyhať pri zriedkavých znakoch Unicode, pokiaľ ich ich pôvodná slovná zásoba explicitne neobsahuje. Väčšina produkčných implementácií teraz používa pokrytie Unicode na úrovni bajtov alebo rozšírené pokrytie, aby sa predišlo problémom s neznámymi tokenmi v texte sociálnych médií, zdrojovom kóde a viacjazyčnom obsahu.
Čo je SentencePiece a ako súvisí s BPE a WordPiece?
SentencePiece je open-source tokenizačná knižnica od spoločnosti Google, ktorá poskytuje jednotnú implementáciu viacerých algoritmov pre podslová vrátane BPE, WordPiece a tokenizácie jazykových modelov unigram. Zaoberá sa predtokenizáciou, normalizáciou a trénovaním slovnej zásoby v jednom nástroji. Namiesto toho, aby to bol samostatný algoritmus, predstavte si to ako flexibilný rámec, ktorý vám umožňuje vybrať si a nakonfigurovať preferovanú stratégiu tokenizácie s konzistentnými rozhraniami.
Majú BPE a WordPiece stále význam v moderných modeloch veľkých jazykov?
Rozhodne. Napriek masívnemu rozsahu modelov ako GPT-4, Claude a Gemini sa všetky stále spoliehajú na tokenizáciu podslov. Konkrétny algoritmus sa môže líšiť a niektoré novšie modely experimentujú s alternatívnymi prístupmi, ale hlavná výzva reprezentácie textu s premenlivou dĺžkou v priestoroch slovnej zásoby s pevnou veľkosťou zostáva univerzálna. Pochopenie BPE a WordPiece poskytuje základnú intuíciu o tom, ako tieto modely spracovávajú jazyk.
Prečo chyby tokenizácie spôsobujú také mätúce správanie v jazykových modeloch?
K tokenizácii dochádza ešte predtým, ako neurónová sieť vôbec uvidí text, takže akákoľvek zvláštnosť v spôsobe rozdelenia reťazcov sa zapracuje do vstupnej reprezentácie modelu. Modely možno zneužiť aj prostredníctvom artefaktov tokenizácie, kde špeciálne vytvorené reťazce obchádzajú bezpečnostné filtre tým, že sú tokenizované neočakávanými spôsobmi. Vďaka tomu je robustný návrh tokenizácie prekvapivo dôležitý pre spoľahlivosť a bezpečnosť modelu.
Existuje spôsob, ako si vizualizovať, ako BPE alebo WordPiece tokenizujú konkrétny text?
Áno, väčšina moderných NLP knižníc poskytuje nástroje na tento účel. Knižnica Hugging Face Transformers obsahuje metódy tokenizer.decode a tokenizer.convert_ids_to_tokens, ktoré presne ukazujú, ako je text rozdelený. Existujú aj webové vizualizačné nástroje, kde môžete zadať text a zobraziť zvýraznené hranice tokenov. Tieto nástroje sú neoceniteľné pre ladenie neočakávaného správania modelu a pochopenie toho, prečo určité vstupy mätú váš systém.
čom sa líši BPE-dropout od štandardného BPE?
BPE-dropout, zavedený v roku 2020, náhodne preskakuje niektoré operácie zlúčenia počas trénovania s určitou pravdepodobnosťou. To vytvára viacero platných tokenizácií pre to isté slovo, čo funguje ako forma rozšírenia dát. Výsledný model sa stáva odolnejším voči variáciám tokenizácie a vo všeobecnosti dosahuje lepšie výsledky pri následných úlohách, najmä s obmedzenými trénovacími dátami. Je to jednoduché, ale efektívne vylepšenie klasického algoritmu BPE.
Môžem kombinovať tokenizácie BPE a WordPiece v jednom kanáli?
Technicky možné, ale prakticky neodporúčané. Rôzne tokenizátory vytvárajú nekompatibilné ID tokenov a mapovania slovnej zásoby, takže ich miešanie by si vyžadovalo starostlivé zarovnávanie vrstiev alebo kroky opätovného tokenizovania, ktoré zvyčajne znižujú výkon. Ak potrebujete kombinovať modely používajúce rôzne tokenizátory, štandardným prístupom je pretrénovať alebo prispôsobiť jeden tak, aby zodpovedal druhému, alebo použiť jednotný tokenizátor, ako je SentencePiece, pre všetky komponenty od začiatku.
Rozsudok
Zvoľte BPE, ak pracujete s modelmi v štýle GPT alebo ak potrebujete jednoduchú a rýchlu tokenizáciu, ktorá spracováva rôznorodý text vrátane kódu a viacjazyčných údajov. Zvoľte WordPiece, ak staviate na architektúry založené na BERT alebo ak chcete hranice tokenov, ktoré sa viac zhodujú s jazykovými morfémami. Pre väčšinu odborníkov je rozhodnutie v podstate urobené na základe vopred natrénovaného modelu, ktorý si vyberiete.