Byte Pair Encoding

Byte Pair Encoding (BPE) er en subord-tokeniseringsalgoritme, der opdeler ord i hyppige underenheder (subwords) ved iterativt at flette de hyppigste tegnpar.

Kort fortalt

BPE er en måde at opdele tekst i mindre stykker (subwords) ved at gentagne gange slå de mest almindelige bogstavpar sammen — så sjældne ord stadig kan repræsenteres uden at skulle have et helt ord i ordforrådet.

Kategori
teknik
Niveau
øvet
Udtale
/baɪt pɛər ɪnˈkoʊdɪŋ/

Betydninger

1
  1. 1

    En subword-tokeniseringsalgoritme, der starter med at opdele tekst i individuelle tegn (eller bytes) og derefter iterativt flettter de hyppigste tegnpar for at danne nye tokens, indtil et ønsket ordforrådsstørrelse er nået.

    • GPT-2 anvender Byte Pair Encoding til at tokenisere inputtekst, så ualmindelige ord opdeles i kendte subwords.
    • BPE-tokeniseringen lærer et ordforråd på 50.000 subwords ved at analysere et stort tekstkorpus.

Hvornår bruges det

BPE bruges primært som tokeniseringsalgoritme i sprogmodeller som GPT, BERT og RoBERTa. Den trænes på et stort tekstkorpus for at bygge et ordforråd af subwords, hvilket gør det muligt at håndtere ord uden for ordforrådet (OOV) og reducere ordforrådsstørrelsen. I praksis anvendes BPE via biblioteker som Hugging Face Tokenizers eller SentencePiece.

Kodeeksempel

from tokenizers import ByteLevelBPETokenizer

tokenizer = ByteLevelBPETokenizer()
tokenizer.train(["text.txt"], vocab_size=5000, min_frequency=2)

Træning af en BPE-tokenizer med Hugging Face Tokenizers-biblioteket.

Oprindelse

Oprindeligt udviklet som en datakomprimeringsteknik (1994). Gennem 2016-papiret af Sennrich et al. blev den introduceret til maskinoversættelse og senere til sprogmodellering.

Kilder

2