BERT (modelo de linguagem)

From Systems analysis wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, representações de codificador bidirecional de Transformers) é um grande modelo de linguagem (LLM) para a compreensão de linguagem natural, desenvolvido por pesquisadores do Google e apresentado em 2018. O BERT marcou uma nova era no processamento de linguagem natural (PLN), demonstrando um desempenho sem precedentes em uma ampla gama de tarefas e estabelecendo o paradigma de "pré-treinamento + ajuste fino" (pre-train & fine-tune) como o padrão na indústria.

A principal inovação do BERT é sua arquitetura profundamente bidirecional, que permite ao modelo considerar o contexto de uma palavra simultaneamente à esquerda e à direita em todas as camadas da rede. Isso é alcançado através de uma nova tarefa de pré-treinamento — Modelagem de Linguagem Mascarada (MLM).

Nome e princípio de funcionamento

A sigla BERT significa Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Bidirecional): Indica a principal característica do modelo — a capacidade de processar o contexto de uma palavra em ambas as direções (da esquerda para a direita e da direita para a esquerda) simultaneamente. Diferente de modelos unidirecionais (como o GPT), que ao processar uma palavra veem apenas o contexto que a precede, o BERT vê a sequência inteira, o que lhe permite formar uma compreensão mais profunda e precisa do significado da palavra.
  • Encoder (Codificador): Significa que o BERT utiliza apenas a parte de codificação da arquitetura Transformer. A tarefa do codificador é ler a sequência de texto de entrada e criar uma rica representação contextual (vetor) para cada token. O BERT não foi projetado para gerar texto de forma livre, como os modelos decodificadores.
  • Representations (Representações): O modelo é treinado para criar representações numéricas de alta qualidade (vetores ou embeddings) para palavras e frases, que podem então ser usadas para resolver várias tarefas de PLN.
  • from Transformers: Indica que a arquitetura do modelo é totalmente baseada no Transformer.

História da criação

O desenvolvimento do BERT foi o resultado de vários avanços importantes em PLN:

  1. Embeddings contextuais: Modelos como Word2vec e GloVe criavam vetores estáticos para palavras, sem levar em conta o contexto. O modelo ELMo (2018) foi um passo à frente, gerando representações dependentes do contexto com a ajuda de redes LSTM bidirecionais; no entanto, essa bidirecionalidade era "superficial" (uma concatenação de dois modelos unidirecionais).
  2. Aprendizagem por transferência e GPT: Em meados de 2018, a OpenAI apresentou o modelo GPT, que demonstrou a eficácia do pré-treinamento de um grande modelo Transformer em dados não rotulados, seguido de ajuste fino (fine-tuning) em tarefas específicas. No entanto, o GPT era estritamente unidirecional (da esquerda para a direita), o que limitava suas capacidades em tarefas que exigiam a compreensão do contexto completo.

Cientes dessas limitações, os pesquisadores do Google, liderados por Jacob Devlin, desenvolveram o BERT para criar um modelo verdadeiramente e profundamente bidirecional. O artigo sobre o BERT foi publicado no arXiv em outubro de 2018, e o código e os modelos pré-treinados foram disponibilizados publicamente, o que gerou um interesse explosivo na comunidade científica. O BERT quebrou recordes em 11 benchmarks-chave de PLN, incluindo GLUE e SQuAD, e foi chamado de "o momento ImageNet" da PLN, pois um único modelo universal poderia ser facilmente adaptado para múltiplas tarefas.

Arquitetura

O BERT é totalmente baseado na parte de codificação (encoder) da arquitetura Transformer. Ele consiste em várias camadas idênticas empilhadas umas sobre as outras. Existem duas versões principais:

  • BERT-Base: 12 camadas, 12 cabeças de atenção, tamanho do estado oculto de 768, número total de parâmetros de ~110 milhões.
  • BERT-Large: 24 camadas, 16 cabeças de atenção, tamanho do estado oculto de 1024, número total de parâmetros de ~340 milhões.

Cada camada contém duas subcamadas principais:

  1. Mecanismo de autoatenção de múltiplas cabeças (Multi-Head Self-Attention): Permite que cada token na sequência de entrada "preste atenção" a todos os outros tokens, ponderando sua importância para determinar seu próprio significado contextual.
  2. Rede neural feed-forward (Feed-Forward Network): Aplicada a cada token separadamente.

Dados de entrada

Para funcionar corretamente, o BERT requer uma formatação especial dos dados de entrada. A sequência de tokens fornecida como entrada sempre começa com um token especial `[CLS]` (classification), que é usado para tarefas de classificação de texto inteiro. Se um par de frases é fornecido como entrada (por exemplo, em tarefas de sistema de perguntas e respostas), elas são separadas pelo token `[SEP]` (separator).

A representação final de cada token na entrada é a soma de três embeddings:

  • Embedding de token: Vetor correspondente a um token específico do vocabulário (o BERT usa a tokenização WordPiece).
  • Embedding de segmento: Indica a qual frase (a primeira ou a segunda) o token pertence.
  • Embedding posicional: Indica a posição do token na sequência, já que a arquitetura Transformer por si só não considera a ordem das palavras.

Tarefas de pré-treinamento

Para garantir uma bidirecionalidade profunda, o BERT é treinado em duas tarefas únicas simultaneamente.

Modelagem de Linguagem Mascarada (MLM)

Esta é a principal inovação do BERT. Em vez de prever a próxima palavra, como nos modelos de linguagem padrão, o BERT prevê palavras aleatoriamente "mascaradas" em uma frase. O processo é o seguinte:

  • Da sequência de entrada, 15% dos tokens são selecionados aleatoriamente.
  • Desses 15%:
    • 80% são substituídos pelo token especial `[MASK]`.
    • 10% são substituídos por um token aleatório do vocabulário.
    • 10% permanecem inalterados.
  • A tarefa do modelo é prever os valores originais desses 15% dos tokens, com base no contexto ao redor deles (à esquerda e à direita).

Este esquema força o modelo a aprender relações semânticas e sintáticas profundas entre as palavras e permite que ele seja verdadeiramente bidirecional.

Previsão da Próxima Sentença (NSP)

Esta tarefa foi desenvolvida para ensinar o BERT a entender as relações entre frases, o que é crucial para tarefas como sistemas de perguntas e respostas ou análise de implicação textual (NLI). O modelo recebe um par de frases (A e B) e deve prever se a frase B é uma continuação lógica da frase A.

  • Em 50% dos casos, B é de fato a próxima frase do texto original.
  • Em 50% dos casos, B é uma frase aleatória retirada de outra parte do corpus.

Pesquisas posteriores (por exemplo, no modelo RoBERTa) mostraram que a tarefa NSP é menos importante que a MLM e pode ser abandonada em favor de esquemas de treinamento mais eficientes, mas no BERT original, ela desempenhava um papel importante.

Aplicação e ajuste fino (Fine-Tuning)

A força do BERT reside no paradigma da aprendizagem por transferência. Após um pré-treinamento em grande escala e dispendioso em enormes corpus (Wikipedia + BooksCorpus), o modelo pré-treinado pode ser fácil e rapidamente ajustado (fine-tuned) para resolver uma tarefa aplicada específica.

O processo de ajuste fino geralmente se parece com isto: 1. Uma pequena camada não treinada, específica para a tarefa (por exemplo, um classificador para análise de sentimento), é adicionada à arquitetura do BERT pré-treinado. 2. O modelo inteiro (incluindo os pesos do BERT e a nova camada) é treinado em um pequeno conjunto de dados rotulados para essa tarefa específica.

Exemplos de tarefas para as quais o BERT é adaptado:

  • Classificação de texto (análise de sentimento, filtros de spam): Um classificador é adicionado à saída do token `[CLS]`.
  • Sistemas de perguntas e respostas (por exemplo, SQuAD): O modelo é treinado para prever os tokens de início e fim da resposta em um texto fornecido.
  • Reconhecimento de entidades nomeadas (NER): Um classificador é adicionado à saída de cada token para determinar se o token faz parte de um nome, organização, data, etc.

Variantes e modelos derivados

O sucesso do BERT levou ao surgimento de uma família inteira de modelos baseados em suas ideias:

  • RoBERTa (da Facebook AI): Um "BERT robustamente otimizado". Não é uma nova arquitetura, mas sim o resultado de um treinamento mais cuidadoso e prolongado do BERT: com mais dados, sem a tarefa NSP e com mascaramento dinâmico. O RoBERTa mostrou que o BERT original estava "sub-treinado" e o superou em todos os principais benchmarks.
  • DistilBERT (da Hugging Face): Uma versão reduzida do BERT, criada usando a técnica de destilação de conhecimento. O DistilBERT é 40% menor, 60% mais rápido e mantém 97% do desempenho do BERT, tornando-o ideal para uso em produção e em dispositivos com recursos limitados.
  • ALBERT (A Lite BERT, do Google): Uma versão otimizada para reduzir o número de parâmetros. Utiliza duas técnicas-chave: fatorização de embeddings e compartilhamento de parâmetros entre camadas (cross-layer parameter sharing). Isso permite criar modelos muito maiores com um número menor de parâmetros.
  • mBERT (Multilingual BERT): Uma versão do BERT pré-treinada em 104 idiomas simultaneamente. Mostrou uma capacidade surpreendente de transferência de conhecimento entre idiomas.
  • Modelos específicos de domínio: Muitos modelos ajustados em dados de áreas específicas, como BioBERT (biomedicina), SciBERT (textos científicos) e FinBERT (finanças).
  • ModernBERT (2024-2025): Uma nova geração de modelos semelhantes ao BERT de empresas como Answer.AI e LightOn, incorporando melhorias arquitetônicas modernas como RoPE (Rotary Position Embeddings) e suporte para contextos mais longos (até 8192 tokens), mantendo os princípios básicos do BERT.

Comparação com outros modelos

Comparação do BERT com outras arquiteturas-chave
Modelo Desenvolvedor Arquitetura Direção do contexto Tarefa principal
BERT Google Codificador Bidirecional Compreensão de texto, classificação, extração
GPT OpenAI Decodificador Unidirecional (da esquerda para a direita) Geração de texto, continuação de sequência
XLNet Google / CMU Autorregressivo (permutacional) Bidirecional (em teoria) Compreensão de texto (alternativa ao MLM)
T5 Google Codificador-Decodificador Bidirecional (codificador) + Unidirecional (decodificador) Transformação universal "texto para texto"

Impacto

O BERT causou uma verdadeira revolução na PLN e lançou as bases para muitos desenvolvimentos subsequentes:

  1. Estabeleceu o paradigma de "pré-treinamento + ajuste fino" como a abordagem dominante em PLN.
  2. Provou a importância do contexto bidirecional profundo para a compreensão da linguagem.
  3. Reduziu a barreira de entrada para a criação de sistemas de PLN de alto desempenho, já que pesquisadores e desenvolvedores não precisavam mais criar arquiteturas complexas do zero para cada tarefa.
  4. Foi integrado à Busca do Google, o que se tornou uma das maiores atualizações do motor de busca em toda a sua história e demonstrou claramente a utilidade prática do modelo.
  5. Gerou todo um ecossistema de modelos derivados, ferramentas e pesquisas ("BERTology"), tornando-se um dos trabalhos mais citados no campo da IA.

Apesar de modelos mais novos e maiores, como o GPT-3 e o GPT-4, terem superado o BERT em muitos benchmarks (especialmente em tarefas generativas), o BERT e suas variantes ainda permanecem uma ferramenta poderosa e amplamente utilizada para tarefas que exigem uma profunda compreensão do texto.

Ligações externas

Literatura

  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
  • Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
  • Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
  • Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
  • Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
  • Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.