Acelere com BERT: Modelos de Otimização de PNL

Publicados: 2022-03-11

Acelerando a PNL com BERT: resultados de classe mundial com 100 vezes menos dados

Existem duas dificuldades principais ao construir modelos de classificação de processamento de linguagem natural (NLP) de aprendizado profundo.

  1. Coleta de dados (obtendo milhares ou milhões de pontos de dados classificados)
  2. Arquitetura e treinamento de aprendizado profundo

Nossa capacidade de construir modelos complexos de aprendizado profundo que são capazes de entender a complexidade da linguagem normalmente exigiu anos de experiência nesses domínios. Quanto mais difícil for o seu problema, quanto mais diversificada for a sua saída, mais tempo você precisará gastar em cada uma dessas etapas.

A coleta de dados é onerosa, demorada, cara e é o fator limitante número um para projetos de PNL bem-sucedidos. Preparar dados, construir pipelines resilientes, fazer escolhas entre centenas de opções de preparação em potencial e preparar o “modelo” pode facilmente levar meses de esforço, mesmo com engenheiros talentosos de aprendizado de máquina. Por fim, o treinamento e a otimização de modelos de aprendizado profundo exigem uma combinação de compreensão intuitiva, conhecimento técnico e capacidade de lidar com um problema.

Neste artigo, abordaremos

  1. Tendências em aprendizado profundo para PNL: como o aprendizado de transferência está tornando os modelos de classe mundial em código aberto
  2. Introdução ao BERT: Uma introdução à “ferramenta” de PNL mais poderosa até hoje – Representações de codificador bidirecional de transformadores (BERT)
  3. Como o BERT funciona e por que ele mudará a maneira como as empresas executam projetos de PNL

Tendências em Deep Learning

Naturalmente, a otimização desse processo começou com uma precisão cada vez maior. As redes LSTM (memória de longo prazo) revolucionaram muitas tarefas de PNL, mas eram (e são) incrivelmente famintas por dados. Otimizar e treinar esses modelos pode levar dias ou semanas em máquinas grandes e caras. Finalmente, a implantação desses grandes modelos em produção é cara e trabalhosa.

Para reduzir esses fatores de criação de complexidade, o campo da visão computacional há muito faz uso do aprendizado de transferência. O aprendizado de transferência é a capacidade de usar um modelo treinado para uma tarefa diferente, mas semelhante, para acelerar sua solução em uma nova. É preciso muito menos esforço para treinar novamente um modelo que já pode categorizar árvores do que treinar um novo modelo para reconhecer arbustos do zero.

Imagine um cenário em que alguém nunca tenha visto um arbusto, mas tenha visto muitas árvores em suas vidas. Você acharia muito mais fácil explicar a eles como é um arbusto em termos do que eles sabem sobre árvores, em vez de descrever um arbusto do zero. O aprendizado de transferência é uma maneira muito humana de aprender, por isso faz sentido intuitivo que isso funcione em tarefas de aprendizado profundo.

BERT significa que você precisa de menos dados, menos tempo de treinamento e obtém mais valor comercial. A qualidade dos produtos de PNL que qualquer empresa pode construir tornou-se de classe mundial.

Entra BERT

O BERT faz uso dos chamados transformadores e é projetado para produzir codificações de frases. Essencialmente, o BERT é um modelo de linguagem baseado em um modelo específico de aprendizado profundo. Ele foi desenvolvido especificamente para fornecer uma representação contextual e numérica de uma frase ou uma sequência de frases. Essa representação digital é a entrada para um modelo raso e descomplicado. Não só isso, mas os resultados são geralmente superiores e requerem uma fração dos dados de entrada para uma tarefa que ainda não foi resolvida.

Imagine poder passar um dia coletando dados em vez de um ano e poder construir modelos em torno de conjuntos de dados que, de outra forma, você nunca teria dados suficientes para criar um modelo LSTM. O número de tarefas de PNL que seriam abertas para um negócio que, antes, não podia arcar com o tempo de desenvolvimento e o conhecimento necessário é impressionante.

BERT vs LSTM ilustrado

Como funciona o BERT

Na PNL tradicional, o ponto de partida para o treinamento do modelo são os vetores de palavras. Os vetores de palavras são uma lista de números [0,55, 0,24, 0,90, …] que tentam representar numericamente o que essa palavra significa. Com uma representação numérica, podemos usar essas palavras no treinamento de modelos complexos e, com vetores de palavras grandes, podemos incorporar informações sobre palavras em nossos modelos.

O BERT faz algo semelhante (na verdade, seu ponto de partida são vetores de palavras), mas cria uma representação numérica de uma frase inteira de entrada (ou frases).

Comparado aos modelos LSTM, o BERT faz muitas coisas de maneira diferente.

  1. Ele lê todas as palavras de uma só vez, em vez da esquerda para a direita ou da direita para a esquerda
  2. 15% das palavras são selecionadas aleatoriamente para serem “mascaradas” (literalmente substituídas pelo token [MASK]) durante o tempo de treinamento
    • 10% das palavras selecionadas aleatoriamente permanecem inalteradas
    • 10% das palavras mascaradas são substituídas por palavras aleatórias
    • (a) e (b) trabalham juntos para forçar o modelo a prever cada palavra na frase (os modelos são preguiçosos)
  3. O BERT então tenta prever todas as palavras na frase, e apenas as palavras mascaradas contribuem para a função de perda - inclusive as palavras inalteradas e substituídas aleatoriamente
  4. O modelo ajustou a previsão da próxima frase. Nesta etapa, o modelo tenta determinar se uma determinada frase é a próxima frase no texto

A convergência é lenta e o BERT leva muito tempo para treinar. No entanto, ele aprende as relações contextuais no texto muito melhor. Os vetores de palavras são representações muito superficiais que limitam a complexidade que podem modelar - o BERT não tem essa limitação.

A maioria das empresas pode usar os modelos pré-treinados que utilizaram várias GPUs e levaram dias para treinar para sua aplicação. Existem poucos casos em que os modelos BERT existentes não podem ser usados ​​no local ou ajustados para um caso de uso específico. O BERT permite que uma equipe acelere as soluções em dez vezes. Pode-se mover para identificar uma solução de negócios, para construir uma prova de conceito e, finalmente, mover esse conceito para produção em uma fração do tempo.

Implementando o BERT e comparando o valor do negócio

Como este artigo se concentra na aplicação comercial e de engenharia da construção de um produto real, criaremos e treinaremos dois modelos para entender melhor o valor comparativo.

  1. BERT: O pipeline de BERT mais simples. Processamos o texto de maneira padrão, produzimos as codificações de sentença BERT e alimentamos essas codificações de sentença em uma rede neural superficial
  2. LSTM: A arquitetura padrão Incorporar - Codificar - Atender - Prever (foto acima)

A tarefa? Prevendo a origem dos filmes com base em seu enredo do IMDB. Nosso conjunto de dados abrange filmes americanos, australianos, britânicos, canadenses, japoneses, chineses, sul-coreanos e russos, além de dezesseis outros filmes para um total de 24 origens. Temos pouco menos de 35.000 exemplos de treinamento no total.

Aqui está um trecho de exemplo de um gráfico.

Milhares de anos atrás, Steppenwolf e suas legiões de Parademons tentam dominar a Terra com as energias combinadas de três Caixas Maternas. Eles são frustrados por um exército unificado que inclui os Deuses do Olimpo, Amazonas, Atlantes, humanidade e a Tropa dos Lanternas Verdes. Depois de repelir o exército de Steppenwolf, as Mother Boxes são separadas e escondidas em locais do planeta. No presente, a humanidade está de luto pelo Superman, cuja morte desencadeia a reativação das Caixas Maternas e o retorno de Steppenwolf à Terra em um esforço para recuperar o favor de seu mestre, Darkseid. Steppenwolf tem como objetivo reunir os artefatos para formar “The Unity”, que destruirá a ecologia da Terra e a terraformará à imagem de…

Se você não adivinhou, este é o enredo da Liga da Justiça – um filme americano.

Os resultados

Treinamos um conjunto diversificado de parâmetros para entender como os resultados responderam a quantidades variadas de dados e tamanhos de modelo. Como dissemos, o valor agregado mais significativo do BERT é a necessidade de muito menos dados.

Para o modelo LSTM, treinamos o maior modelo possível em nossa GPU e variamos o tamanho do vocabulário e o comprimento da palavra para encontrar o modelo com melhor desempenho. Para o modelo BERT, não tínhamos nada além de uma única camada.

Corrigimos nosso conjunto de testes em todas essas amostras, então estamos pontuando consistentemente o mesmo conjunto de treinamento.

Resultados ao usar o BERT PNL

Nesta tarefa, o modelo treinado usando codificações de sentença BERT atinge um impressionante F1-score de 0,84 após apenas 1.000 amostras. A rede LSTM nunca excede 0,60. Ainda mais impressionante, treinar os modelos BERT levou em média 1/20 do tempo do que preparar os modelos LSTM.

Conclusão

Por qualquer métrica, esses resultados apontam para uma revolução na PNL. Usando 100 vezes menos dados e 20 vezes menos tempo de treinamento, alcançamos resultados de classe mundial. A capacidade de treinar modelos de alta qualidade em segundos ou minutos, em vez de horas ou dias, abre a PNL em áreas onde antes não era possível.

O BERT tem muito mais usos do que o deste post. Existem modelos multilíngues. Ele pode ser usado para resolver muitas tarefas diferentes de PNL, seja individualmente como neste post ou simultaneamente usando várias saídas. As codificações de sentença BERT estão definidas para se tornar a pedra angular de muitos projetos de PNL daqui para frente.

O código por trás deste post está disponível no Github. Eu também encorajo os leitores a verificarem o Bert-as-a-service, que foi a pedra angular da construção das codificações de frases BERT para este post.

Relacionado: Obtendo o máximo de modelos pré-treinados