BERT (modelo de linguaxe)

**BERT** (**Representacións de Codificador Bidireccional de Transformadores**, en inglés, *Bidirectional Encoder Representations from Transformers*) é un modelo de linguaxe bidireccional introducido en outubro de 2018 por investigadores de Google. Aprendeuse mediante a aprendizaxe supervisada a representar o texto como unha secuencia de vectores. Ten a arquitectura do codificador do transformador. Destaca pola súa dramática mellora con respecto aos modelos anteriores do estado da arte, e como un dos primeiros exemplos de gran modelo de linguaxe. A partir do ano 2020, BERT foi unha liña base omnipresente nos experimentos de procesamento da linguaxe natural (PLN).miniatura|330x330px|Diagrama esquemático de alto nivel de BERT. Dado un texto, divídeo nunha secuencia de porcións, engade unha porción opcional especial e aplica un codificador dun transformador. Os estados ocultos da última capa poden utilizarse como incrustacións de palabras contextuais.BERT é adestrado pola predición de porcións enmascaradas e a predición da seguinte frase. Por mor deste proceso de adestramento, BERT aprende representacións contextuais latentes de porcións no seu contexto, similar a ELMo e GPT-2. Atopáronse aplicacións para moitas tarefas de procesamento da linguaxe natural, como a resolución de correferencia e a resolución da polisemia. É un paso evolutivo sobre ELMo e xerou o estudo de "BERToloxía", o cal tenta interpretar o que é aprendido por BERT. O 11 de marzo de 2020 lanzáronse 24 modelos máis pequenos, sendo o máis pequeno BERTTINY con só 4 millóns de parámetros.

Para BERT, o tamaño da capa de avance e o tamaño do filtro son sinónimos. Ambos indican o número de dimensións na capa media da rede de avance. Tamén son sinónimos o tamaño oculto e o tamaño de incrustación. Ambos indican a cantidade de números reais utilizados para representar unha porción.

A notación para a pila de codificador escríbese como L/H. Por exemplo, BERTBASE escríbese como 12L/768H, BERTLARGE como 24L/1024H e BERTTINY como 2L/128H.

## Adestramento 
BERT foi adestrado previamente en dúas tarefas á vez.

#### Modelado de linguaxe enmascarada 
miniatura| A tarefa de modelado de linguaxe enmascarada.

* substitúese por `[MASK]` cunha probabilidade do 80%,
* substitúese por unha porción de palabra aleatoria cunha probabilidade do 10%,
* non se substitúe cunha probabilidade do 10%.

O motivo polo que non tódalas porcións seleccionadas están enmascaradas é para evitar o problema do cambio de conxunto de datos. O problema do cambio do conxunto de datos xorde cando a distribución de entradas observadas durante o adestramento difire de forma significativa da distribución atopada durante a inferencia. Pódese aplicar un modelo BERT adestrado á representación de palabras (como Word2Vec), onde se executaría sobre frases que non conteñan ningún símbolo `[MASK]`. Máis tarde compróbase que os obxectivos de adestramento máis diversos son xeralmente mellores.

Como exemplo ilustrativo, considérese a oración "o meu can é bonito". Primeiro dividiríase en porcións como "o1 meu2 can3 é4 bonito5". Despois escolleríase unha porción aleatoria na oración, por exemplo, a quinta porción, "bonito5". A continuación, habería tres posibilidades:

* cunha probabilidade do 80%, a ficha escollida está enmascarada, resultando "o1 meu2 can3 é4 `[MASK]`5";
* cunha probabilidade do 10%, a ficha escollida substitúese por unha ficha aleatoria mostrada uniformemente, como *feliz*, o que resulta en "o1 meu2 can3 é4 feliz5";
* cunha probabilidade do 10%, non se fai nada, o que resulta en "o1 meu2 can3 é4 bonito5".

Despois de procesar o texto de entrada, o 5º vector de saída do modelo pásase á súa capa de descodificador, o que produce unha distribución de probabilidade sobre o seu espazo de vocabulario de 30 000 dimensións.

#### Predición da seguinte frase 
miniatura| A tarefa de predición da seguinte frase.

* Por exemplo, dado "`[CLS]` o meu can é bonito `[SEP]` gústalle xogar", o modelo debería mostrar o a porción `[IsNext]`.
* Dado "`[CLS]` o meu can é bonito `[SEP]` como funcionan os imáns", o modelo debería emitir a porción `[NotNext]`.

### Axuste fino 
BERT está pensado como un modelo xeral adestrado previamente para varias aplicacións no procesamento da linguaxe natural. É dicir, despois do adestramento previo, BERT pódese perfeccionar con menos recursos en conxuntos de datos máis pequenos para optimizar o seu rendemento en tarefas específicas, como a inferencia da linguaxe natural e a clasificación de textos, e tarefas de xeración de linguaxe baseadas en secuencia a secuencia, como a resposta a preguntas e a xeración de resposta nunha conversación. 

O artigo orixinal de BERT publicou resultados que demostraban que unha pequena cantidade de axustes finos (para BERTLARGE, 1 hora en 1 Cloud TPU) permitiulle acadar un rendemento de última xeración nunha serie de tarefas de comprensión da linguaxe natural: 

* conxunto de tarefas GLUE (Avaliación Xeral da Comprensión da Linguaxe, polas súas siglas en inglés), composto por 9 tarefas;
* SQuAD (Conxunto de resposta a preguntas de Stanford) v1.1 e v2.0;
* SWAG (Situacións con xeracións adversarias).

### Custo 
BERT adestrouse no BookCorpus (800 millóns de palabras) e nunha versión filtrada da Wikipedia en inglés (2 500 millóns de palabras) sen listas, táboas e cabeceiras.

O adestramento de BERTBASE en 4 Cloud TPU (16 chips TPU en total) levou 4 días, cun custo estimado de 500 USD. Varias publicacións de investigación en 2018 e 2019 centráronse en investigar a relación detrás da saída de BERT como resultado de secuencias de entrada coidadosamente escollidas, análise de representacións vectoriais internas mediante clasificadores de sondaxe, e as relacións representadas por pesos de atención. 

## Historia 
BERT foi publicado orixinalmente polos investigadores de Google Jacob Devlin, Ming-Wei Chang, Kenton Lee e Kristina Toutanova. O deseño ten a súa orixe a partir de representacións contextuais previas ao adestramento, incluíndo a aprendizaxe de secuencias semi-supervisadas,  formación previa xerativa, ELMo,  e ULMFit.  A diferenza dos modelos anteriores, BERT é unha representación lingüística profundamente bidireccional e non supervisada, adestrada previamente usando só un corpus de texto sinxelo. Os modelos sen contexto como word2vec ou GloVe xeran unha soa representación para cada palabra no vocabulario, mentres que BERT ten en conta o contexto para cada aparición dunha palabra determinada. Por exemplo, mentres que o vector para *saltar* terá a mesma representación vectorial word2vec para ambas as súas aparicións nas frases "Vai saltar este capítulo" e "Quere saltar a cancela", BERT proporcionará unha incorporación contextualizada que será diferente segundo a oración. O 9 de decembro de 2019, informouse de que BERT fora adoptado pola Busca de Google para máis de 70 idiomas. En outubro de 2020, case todas as consultas baseadas en inglés foron procesadas por un modelo BERT.

## Variantes 
Os modelos BERT foron influentes e inspiraron moitas variantes.

**RoBERTa** (2019) conserva a arquitectura de BERT (un pouco máis grande, con 355 millóns de parámetros), pero mellora o seu adestramento, cambiando os hiperparámetros clave, eliminando a tarefa de predición da seguinte frase e utilizando tamaños de mini-lote moito maiores.

**DistilBERT** (2019) destila BERTBASE nun modelo con só o 60 % dos seus parámetros (66 millóns), á vez que conserva o 95 % das súas puntuacións de referencia. Do mesmo xeito, **TinyBERT** (2019)  é un modelo destilado con só o 28% dos seus parámetros.

**ALBERT** (2019) utilizou parámetros compartidos entre capas e experimentou variando de forma independente o tamaño oculto e o tamaño de saída da capa de incrustación de palabras como dous hiperparámetros. Tamén substituíron a tarefa de predición da seguinte frase pola tarefa de predición de ordes de frases (SOP), onde o modelo debe distinguir a orde correcta de dous segmentos de texto consecutivos da súa orde inversa.

**ELECTRA** (2020) aplicou a idea de redes adversarias xerativas á tarefa de modelos de linguaxe enmascarados. En lugar de enmascarar as porcións, un pequeno modelo de linguaxe xera substitucións plausibles aleatorias e unha rede máis grande identifica estas porcións substituídas. O modelo pequeno pretende enganar ao modelo grande.

**DeBERTa** (2020) é unha variante arquitectónica significativa, cunha *atención desenredada* . A súa idea clave é tratar as codificacións posicionais e os símbolos por separado ao longo do mecanismo de atención. En lugar de combinar a codificación posicional (x_{posicion }) e codificación de porción (x_{porcion}) nun único vector de entrada (x_{entrada} = x_{posicion} + x_{porcion}), DeBERTa mantenos separados como unha tupla: (x_{position}, x_{token}). Despois, en cada capa de autoatención, DeBERTa calcula tres matrices de atención distintas, en lugar da única matriz de atención usada en BERT:

As tres matrices de atención engádense por elementos, despois pásanse por unha capa softmax e multiplícanse por unha matriz de proxección.

A codificación de posición absoluta inclúese na capa de autoatención final como entrada adicional.

## BERT multilingüe 
Despois de ter o modelo BERT funcionando para o inglés, investigadores de Google preguntáronse se se podía utilizar este modelo de linguaxe con varias linguas. Así, en 2019 crearon o BERT multilingüe, ou M-BERT, un modelo BERT que traballa con varias linguas.

En canto á súa arquitectura, M-BERT ten 12 capas de transformador, e o seu adestramento, a diferenza do BERT orixinal, fíxose con artigos da Wikipedia en 104 idiomas. No resto da súa construción e funcionamento, é semellante ao BERT orixinal. O seu refinamento baseouse no modelo de lingua cruzada, é dicir, facíase un axuste fino do modelo nunha lingua e logo avaliábase noutra diferente, para observar como o modelo relacionaba as diferentes linguas e era capaz xeneralizar. O rendemento foi impresionante, xa que o modelo daba moi bos resultados na lingua na que non foi adestrada. Mais isto non era sempre así, pois había algúns pares de linguas que non daban os números desexados, polo que non se pode usar sistematicamente para calquera idioma.

Destacar que ademais do M-BERT, tamén se creou a variante XLM-RoBERTa (modelo de linguaxe cruzada RoBERTa), que utiliza a filosofía de RoBERTa para adestrar ao modelo, utilizando múltiples linguas de diferentes corpus. Esta arquitectura mellorou ao BERT multilingüe.

## Bertinho: o BERT en galego 
Dado que se demostrou que é posible crear modelos BERT monolingües para linguas con poucos recursos (collendo, ademais dos datos na propia lingua, datos doutras linguas traducidos, para ter desta forma moitos máis datos etiquetados) que funcionan mellor que o BERT multilingüe, investigadores galegos fixeron en 2021 un modelo monolingüe para a lingua propia de Galicia. quen tamén creou un RoBERTa en galego (RoBERTinha), baseado na aproximación presentada por Pedro Javier Ortiz, Laurent Romary e Benoît Sagot.

## Notas 
## Véxase tamén 
### Outros artigos 
* GPT
* Transformador (modelo de aprendizaxe automática)
* Procesamento da linguaxe natural
* Intelixencia artificial