PQRNN mais leve: com base na projeção, consegue um processamento de PNL rápido e paralelo

Por Prabhu Kaliamoorthi, engenheiro de software, Google Research 

As redes neurais profundas mudaram fundamentalmente o processamento de linguagem natural (PNL) nos últimos dez anos, principalmente por meio de sua aplicação em data centers que usam hardware dedicado. No entanto, as necessidades de proteger a privacidade do usuário, eliminando atrasos na rede, implementando funções offline e reduzindo os custos operacionais estimularam o rápido desenvolvimento de pesquisas sobre a implementação de modelos de PNL no dispositivo, em vez de no data center. No entanto, os dispositivos móveis têm memória e capacidade de processamento limitados, o que exige que os modelos executados neles sejam pequenos e eficientes, sem sacrificar a qualidade.

No ano passado, lançamos um modelo de rede neural chamado PRADO, que na época mostrava o desempenho do SOTA em diversos problemas de classificação de textos, e os parâmetros do modelo utilizado eram inferiores a 200K. A maioria dos modelos usa um número fixo de parâmetros para cada token, enquanto a estrutura de rede usada pelo modelo PRADO requer apenas alguns parâmetros para aprender o token mais relevante ou prático para a tarefa.

  • PRADO
    https://www.aclweb.org/anthology/D19-1506.pdf

Hoje, apresentaremos o pQRNN, uma nova extensão de modelo que aprimora o desempenho SOTA da PNL com o menor tamanho de modelo. A novidade do pQRNN é que ele pode combinar operações de projeção simples com um codificador quase RNN para obter um processamento paralelo rápido. Nossos resultados mostram que o modelo pQRNN pode atingir  efeitos de nível de BERT em tarefas de classificação de texto com um pequeno número de parâmetros .

  • 准 RNN
    https://arxiv.org/abs/1611.01576

Como funciona o PRADO

Quando foi desenvolvido há um ano, o PRADO usou o conhecimento específico do domínio de PNL da segmentação de texto para reduzir o tamanho do modelo e melhorar o desempenho. Geralmente, a entrada de texto do modelo NLP é primeiro processada em um formato adequado para redes neurais. O método consiste em dividir o texto em fragmentos (token) correspondentes aos valores no dicionário geral predefinido (lista de todos os tokens possíveis). A rede neural então usa vetores de parâmetros treináveis ​​(incluindo a incorporação de tabelas de vetores) para identificar cada segmento de maneira única. No entanto, a forma como o texto é segmentado pode ter um impacto significativo no desempenho, tamanho e latência do modelo. A figura a seguir mostra os vários métodos usados ​​pela comunidade da PNL e suas vantagens e desvantagens.

  • Dicionário comum
    https://blog.floydhub.com/tokenization-nlp/

Como o número de segmentos de texto é um parâmetro importante de desempenho e compactação do modelo, isso levanta a questão de se o modelo de PNL precisa ser capaz de distinguir claramente cada segmento de texto possível . Para responder a essa pergunta, vamos dar uma olhada na complexidade inerente das tarefas da PNL.

Apenas algumas tarefas de PNL (como modelos de linguagem e tradução automática) precisam conhecer as diferenças sutis entre os segmentos de texto e, portanto, precisam ser capazes de identificar exclusivamente todos os segmentos de texto possíveis. Em contraste, a maioria das outras tarefas pode ser resolvida conhecendo um pequeno subconjunto desses fragmentos. Além disso, esse subconjunto de fragmentos relacionados à tarefa não é muito comum, porque a maioria dos fragmentos é obviamente dedicada a artigos, como a, an, the,  etc. Para muitas tarefas, esses artigos não são importantes. Portanto, deixar a rede determinar o segmento mais relevante para uma determinada tarefa pode obter um melhor desempenho. Além disso, a rede não precisa identificar exclusivamente esses segmentos, mas apenas os clusters de segmentos de texto. Por exemplo, o classificador de sentimento só precisa saber os clusters de fragmentos que estão altamente relacionados ao sentimento no texto.

Com base na análise acima, o PRADO foi projetado para aprender grupos de segmentos de texto a partir de palavras, em vez de fragmentos de palavras ou caracteres, e pode atingir um bom desempenho em tarefas de PNL de baixa complexidade. Como a palavra granularidade é mais significativa e as palavras mais relevantes para a maioria das tarefas são muito poucas, os parâmetros do modelo necessários para aprender um subconjunto simplificado dos grupos de palavras relacionados são correspondentemente muito menos.

Melhorar PRADO

Com base no sucesso do PRADO, desenvolvemos um modelo de PNL aprimorado chamado pQRNN. Este modelo consiste em três módulos básicos, um é um operador de projeção que converte o token no texto em uma sequência vetorial ternária, uma camada de gargalo densa (Bottleneck Layer) e alguns codificadores QRNN empilhados.

A implementação da camada de projeção no pQRNN é a mesma que no PRADO, o que pode ajudar o modelo a aprender o token mais relevante sem um conjunto fixo de parâmetros a definir. Primeiro, ele registra o token no texto e, em seguida, usa uma função de mapeamento simples para convertê-lo em um vetor de característica ternário. Desta forma, uma sequência vetorial ternária com distribuição simétrica balanceada é obtida, que representa o texto de forma única. Esta representação não pode ser utilizada diretamente porque não fornece as informações necessárias para resolver a tarefa alvo e a rede não pode controlar esta representação. Nós a combinamos com a densa camada de gargalo para fazer a rede aprender a representação de cada palavra relevante para a tarefa atual. A representação produzida pela camada gargalo ainda não considera o contexto da palavra. Usamos a pilha do codificador QRNN bidirecional para aprender a representação do contexto e obter uma rede que pode aprender a representação do contexto a partir da entrada de texto sem nenhum pré-processamento.

desempenho

Avaliamos o pQRNN no conjunto de dados civil_comments e o comparamos com o modelo BERT na mesma tarefa . Justamente por causa da relação proporcional entre o tamanho do modelo e o número de parâmetros, pQRNN é muito menor do que BERT. Além disso, pQRNN também foi quantificado para reduzir ainda mais o tamanho do modelo para um quarto do original. A versão pública pré-treinada do BERT não tem um bom desempenho na tarefa. Portanto, para obter os melhores resultados, compare a versão pré-treinada do BERT em várias fontes de dados multilíngues relacionadas.

  • civil_comments
    https://tensorflow.google.cn/datasets/catalog/civil_comments

  • Quantificação
    https://arxiv.org/abs/1712.05877

Capturamos a área sob a curva (AUC) dos dois modelos: sem qualquer forma de pré-treinamento e apenas treinamento em dados supervisionados, usando 1,3 milhões de parâmetros quantizados (8 bits), a AUC de pQRNN é 0,963. Pré-treinamento em várias fontes de dados diferentes e ajuste fino em dados supervisionados, usando 110 milhões de parâmetros de ponto flutuante, a AUC do modelo BERT é 0,976

Em conclusão

Usamos o modelo PRADO da geração anterior para mostrar como usá-lo como base para a próxima geração do modelo de classificação de texto SOTA mais leve. Lançamos o modelo pQRNN e mostramos que esta nova arquitetura pode quase atingir o desempenho de nível de BERT, enquanto o número de parâmetros usados ​​é apenas um terço do original, e é treinado apenas em dados supervisionados. Para promover ainda mais a pesquisa nesta área, abrimos o código-fonte do modelo PRADO e incentivamos a comunidade a usá-lo como ponto de partida para uma nova arquitetura de modelo.

  • Modelo PRADO de código aberto
    https://github.com/tensorflow/models/tree/master/research/sequence_projection

obrigado

Agradecemos a Yicheng Fan, Márius Šajgalík, Peter Young e Arun Kandoor por suas contribuições para o trabalho de código aberto e sua ajuda no aprimoramento do modelo. Gostaríamos também de agradecer a Amarnag Subramanya, Ashwini Venkatesh, Benoit Jacob, Catherine Wah, Dana Movshovitz-Attias, Dang Hien, Dmitry Kalenichenko, Edward Gonzàlez i Pellicer, Edward Li, Erik Vee, Evgeny Livshits, Gaurav Nemade, Jeffrey Korenmade, Jeffrey Korenmade, Jeffrey Korenmade, Jeffrey Suporte de Julia Proskurnia, Rushin Shah, Shirin Badiezadegan, Sidharth KV, Victor Cărbune e equipe Learn2Compress. Gostaríamos de agradecer a Andrew Tomkins e Patrick Mcgregor por patrocinar o projeto de pesquisa.

Mais leituras relacionadas com IA:

Acho que você gosta

Origin blog.csdn.net/jILRvRTrc/article/details/109301854
Recomendado
Clasificación