HuggingFace libera en GitHub dos nuevos modelos BERT multilingües

GitHub CEO Chris Wanstrath

Recientemente los investigadores de Procesamiento Natural de Lenguaje (PNL) de HuggingFace pusieron a disposición una versión de BERT de PyTorch que es compatible con los puntos de control preentrenados de GitHub. En esta creación, capaz de reproducir los resultados de la desarrolladora, no participó la compañía. Tampoco lo hizo en el mantenimiento de la implementación de PyTorch, según una publicación.

Estos dos dos nuevos modelos BERT multilingües, incluyen soporte para Chino y ya están disponibles en GitHub. Se trata de BERT-Base multilingüe con 102 idiomas, 12 capas, 768 ocultos, 12 cabezas y 110M parámetros, y BERT-Base chino con parámetros chinos simplificados y tradicionales, de 12 capas, 768 ocultos, 12 cabezas y 110M.

“Utilizamos la tokenización basada en caracteres para el chino y la tokenización de WordPiece para todos los demás idiomas. Ambos modelos deberían funcionar fuera de la caja sin ningún cambio de código. Actualizamos la implementación de BasicTokenizerin tokenization.pypara admitir la tokenización de caracteres chinos, así que por favor actualice si la ha bifurcado. Sin embargo, no cambiamos la API de tokenización”.

Desde la empresa desarrolladora de software se ha explicado que BERT (Representaciones de Codificador Bidireccional de Transformadores) es un nuevo método de representaciones lingüísticas preentrenamiento, capaz de obtener los resultados del estado de la técnica en una amplia gama de tareas de PNL.

“BERT es un método de entrenamiento previo de representaciones lingüísticas, lo que significa que entrenamos un modelo de comprensión del lenguaje de propósito general en un gran cuerpo de texto (como Wikipedia) y luego usamos ese modelo para las tareas de la PNL que nos interesan en sentido descendente”.

Se destaca que esta técnica supera a los métodos anteriores porque es el primer sistema profundamente supervisado y no bidireccional para la preparación previa del PNL. “Sin supervisión significa que BERT se capacitó utilizando sólo un corpus de texto sin formato, lo cual es importante porque en muchos idiomas hay disponible una enorme cantidad de datos de texto sin formato en la web”.

En la publicación se ha indicado que las representaciones preentrenadas también pueden ser libres de contexto o contextuales y que estas últimas pueden ser unidireccionales o bidireccionales.

“Los modelos libres de contexto como word2vec o GloVe generan una sóla representación de ‘incrustación de palabras’ para cada palabra en el vocabulario, por lo que tendrían la misma representación. Los modelos contextuales, en cambio, generan una representación de cada palabra que se basa en las otras palabras en la oración”.

Construcción de BERT

Este método se ha construido sobre el trabajo reciente en representaciones contextuales de preentrenamiento, incluido el Aprendizaje de Secuencia Semisupervisado, el Preentrenamiento Generativo, ELMo y ULMFit pero, de acuerdo a lo publicado, todos estos modelos son fundamentalmente unidireccionales o poco bidireccionales.

Esto se traduciría en que cada palabra sólo se contextualiza usando las palabras a su izquierda (o derecha). Un ejemplo dado por la compañía es la oración “I made a bank deposit”, donde la representación unidireccional de bank sólo se basa en “I made a”, pero no en “deposit”.

“Algunos trabajos anteriores combinan las representaciones de modelos separados de contexto izquierdo y derecho, pero sólo de una manera superficial. BERT representa ‘banco’ usando su contexto izquierdo y derecho ‘I made a… deposit’, comenzando desde el fondo de una red neuronal profunda, por lo que es profundamente bidireccional”.

El método además utiliza un enfoque simple para esto: “enmascaramos el 15% de las palabras en la entrada, ejecutamos toda la secuencia a través de un codificador de transformador bidireccional profundo y luego predecimos sólo las palabras enmascaradas”.

Para aprender las relaciones entre oraciones, también se ha entrenado en una tarea simple que puede generarse a partir de cualquier corpus monolingüe: “dadas dos oraciones A y B, ¿es B la siguiente oración real que viene después A o sólo una oración al azar del corpus?”

“Luego entrenamos un modelo grande (transformador de 12 a 24 capas) en un corpus grande (Wikipedia + BookCorpus) durante un largo tiempo (pasos de actualización de 1M) y eso es BERT”.

Etapas de uso de BERT

Son dos las etapas de uso de este método, según se ha afirmado desde GitHub: entrenamiento previo y ajuste fino. La capacitación previa es bastante costosa, de cuatro días en 4 a 16 Unidades de Procesamiento de Tensores (TPU) en la nube, pero se califica como un procedimiento único para cada idioma.

Los modelos actuales son únicamente en inglés, pero los modelos multilingües se lanzarán en un futuro cercano. “Estamos lanzando una serie de modelos preentrenados del papel que fueron preentrenados en Google. La mayoría de los investigadores de PNL nunca necesitarán entrenar previamente su propio modelo desde cero”.

“La puesta a punto es barata”, según se afirma, pues todos los resultados en el documento se pueden replicar como máximo una hora en una sóla TPU en la nube o algunas pocas horas en una Unidad de Procesamiento Gráfico (GPU), a partir del mismo modelo entrenado previamente.

“SQuAD, por ejemplo, se puede entrenar en aproximadamente 30 minutos en un solo TPU de nube para lograr una puntuación de Dev F1 de 91.0%, que es el sistema único de vanguardia”.

El otro aspecto importante de BERT es que puede adaptarse muy fácilmente a muchos tipos de tareas de PNL, tal como se ha señalado en la publicación de la compañía.