Volver al archivo
#ai#llm#glossary#aigen

Codificación por pares de bytes

Un vocabulario que contuviera todas las palabras posibles sería enorme y seguiría careciendo de nombres nuevos. Un vocabulario de caracteres es pequeño, pero convierte el texto en una secuencia muy larga. Necesitas un compromiso: guardamos los fragmentos frecuentes como unidades completas y componemos los menos frecuentes con partes pequeñas.

Byte Pair Encoding (BPE) construye unidades de texto fusionando sucesivamente pares frecuentes de símbolos vecinos. Esas unidades se convierten en tokens, los fragmentos de texto que procesa el modelo.

Si k y o aparecen juntos con frecuencia en los datos, pueden fusionarse en ko. Después, el par frecuente ko y t puede formar kot. Hacen falta dos fusiones, porque cada una combina dos unidades actuales. Las reglas se aprenden previamente y vuelven a aplicarse al texto nuevo.

La división se basa en la frecuencia, por lo que no tiene por qué coincidir con el significado ni la estructura de una palabra. BPE determina las unidades; Token Embedding asigna por separado descripciones numéricas a sus identificadores. La demostración permite recorrer las sucesivas fusiones.

Mecanismo y detalles

Sennrich, Haddow y Birch adaptaron un algoritmo de compresión a la segmentación de palabras en traducción neuronal. Su variante empieza con caracteres y un marcador de final de palabra. Cuenta los pares teniendo en cuenta las frecuencias de las palabras, fusiona el par más frecuente y repite los cálculos. No une símbolos a través de los límites de las palabras. La descripción y el algoritmo se encuentran en Neural Machine Translation of Rare Words with Subword Units, §3.2.

Las reglas se crean antes de utilizar el tokenizador

Ejemplo propio simplificado: si el par k + o es el más frecuente, se crea el símbolo ko. En el siguiente paso puede ganar ko + t, dando kot. Cada operación une dos símbolos actuales; aquí, fusionar toda la palabra de tres letras requiere dos pasos. En el ejemplo omito el marcador de final de palabra.

Al procesar texto nuevo, el tokenizador aplica las reglas aprendidas previamente. No construye de nuevo el vocabulario para cada prompt. Solo después, los identificadores de las unidades obtenidas sirven para recuperar los vectores mediante el embedding de tokens. Aprender la segmentación del texto y aprender los valores de esos vectores son operaciones distintas.

BPE se guía por la frecuencia, así que los límites de los tokens no tienen por qué corresponder a morfemas ni al significado. La variante del trabajo de Sennrich opera con caracteres; la palabra «Byte» del nombre no significa que todos los tokenizadores BPE empiecen con bytes sin procesar. Al comparar modelos hay que comprobar la implementación concreta.

El artículo anterior sobre el mecanismo de atención [Polski] ofrece un contexto más amplio sobre embeddings y atención. Aquí, BPE constituye una entrada separada sobre la creación de las unidades del vocabulario.