ACL2020 | FastBERT: Velocidade de inferência do vôo BERT

A pequena raposa levá-lo para desbloquear Alchemy & PNL  Cheats

Bert rápido

Desde o advento do BERT, a maioria das missões da PNL teve um salto qualitativo. O BERT Large aumentou até 7 pontos no teste GLUE. Mas o BERT também abriu o modelo de estrada "maior e mais profunda", jogadores comuns simplesmente não podem pagar por treinamento, embora jogadores avançados possam ser treinados, mas não necessariamente acessíveis.

Portanto, o desenvolvimento após o BERT também é relativamente claro, alguns dos irmãos mais velhos continuam se engajando em pré-treinamento para melhorar o efeito, quando você é desencorajado pelo BERT Large, o GPT2 é lançado e o Megatron-LM também sai, e sai em dobro. Após o T5, o DeepSpeed ​​foi dobrado. . . Cada vez, é adicionado de acordo com uma ordem de grandeza, e o resto só pode esperar e ver em silêncio, revirando "A memória não é suficiente, como treinar uma grande rede neural? 》 Veja qual truque pode ser usado.

Outra parte do grandalhão está focada em aumentar a velocidade do emagrecimento BERT. Como poda, corte de conexões extras, cabeças de atenção extra e até LayerDrop[1] Corte diretamente metade da camada Transformer; outro exemplo é a quantificação, alteração de FP32 para FP16 ou INT8; e destilação, usando um modelo de aluno para aprender o conhecimento do modelo grande, não apenas para aprender logits, mas também para obter pontos de atenção. . .

No entanto, a maioria dos métodos de perda de peso trará uma queda na precisão. A poda reduzirá diretamente a capacidade de adaptação do modelo. Embora haja uma melhoria na quantificação, também existem gargalos. A incerteza da destilação é a maior. É difícil prever que tipo de alunos seu BERT ensina.

Mas! Sim

Ontem, recebi um artigo que chamou minha atenção: "FastBERT: um BERT auto-destilável com tempo de inferência adaptável"[2] É o ACL2020 da Universidade de Pequim + Tencent + Universidade de Pequim. O autor propõe uma nova maneira de aumentar a velocidade da inferência, que é mais determinística do que a pura destilação do aluno, e pode pesar o efeito e a velocidade por si só, o que é simples e prático.

Resposta em segundo plano 【0409】 Obtenha o PDF do artigo ~

Bert rápido

Estrutura do modelo

A inovação do FastBERT é fácil de entender: é prever o rótulo da amostra após cada camada do Transformer.Se a confiança no resultado da previsão de uma determinada amostra for alta, não será necessário continuar o cálculo. O artigo chama essa lógica de mecanismo adaptativo de exemplo de amostra , que é para ajustar a quantidade de cálculo de cada amostra de forma adaptativa, amostras fáceis podem ser previstas através de uma ou duas camadas e amostras mais difíceis precisam passar por todo o processo .

Então a pergunta está chegando, o que deve ser usado para prever os resultados da camada intermediária? A solução do autor é seguir cada camada com um classificador, afinal, o classificador requer muito menos custo que o Transformer:

Nota: FLOPs (operações de ponto flutuante) são estatísticas dos cálculos de ponto flutuante fornecidos no Tensorflow

Portanto, a estrutura geral do modelo está pronta:

O autor chama o modelo BERT original como Backbone, e cada classificador é chamado Branch.

Note-se que o ramo Classificador aqui é destilado a partir do último classificador.O autor chama isso de auto-destilação . Ou seja, apenas os parâmetros da haste são atualizados nos estágios de pré-treinamento e ajuste fino. Após o ajuste fino, os parâmetros da haste são congelados e a distribuição de probabilidade do classificador da haste (professor na figura) é destilada com um classificador de ramificação (aluno na figura) .

A razão pela qual é chamada de auto-destilação é porque a destilação anterior foi feita com dois modelos: um modelo aprende o conhecimento do outro modelo e o FastBERT destila seu próprio conhecimento (ramo principal). Vale ressaltar que a parte principal do congelamento é necessária durante a destilação para garantir que o conhecimento aprendido nos estágios de pré-treinamento e ajuste fino não seja afetado, apenas o brach é usado para ajustar a distribuição do professor o máximo possível.

Então, por que não usar apenas os dados rotulados para treinar o classificador de ramificação? Como o efeito do treinamento direto não é bom (mostrando as mãos ~ A seguir, é apresentado o resultado do autor no experimento de ablação:

Pode-se observar que o resultado da não destilação não é tão bom quanto a destilação. Pessoalmente, acho isso razoável, porque esses dois métodos têm objetivos diferentes no estágio de ajuste fino. A não destilação automática é treinar todos os classificadores no estágio de ajuste fino.A função objetivo é alterada , forçando as primeiras camadas de codificadores a extrair mais recursos da tarefa. No entanto, os poderosos recursos do BERT estão intimamente relacionados à profundidade da rede; portanto, o julgamento prematuro não é necessariamente preciso, resultando em uma redução na eficácia.

Ao mesmo tempo, o uso da auto-destilação tem outra vantagem importante, ou seja, não depende mais dos dados rotulados . O efeito da destilação pode ser aprimorado por um fluxo contínuo de dados não rotulados.

Modelo de treinamento e raciocínio

Depois de entender a estrutura do modelo, o treinamento e a inferência são naturais. Apenas mais etapas de auto-destilação do que o modelo BERT comum:

  1. Pré-treinamento : é o mesmo que o modelo BERT; muitos modelos de código aberto na Internet também podem ser usados ​​à vontade ~

  2. Ajuste fino do backbone : ajuste fino do backbone, isto é, adição de um classificador ao BERT, treinamento com dados da tarefa e nenhum classificador de ramificação é usado aqui, você pode otimizar o quanto quiser.

  3. Auto-destilação para ramificação : a auto-destilação de ramificação , usando dados de tarefas não rotulados, destila a distribuição de probabilidade prevista pelo classificador de tronco para o classificador de ramificação. Aqui usamos a divergência KL para medir a distância de distribuição, e a perda é a soma da divergência KL de todos os classificadores de ramificação e de tronco.

  4. Inferência adaptativa : inferência adaptativa e filtragem camada por camada de amostras com base nos resultados do classificador de ramificação, simplesmente forneça os resultados diretamente e é difícil continuar prevendo. Aqui, o autor define um novo indicador de incerteza, que é medido pela entropia do resultado previsto: quanto maior a entropia, maior a incerteza:

Efeito

Para cada resultado da classificação, o autor usa "Velocidade" para representar o limiar da incerteza, que é proporcional à velocidade da inferência. Como quanto menor o limiar => menor a incerteza => menor o número de amostras filtradas => menor a velocidade de raciocínio.

O modelo finalmente teve um bom desempenho em 12 conjuntos de dados (6 em ​​chinês e 6 em inglês):

Pode-se observar que, quando Velocidade = 0,2, a velocidade pode ser aumentada de 1 a 10 vezes, e a redução da precisão está dentro de 0,11 pontos, e mesmo algumas tarefas foram levemente melhoradas. Por outro lado, a flutuação do DistillBERT do HuggingFace é mais intensa.A velocidade do modelo de 6 camadas é apenas duplicada, mas a queda de precisão chegará a 7 pontos.

Sumário

O FastBERT é um modelo muito prático em engenharia: ao exibir antecipadamente os resultados das previsões de amostras simples, a carga de cálculo do modelo é reduzida, aumentando assim a velocidade da inferência. Embora cada camada tenha um classificador adicional, o cálculo do classificador também é duas ordens de magnitude menor que o Transformer, que tem um pequeno efeito na velocidade. A auto-destilação subsequente de ramificação também é projetada de maneira mais inteligente, o que pode melhorar continuamente o efeito dos classificadores de ramificação usando dados não supervisionados.

Além disso, as duas idéias , mecanismo adaptativo por amostragem e Auto-destilação, também foram propostas pela primeira vez neste artigo.Pensa -se que elas desempenharão um papel no lançamento do jade e na atração do jade, o que levará a mais trabalhos desse tipo. O papel em si também tem algum espaço de imaginação, como otimizar cada classificador separadamente, porque cada ramo é independente quando o tronco é congelado; ou o descongelamento autodestilável, além de auto-destilador de dados, talvez Há melhorias de desempenho.

Vale ressaltar que Liu Weijie (Universidade de Pequim) é o K-BERTO autor de [3] também é um artigo de que gosto muito.A maneira de integrar o conhecimento no BERT é mais elegante.Eu realmente espero que o autor tenha mais idéias ~

Finalmente, voltando a exagerar, o FastBERT é realmente muito prático e não afetará o BERT em mãos.Ele só precisa destilar alguns classificadores rasos e, em seguida, adicionar o mecanismo de julgamento. E comparada à destilação instável, é mais lucrativa e estável.

O único arrependimento é que o código-fonte só será liberado quando o artigo for publicado.

https://github.com/autoliuweijie/FastBERT

Resposta em segundo plano 【0409】 Obtenha o PDF do artigo ~

Referências

[1] Reduzindo a profundidade da demanda do transformador com
desistência estruturada: https://arxiv.org/abs/1909.11556 [2] FastBERT: um BERT auto-destilável com tempo de inferência adaptável: https://arxiv.org/abs/2004.02178
[ 3] K-BERT: Habilitando a representação de idiomas com o gráfico de conhecimento: https://arxiv.org/abs/1909.07606

Pode

Pode

Feliz

Huan

Casa bonito de Xi Xiaoyao

_

Siga & Star Xiaoxi, leve-o para desbloquear truques de IA

Surpresa na parte inferior da página inicial do número de inscrição

发布了45 篇原创文章 · 获赞 2 · 访问量 5228

Acho que você gosta

Origin blog.csdn.net/xixiaoyaoww/article/details/105424608
Recomendado
Clasificación