La codificación por pares de bytes nació como técnica de compresión de datos (Gage, 1994): reemplazar el par de bytes más frecuente por un byte nuevo, y repetir. Sennrich et al. (2016) la adaptaron a la segmentación de palabras para traducción automática: se empieza con un vocabulario de caracteres, se cuentan los pares de símbolos adyacentes en un corpus, se fusiona el más frecuente en un símbolo nuevo y se repite; la cantidad de fusiones es el único hiperparámetro (2016, p. 1717). Las fusiones aprendidas se aplican luego, en orden, a cualquier palabra, incluso a una nunca vista: la desconocida lower queda segmentada como low + er (2016, p. 1718).
Ejemplo mínimo. Corpus: canta ×4, cantan ×3, canto ×2, manta ×1. El par más frecuente es a n (13 veces), que se fusiona en «an»; luego an t (10) → «ant»; luego c ant (9) → «cant»; luego cant a (4) → «canta». Tras cuatro fusiones, canta es un solo token, cantan = cant + an, canto = cant + o y manta = m + ant + a.
El ejemplo muestra lo que le interesa al lingüista. cant|o coincide con un análisis morfológico; cant|an separa la raíz, pero funde la vocal temática con la desinencia; m|ant|a no tiene nada de morfológico. BPE no busca morfemas sino compresión, y encuentra morfemas solo cuando son frecuentes. Hay un parentesco lejano con los procedimientos distribucionales con que Harris (1955) proponía hallar fronteras de morfemas, pero aquí el criterio es puramente la frecuencia.
GPT-2 introdujo una variante a nivel de bytes: el vocabulario base tiene solo 256 símbolos, de modo que cualquier cadena Unicode es representable sin token «desconocido». Para evitar fusiones inútiles como dog., dog! y dog?, se prohibió fusionar a través de categorías de caracteres (Radford et al., 2019, sec. 2.2); el vocabulario final fue de 50.257 tokens (Alammar y Grootendorst, 2024, p. 49). GPT-4, Llama 2 y StarCoder2 también usan BPE (Alammar y Grootendorst, 2024, pp. 50–54); BERT usa WordPiece, un algoritmo emparentado (Alammar y Grootendorst, 2024, p. 43). Ver tokenización.