BERT: una explicación para principiantes

Por Pushpam Punjabí

Hasta ahora, hemos visto cómo una computadora entiende el significado de diferentes palabras usando incrustaciones de palabras. En el último blog, también vimos cómo podemos tomar el promedio de las incrustaciones de palabras que aparecen en una oración para representar esa oración como una incrustación. Esta es una de las formas de interpretar una oración. Pero no es así como los humanos entienden el idioma. No solo tomamos el significado individual de las palabras y formamos la comprensión de una oración o un párrafo. Un proceso mucho más complejo está involucrado para comprender el lenguaje por parte de los humanos. Pero, ¿cómo entiende una máquina el lenguaje? ¡Es a través de modelos de lenguaje!

Los modelos de lenguaje son un componente esencial del procesamiento del lenguaje natural (NLP), diseñado para comprender y generar el lenguaje humano. Utilizan varias técnicas estadísticas y de aprendizaje automático para analizar y aprender de grandes cantidades de datos de texto, lo que les permite identificar patrones y relaciones entre palabras, frases y oraciones. ¡Las incrustaciones de palabras forman la base para comprender estas oraciones! Los modelos de lenguaje han revolucionado el campo de la PNL y han jugado un papel crucial al permitir que las máquinas interactúen con los humanos de una manera más natural e intuitiva. ¡Los modelos de lenguaje también han superado a los humanos en algunas de las tareas de la PNL!

En este blog, comprenderemos las Representaciones de codificador bidireccional de los transformadores (BERT), que es uno de los hitos más grandes del mundo en modelos de lenguaje.

También te puede interesarCasos de uso de Hiperparámetros parte 2 (Aprendizaje automático)

BERT fue desarrollado por Google en 2018. Es un modelo de «comprensión del idioma», que se entrena en una gran cantidad de datos de texto para comprender el contexto y el significado de las palabras y frases en una oración. BERT utiliza una arquitectura de aprendizaje profundo de «transformador» que le permite procesar información de manera bidireccional, lo que significa que puede comprender el contexto de una palabra en función de las palabras que vienen antes y después. Esto le permite a BERT comprender mejor los matices del lenguaje, incluidos los modismos, el sarcasmo y las estructuras de oraciones complejas.

Debes estar preguntándote cómo entrenas a esos modelos para que entiendan el lenguaje humano. Hay 2 pasos de entrenamiento involucrados para usar BERT:

  • Fase previa al entrenamiento
  • Fase de puesta a punto
  • En la fase de preentrenamiento, el modelo se entrena con datos textuales de gran tamaño. Esta es la etapa donde el modelo aprende y entiende el idioma. La formación previa es cara. Para entrenar previamente un modelo BERT, Google usó múltiples TPU, procesadores informáticos especiales para modelos de aprendizaje profundo. Les tomó 4 días entrenar previamente a BERT en una infraestructura tan grande. Pero esto es sólo un procedimiento de una sola vez. Una vez que el modelo comprende el lenguaje, podemos reutilizar el modelo para una variedad de tareas en PNL. Hay 3 pasos para pre-entrenar BERT:

  • Selección de corpus de texto
  • Modelado de lenguaje enmascarado
  • Predicción de la siguiente oración
  • Repasemos cada paso en detalle.

    También te puede interesarCasos de uso de hiperparámetros parte 1 (aprendizaje automático)

    Antes de hablar de datos, debemos entender que estos modelos son enormes en tamaño. No solo el tamaño del disco, sino también los parámetros matemáticos que necesitamos calcular dentro de estos modelos de aprendizaje profundo. Para darle una perspectiva, el modelo BERT más grande tiene un tamaño de 1,4 GB en el disco, ¡si se guarda como un archivo binario!

    Para la selección del corpus de texto, debe tener algunas consideraciones sobre el texto que desea utilizar:

    · Tamaño del corpus

    · Dominio del texto

    También te puede interesarDel empleo tradicional al trabajo independiente: mi viaje como ingeniero de aprendizaje automático

    · Idioma del texto

    Para BERT, nos ceñimos al idioma inglés. BERT está capacitado en la combinación de 2 conjuntos de datos, todo el volcado de Wikipedia en inglés y BookCorpus, que es una colección de libros electrónicos gratuitos. Estos conjuntos de datos son conjuntos de datos generales, que no hablan de ningún dominio específico. Si el texto sin procesar de estos conjuntos de datos se almacenara en un archivo .txt, ¡entonces el tamaño estaría en GB!

    Para entrenar cualquier modelo de aprendizaje profundo, necesitamos datos anotados. El conjunto de datos que hemos mencionado es solo texto sin procesar. Para anotar datos de texto tan grandes para cualquier tarea, se requeriría mucha mano de obra. Los investigadores diseñaron una forma autosupervisada de crear 2 tareas y entrenar al modelo del transformador en esas tareas.

    BERT primero se entrena como un modelo de lenguaje enmascarado (MLM) para comprender una oración en ambas direcciones del contexto: de izquierda a derecha y de derecha a izquierda. Esencialmente, BERT recibe una secuencia de entrada, donde el 15% de las palabras están enmascaradas. La tarea de BERT es predecir estas palabras enmascaradas, leyendo tanto el contexto del lado izquierdo como el del lado derecho de la palabra enmascarada.

    También te puede interesar🧬Aprendizaje de refuerzo profundo hiperbólico: la próxima frontera

    En este ejemplo, se enmascaran 2 palabras: almacenar y galón. BERT debe predecir ambas palabras correctamente. Este 15% de las palabras se seleccionan al azar. Así, de manera autosupervisada, todo el texto sin procesar ahora se anota para la tarea de predecir palabras enmascaradas.

    Uno de los beneficios de MLM es que permite a BERT comprender el lenguaje de una manera más natural y matizada. Al predecir las palabras que faltan en una oración, BERT puede comprender mejor el contexto y el significado de las palabras presentes. Esto puede ser especialmente útil para aplicaciones como el análisis de sentimientos, donde comprender el significado y el tono de una oración es crucial para interpretar con precisión su sentimiento.

    Modelado de lenguaje enmascarado ayuda a BERT a comprender la relación entre las palabras. Pero, ¿qué pasa con la relación entre varias oraciones en un párrafo? La tarea: la predicción de la siguiente oración ayuda a BERT a comprender la relación entre las oraciones. Esta es una tarea sencilla que se puede generar de forma autosupervisada, a partir de cualquier corpus de texto. La tarea: dadas dos oraciones A y B, ¿es B la oración real que viene después de A, o simplemente una oración aleatoria de los datos del texto?

    La predicción de la siguiente oración es una técnica útil para una variedad de tareas de PNL. Al comprender las relaciones entre oraciones, BERT puede comprender mejor el significado general y el contexto de un pasaje de texto. Esto puede ser especialmente importante para aplicaciones como chatbots o asistentes virtuales, donde la capacidad de comprender e interpretar el lenguaje humano es crucial para brindar respuestas precisas y útiles.

    Después de haber entrenado previamente el modelo BERT, ahora podemos ajustarlo para cualquier tarea en NLP. Ahora podemos usar conjuntos de datos específicos del dominio en el mismo idioma para aprovechar los aprendizajes y la comprensión del modelo para ese idioma. Ahora no necesitamos un gran conjunto de datos para ajustar un modelo BERT. Por lo tanto, este proceso es económico: unas pocas horas en una sola GPU serían suficientes para ajustar el modelo.

    El objetivo del ajuste fino es optimizar aún más el modelo BERT para que funcione bien en una tarea específica, ajustando sus parámetros para que se ajusten mejor a los datos de esa tarea. Por ejemplo, un modelo BERT que se ha entrenado previamente en un gran corpus de datos de texto se puede ajustar en un conjunto de datos más pequeño de reseñas de películas para mejorar su capacidad de predecir con precisión el sentimiento de una reseña determinada.

    El ajuste fino de un modelo BERT es una herramienta poderosa para una variedad de aplicaciones de NLP, ya que permite que el modelo se adapte a tareas y conjuntos de datos específicos. Al ajustar un modelo BERT, los investigadores y desarrolladores pueden lograr niveles más altos de precisión y rendimiento en tareas específicas, lo que en última instancia puede conducir a aplicaciones de procesamiento de lenguaje natural más efectivas y útiles.

    Usamos un conjunto de datos de texto genérico en inglés para entrenar previamente el modelo BERT. Esto nos da una ventaja ya que el modelo entiende el idioma, pero no entiende el dominio. Por ejemplo, si queremos usar un modelo de lenguaje en el dominio médico, entonces debe comprender el significado y el contexto de los términos médicos, procedimientos, etc.

    Para ello, podemos pre-entrenar al modelo en un dominio muy específico, como medicina, en el mismo idioma. Esto aumenta aún más la precisión cuando ajustamos el modelo para una tarea específica, en el mismo dominio. Uno de los ejemplos de tal modelo de lenguaje es BioBERT. BioBERT es un modelo de lenguaje que se entrena previamente en un enorme corpus de texto biomédico. Ha demostrado mayor precisión que el BERT genérico en tareas relacionadas con el dominio biomédico. De manera similar, podemos entrenar previamente el modelo BERT en el texto de cualquier dominio, lo cual es requerido por el caso de uso comercial.

    · BERT es un modelo de procesamiento de lenguaje natural altamente eficaz que ha logrado resultados de última generación en una amplia gama de tareas.

    · BERT utiliza una arquitectura de «transformador» única que le permite comprender mejor el contexto y el significado de las palabras y frases en una oración.

    · BERT se puede ajustar en tareas y conjuntos de datos específicos, lo que permite adaptarlo a aplicaciones específicas y lograr niveles de precisión aún más altos.

    · BERT es de código abierto y está ampliamente disponible, lo que lo hace accesible a investigadores y desarrolladores de todo el mundo.

    · BERT requiere recursos computacionales significativos para el entrenamiento previo y recursos relativamente significativos para el ajuste fino, lo que puede ser una barrera de entrada para grupos de investigación o individuos más pequeños.

    · BERT está capacitado en grandes cantidades de datos de texto, lo que puede dificultar su aplicación a dominios o idiomas con datos limitados disponibles.

    · BERT a veces puede tener dificultades para comprender el contexto que no se establece explícitamente en el texto, como el conocimiento previo o las referencias culturales.

    · BERT es un modelo de lenguaje y, como tal, puede tener problemas con tareas que requieren más que solo la comprensión del lenguaje, como tareas que involucran información visual o de audio.

    Una de las aplicaciones de BERT es la respuesta a preguntas extractivas. BERT se puede ajustar en un conjunto de datos de pares de preguntas y respuestas, para que pueda responder con precisión a las preguntas planteadas en lenguaje natural. Junto a estos pares, se proporciona un pasaje como referencia, del cual se extrae la respuesta a la pregunta planteada.

    Se podría usar un modelo BERT ajustado en el conjunto de datos de respuesta a preguntas para responder tales preguntas fácticas y proporcionar la respuesta correcta según el contexto de la pregunta. Esto tiene muchas aplicaciones potenciales en el mundo real, como chatbots de servicio al cliente o asistentes virtuales que pueden proporcionar a los usuarios respuestas precisas y útiles a sus preguntas.

    ignio aprovecha los transformadores preentrenados para casos de uso de diferentes dominios. Ejemplos de casos de uso incluyen: dominio de seguridad de TI para completar automáticamente encuestas de seguridad, dominio legal para analizar contratos y NDA para marcar automáticamente cláusulas aceptables e inaceptables, extraer información de fuentes de datos para capturar diferentes aspectos del contexto empresarial y asignar tickets de problemas al catálogo de automatización de ignio para identificar los tickets que ignio puede resolver automáticamente.

    Pushpam Punjabi es un ingeniero de aprendizaje automático que desarrolla soluciones para los casos de uso que surgen en el campo del procesamiento del lenguaje natural (NLP)/comprensión del lenguaje natural (NLU). Disfruta aprendiendo el funcionamiento interno de cualquier algoritmo y cómo implementarlo de manera efectiva para resolver cualquiera de los problemas planteados.

    Scroll al inicio