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. 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

3

Kilder

3