Pesquisadores do ETH Zurich desenvolveram uma técnica inovadora que aumenta drasticamente a eficiência das redes neurais. Ao modificar o processo de inferência, eles conseguiram reduzir significativamente as demandas computacionais dessas redes.
Em seus experimentos com o BERT, um modelo transformer amplamente utilizado em diversas tarefas de linguagem, os pesquisadores alcançaram uma redução impressionante de mais de 99% em cálculos. Esse método avançado também pode ser aplicado a modelos transformer que impulsionam grandes modelos de linguagem (LLMs) como o GPT-3, abrindo caminho para um processamento de linguagem mais rápido e eficiente.
Entendendo Redes Fast Feedforward
Os transformers, que são a espinha dorsal dos LLMs, consistem em várias camadas, incluindo camadas de atenção e camadas feedforward. As camadas feedforward, que abrangem uma parte significativa dos parâmetros do modelo, são computacionalmente intensivas, pois exigem o cálculo do produto de todos os neurônios nas dimensões de entrada.
Os pesquisadores descobriram que nem todos os neurônios nas camadas feedforward precisam ser ativados para cada entrada durante a inferência. Eles introduziram camadas de "fast feedforward" (FFF) para substituir as camadas feedforward convencionais. A FFF utiliza a multiplicação de matrizes condicional (CMM), uma operação matemática que substitui as multiplicações de matrizes densas (DMM) das redes feedforward tradicionais. Enquanto DMM envolve a multiplicação de todos os parâmetros de entrada por todos os neurônios, a CMM usa seletivamente apenas um subconjunto de neurônios para cada entrada, otimizando o processamento e reduzindo a carga computacional.
FastBERT: Uma Revolução no Processamento de Linguagem
Para testar sua técnica inovadora, os pesquisadores desenvolveram o FastBERT, uma versão modificada do modelo BERT do Google. O FastBERT melhora o desempenho ao substituir as camadas feedforward padrão por camadas fast feedforward, organizando os neurônios em uma estrutura de árvore binária balanceada que ativa apenas um ramo com base em entradas específicas.
Para avaliar as capacidades do FastBERT, a equipe ajustou vários modelos no benchmark General Language Understanding Evaluation (GLUE), uma suíte projetada para avaliar sistemas de compreensão de linguagem natural.
Os resultados foram surpreendentes: o FastBERT apresentou desempenho semelhante aos modelos BERT base de tamanho e treinamento comparáveis. Variantes ajustadas por apenas um dia em uma única GPU A6000 mantiveram pelo menos 96,0% do desempenho do BERT. Notavelmente, a melhor variante igualou o desempenho do BERT utilizando apenas 0,3% de seus neurônios.
Os pesquisadores afirmam que integrar redes fast feedforward aos LLMs oferece um grande potencial para aumentar a velocidade. Por exemplo, no GPT-3, cada camada transformer contém 49.152 neurônios; com a FFF, isso poderia ser otimizado para usar somente 16 neurônios durante a inferência, representando cerca de 0,03% dos neurônios do GPT-3.
Abordando Desafios de Otimização
Embora a multiplicação de matrizes densas tenha passado por uma grande otimização ao longo dos anos, o mesmo não pode ser dito sobre a multiplicação de matrizes condicional. Os pesquisadores notaram: “A multiplicação de matrizes densas é a operação matemática mais otimizada na história da computação.” As atuais estruturas de aprendizado profundo oferecem suporte limitado para CMM, predominantemente através de simulações de alto nível.
Para avançar nessa pesquisa, a equipe desenvolveu sua própria implementação de operações CMM, resultando em uma impressionante melhoria de velocidade de 78x durante a inferência. Eles acreditam que, com hardware aprimorado e melhores implementações de algoritmos de baixo nível, as velocidades podem superar uma melhoria de 300x. Isso abordaria significativamente um dos desafios prementes nos modelos de linguagem: gerar tokens mais rapidamente.
Conclusão
A promessa de um aumento teórico de 341x para modelos BERT-base destaca o potencial transformador de seu trabalho. Os pesquisadores esperam inspirar o desenvolvimento de primitivas de execução neural condicional dentro das interfaces de programação de dispositivos. Esta pesquisa é um passo crucial para enfrentar as limitações de memória e computacionais dos grandes modelos de linguagem, promovendo o desenvolvimento de sistemas de IA mais eficientes e robustos.