BPE-tokenizer
En tokeniseringsteknik, der anvender Byte Pair Encoding til at opdele tekst i underordsenheder (subwords) ved iterativt at flette de hyppigste tegnpar.
Kort fortalt
En metode til at opdele ord i mindre dele (tokens) baseret på hyppighed af bogstavkombinationer, så modellen bedre kan håndtere ukendte ord.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En tokeniseringsteknik, der genererer et ordforråd af subword-enheder ved hjælp af Byte Pair Encoding-algoritmen. Algoritmen starter med et sæt af alle enkelte tegn i træningskorpuset og iterativt fletter det hyppigste par af på hinanden følgende enheder til en ny enhed, indtil et foruddefineret ordforrådsstørrelse er nået.
- GPT-2 og GPT-3 anvender begge BPE-tokenizer til at konvertere tekst til tokens der bruges som input til modellen. — OpenAI GPT-2 documentation
- BPE-tokenizeren lærer merge-regler fra et korpus, så den kan tokenisere nye tekster konsistent. — Sennrich et al., 2016
Hvornår bruges det
BPE-tokenizer bruges primært til at fortræne ordforråd for sprogmodeller som GPT og BERT. Den lærer et sæt subword-enheder fra et korpus og anvendes derefter til at tokenisere ny tekst. Den er effektiv til at balancere mellem ord- og tegn-niveau tokenisering.
Kodeeksempel
from tokenizers import Tokenizer, models, trainers
tokenizer = Tokenizer(models.BPE(unk_token="<unk>"))
trainer = trainers.BpeTrainer(vocab_size=1000, special_tokens=["<unk>"])
tokenizer.train_from_iterator(["Hello world", "tokenization is fun"], trainer)
output = tokenizer.encode("Hello tokenization")
print(output.tokens) # ['Hello', 'to', 'ken', 'ization']Eksempel på træning af en BPE-tokenizer med Hugging Face tokenizers-bibliotek. Først oprettes en tokenizer med BPE-model, dernæst trænes den på en liste af strenge, og til sidst bruges den til at tokenisere en ny sætning.
Oprindelse
Inspireret af datakomprimeringsteknikken Byte Pair Encoding (BPE) introduceret af Philip Gage i 1994, tilpasset til NLP af Sennrich et al. (2016) i deres arbejde med neural maskinoversættelse.
Afledte ord
3Kilder
2- Neural Machine Translation of Rare Words with Subword Units (Sennrich et al., 2016)
- A New Algorithm for Data Compression (Gage, 1994)