¿Por qué necesitamos un tokenizador?
Un tokenizador se utiliza para reducir la cantidad de palabras que un modelo de IA necesita aprender y almacenar en su vocabulario, lo que permite reducir el tamaño del modelo y hacer que el entrenamiento sea más rápido, económico y con menor requerimiento de hardware. El tokenizador divide el texto en tokens, que son subpalabras comunes y largas, y luego el modelo «memoriza» el peso de cada token en lugar de cada palabra completa. Es una explicación bastante «burda» pero espero que sirva como premisa.
Cuando entrenamos un modelo de lenguaje, podemos usar el tokenizador para reducir la cantidad de tokens que el modelo necesita almacenar en la memoria y, por lo tanto, reducir significativamente el tamaño del modelo. Esto es importante ya que el tamaño reducido del modelo significa un entrenamiento más rápido, un costo de entrenamiento más bajo y un hardware menos costoso que se requiere.
Principales problemas con los tokens
Podemos enumerar algunos problemas con el uso de los tokens.
- Uso de una gran cantidad de parámetros del modelo para almacenar el vocabulario de tokens.
- Dificultad para la reutilización, generalización y comparación debido a diferentes tokenizaciones y tamaños de vocabulario.
- Dificultad para incluir palabras nuevas o específicas del dominio.
- Problemas con la tokenización en idiomas que no están separados por espacios en blanco.
- Problemas con la tokenización de palabras ruidosas o mal escritas.
- Dificultad de aprendizaje para un modelo de lenguaje debido a diferentes tokenizaciones de palabras relacionadas.
Planteemos un modelo sin Tokens
Los modelos sin token son una nueva tendencia en PNL que consiste en entrenar modelos a partir de datos de texto sin tokenizar. El objetivo de estos modelos es reducir los supuestos codificados en la arquitectura y permitir que el modelo aprenda la solución óptima.
Existen diferentes modelos sin token como CANINE, ByT5, Perceiver y Perceiver IO, y Charformer. Estos modelos varían en su forma de trabajar con el texto y operan directamente sobre la entrada de texto en bruto o la representación en bytes del texto. Charformer, por ejemplo utiliza la tokenización de subpalabras basada en gradientes para aprender múltiples representaciones de una palabra a partir de n-gramas, superando a otros modelos sin token.
CANINE
CANINE es el primer modelo sin token y sin vocabulario, basado en una estrategia de hash y muestreo para trabajar directamente en los caracteres como puntos de código Unicode. CANINE se entrenó en el conjunto de datos TyDI QA y superó a otros modelos multilingües, como mBERT, sin tener una tokenización predefinida y con 28% menos parámetros.
La entrada se pasa a través de una pila regular de codificadores de transformadores (s.a. mBERT o XLM-R). Dependiendo de la tarea, se utiliza el primer token (el token [CLS]) para la clasificación y la secuencia de salida del modelo se amplía para volver a su tamaño original de 2048.
ByT5
ByT5 es una variante del modelo multilingüe T5, mT5, pero funciona directamente en la entrada de texto sin procesar o en la codificación UTF-8 del texto. La arquitectura es similar a mT5, pero la división entre las capas codificadoras y decodificadoras ya no es 50/50, en su lugar, el número de capas codificadoras es 3 veces más que las decodificadoras. Se hipotetiza que los modelos sin token necesitan pilas de codificación más profundas para compensar la disminución de la capacidad de incrustación para el vocabulario.
ByT5 supera a mT5 en la mayoría de las tareas multilingües y especialmente para modelos más pequeños o al tratar con datos mal escritos o ruidosos y es 50-100% más rápido. Cuando el modelo se entrena en un solo idioma, s.a. inglés, mT5 y el T5 regular funcionan mejor.
Perceiver y Perceiver IO
Perceiver opera directamente en la representación de bytes sin procesar de la entrada. Esto permite que los modelos funcionen (más o menos) con cualquier tipo de datos, ya sea texto, imágenes, nube de puntos, audio, etc., e incluso combinaciones de modalidades en un modelo. El modelo toma inspiración del paper ByT5 para operar directamente en la representación de bytes sin procesar (UTF-8 para texto) pero lo extiende a múltiples modalidades.
Referencias
El artículo completo y de lo más interesante está en «Hacia un futúro sin tokens en PNL»
- [con]Neurona #31 - 28 de enero de 2024
- [con]Neurona #30 - 20 de enero de 2024
- [con]Neurona #29 - 14 de enero de 2024