Chapitre 1 : Algorithmes de tokenisation
BPE (Byte Pair Encoding)
Fusionne itérativement les paires de caractères les plus fréquentes :
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 (Utilisé par BERT)
Similaire à BPE mais utilise la vraisemblance au lieu de la fréquence :
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
tokens = tokenizer.tokenize("unbelievable")
# ['un', '##believe', '##able']
SentencePiece (Utilisé par LLaMA, T5)
Indépendant de la langue, traite le texte comme des octets bruts :
import sentencepiece as spm
spm.SentencePieceTrainer.train(
input='corpus.txt',
model_prefix='tokenizer',
vocab_size=32000
)
Comparaison
| Algorithme | Utilisé par | Caractéristique clé |
|---|---|---|
| BPE | GPT-2, GPT-3 | Fusion basée sur la fréquence |
| WordPiece | BERT | Basé sur la vraisemblance |
| SentencePiece | LLaMA, T5 | Niveau octet, indépendant de la langue |