Optimizing Transformer Neural Network for Real-Time Outlier Detection on FPGAs
Este artigo propõe e demonstra uma arquitetura de rede neural Transformer otimizada, implementada em um PYNQ-Z2 FPGA, para permitir a detecção de outliers em tempo real, de forma eficiente e com baixa latência, em dados de séries temporais financeiras.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você é um detetive tentando identificar um ladrão em uma cidade lotada. A cidade é um rio de números, fluindo constantemente com os preços de ações, a temperatura de servidores ou o número de pessoas em uma fila de táxi. Na maior parte do tempo, esse rio flui suavemente, mas ocasionalmente, uma rocha gigante — um "glitch" ou um "outlier" — salta no fluxo, causando um respingo que pode arruinar tudo rio abaixo. No mundo das finanças e da ciência de dados, esses respingos são perigosos; eles podem enganar computadores para que tomem decisões ruins. Por muito tempo, capturar esses respingos era lento, como tentar encontrar uma agulha em um palheiro manualmente. Mas recentemente, cientistas construíram um detetive superinteligente chamado "Transformer". Pense em um Transformer como um bibliotecário genial que consegue ler um milhão de livros de uma vez e lembrar instantaneamente como uma história da página um se conecta à página mil. Este bibliotecário é incrível em detectar padrões estranhos, mas há um porém: o bibliotecário é tão pesado e lento que não consegue correr rápido o suficiente para pegar o ladrão em tempo real.
Entre o FPGA, que é como um motor de carro de corrida personalizado, superveloz e que você pode reconfigurar sobre a hora. A grande questão que este artigo aborda é: Podemos pegar nosso bibliotecário genial e pesado (o Transformer) e ensiná-lo a dirigir este carro de corrida (o FPGA) para que ele possa detectar os dados ruins instantaneamente? Os autores, Ilia Sobakinskikh e Paul Alexander Bilokon, propuseram-se a ver se conseguiam encolher esse cérebro gigante para caber dentro de um chip pequeno e reconfigurável sem perder sua inteligência. Eles queriam provar que você não precisa de um supercomputador massivo para encontrar esses glitches financeiros; você pode fazer isso em uma placa minúscula, rápido o suficiente para interromper um desastre antes que ele aconteça.
A Corrida para Capturar o Glitch
Os autores começaram analisando o problema da "detecção de anomalias". Em termos simples, isso é apenas encontrar os números estranhos em uma lista. Eles se concentraram em "anomalias de ponto", que são como picos repentinos no preço de uma ação — pense em uma ação saltando de US$ 100 para US$ 101 em uma fração de segundo quando não deveria. Para capturar esses eventos, eles usaram um tipo específico de IA chamado Transformer. Ao contrário dos modelos de IA mais antigos que leem dados um passo de cada vez (como ler um livro palavra por palavra), os Transformers olham para o quadro geral de uma só vez, entendendo como o preço de hoje se relaciona com o preço de semanas atrás.
No entanto, executar esses Transformers é geralmente lento e caro. Os autores decidiram tentar executá-los em um FPGA, especificamente uma placa chamada PYNQ-Z2. Para fazer isso funcionar, eles tiveram que ser muito astutos na forma como programaram o chip. Eles trataram a matemática dentro do Transformer como uma linha de montagem de uma fábrica. Em vez de esperar que um cálculo terminasse antes de começar o próximo, eles usaram uma técnica chamada "pipelining". Imagine um lava-jato onde o primeiro carro ainda está sendo ensaboado enquanto o segundo já está sob o ciclo de enxágue; isso mantém a linha se movendo rápido. Eles também usaram "unrolling", que é como ter dez trabalhadores fazendo a mesma tarefa ao mesmo tempo, em vez de um trabalhador fazendo a mesma tarefa dez vezes seguidas.
Os Resultados: Velocidade vs. Inteligência
A equipe testou duas versões de seu detetive de IA. A primeira era o "Vanilla Transformer", a versão padrão e pesada. A segunda era um "Linear Transformer", uma versão mais leve e rápida que pula parte da matemática pesada. Eles rodaram esses modelos no FPGA e os compararam com um processador de computador padrão (CPU).
Os resultados foram um conto de dois diferentes equilíbrios. O Transformer padrão, quando otimizado para o FPGA, tornou-se incrivelmente rápido. Ele conseguiu processar dados em apenas 37,14 microssegundos (isso é 0,000037 segundos!). Sem essas otimizações especiais, a mesma tarefa levava 347,45 microssegundos, sendo dez vezes mais lenta. O Linear Transformer foi ainda mais rápido, registrando 29,86 microssegundos.
Mas a velocidade veio com um preço. Para obter essa velocidade, o chip teve que trabalhar muito mais. O Transformer otimizado usou 90% dos "LUTs" disponíveis (pequenos interruptores lógicos dentro do chip) e 30% dos "FFs" (bits de memória), enquanto a versão lenta e não otimizada usou apenas 10% e 2%, respectivamente. É como atualizar uma bicicleta para uma motocicleta: você vai muito mais rápido, mas precisa de um motor muito maior e mais combustível.
O Detetive Ainda Fez o Trabalho?
Velocidade é ótimo, mas o detetive ainda é inteligente? Os autores testaram seus modelos com dados do mundo real, incluindo demanda de táxis de Nova York, logs de desempenho de servidores e preços de ações de alta frequência. Eles compararam sua IA contra um modelo simples de "Regressão Linear", que é como um detetive que olha apenas para o número mais recente e adivinha com base nele.
Os resultados mostraram que os Transformers foram, em geral, muito melhores em detectar as anomalias do que o modelo simples. No conjunto de dados KPI (logs de servidor), o Transformer padrão alcançou uma precisão de 0,98 nos dados de treinamento e 0,97 nos dados de validação, com um F1 score (um equilíbrio entre capturar coisas ruins e não dar alarmes falsos) de 0,71 e 0,76, respectivamente. O Linear Transformer foi ligeiramente menos preciso, mas ainda assim forte. No entanto, nos dados do mercado de ações (FI2010), os modelos tiveram um pouco mais de dificuldade, com os F1 scores caindo para 0,06 e 0,09, sugerindo que, embora sejam rápidos, não são perfeitos para detectar cada glitch em todos os tipos de dados.
Curiosamente, os autores descobriram que algumas características geralmente consideradas essenciais para Transformers, como o "positional encoding" (uma forma de dizer à IA a ordem dos números), na verdade tornaram o treinamento instável e pior em sua configuração específica. Eles tiveram que desligar essas características para que os modelos funcionassem adequadamente no chip.
A Conclusão
Este artigo não afirma ter resolvido o mistério da detecção de anomalias para sempre. Em vez disso, sugere que podemos encolher com sucesso esses poderosos modelos de IA para caber em chips pequenos e rápidos. Os autores mostraram que, ao usar truques de programação inteligentes como pipelining e unrolling, você pode fazer um Transformer rodar 10 vezes mais rápido em um FPGA. Embora essa velocidade venha com um custo pesado em termos de recursos do chip, ela prova que a detecção de anomalias em tempo real e alta velocidade é possível sem a necessidade de um enorme data center. É uma prova de conceito de que o futuro de capturar glitches financeiros pode não estar em uma sala de servidores gigante, mas em um chip pequeno e reconfigurável correndo pelos dados em uma velocidade de relâmpago.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.