Corpus
raw text as bytes
get_stats
count adjacent pairs
merge
replace most frequent pair
loop
until vocab_size reached
Below is a minimal but complete byte-level BPE trainer and encoder, close to what powers GPT-2's tokenizer (minus the regex pre-tokenizer, omitted for clarity). It operates directly on byte sequences, so it never needs an <UNK> token.