Zubnet AIAprenderWiki › Vocabulario
Fundamentos

Vocabulario

También conocido como: Vocab, Vocabulario de tokens
El conjunto fijo de tokens que un modelo puede reconocer y producir. Un vocabulario se construye mediante el tokenizer durante el entrenamiento y típicamente contiene de 32K a 128K entradas — palabras comunes, fragmentos de subpalabras, caracteres individuales y tokens especiales. Cualquier texto que el modelo procese debe ser expresable como una secuencia de tokens de este vocabulario. Los tokens que no están en el vocabulario se descomponen en piezas más pequeñas que sí lo están.

Por qué importa

El vocabulario determina lo que el modelo puede "ver". Un vocabulario entrenado principalmente en inglés manejará el inglés eficientemente (un token por palabra) pero puede fragmentar el chino, el árabe o el código en muchos tokens pequeños (más caro, más lento, menos contexto). El diseño del vocabulario es una de las decisiones más consecuentes y menos discutidas en el desarrollo de modelos.

En profundidad

Construir un vocabulario: el algoritmo del tokenizer (generalmente BPE) comienza con bytes o caracteres individuales y fusiona iterativamente los pares más frecuentes. Después de 32K–128K fusiones, se obtiene un vocabulario donde las palabras comunes son tokens individuales ("the", "and", "function") y las palabras raras se dividen en piezas de subpalabras ("un" + "common", "pre" + "process" + "ing"). Los tokens especiales como <BOS> (inicio de secuencia), <EOS> (fin) y <PAD> (relleno) se agregan explícitamente.

La compensación del tamaño

Los vocabularios más grandes comprimen mejor el texto (menos tokens por oración = más barato, cabe más en el contexto) pero aumentan el tamaño de la tabla de embeddings del modelo. Un vocabulario de 128K con embeddings de 4096 dimensiones agrega ~500M de parámetros solo para las tablas de tokens. Para un modelo de 7B, eso es el 7% del total de parámetros sin hacer nada más que mapear tokens a vectores. Para un modelo de 1B, sería el 50%. Por eso los modelos más pequeños tienden a usar vocabularios más pequeños.

Vocabulario multilingüe

La cobertura lingüística de un vocabulario depende de su corpus de entrenamiento. El tokenizer temprano de Llama fue entrenado predominantemente en inglés y representaba los caracteres chinos como 3–4 tokens cada uno, haciendo que la inferencia en chino fuera 3–4 veces más cara que en inglés. El tokenizer de Llama 3 fue entrenado con datos multilingües más equilibrados, mejorando drásticamente la eficiencia en idiomas distintos al inglés. Este es un problema solucionable, pero requiere un esfuerzo deliberado — el valor predeterminado es la dominancia del inglés.

Conceptos relacionados

ESC