Guía de LLM, Parte 1 BERT
Guía LLM, Parte 1 BERT
Comprender cómo BERT construye incrustaciones de última generación
Introducción
2017 fue un año histórico en el aprendizaje automático cuando el modelo Transformer hizo su primera aparición en escena. Ha estado funcionando de manera asombrosa en muchos benchmarks y se ha vuelto adecuado para muchos problemas en ciencia de datos. Gracias a su arquitectura eficiente, se han desarrollado posteriormente muchos otros modelos basados en Transformer que se especializan más en tareas particulares.
Uno de esos modelos es BERT. Se le conoce principalmente por ser capaz de construir incrustaciones que pueden representar con gran precisión la información de texto y almacenar significados semánticos de secuencias de texto largas. Como resultado, las incrustaciones de BERT se han utilizado ampliamente en el aprendizaje automático. Comprender cómo BERT construye representaciones de texto es crucial porque abre la puerta para abordar una amplia gama de tareas en NLP.
En este artículo, nos referiremos al artículo original de BERT y analizaremos la arquitectura de BERT y entenderemos los mecanismos principales detrás de ella. En las primeras secciones, daremos una descripción general de alto nivel de BERT. Después de eso, nos sumergiremos gradualmente en su flujo de trabajo interno y cómo se pasa la información a lo largo del modelo. Finalmente, aprenderemos cómo se puede ajustar BERT para resolver problemas particulares en NLP.
Descripción general de alto nivel
La arquitectura del Transformer consta de dos partes principales: codificadores y decodificadores. El objetivo de los codificadores apilados es construir una incrustación significativa para una entrada que preserve su contexto principal. La salida del último codificador se pasa a las entradas de todos los decodificadores para tratar de generar nueva información.
- Arte generado por IA Las implicaciones éticas y los debates
- Proyectos principales de IA generativa
- Investigadores desarrollan IA que permite a un robot crear planes c...
BERT es un sucesor de Transformer que hereda sus codificadores bidireccionales apilados. La mayoría de los principios arquitectónicos en BERT son los mismos que en el Transformer original.

Versiones de BERT
Existen dos versiones principales de BERT: Base y Large. Su arquitectura es absolutamente idéntica, excepto por el hecho de que utilizan diferentes números de parámetros. En general, BERT Large tiene 3.09 veces más parámetros para ajustar, en comparación con BERT Base.

Representaciones bidireccionales
A partir de la letra “B” en el nombre de BERT, es importante recordar que BERT es un modelo bidireccional, lo que significa que puede capturar mejor las conexiones entre palabras debido al hecho de que la información se transmite en ambas direcciones (de izquierda a derecha y de derecha a izquierda). Obviamente, esto resulta en más recursos de entrenamiento, en comparación con modelos unidireccionales, pero al mismo tiempo conduce a una mejor precisión en las predicciones.
Para una mejor comprensión, podemos visualizar la arquitectura de BERT en comparación con otros modelos populares de NLP.

Tokenización de entrada
Antes de adentrarnos en cómo se entrena BERT, es necesario entender en qué formato acepta los datos. Para la entrada, BERT toma una sola oración o un par de oraciones. Cada oración se divide en tokens. Además, se pasan dos tokens especiales a la entrada:
- [CLS] — se pasa antes de la primera oración indicando el comienzo de la secuencia. Al mismo tiempo, [CLS] también se utiliza para un objetivo de clasificación durante el entrenamiento (se discute en las secciones siguientes).
- [SEP] — se pasa entre oraciones para indicar el final de la primera oración y el comienzo de la segunda.
Al pasar dos oraciones, BERT puede manejar una gran variedad de tareas donde una entrada contiene dos oraciones (por ejemplo, pregunta y respuesta, hipótesis y premisa, etc.).
Incrustación de entrada
Después de la tokenización, se construye una incrustación para cada token. Para que las incrustaciones de entrada sean más representativas, BERT construye tres tipos de incrustaciones para cada token:
- Incrustaciones de token capturan el significado semántico de los tokens.
- Incrustaciones de segmento tienen uno de dos valores posibles e indican a qué oración pertenece un token.
- Incrustaciones de posición contienen información sobre la posición relativa de un token en una secuencia.

Estas incrustaciones se suman y el resultado se pasa al primer codificador del modelo BERT.
Salida
Cada codificador toma n incrustaciones como entrada y luego produce el mismo número de incrustaciones procesadas de la misma dimensionalidad. En última instancia, la salida completa de BERT también contiene n incrustaciones, cada una de las cuales corresponde a su token inicial.
Entrenamiento
El entrenamiento de BERT consta de dos etapas:
- Pre-entrenamiento. BERT se entrena con un par de oraciones no etiquetadas en dos tareas de predicción: modelado de lenguaje enmascarado (MLM) e inferencia de lenguaje natural (NLI). Para cada par de oraciones, el modelo realiza predicciones para estas dos tareas y, en función de los valores de pérdida, realiza retropropagación para actualizar los pesos.
- Ajuste fino. BERT se inicializa con pesos pre-entrenados que luego se optimizan para un problema particular en datos etiquetados.
Pre-entrenamiento
En comparación con el ajuste fino, el pre-entrenamiento generalmente lleva una proporción significativa de tiempo porque el modelo se entrena con un gran corpus de datos. Es por eso que existen muchos repositorios en línea de modelos pre-entrenados que luego se pueden ajustar relativamente rápido para resolver una tarea particular.
Analizaremos en detalle ambos problemas resueltos por BERT durante el pre-entrenamiento.
Modelado de Lenguaje Enmascarado
Los autores proponen entrenar BERT enmascarando una cierta cantidad de tokens en el texto inicial y prediciéndolos. Esto le da a BERT la capacidad de construir incrustaciones resilientes que pueden utilizar el contexto circundante para adivinar una palabra determinada, lo que también conduce a construir una incrustación adecuada para la palabra omitida. Este proceso funciona de la siguiente manera:
- Después de la tokenización, se elige aleatoriamente el 15% de los tokens para enmascararlos. Los tokens elegidos se predicen al final de la iteración.
- Los tokens elegidos se reemplazan de una de tres formas: – El 80% de los tokens se reemplazan por el token [MASK]. Ejemplo: Compré un libro → Compré un [MASK]- El 10% de los tokens se reemplazan por un token aleatorio. Ejemplo: Él está comiendo una fruta → Él está dibujando una fruta- El 10% de los tokens permanecen sin cambios. Ejemplo: Una casa está cerca de mí → Una casa está cerca de mí
- Todos los tokens se pasan al modelo BERT, que produce una incrustación para cada token que recibe como entrada.
4. Las incrustaciones de salida correspondientes a los tokens procesados en el paso 2 se utilizan de forma independiente para predecir los tokens enmascarados. El resultado de cada predicción es una distribución de probabilidad entre todos los tokens en el vocabulario.
5. Se calcula la pérdida de entropía cruzada comparando las distribuciones de probabilidad con los verdaderos tokens enmascarados.
6. Los pesos del modelo se actualizan utilizando la retropropagación.
Inferencia de Lenguaje Natural
Para esta tarea de clasificación, BERT intenta predecir si la segunda oración sigue a la primera. La predicción completa se realiza utilizando solo la incrustación del estado oculto final del token [CLS], que se supone que contiene información agregada de ambas oraciones.
De manera similar a MLM, se utiliza una distribución de probabilidad construida (binaria en este caso) para calcular la pérdida del modelo y actualizar los pesos del modelo mediante retropropagación.
Para NLI, los autores recomiendan elegir el 50% de pares de oraciones que se siguen en el corpus (pares positivos) y el 50% de pares donde las oraciones se toman al azar del corpus (pares negativos).

Detalles del entrenamiento
Según el artículo, BERT se entrena previamente en BooksCorpus (800 millones de palabras) y Wikipedia en inglés (2.500 millones de palabras). Para extraer textos continuos más largos, los autores tomaron solo fragmentos de lectura de Wikipedia, ignorando tablas, encabezados y listas.
BERT se entrena en un millón de lotes de tamaño igual a 256 secuencias, lo que equivale a 40 épocas en 3.300 millones de palabras. Cada secuencia contiene hasta 128 (90% del tiempo) o 512 (10% del tiempo) tokens.
Según el artículo original, los parámetros de entrenamiento son los siguientes:
- Optimizador: Adam (tasa de aprendizaje l = 1e-4, decaimiento de peso L₂ = 0.01, β₁ = 0.9, β₂ = 0.999, ε = 1e-6).
- El aumento gradual de la tasa de aprendizaje se realiza durante los primeros 10 000 pasos y luego se reduce linealmente.
- Se utiliza una capa de desactivación (α = 0.1) en todas las capas.
- Función de activación: GELU.
- La pérdida de entrenamiento es la suma de las probabilidad de predicción de la siguiente oración y del MLM promedio.
Ajuste fino
Una vez que se completa el entrenamiento previo, BERT puede entender literalmente los significados semánticos de las palabras y construir incrustaciones que casi representan completamente sus significados. El objetivo del ajuste fino es modificar gradualmente los pesos de BERT para resolver una tarea específica posterior.
Formato de datos
Gracias a la robustez del mecanismo de autoatención, BERT se puede ajustar fácilmente para una tarea específica posterior. Otra ventaja de BERT es la capacidad de construir representaciones de texto bidireccionales. Esto aumenta la probabilidad de descubrir relaciones correctas entre dos oraciones al trabajar con pares. Enfoques anteriores consistían en codificar de forma independiente ambas oraciones y luego aplicar una atención cruzada bidireccional. BERT unifica estas dos etapas.
Dependiendo de un problema en particular, BERT acepta varios formatos de entrada. El marco para resolver todas las tareas posteriores con BERT es el mismo: al tomar como entrada una secuencia de texto, BERT produce un conjunto de incrustaciones de tokens que luego se alimentan al modelo. La mayoría de las veces, no se utilizan todas las incrustaciones de salida.
Echemos un vistazo a los problemas comunes y las formas en que se resuelven mediante el ajuste fino de BERT.
Clasificación de pares de oraciones
El objetivo de la clasificación de pares de oraciones es comprender la relación entre un par dado de oraciones. La mayoría de los tipos comunes de tareas son:
- Inferencia de lenguaje natural: determinar si la segunda oración sigue a la primera.
- Análisis de similitud: encontrar el grado de similitud entre oraciones.

Para el ajuste fino, ambas oraciones se pasan a BERT. Como regla general, la incrustación de salida del token [CLS] se utiliza para la tarea de clasificación. Según los investigadores, se supone que el token [CLS] contiene la información principal sobre las relaciones entre las oraciones.
Por supuesto, también se pueden utilizar otras incrustaciones de salida, pero generalmente se omiten en la práctica.
Tarea de pregunta y respuesta
El objetivo de la tarea de pregunta y respuesta es encontrar una respuesta en un párrafo de texto que corresponda a una pregunta específica. La respuesta se da generalmente en forma de dos números: las posiciones de inicio y fin del token del pasaje.

Para la entrada, BERT toma la pregunta y el párrafo y produce un conjunto de embeddings para ellos. Dado que la respuesta está contenida dentro del párrafo, solo nos interesa los embeddings de salida correspondientes a los tokens del párrafo.
Para encontrar la posición del token de inicio de la respuesta en el párrafo, se calcula el producto escalar entre cada embedding de salida y un vector especial entrenable Tₛₜₐᵣₜ. En la mayoría de los casos, cuando el modelo y el vector Tₛₜₐᵣₜ están entrenados de acuerdo, el producto escalar debería ser proporcional a la probabilidad de que un token correspondiente sea en realidad el token de inicio de la respuesta. Para normalizar los productos escalares, luego se pasan a la función softmax y se pueden considerar como probabilidades. El embedding del token correspondiente a la probabilidad más alta se predice como el token de inicio de la respuesta. Basado en la distribución de probabilidad real, se calcula el valor de pérdida y se realiza la retropropagación. El proceso análogo se realiza con el vector Tₑₙ𝒹 para predecir el token final.
Clasificación de una sola oración
La diferencia, en comparación con tareas previas, es que aquí solo se pasa una sola oración a BERT. Los problemas típicos resueltos por esta configuración son los siguientes:
- Análisis de sentimiento: entender si una oración tiene una actitud positiva o negativa.
- Clasificación de temas: clasificar una oración en una de varias categorías basada en su contenido.

El flujo de predicción es el mismo que para la clasificación de pares de oraciones: el embedding de salida para el token [CLS] se utiliza como entrada para el modelo de clasificación.
Etiquetado de una sola oración
El reconocimiento de entidades nombradas (NER) es un problema de aprendizaje automático que tiene como objetivo asignar a cada token de una secuencia una de las entidades respectivas.

Para este objetivo, se calculan embeddings para los tokens de una oración de entrada, como de costumbre. Luego, cada embedding (excepto [CLS] y [SEP]) se pasa de forma independiente a un modelo que los asigna a una clase de NER específica (o no, si no puede).
Combinando BERT con otras características
A veces, no solo lidiamos con texto sino también con características numéricas, por ejemplo. Es naturalmente deseable construir embeddings que puedan incorporar información tanto de texto como de otras características no textuales. Aquí están las estrategias recomendadas para aplicar:
- Concatenación de texto con características no textuales. Por ejemplo, si trabajamos con descripciones de perfil de personas en forma de texto y hay otras características separadas como su nombre o edad, entonces se puede obtener una nueva descripción de texto en la forma: “Mi nombre es <nombre>. <descripción del perfil>. Tengo <edad> años”. Finalmente, esta descripción de texto se puede alimentar al modelo BERT.
- Concatenación de embeddings con características. Es posible construir embeddings de BERT, como se discutió anteriormente, y luego concatenarlos con otras características. Lo único que cambia en la configuración es el hecho de que un modelo de clasificación para una tarea posterior ahora debe aceptar vectores de entrada de mayor dimensionalidad.
Conclusión
En este artículo, hemos profundizado en los procesos de entrenamiento y ajuste fino de BERT. De hecho, este conocimiento es suficiente para resolver la mayoría de las tareas en el procesamiento del lenguaje natural, gracias al hecho de que BERT permite incorporar casi completamente los datos de texto en los embeddings.
En tiempos recientes, han aparecido otros modelos basados en BERT como SBERT, RoBERTa, etc. Incluso existe una esfera especial de estudio llamada “BERTología” que analiza las capacidades de BERT en profundidad para derivar nuevos modelos de alto rendimiento. Estos hechos refuerzan el hecho de que BERT ha marcado una revolución en el aprendizaje automático y ha permitido avanzar significativamente en el procesamiento del lenguaje natural.
Recursos
- BERT: Pretraining de Transformadores Bidireccionales Profundos para la Comprensión del Lenguaje
Todas las imágenes, a menos que se indique lo contrario, son del autor