BPE-tokenisering
forkortelse for Byte-Pair Encoding
BPE-tokenisering er en subword-tokeniseringsalgoritme, der iterativt fusionerer de hyppigste tegnpar til et nyt token.
Kort fortalt
Kort fortalt: BPE-tokenisering deler ord op i mindre enheder (subwords) ved at gentagne gange slå de mest almindelige bogstavpar sammen, så sjældne ord kan bygges op af kendte dele.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En subword-tokeniseringsalgoritme, der genererer et vokabular ved gentagne gange at slå de hyppigste tegn- eller subword-par sammen, indtil et ønsket vokabularstørrelse er nået.
- GPT-2 anvender BPE-tokenisering med et vokabular på 50.257 tokens. — Radford et al., 2019
- BPE-tokenisering reducerer antallet af ukendte tokens ved at opsplitte sjældne ord i kendte subwords. — Sennrich et al., 2016
Hvornår bruges det
BPE-tokenisering anvendes især i store sprogmodeller som GPT og BERT til at håndtere ord uden for vokabulariet. Det gør det muligt for modellen at genkende ukendte ord som en sekvens af kendte subwords, hvilket reducerer vokabularstørrelsen og forbedrer generalisering.
Kodeeksempel
from tokenizers import Tokenizer, models, trainers
tokenizer = Tokenizer(models.BPE())
trainer = trainers.BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
files = ["text.txt"]
tokenizer.train(files, trainer)
output = tokenizer.encode("Hello, world!")
print(output.tokens)Eksempel på træning af en BPE-tokenizer med Hugging Face tokenizers-biblioteket.
Oprindelse
Oprindeligt udviklet af Philip Gage i 1994 til datakompression. I 2016 blev det tilpasset til naturlig sprogbehandling af Rico Sennrich og kolleger til neural maskinoversættelse.
Afledte ord
3Kilder
3- Neural Machine Translation of Rare Words with Subword Units (Sennrich et al., 2016)
- A New Algorithm for Data Compression (Gage, 1994)
- Language Models are Unsupervised Multitask Learners (Radford et al., 2019)