Pular para o conteúdo principal

Capítulo 1: Algoritmos de Tokenização

BPE (Byte Pair Encoding)​

Faz a fusão iterativa dos pares de caracteres mais frequentes:

from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer

tokenizer = Tokenizer(BPE())
trainer = BpeTrainer(vocab_size=50000, special_tokens=["[PAD]", "[UNK]"])
tokenizer.train(files=["corpus.txt"], trainer=trainer)

WordPiece (Usado pelo BERT)​

Semelhante ao BPE, mas utiliza verossimilhança em vez de frequência:

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
tokens = tokenizer.tokenize("unbelievable")
# ['un', '##believe', '##able']

SentencePiece (Usado por LLaMA, T5)​

Independente de idioma, trata o texto como bytes brutos:

import sentencepiece as spm
spm.SentencePieceTrainer.train(
input='corpus.txt',
model_prefix='tokenizer',
vocab_size=32000
)

Comparação​

AlgoritmoUsado porCaracterística principal
BPEGPT-2, GPT-3Fusão baseada em frequência
WordPieceBERTBaseado em verossimilhança
SentencePieceLLaMA, T5Nível de byte, independente de idioma