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

3

Kilder

2
  • Neural Machine Translation of Rare Words with Subword Units (Sennrich et al., 2016)
  • A New Algorithm for Data Compression (Gage, 1994)