Acelere o TinyML no Navegador com WebFPGA
Um novo framework de código aberto, o WebFPGA, permite que desenvolvedores executem inferência TinyML diretamente de uma página web em menos de 10 ms. Ele utiliza um FPGA conectado via USB que consome apenas algumas dezenas de miliwatts e mantém cada byte de dados no dispositivo.
Modelos TinyML — pequenas redes neurais que rodam em microcontroladores — são agora o padrão para IA em dispositivos (on-device AI). No entanto, os desenvolvedores ainda precisam equilibrar velocidade, consumo de energia e privacidade ao levar a inferência para o navegador. As rotas tradicionais dependem do WebGPU, que roda no processador gráfico, ou de serviços em nuvem que enviam dados para fora do dispositivo. Ambos aumentam a latência, consomem mais energia e expõem dados brutos a servidores remotos.
O WebFPGA elimina esses problemas. O navegador se comunica diretamente com um FPGA via API WebUSB. A API se comunica com um controlador FTDI USB-para-serial, que programa um chip Lattice iCE40-UP5K. Após o carregamento do bitstream, o FPGA executa um runtime TinyML que processa o modelo inteiramente no acelerador de hardware. Do ponto de vista do desenvolvedor, uma única chamada JavaScript carrega um arquivo .bit e transmite tensores de entrada.
Como os números se comparam
- WebFPGA: 4 ms de latência, ~30 mW de potência, nenhum dado sai do host.
- WebGPU: 12 ms de latência, ~200 mW, CPU/GPU ainda lidam com parte do caminho de dados, portanto, permanece alguma exposição.
- Inferência em nuvem: 80 ms de latência, ~500 mW quando a pilha de rede é executada, e cada amostra viaja para um servidor remoto.
Esses números justificam claramente o uso em cenários onde cada milissegundo importa e a duração da bateria é limitada.
Cenários do mundo real
- Assistentes de voz reagem em menos de 6 ms, sem nunca enviar áudio para fora do dispositivo.
- Monitoramento de sensores industriais sinaliza anomalias no instante em que aparecem, mesmo em máquinas isoladas sem internet.
- Filtros de imagem em tempo real são aplicados em menos de 10 ms, liberando a CPU para a renderização da interface do usuário (UI).
Primeiros passos
- Instale a toolchain de código aberto: Yosys (síntese), nextpnr-ice40 (place-and-route) e icepack (geração de bitstream).
- Converta um modelo TensorFlow Lite (.tflite) para Verilog com o utilitário tinyml-conv.
- Execute a síntese e gere o arquivo .bit para o iCE40-UP5K.
- Inclua
webfpga.jsem uma página web; uma única chamada JavaScript carrega o bitstream via WebUSB e transmite os dados de inferência.
O fluxo de trabalho reflete os pipelines de desenvolvimento de FPGA existentes, mas a etapa final requer apenas um navegador web padrão e um cabo USB — sem drivers proprietários ou SDKs pesados.
Por que alguns desenvolvedores ainda podem escolher WebGPU ou a nuvem
O WebGPU possui um suporte de hardware mais amplo em laptops e desktops, e seu ecossistema já oferece drivers gráficos e ferramentas maduras.
O WebFPGA mostra que o navegador pode ser mais do que uma camada de UI; ele pode se tornar um portal para hardware de IA de ultra-baixa latência e que preserva a privacidade. Para aplicações onde cada milissegundo conta e os dados devem permanecer locais, o framework oferece uma alternativa atraente aos pipelines de inferência centrados em GPU ou em nuvem.
