¿Qué es el aprendizaje por transferencia y por qué facilita el NLP?

Transfer Learning

Conocé más sobre este modelo de lenguaje y sus utilidades

By Santiago Cisco, Data Scientist at etermax 

En los últimos años, la irrupción de nuevas arquitecturas de modelos de deep learning hizo que la performance de los mismos creciera enormemente. A partir de la evolución de los modelos de lenguaje, desde la aparición de Word2Vec en 2012 hasta la utilización de los Transformers en la actualidad se logró que estos pudieran ser utilizados para tareas cada vez más complejas. Sin embargo, a pesar de que cada vez funcionan mejor, estos modelos son también mucho más caros de entrenar: Se necesita un gran volumen de datos y una buena infraestructura para entrenar satisfactoriamente un transformer. A pesar de ello, existe una técnica que nos permite sortear este problema: el transfer learning.

Los modelos de lenguaje

Un modelo de lenguaje toma como input una o más secuencias de texto y las utiliza para realizar una tarea, por ejemplo, una predicción. Esto involucra, por lo general, la transformación del texto en una representación numérica y su procesamiento para devolver un resultado. 

Existen diversos tipos de tareas que los mismos pueden realizar, como la clasificación de oraciones en una serie de categorías predeterminadas; traducir, resumir o generar texto a partir de un input; o extraer una respuesta a partir de un input de texto.

La evolución de los modelos de lenguaje generó un aumento de la complejidad y del número de parámetros de los modelos, lo que tornó extremadamente costoso entrenar un modelo desde cero para muchas aplicaciones. En el gráfico a continuación puede verse como los primeros modelos de transformers, como el ELMo o el primer GPT tenían alrededor de 100 millones de parámetros. Dos años después, los modelos T5 y Turing ya superaron los 10 mil millones. Para evitar este problema, se recurre a una técnica denominada Transfer Learning.

Incremento del número de parámetros en modelos de lenguaje a través de los años. Fuente: HuggingFace.

Transfer Learning

Las redes neuronales son un modelo de Machine Learning en el que capas de nodos (neuronas) se conectan entre sí a través de funciones de activación no lineales. Las primeras capas de una red aprenden características más generales del problema, mientras que las últimas se encargan de extraer las específicas y hacer la predicción. Esta característica permite la extracción de las primeras capas de un modelo en el que se tenga abundantes datos y su utilización en otro que sea de un problema similar pero en el que la disponibilidad de datos sea más limitada. De esta manera, se aprovechan las características generales extraídas en el primer modelo, manteniendo las primeras capas que conservan la información fundamental de la enorme cantidad de datos con las que fueron entrenadas y puede reutilizarse en otra tarea, para facilitar el entrenamiento en el segundo. Esta técnica se denomina “Transfer Learning” y es ampliamente usada en modelos de NLP. La primera etapa se denomina “pre-entrenamiento” mientras que la segunda se denomina “sintonía fina” (fine tuning en inglés).

La gran disponibilidad de texto que hoy existe en internet da una fuente barata y accesible de datos crudos para el entrenamiento de un modelo general en una tarea semi supervisada, que es un tipo de entrenamiento en el que el target es computado automáticamente a partir de los inputs, por lo que no se requiere que una persona los etiquete.

Un ejemplo de un modelo ampliamente utilizado como base para entrenar otros modelos de NLP es BERT (Bidirectional Encoder Representations from Transformers), lanzado por Google en 2018. Este tomó como input los artículos de Wikipedia y el corpus de libros de Google para generar un dataset que contenga 3,3 mil millones de palabras. Originalmente, BERT fue entrenado con dos tareas: en primer lugar, se enmascaró (ocultó) una palabra por oración con el objetivo de que prediga cuál es utilizando todo el resto de la oración como contexto. Por otra parte, se lo entrenó con pares de oraciones para predecir si una oración determinada era consecutiva a la anterior. De esta manera, BERT adquiere un buen conocimiento estadístico de las características generales del lenguaje.

El siguiente paso es lo que se denomina “sintonía fina”. Consiste en tomar las primeras capas del modelo pre entrenado y cambiar las últimas capas por otras inicializadas aleatoriamente que aprendan la tarea específica, agregándole, por ejemplo, un clasificador que pueda predecir a qué categoría pertenece una pregunta. Así, se re entrenan todas las capas con los nuevos datos (o sólo las últimas si es que la disponibilidad es muy limitada). La idea detrás de este proceso es que, como las primeras capas ya se encontraban con valores bastante útiles para realizar tareas de lenguaje, el entrenamiento de las mismas va a ser bastante simple en comparación con el esfuerzo que llevaría entrenar todo el modelo de cero, mejorando ampliamente la performance.

Proceso de pre entrenamiento y sintonía fina. Elaborado en base a: TensorFlow ML Tech Talks: Transfer learning and Transformer models.

Conclusión

La revolución que experimentaron los modelos de NLP en los últimos años hizo que aumentaran enormemente las posibilidades en este campo: Para una empresa especializada en juegos de trivia como etermax, las herramientas disponibles para potenciar la calidad de nuestros juegos son muchas. Sin embargo, este incremento en la performance se vio acompañado por mayores costos en términos de infraestructura y volúmen de datos necesarios para entrenar un modelo desde cero. Técnicas cómo el Transfer Learning hacen posible que profesionales de la ciencia de datos en este tipo de empresas puedan aprovechar técnicas de vanguardia sin afrontar un costo prohibitivo.


Fuentes:

, ,