1. Tokenizing
Tokenizing
Tokenizing is die proses om data, soos teks, op te breek in kleiner, hanteerbare stukke wat tokens genoem word. Elke token word dan aan 'n unieke numeriese identifiseerder (ID) toegeken. Dit is 'n fundamentele stap in die voorbereiding van teks vir verwerking deur masjienleer modelle, veral in natuurlike taalverwerking (NLP).
Die doel van hierdie aanvanklike fase is baie eenvoudig: Verdeel die invoer in tokens (ids) op 'n manier wat sin maak.
How Tokenizing Works
Splitting the Text:
Basic Tokenizer: 'n Eenvoudige tokenizer kan teks in individuele woorde en leestekens verdeel, terwyl spasië weggehaal word.
Example: Teks:
"Hello, world!"
Tokens:["Hello", ",", "world", "!"]
Creating a Vocabulary:
Om tokens in numeriese IDs om te skakel, word 'n vokabularium geskep. Hierdie vokabularium lys al die unieke tokens (woorde en simbole) en ken elkeen 'n spesifieke ID toe.
Special Tokens: Dit is spesiale simbole wat by die vokabularium gevoeg word om verskillende scenario's te hanteer:
[BOS]
(Beginning of Sequence): Dui die begin van 'n teks aan.[EOS]
(End of Sequence): Dui die einde van 'n teks aan.[PAD]
(Padding): Gebruik om alle reekse in 'n bondel dieselfde lengte te maak.[UNK]
(Unknown): Verteenwoordig tokens wat nie in die vokabularium is nie.Example: As
"Hello"
ID64
toegeken word,","
is455
,"world"
is78
, en"!"
is467
, dan:"Hello, world!"
→[64, 455, 78, 467]
Handling Unknown Words: As 'n woord soos
"Bye"
nie in die vokabularium is nie, word dit vervang met[UNK]
."Bye, world!"
→["[UNK]", ",", "world", "!"]
→[987, 455, 78, 467]
&#xNAN;(Aannemende[UNK]
het ID987
)
Advanced Tokenizing Methods
Terwyl die basiese tokenizer goed werk vir eenvoudige teks, het dit beperkings, veral met groot vokabulariums en die hantering van nuwe of seldsame woorde. Gevorderde tokeniseringmetodes spreek hierdie probleme aan deur teks in kleiner subeenhede op te breek of die tokeniseringproses te optimaliseer.
Byte Pair Encoding (BPE):
Purpose: Verminder die grootte van die vokabularium en hanteer seldsame of onbekende woorde deur dit op te breek in gereeld voorkomende byte pare.
How It Works:
Begin met individuele karakters as tokens.
Samevoeg die mees gereelde pare van tokens in 'n enkele token.
Gaan voort totdat daar geen meer gereelde pare is wat saamgevoeg kan word nie.
Benefits:
Elimineer die behoefte aan 'n
[UNK]
token aangesien alle woorde verteenwoordig kan word deur bestaande subwoord tokens te kombineer.Meer doeltreffende en buigsame vokabularium.
Example:
"playing"
mag as["play", "ing"]
getokeniseer word as"play"
en"ing"
gereelde subwoorde is.
WordPiece:
Used By: Modelle soos BERT.
Purpose: Soortgelyk aan BPE, breek dit woorde in subwoordeenhede op om onbekende woorde te hanteer en die vokabulariumgrootte te verminder.
How It Works:
Begin met 'n basisvokabularium van individuele karakters.
Voeg iteratief die mees gereelde subwoord by wat die waarskynlikheid van die opleidingsdata maksimeer.
Gebruik 'n probabilistiese model om te besluit watter subwoorde saamgevoeg moet word.
Benefits:
Balans tussen 'n hanteerbare vokabulariumgrootte en effektiewe verteenwoordiging van woorde.
Hanteer seldsame en saamgestelde woorde doeltreffend.
Example:
"unhappiness"
mag as["un", "happiness"]
of["un", "happy", "ness"]
getokeniseer word, afhangende van die vokabularium.
Unigram Language Model:
Used By: Modelle soos SentencePiece.
Purpose: Gebruik 'n probabilistiese model om die mees waarskynlike stel van subwoord tokens te bepaal.
How It Works:
Begin met 'n groot stel potensiële tokens.
Verwyder iteratief tokens wat die minste verbetering aan die model se waarskynlikheid van die opleidingsdata bied.
Finaliseer 'n vokabularium waar elke woord verteenwoordig word deur die mees waarskynlike subwoordeenhede.
Benefits:
Buigsaam en kan taal meer natuurlik modelleer.
Lei dikwels tot meer doeltreffende en kompakte tokenisering.
Example:
"internationalization"
mag in kleiner, betekenisvolle subwoorde soos["international", "ization"]
getokeniseer word.
Code Example
Let's understand this better from a code example from https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb:
Verwysings
Last updated