stringtranslate.com

BERT (modelo de lenguaje)

Representaciones de codificador bidireccional a partir de transformadores ( BERT ) es un modelo de lenguaje introducido en octubre de 2018 por investigadores de Google . [1] [2] Aprende a representar texto como una secuencia de vectores mediante aprendizaje autosupervisado . Utiliza la arquitectura de transformador de solo codificador . Es notable por su mejora espectacular con respecto a los modelos de vanguardia anteriores y como un ejemplo temprano de un gran modelo de lenguaje . A partir de 2020 , BERT es una línea de base omnipresente en los experimentos de procesamiento del lenguaje natural (PLN). [3]

BERT se entrena mediante la predicción de tokens enmascarados y la predicción de la siguiente oración. Como resultado de este proceso de entrenamiento, BERT aprende representaciones contextuales y latentes de tokens en su contexto, de manera similar a ELMo y GPT-2 . [4] Encontró aplicaciones para muchas tareas de procesamiento de lenguaje natural, como la resolución de correferencia y la resolución de polisemia . [5] Es un paso evolutivo con respecto a ELMo y generó el estudio de la "BERTología", que intenta interpretar lo que BERT aprende. [3]

BERT se implementó originalmente en inglés en dos tamaños de modelo, BERT BASE (110 millones de parámetros) y BERT LARGE (340 millones de parámetros). Ambos se entrenaron en Toronto BookCorpus [6] (800 millones de palabras) y en Wikipedia en inglés (2500 millones de palabras). Los pesos se publicaron en GitHub . [7] El 11 de marzo de 2020, se publicaron 24 modelos más pequeños, siendo el más pequeño BERT TINY con solo 4 millones de parámetros. [7]

Arquitectura

Diagrama esquemático de alto nivel de BERT. Toma un texto, lo convierte en una secuencia de tokens, agrega tokens especiales opcionales y aplica un codificador Transformer. Los estados ocultos de la última capa se pueden usar como incrustaciones de palabras contextuales.

BERT es una arquitectura de transformador "sólo codificador" . A grandes rasgos, BERT consta de 4 módulos:

El encabezado de tarea es necesario para el preentrenamiento, pero a menudo es innecesario para las llamadas "tareas posteriores", como la respuesta a preguntas o la clasificación de sentimientos . En su lugar, se elimina el encabezado de tarea y se lo reemplaza con un módulo recién inicializado adecuado para la tarea, y se ajusta el nuevo módulo. La representación del vector latente del modelo se alimenta directamente a este nuevo módulo, lo que permite un aprendizaje por transferencia eficiente de la muestra . [1] [8]

La atención del codificador únicamente es de todos a todos.

Incrustar

En esta sección se describe la incrustación que utiliza BERT BASE . La otra, BERT LARGE , es similar, solo que más grande.

El tokenizador de BERT es WordPiece, que es una estrategia de subpalabras similar a la codificación de pares de bytes . Su tamaño de vocabulario es de 30 000 y cualquier token que no aparezca en su vocabulario se reemplaza por [UNK]("desconocido").

Los tres tipos de incrustación utilizados por BERT: tipo de token, posición y tipo de segmento.

La primera capa es la capa de incrustación, que contiene tres componentes: incrustaciones de tipo token, incrustaciones de posición e incrustaciones de tipo segmento.

Los tres vectores de incrustación se suman para representar la representación inicial del token como una función de estos tres datos. Después de la incrustación, la representación del vector se normaliza mediante una operación LayerNorm , lo que genera un vector de 768 dimensiones para cada token de entrada. Después de esto, los vectores de representación se pasan a través de 12 bloques de codificador Transformer y se decodifican nuevamente a un espacio de vocabulario de 30 000 dimensiones mediante una capa de transformación afín básica.

Familia arquitectónica

La pila de codificadores de BERT tiene dos parámetros libres: , el número de capas, y , el tamaño oculto . Siempre hay cabezales de autoatención y el tamaño del filtro/feed-forward es siempre . Al variar estos dos números, se obtiene una familia completa de modelos BERT. [9]

Para BERT

La notación para la pila de codificadores se escribe como L/H. Por ejemplo, BERT BASE se escribe como 12L/768H, BERT LARGE como 24L/1024H y BERT TINY como 2L/128H.

Capacitación

Pre-entrenamiento

BERT fue entrenado previamente en dos tareas simultáneamente. [10]

Modelado de lenguaje enmascarado

La tarea de modelado del lenguaje enmascarado.

En el modelado de lenguaje enmascarado, se seleccionaría aleatoriamente el 15 % de los tokens para la tarea de predicción enmascarada, y el objetivo de entrenamiento era predecir el token enmascarado dado su contexto. En más detalle, el token seleccionado es

La razón por la que no se enmascaran todos los tokens seleccionados es para evitar el problema del desplazamiento del conjunto de datos. El problema del desplazamiento del conjunto de datos surge cuando la distribución de las entradas observadas durante el entrenamiento difiere significativamente de la distribución encontrada durante la inferencia. Un modelo BERT entrenado podría aplicarse a la representación de palabras (como Word2Vec ), donde se ejecutaría sobre oraciones que no contengan ningún [MASK]token. Más tarde se descubrió que los objetivos de entrenamiento más diversos son generalmente mejores. [11]

Como ejemplo ilustrativo, considere la oración "mi perro es lindo". Primero se dividiría en elementos como "mi perro 1 es lindo 2 " . Luego se elegiría un elemento al azar en la oración. Sea el cuarto "lindo 4 ". A continuación, habría tres posibilidades :

Después de procesar el texto de entrada, el cuarto vector de salida del modelo pasa a su capa decodificadora, que genera una distribución de probabilidad en su espacio de vocabulario de 30.000 dimensiones.

Predicción de la siguiente oración

La siguiente tarea de predicción de oraciones.

Dados dos fragmentos de texto, el modelo predice si estos dos fragmentos aparecieron secuencialmente en el corpus de entrenamiento, generando [IsNext]o [NotNext]. El primer fragmento comienza con un token especial [CLS](para "clasificar"). Los dos fragmentos están separados por un token especial [SEP](para "separar"). Después de procesar los dos fragmentos, el primer vector de salida (el vector que codifica para [CLS]) se pasa a una red neuronal separada para la clasificación binaria en [IsNext]y [NotNext].

Sintonia FINA

BERT está pensado como un modelo general preentrenado para diversas aplicaciones en el procesamiento del lenguaje natural. Es decir, después del preentrenamiento, BERT se puede ajustar con menos recursos en conjuntos de datos más pequeños para optimizar su rendimiento en tareas específicas, como la inferencia del lenguaje natural y la clasificación de texto , y tareas de generación de lenguaje basadas en secuencias, como la respuesta a preguntas y la generación de respuestas conversacionales. [12]

El artículo original de BERT publicó resultados que demuestran que una pequeña cantidad de ajustes (para BERT LARGE , 1 hora en 1 TPU de nube) le permitió lograr un rendimiento de vanguardia en una serie de tareas de comprensión del lenguaje natural : [1]

En el artículo original, se ajustan todos los parámetros de BERT y se recomienda que, para aplicaciones posteriores que sean clasificaciones de texto, el token de salida en el [CLS]token de entrada se introduzca en una capa softmax lineal para producir las salidas de etiqueta. [1]

La base del código original definía la capa lineal final como una "capa agrupadora", en analogía con el agrupamiento global en la visión por computadora, aunque simplemente descarta todos los tokens de salida excepto el correspondiente a [CLS]. [15]

Costo

BERT se entrenó en BookCorpus (800 millones de palabras) y una versión filtrada de Wikipedia en inglés (2500 millones de palabras) sin listas, tablas ni encabezados.

El entrenamiento de BERT BASE en 4 TPU en la nube (16 chips de TPU en total) tomó 4 días, con un costo estimado de 500 USD. [7] El entrenamiento de BERT LARGE en 16 TPU en la nube (64 chips de TPU en total) tomó 4 días. [1]

Interpretación

Los modelos de lenguaje como ELMo, GPT-2 y BERT dieron origen al estudio de la "BERTología", que intenta interpretar lo que aprenden estos modelos. Su desempeño en estas tareas de comprensión del lenguaje natural aún no se comprende bien. [3] [16] [17] Varias publicaciones de investigación en 2018 y 2019 se centraron en investigar la relación detrás de la salida de BERT como resultado de secuencias de entrada cuidadosamente elegidas, [18] [19] análisis de representaciones vectoriales internas a través de clasificadores de sondeo, [20] [21] y las relaciones representadas por pesos de atención . [16] [17]

El alto rendimiento del modelo BERT también podría atribuirse [ cita requerida ] al hecho de que se entrena de forma bidireccional. Esto significa que BERT, basado en la arquitectura del modelo Transformer, aplica su mecanismo de autoatención para aprender información de un texto desde el lado izquierdo y derecho durante el entrenamiento y, en consecuencia, obtiene una comprensión profunda del contexto. Por ejemplo, la palabra fine puede tener dos significados diferentes según el contexto ( I feel fine today , She has fine blond hair ). BERT considera las palabras que rodean la palabra objetivo fine desde el lado izquierdo y derecho.

Sin embargo, esto tiene un costo: debido a que la arquitectura de solo codificador carece de un decodificador, BERT no puede ser activado y no puede generar texto , mientras que los modelos bidireccionales en general no funcionan de manera efectiva sin el lado derecho, por lo que es difícil activarlos. Como ejemplo ilustrativo, si uno desea usar BERT para continuar un fragmento de oración "Hoy, fui a", entonces ingenuamente enmascararía todos los tokens como "Hoy, fui a [MASK] [MASK] [MASK]... [MASK]", donde el número de [MASK] es la longitud de la oración que uno desea extender. Sin embargo, esto constituye un cambio de conjunto de datos, ya que durante el entrenamiento, BERT nunca ha visto oraciones con tantos tokens enmascarados. En consecuencia, su rendimiento se degrada. Las técnicas más sofisticadas permiten la generación de texto, pero a un alto costo computacional. [22]

Historia

BERT fue publicado originalmente por los investigadores de Google Jacob Devlin, Ming-Wei Chang, Kenton Lee y Kristina Toutanova. El diseño tiene su origen en representaciones contextuales de preentrenamiento, incluyendo el aprendizaje de secuencias semisupervisado , [23] preentrenamiento generativo, ELMo , [24] y ULMFit. [25] A diferencia de los modelos anteriores, BERT es una representación del lenguaje profundamente bidireccional y no supervisada , preentrenada utilizando solo un corpus de texto simple . Los modelos independientes del contexto como word2vec o GloVe generan una única representación de incrustación de palabras para cada palabra del vocabulario, mientras que BERT tiene en cuenta el contexto para cada ocurrencia de una palabra dada. Por ejemplo, mientras que el vector para "correr" tendrá la misma representación vectorial word2vec para ambas ocurrencias en las oraciones "Él está dirigiendo una empresa" y "Él está corriendo un maratón", BERT proporcionará una incrustación contextualizada que será diferente según la oración. [4]

El 25 de octubre de 2019, Google anunció que había comenzado a aplicar modelos BERT para consultas de búsqueda en inglés en los EE. UU . [26] El 9 de diciembre de 2019, se informó que Google Search había adoptado BERT para más de 70 idiomas. [27] [28] En octubre de 2020, casi todas las consultas en inglés fueron procesadas por un modelo BERT. [29]

Variantes

Los modelos BERT fueron influyentes e inspiraron muchas variantes.

RoBERTa (2019) [30] fue una mejora de ingeniería. Conserva la arquitectura de BERT (un poco más grande, con 355 millones de parámetros), pero mejora su entrenamiento, modificando hiperparámetros clave, eliminando la tarea de predicción de la siguiente oración y utilizando tamaños de minilotes mucho más grandes .

DistilBERT (2019) destila BERT BASE a un modelo con solo el 60% de sus parámetros (66M), mientras que conserva el 95% de sus puntajes de referencia. [31] [32] De manera similar, TinyBERT (2019) [33] es un modelo destilado con solo el 28% de sus parámetros.

ALBERT (2019) [34] utilizó parámetros compartidos entre capas y experimentó con la variación independiente del tamaño oculto y el tamaño de salida de la capa de inserción de palabras como dos hiperparámetros. También reemplazaron la tarea de predicción de la siguiente oración con la tarea de predicción del orden de oraciones (SOP), donde el modelo debe distinguir el orden correcto de dos segmentos de texto consecutivos de su orden inverso.

ELECTRA (2020) [35] aplicó la idea de redes generativas adversarias a la tarea MLM. En lugar de enmascarar tokens, un modelo de lenguaje pequeño genera sustituciones plausibles aleatorias, y una red más grande identifica estos tokens reemplazados. El modelo pequeño tiene como objetivo engañar al modelo grande.

DeBERTa

DeBERTa (2020) [36] es una variante arquitectónica importante, con atención desenredada . Su idea clave es tratar las codificaciones posicional y de token por separado a lo largo del mecanismo de atención. En lugar de combinar la codificación posicional ( ) y la codificación de token ( ) en un único vector de entrada ( ), DeBERTa las mantiene separadas como una tupla: ( ). Luego, en cada capa de autoatención, DeBERTa calcula tres matrices de atención distintas, en lugar de la matriz de atención única utilizada en BERT: [nota 1]

Las tres matrices de atención se suman elemento por elemento, luego se pasan a través de una capa softmax y se multiplican por una matriz de proyección.

La codificación de posición absoluta se incluye en la capa de autoatención final como entrada adicional.

Notas

  1. ^ Los autores omitieron el tipo de posición a posición por considerarlo inútil.

Referencias

  1. ^ abcde Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (11 de octubre de 2018). "BERT: preentrenamiento de transformadores bidireccionales profundos para la comprensión del lenguaje". arXiv : 1810.04805v2 [cs.CL].
  2. ^ "Open Sourcing BERT: Pre-entrenamiento de última generación para procesamiento de lenguaje natural". Blog de Google AI . 2 de noviembre de 2018 . Consultado el 27 de noviembre de 2019 .
  3. ^ abc Rogers, Anna; Kovaleva, Olga; Rumshisky, Anna (2020). "Una introducción a BERTology: lo que sabemos sobre cómo funciona BERT". Transacciones de la Asociación de Lingüística Computacional . 8 : 842–866. arXiv : 2002.12327 . doi :10.1162/tacl_a_00349. S2CID  211532403.
  4. ^ ab Ethayarajh, Kawin (1 de septiembre de 2019), ¿Qué tan contextuales son las representaciones de palabras contextualizadas? Comparación de la geometría de las incrustaciones de BERT, ELMo y GPT-2 , arXiv : 1909.00512
  5. ^ Anderson, Dawn (5 de noviembre de 2019). "Una inmersión profunda en BERT: cómo BERT lanzó un cohete hacia la comprensión del lenguaje natural". Search Engine Land . Consultado el 6 de agosto de 2024 .
  6. ^ Zhu, Yukun; Kiros, Ryan; Zemel, rico; Salakhutdinov, Ruslan; Urtasún, Raquel; Torralba, Antonio; Fidler, Sanja (2015). "Alinear libros y películas: hacia explicaciones visuales similares a historias viendo películas y leyendo libros". págs. 19-27. arXiv : 1506.06724 [cs.CV].
  7. ^ abc "BERT". GitHub . Consultado el 28 de marzo de 2023 .
  8. ^ Zhang, Tianyi; Wu, Felix; Katiyar, Arzoo; Weinberger, Kilian Q.; Artzi, Yoav (11 de marzo de 2021), Revisión del ajuste fino de BERT de pocas muestras , arXiv : 2006.05987
  9. ^ Turc, Iulia; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (25 de septiembre de 2019), Los estudiantes bien leídos aprenden mejor: sobre la importancia de entrenar previamente los modelos compactos , arXiv : 1908.08962
  10. ^ "Resumen de los modelos: documentación de transformers 3.4.0". huggingface.co . Consultado el 16 de febrero de 2023 .
  11. ^ Tay, Yi; Dehghani, Mostafa; Tran, Vinh Q.; Garcia, Xavier; Wei, Jason; Wang, Xuezhi; Chung, Hyung Won; Shakeri, Siamak; Bahri, Dara (28 de febrero de 2023), UL2: Unificando paradigmas de aprendizaje de idiomas , arXiv : 2205.05131
  12. ^ ab Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "11.9. Preentrenamiento a gran escala con transformadores". Sumérjase en el aprendizaje profundo . Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3.
  13. ^ Rajpurkar, Pranav; Zhang, Jian; Lopyrev, Konstantin; Liang, Percy (10 de octubre de 2016). "SQuAD: más de 100 000 preguntas para la comprensión automática de texto". arXiv : 1606.05250 [cs.CL].
  14. ^ Zellers, Rowan; Bisk, Yonatan; Schwartz, Roy; Choi, Yejin (15 de agosto de 2018). "SWAG: un conjunto de datos contradictorios a gran escala para inferencias de sentido común fundamentadas". arXiv : 1808.05326 [cs.CL].
  15. ^ "bert/modeling.py at master · google-research/bert". GitHub . Consultado el 16 de septiembre de 2024 .
  16. ^ ab Kovaleva, Olga; Romanov, Alexey; Rogers, Anna; Rumshisky, Anna (noviembre de 2019). "Revelando los oscuros secretos de BERT". Actas de la Conferencia de 2019 sobre métodos empíricos en procesamiento del lenguaje natural y la 9.ª Conferencia conjunta internacional sobre procesamiento del lenguaje natural (EMNLP-IJCNLP) . págs. 4364–4373. doi :10.18653/v1/D19-1445. S2CID  201645145.
  17. ^ ab Clark, Kevin; Khandelwal, Urvashi; Levy, Omer; Manning, Christopher D. (2019). "¿Qué observa BERT? Un análisis de la atención de BERT". Actas del taller ACL de 2019 BlackboxNLP: análisis e interpretación de redes neuronales para NLP . Stroudsburg, PA, EE. UU.: Association for Computational Linguistics: 276–286. arXiv : 1906.04341 . doi : 10.18653/v1/w19-4828 .
  18. ^ Khandelwal, Urvashi; He, He; Qi, Peng; Jurafsky, Dan (2018). "Nítido cerca, difuso lejos: cómo los modelos de lenguaje neuronal utilizan el contexto". Actas de la 56.ª reunión anual de la Asociación de Lingüística Computacional (volumen 1: artículos extensos) . Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional: 284–294. arXiv : 1805.04623 . doi :10.18653/v1/p18-1027. S2CID  21700944.
  19. ^ Gulordava, Kristina; Bojanowski, Piotr; Grave, Edouard; Linzen, Tal; Baroni, Marco (2018). "Colorless Green Recurrent Networks Dream Hierarchically". Actas de la Conferencia de 2018 del Capítulo norteamericano de la Asociación de Lingüística Computacional: Tecnologías del lenguaje humano, Volumen 1 (Artículos largos) . Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional. págs. 1195–1205. arXiv : 1803.11138 . doi :10.18653/v1/n18-1108. S2CID  4460159.
  20. ^ Giulianelli, Mario; Harding, Jack; Mohnert, Florian; Hupkes, Dieuwke; Zuidema, Willem (2018). "Bajo la lupa: uso de clasificadores de diagnóstico para investigar y mejorar cómo los modelos de lenguaje rastrean la información de acuerdo". Actas del taller EMNLP de 2018 BlackboxNLP: análisis e interpretación de redes neuronales para NLP . Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional: 240–248. arXiv : 1808.08079 . doi :10.18653/v1/w18-5426. S2CID  52090220.
  21. ^ Zhang, Kelly; Bowman, Samuel (2018). "El modelado del lenguaje enseña más que la traducción: lecciones aprendidas a través del análisis de tareas sintácticas auxiliares". Actas del taller EMNLP de 2018 BlackboxNLP: análisis e interpretación de redes neuronales para el procesamiento del lenguaje natural . Stroudsburg, PA, EE. UU.: Association for Computational Linguistics: 359–361. doi : 10.18653/v1/w18-5448 .
  22. ^ Patel, Ajay; Li, Bryan; Mohammad Sadegh Rasooli; Constant, Noah; Raffel, Colin; Callison-Burch, Chris (2022). "Los modelos de lenguaje bidireccionales también son aprendices con pocas posibilidades de éxito". arXiv : 2209.14500 [cs.LG].
  23. ^ Dai, Andrew; Le, Quoc (4 de noviembre de 2015). "Aprendizaje de secuencias semisupervisado". arXiv : 1511.01432 [cs.LG].
  24. ^ Peters, Matthew; Neumann, Mark; Iyyer, Mohit; Gardner, Matt; Clark, Christopher; Lee, Kenton; Luke, Zettlemoyer (15 de febrero de 2018). "Representaciones de palabras contextualizadas en profundidad". arXiv : 1802.05365v2 [cs.CL].
  25. ^ Howard, Jeremy; Ruder, Sebastian (18 de enero de 2018). "Ajuste fino del modelo de lenguaje universal para la clasificación de textos". arXiv : 1801.06146v5 [cs.CL].
  26. ^ Nayak, Pandu (25 de octubre de 2019). "Comprender las búsquedas mejor que nunca". Blog de Google . Consultado el 10 de diciembre de 2019 .
  27. ^ "Comprender las búsquedas mejor que nunca". Google . 25 de octubre de 2019 . Consultado el 6 de agosto de 2024 .
  28. ^ Montti, Roger (10 de diciembre de 2019). "Google's BERT Rolls Out Worldwide". Search Engine Journal . Consultado el 10 de diciembre de 2019 .
  29. ^ "Google: BERT ahora se utiliza en casi todas las consultas en inglés". Search Engine Land . 15 de octubre de 2020 . Consultado el 24 de noviembre de 2020 .
  30. ^ Liu, Yinhan; Ott, Myle; Goyal, Naman; Du, Jingfei; Joshi, Mandar; Chen, Danqi; Levy, Omer; Lewis, Mike; Zettlemoyer, Luke; Stoyanov, Veselin (2019). "RoBERTa: un enfoque de preentrenamiento BERT optimizado de forma robusta". arXiv : 1907.11692 [cs.CL].
  31. ^ Sanh, Victor; Debut, Lysandre; Chaumond, Julien; Wolf, Thomas (29 de febrero de 2020), DistilBERT, una versión destilada de BERT: más pequeña, más rápida, más barata y más ligera , arXiv : 1910.01108
  32. ^ "DistilBERT". huggingface.co . Consultado el 5 de agosto de 2024 .
  33. ^ Jiao, Xiaoqi; Yin, Yichun; Shang, Lifeng; Jiang, Xin; Chen, Xiao; Li, Linlin; Wang, colmillo; Liu, Qun (15 de octubre de 2020), TinyBERT: Destilación de BERT para la comprensión del lenguaje natural , arXiv : 1909.10351
  34. ^ Lan, Zhenzhong; Chen, Mingda; Goodman, Sebastian; Gimpel, Kevin; Sharma, Piyush; Soricut, Radu (8 de febrero de 2020), ALBERT: un BERT ligero para el aprendizaje autosupervisado de representaciones del lenguaje , arXiv : 1909.11942
  35. ^ Clark, Kevin; Luong, Minh-Thang; Le, Quoc V.; Manning, Christopher D. (23 de marzo de 2020), ELECTRA: preentrenamiento de codificadores de texto como discriminadores en lugar de generadores , arXiv : 2003.10555
  36. ^ Él, Pengcheng; Liu, Xiaodong; Gao, Jianfeng; Chen, Weizhu (6 de octubre de 2021), DeBERTa: BERT mejorado con decodificación con atención desenredada , arXiv : 2006.03654

Lectura adicional

Enlaces externos