Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
Introducción
Uno de los mayores desafíos en el procesamiento del lenguaje natural (NLP) es la escasez de datos de entrenamiento. La mayoría de los conjuntos de datos específicos de tareas contienen solo unos pocos miles o cientos de miles de ejemplos etiquetados por humanos. Sin embargo, los modelos de NLP basados en aprendizaje profundo se benefician de cantidades mucho mayores de datos, mejorando cuando se entrenan con millones o miles de millones de ejemplos anotados.
Para ayudar a cerrar esta brecha de datos, los investigadores han desarrollado una variedad de técnicas para entrenar modelos de representación de lenguaje de propósito general utilizando la enorme cantidad de texto no anotado en la web (conocido como pre-entrenamiento). El modelo preentrenado se puede ajustar en tareas de NLP con pocos datos, como la respuesta a preguntas y el análisis de sentimientos, lo que resulta en mejoras sustanciales en la precisión en comparación con el entrenamiento desde cero.
Esta semana, hemos abierto el código de una nueva técnica para el pre-entrenamiento de NLP llamada Representaciones de Codificadores Bidireccionales de Transformadores, o BERT. Con este lanzamiento, cualquier persona en el mundo puede entrenar su propio sistema de respuesta a preguntas de última generación (o una variedad de otros modelos) en aproximadamente 30 minutos en un solo TPU en la nube, o en unas pocas horas utilizando una sola GPU.
¿Qué hace a BERT diferente?
BERT se basa en trabajos recientes en el pre-entrenamiento de representaciones contextuales. Sin embargo, a diferencia de estos modelos anteriores, BERT es el primer modelo de representación de lenguaje bidireccional y no supervisado, preentrenado utilizando solo un corpus de texto plano (en este caso, Wikipedia).
La fuerza de la bidireccionalidad
Si la bidireccionalidad es tan poderosa, ¿por qué no se había hecho antes? Para entender por qué, considere que los modelos unidireccionales se entrenan de manera eficiente al predecir cada palabra condicionada por las palabras anteriores en la oración. Sin embargo, no es posible entrenar modelos bidireccionales simplemente condicionando cada palabra en sus palabras anteriores y siguientes, ya que esto permitiría que la palabra que se está prediciendo “se vea a sí misma” indirectamente en un modelo de múltiples capas.
Para resolver este problema, utilizamos la técnica de enmascarar algunas de las palabras en la entrada y luego condicionar cada palabra bidireccionalmente para predecir las palabras enmascaradas.
Resultados con BERT
Para evaluar el rendimiento, comparamos BERT con otros sistemas de NLP de última generación. Es importante destacar que BERT logró todos sus resultados con casi ningún cambio específico de tarea en la arquitectura de la red neuronal. En SQuAD v1.1, BERT logra un puntaje F1 del 93.2%, superando el puntaje anterior de 91.6% y el puntaje a nivel humano de 91.2%.
Haciendo que BERT funcione para ti
Los modelos que estamos lanzando pueden ajustarse a una amplia variedad de tareas de NLP en unas pocas horas o menos. La implementación de código abierto de TensorFlow y los enlaces a modelos BERT preentrenados se pueden encontrar en http://goo.gl/language/bert. Alternativamente, puedes comenzar a usar BERT a través de Colab con el cuaderno "BERT FineTuning with Cloud TPUs".
Conclusión
BERT ha revolucionado el campo del procesamiento del lenguaje natural, permitiendo a los investigadores y desarrolladores crear modelos de última generación de manera accesible y eficiente. Si estás interesado en mejorar tus proyectos de NLP, ¡no dudes en explorar BERT y sus capacidades!