English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

invitado
1 / ?

Lo que un Tokenizador Come se Convierte en lo que Conoce

Dieta del Tokenizador: Una Definición

Un tokenizador Harris se entrena en una muestra de corpus. Realiza análisis distribucional a través de esa muestra, selecciona N segmentos que se repiten con mayor fuerza, & los escribe en un vocabulario. Después del entrenamiento, esos N segmentos se convierten en un alfabeto fijo que un modelo de lenguaje usa para todo: entrenamiento, inferencia, cada entrada, cada salida.


Dieta del tokenizador = una muestra de texto en la que se entrena un tokenizador.


Dieta de entrenamiento = un corpus en el que se entrena un modelo de lenguaje.


Cuando dos dietas difieren, un tokenizador aprende segmentos ajustados para texto que un modelo nunca verá. La capacidad de embedding (una ranura por entrada del vocabulario) se gasta en segmentos que no generan recompensa durante el entrenamiento.


Dieta del tokenizador y saturación


El Error de ANDREA-12M

ANDREA-12M entrenó su tokenizador Harris en un archivo crudo de megachat-v8.txt. Ese archivo contenía muestras de código y datos de llamadas a herramientas. Sin embargo, el currículo de entrenamiento excluyó código y llamadas a herramientas; ANDREA-12M solo vio texto conversacional.


Resultado: un tokenizador aprendió segmentos de palabras clave de Python, llaves JSON, banderas de shell. Un modelo entrenado en entradas de diccionario y diálogo. Solo el 36.4% de los segmentos se superpusieron con una muestra ponderada por el currículo. El 63.6% restante de las ranuras del vocabulario se asignó a segmentos que un modelo nunca encontraría durante el entrenamiento.


Por qué eso importa

Cada entrada del vocabulario consume parámetros de embedding: una fila de una matriz de embedding con forma V × d_model (cubierto en la actividad 4). Con V = 4353 y d_model = 384, cada ranura del vocabulario cuesta 384 flotantes. Desperdiciar el 63.6% desperdicia el 63.6% de una matriz de embedding en datos que un modelo nunca ve.

Enuncia una Regla de Dieta

Explica una regla de dieta para tokenizadores en una oración. Luego describe un peor caso: un investigador entrena un tokenizador Harris en Wikipedia (prosa formal, citas) pero entrena un modelo en Twitter (jerga, emoji, hashtags). ¿Qué sale mal?

Qué tan grande debería ser N

Una Exploración de Ciencia del Vocabulario

ANDREA-120M realizó un experimento de ciencia del vocabulario: entrena tokenizadores Harris con diferentes valores de N (segmentos solicitados) en el mismo corpus de 1.25B caracteres de manguera de incendio. Mide cuántos segmentos encuentra realmente un tokenizador. Grafica los resultados.


N solicitadoSegmentos reales encontradosEstado
2,0482,048No saturado (espacio para crecer)
4,0964,096No saturado
8,1928,192Punto de saturación
16,38413,106Corpus agotado

Qué significa la saturación

Con N pequeño, un corpus tiene muchos patrones recurrentes; un tokenizador llena cada ranura que solicita. Con N grande, un tokenizador se queda sin límites estadísticamente significativos. Un corpus de 1.25B caracteres contiene aproximadamente 13,106 segmentos distintos con forma de morfema por encima de un umbral de frecuencia. Solicitar 16,384 produce 13,106; las 3,278 ranuras restantes se rellenan o quedan vacías.


Saturación: un punto donde N solicitado = N encontrado. Más allá de la saturación, un tokenizador no puede descubrir más segmentos sin diluir la calidad (bajar umbrales de frecuencia & aceptar ruido).


Punto Dulce en 8192

ANDREA-120M eligió N = 8192. Un razonamiento:


- Por debajo de 8192 (p. ej. 4096): el vocabulario no captura suficientemente los morfemas comunes; las secuencias se fragmentan en más tokens; el rendimiento cae.

- A 8192: cada ranura de segmento se mapea a un patrón real y recurrente en un corpus.

- Por encima de 8192: rendimientos decrecientes; 13,106 < 16,384 significa que las ranuras se desperdician.


Vocabulario final de ANDREA-120M: 256 + 8192 + 1 = 8449 tokens. Compresión promedio: 5.91 bytes UTF-8 por token, lo que significa que cada token reemplaza ~5.9 bytes de texto crudo. Esa proporción establece el contexto efectivo de un modelo: a 1024 tokens × 5.91 bytes/token, ANDREA-120M lee aproximadamente 6,050 caracteres de contexto por pasada hacia adelante.

Por encima o por debajo de la saturación

Supongamos que un investigador considera dos valores N para un futuro modelo ANDREA: N = 6144 (por debajo de la saturación) versus N = 12288 (por encima de la saturación, donde los segmentos reales encontrados = 13106 aún aplica porque el corpus es fijo). Para cada uno: (a) calcula el tamaño final del vocabulario (256 + N + 1), & (b) indica en una frase si cada configuración desperdicia capacidad de vocabulario, captura toda la señal disponible, o subcaptura. Muestra tu trabajo.

De Dónde Salió el 63.6%

Contando las Ranuras Desperdiciadas

El tokenizador de ANDREA-12M entrenado en megachat-v8.txt crudo (4096 segmentos solicitados, encontrados). Un equipo tomó una muestra ponderada por currículo: un corpus ponderado por la frecuencia con que cada fuente fue seleccionada por un bandido. Volvieron a ejecutar un análisis de Harris en esa muestra ponderada & preguntaron: ¿cuántos de los 4096 segmentos originales aún aparecen?


Resultado: 36.4% de superposición. 1,491 de 4,096 segmentos coincidieron con la ponderación del currículo. Los 2,605 segmentos restantes provenían de fuentes que el modelo excluyó.


El 63.6% de las ranuras de vocabulario se asignaron a bytes que el modelo nunca vio.


Costo de Embedding

Cada entrada del vocabulario ocupa una fila de una matriz de embedding con forma (V, d_model). Para ANDREA-12M:


- V = 4353 (256 + 4096 + 1)

- d_model = 384

- Parámetros de embedding = V × d_model = 4353 × 384 = 1,671,552 parámetros


El 63.6% de esos parámetros no se usaron para el entrenamiento conversacional. 1,063,107 parámetros asignados, 0 señal de recompensa. ANDREA-12M sobrevive porque 256 bytes base siempre cubren cualquier carácter; pero la capacidad por parámetro cayó bruscamente.


Cómo ANDREA-120M lo Solucionó

El tokenizador de ANDREA-120M se entrenó en una manguera completa (1.25B caracteres, 21 fuentes) en saturación N = 8192. Un corpus de entrenamiento = la misma manguera. Alineación dietética: 100%. Solapamiento resultante en muestra ponderada por chat: 36.5%. (Nota: 36.5% es solapamiento, no cobertura; el chat solo es un subconjunto de la manguera completa, por lo que este número se comporta diferente al 36.4% de 12M.)


Compresión efectiva: 5.91 bytes UTF-8 por token. La matriz de embedding de ANDREA-120M: 8449 × 768 = 6,488,832 parámetros. Cada parámetro gana una señal de recompensa porque cada segmento se mapea a texto en el que el modelo realmente se entrena.

Cobertura Versus Solapamiento

El corpus del tokenizador de ANDREA-120M coincide con su corpus de entrenamiento. Sin embargo, la 'cobertura de segmentos en muestra ponderada por chat' aún llegó al 36.5%, similar al 36.4% de 12M. ¿Por qué el 36.5% no es un problema para 120M cuando el 36.4% sí lo fue para 12M? Usa una frase sobre qué subconjunto es cuál.

Por qué importan 5.91 Bytes Por Token

Una Relación de Compresión

Bytes UTF-8 promedio por token mide cuánto texto crudo comprime cada entrada del vocabulario. ANDREA-120M promedia 5.91. Un modelo con piezas más cortas (3 bytes/token) lee menos contexto por pasada forward; un modelo con piezas más largas (8 bytes/token) lee más pero se entrena más lento (cada pieza necesita más muestras para aprender bien).


Contexto Efectivo


CantidadValor
Ventana de contexto de tokens1,024 tokens
Bytes promedio por token5.91
Contexto efectivo en caracteres1024 × 5.91 ≈ 6,050

Aproximadamente 6,000 caracteres UTF-8 caben en una pasada forward de ANDREA-120M. Una página de prosa inglesa densa tiene ~3,000-4,000 caracteres; ANDREA lee aproximadamente una página y media por pasada.


La Dieta Aumenta la Compresión

Un tokenizador bien alineado comprime mejor. Cuando un tokenizador aprende segmentos que se repiten en un corpus de entrenamiento, cabe más texto por token. El tokenizador mal alineado de ANDREA-12M comprimía peor en chat (más bytes gastados en fragmentos de fallback de bytes porque los segmentos de chat eran más escasos en el vocabulario). El tokenizador alineado con dieta de ANDREA-120M mantiene un fragmento con forma de chat en un camino rápido y scripts raros en un fallback de bytes.


La Actividad 4 Continúa

La Actividad 4 (grow_a_language_model_embeddings) cubre qué les sucede a esas 8449 entradas del vocabulario: se convierten en filas de una matriz de embedding con forma V × d_model, luego se agregan embeddings de posición aprendidos antes de fluir hacia el primer bloque transformer.

Elige un N

Reflexiona sobre un tradeoff: ¿debería un futuro modelo ANDREA usar N = 4096 (entrenamiento más rápido, más bytes-por-token = contexto efectivo más largo) o N = 16384 (segmentos más largos pero menos frecuentes, menos tokens por pieza de texto, pero saturación pasada por lo que slots desperdiciados)? Elige uno y da una razón de una oración. No hay respuesta incorrecta.