Comprender las técnicas esenciales detrás de las opciones de arquitectura BERT para producir un modelo compacto y eficiente.
En los últimos años, la evolución de los grandes modelos lingüísticos se ha disparado. BERT se convirtió en uno de los modelos más populares y eficientes, permitiendo resolver una amplia gama de tareas de PNL con alta precisión. Después de BERT, aparecieron más tarde en escena un conjunto de otros modelos que también demostraron resultados sobresalientes.
La tendencia obvia que resultó fácil de observar es el hecho de que Con el tiempo, los modelos de lenguaje grande (LLM) tienden a volverse más complejos al aumentar exponencialmente la cantidad de parámetros y datos en los que se entrenan.. Las investigaciones sobre aprendizaje profundo demostraron que este tipo de técnicas suelen conducir a mejores resultados. Desafortunadamente, el mundo del aprendizaje automático ya se ha enfrentado a varios problemas relacionados con los LLM, y la escalabilidad se ha convertido en el principal obstáculo para capacitarlos, almacenarlos y utilizarlos de manera eficaz.
Como consecuencia, recientemente se han desarrollado nuevos LLM para abordar problemas de escalabilidad. En este artículo, analizaremos ALBERT, que se inventó en 2020 con el objetivo de reducir significativamente los parámetros de BERT.
Para comprender los mecanismos subyacentes en ALBERT, vamos a referirnos a su papel oficial. En su mayor parte, ALBERT deriva la misma arquitectura de BERT. Hay tres diferencias principales en la elección de la arquitectura del modelo que se abordarán y explicarán a continuación.
Los procedimientos de formación y ajuste en ALBERT son análogos a los de BERT. Al igual que BERT, ALBERT está previamente capacitado en Wikipedia en inglés (2500 millones de palabras) y BookCorpus (800 millones de palabras).
Cuando se tokeniza una secuencia de entrada, cada uno de los tokens se asigna a una de las incrustaciones de vocabulario. Estas incrustaciones se utilizan para la entrada a BERT.
Dejar V ser el tamaño del vocabulario (el número total de posibles incrustaciones) y h – incorporación de dimensionalidad. Luego para cada uno de los V incrustaciones, necesitamos almacenar h valores que resultan en una VxH matriz de incrustación. En la práctica, resulta que esta matriz suele tener un tamaño enorme y requiere mucha memoria para almacenarla. Pero un problema más global es que la mayoría de las veces los elementos de una matriz de incrustación se pueden entrenar y se requieren muchos recursos para que el modelo aprenda los parámetros apropiados.
Por ejemplo, tomemos el modelo base BERT: tiene un vocabulario de 30.000 tokens, cada uno representado por una incrustación de 768 componentes. En total, esto da como resultado 23 millones de pesas que deben almacenarse y entrenarse. Para modelos más grandes, este número es aún mayor.
Este problema se puede evitar utilizando la factorización matricial. La matriz de vocabulario original. VxH se puede descomponer en un par de matrices más pequeñas de tamaños VxE y E x H.
En consecuencia, en lugar de utilizar O(V x H) parámetros, la descomposición resulta en sólo O(V x E + E x H) pesos. Obviamente, este método es eficaz cuando H >> E.
Otro gran aspecto de la factorización matricial es el hecho de que no cambia el proceso de búsqueda para obtener incrustaciones de tokens.: cada fila de la matriz descompuesta a la izquierda VxE asigna un token a su incrustación correspondiente de la misma manera sencilla que en la matriz original VxH. De esta manera, la dimensionalidad de las incrustaciones disminuye de h a mi.
Sin embargo, en el caso de matrices descompuestas, para obtener la entrada para BERT, las incrustaciones mapeadas deben proyectarse en el espacio BERT oculto: esto se hace multiplicando una fila correspondiente de la matriz izquierda por columnas de la matriz derecha.
Una de las formas de reducir los parámetros del modelo es hacerlos compartibles. Esto significa que todos comparten los mismos valores. En su mayor parte, simplemente reduce la memoria necesaria para almacenar pesas. Sin embargo, Los algoritmos estándar como la propagación hacia atrás o la inferencia aún deberán ejecutarse en todos los parámetros..
Una de las formas más óptimas de compartir pesos ocurre cuando se ubican en bloques diferentes pero similares del modelo.. Ponerlos en bloques similares da como resultado una mayor probabilidad de que la mayoría de los cálculos de los parámetros compartibles durante la propagación hacia adelante o hacia atrás sean los mismos. Esto brinda más oportunidades para diseñar un marco de cálculo eficiente.
La idea mencionada se implementa en ALBERT, que consta de un conjunto de bloques Transformer con la misma estructura que hacen que el intercambio de parámetros sea más eficiente. De hecho, existen varias formas de compartir parámetros en Transformers entre capas:
- compartir sólo parámetros de atención;
- compartir solo parámetros de red neuronal directa (FNN);
- compartir todos los parámetros (usados en ALBERT).
En general, es posible dividir todas las capas del transformador en N grupos de tamaño M cada uno, donde cada grupo comparte parámetros dentro de las capas que tiene. Los investigadores descubrieron que cuanto más pequeño es el tamaño del grupo M, mejores son los resultados. Sin embargo, la disminución del tamaño del grupo M conduce a un aumento significativo en los parámetros totales.
BERT se centra en dominar dos objetivos durante el entrenamiento previo: modelado de lenguaje enmascarado (MSM) y predicción de la siguiente oración (NSP). En general, MSM fue diseñado para mejorar la capacidad de BERT para adquirir conocimientos lingüísticos y el objetivo de NSP era mejorar el desempeño de BERT en tareas posteriores particulares.
Sin embargo, múltiples estudios demostraron que podría ser beneficioso deshacerse del objetivo NSP principalmente debido a su simplicidad, en comparación con MLM. Siguiendo esta idea, los investigadores de ALBERT también decidieron eliminar la tarea NSP y reemplazarla con un problema de predicción del orden de las oraciones (SOP) cuyo objetivo es predecir si ambas oraciones están ubicadas en el orden correcto o inverso.
Hablando del conjunto de datos de entrenamiento, todos los pares positivos de oraciones de entrada se recopilan secuencialmente dentro del mismo pasaje de texto (el mismo método que en BERT). Para oraciones negativas, el principio es el mismo excepto por el hecho de que ambas oraciones van en orden inverso.
Se demostró que los modelos entrenados con el objetivo NSP no pueden resolver con precisión las tareas SOP, mientras que los modelos entrenados con el objetivo SOP funcionan bien en problemas NSP. Estos experimentos demuestran que ALBERT está mejor adaptado que BERT para resolver diversas tareas posteriores.
La comparación detallada entre BERT y ALBERT se ilustra en el siguiente diagrama.
Aquí están las observaciones más interesantes:
- Al tener solo el 70% de los parámetros de BERT grande, la versión xxlarge de ALBERT logra un mejor rendimiento en tareas posteriores.
- ALBERT grande logra un rendimiento comparable, en comparación con BERT grande, y es 1,7 veces más rápido debido a la compresión masiva del tamaño de los parámetros.
- Todos los modelos de ALBERT tienen un tamaño de incrustación de 128. Como se muestra en los estudios de ablación del artículo, este es el valor óptimo. Aumentar el tamaño de incrustación, por ejemplo, hasta 768, mejora las métricas, pero no más del 1% en valores absolutos, lo que no tiene tanto que ver con la creciente complejidad del modelo.
- Aunque ALBERT xxlarge procesa una única iteración de datos 3,3 veces más lento que BERT grande, los experimentos demostraron que si se entrenan ambos modelos durante la misma cantidad de tiempo, ALBERT xxlarge demuestra un rendimiento promedio considerablemente mejor en los puntos de referencia que BERT grande (88,7% vs. 87,2%).
- Los experimentos demostraron que los modelos ALBERT con tamaños ocultos amplios (≥ 1024) no se benefician mucho de un aumento en el número de capas. Esa es una de las razones por las que el número de capas se redujo de 24 en ALBERT grande a 12 en la versión xxlarge.
- Un fenómeno similar ocurre con el aumento del tamaño de la capa oculta. Aumentarlo con valores superiores a 4096 degrada el rendimiento del modelo.
A primera vista, ALBERT parece una opción preferible a los modelos BERT originales, ya que los supera en tareas posteriores. Sin embargo, ALBERT requiere muchos más cálculos debido a sus estructuras más largas. Un buen ejemplo de este problema es ALBERT xxlarge, que tiene 235 M de parámetros y 12 capas de codificador. La mayoría de estos pesos de 235M pertenecen a un único bloque transformador. Luego, los pesos se comparten para cada una de las 12 capas. Por lo tanto, durante el entrenamiento o la inferencia, el algoritmo debe ejecutarse en más de 2 mil millones de parámetros.
Por estas razones, ALBERT es más adecuado para problemas en los que la velocidad se puede compensar para lograr una mayor precisión. En última instancia, el dominio de la PNL nunca se detiene y progresa constantemente hacia nuevas técnicas de optimización. Es muy probable que la velocidad en ALBERT mejore en un futuro próximo. Los autores del artículo ya han mencionado métodos como escasa atención y bloquear la atención como algoritmos potenciales para la aceleración de ALBERT.
Todas las imágenes, a menos que se indique lo contrario, son del autor.