Acelera TinyML en el navegador con WebFPGA
Un nuevo framework de código abierto, WebFPGA, permite a los desarrolladores ejecutar inferencia TinyML directamente desde una página web en menos de 10 ms. Utiliza una FPGA conectada por USB que consume solo unos pocos decenas de milivatios y mantiene cada byte de datos en el dispositivo.
Los modelos TinyML —pequeñas redes neuronales que se ejecutan en microcontroladores— son ahora el estándar para la IA en el dispositivo. Sin embargo, los desarrolladores aún deben lidiar con la velocidad, el consumo de energía y la privacidad cuando llevan la inferencia al navegador. Las rutas tradicionales dependen de WebGPU, que se ejecuta en el procesador gráfico, o de servicios en la nube que envían los datos fuera del dispositivo. Ambos aumentan la latencia, consumen más energía y exponen los datos de entrada sin procesar a servidores remotos.
WebFPGA elimina esos problemas. El navegador se comunica directamente con una FPGA a través de la API WebUSB. La API se comunica con un controlador FTDI USB-a-serial, que programa un chip Lattice iCE40-UP5K. Una vez cargado el bitstream, la FPGA ejecuta un entorno de ejecución (runtime) de TinyML que procesa el modelo íntegramente en el acelerador de hardware. Desde la perspectiva de un desarrollador, una sola llamada de JavaScript carga un archivo .bit y transmite los tensores de entrada.
Cómo se comparan las cifras
- WebFPGA: 4 ms de latencia, ~30 mW de potencia, ningún dato sale del host.
- WebGPU: 12 ms de latencia, ~200 mW, la CPU/GPU aún gestionan parte de la ruta de datos, por lo que persiste cierta exposición.
- Inferencia en la nube: 80 ms de latencia, ~500 mW cuando se ejecuta la pila de red, y cada muestra viaja a un servidor remoto.
Esas cifras presentan un argumento claro para escenarios donde cada milisegundo cuenta y la duración de la batería es limitada.
Escenarios del mundo real
- Asistentes de voz reaccionan en menos de 6 ms, sin enviar nunca el audio fuera del dispositivo.
- Monitoreo de sensores industriales detecta anomalías en el instante en que aparecen, incluso en máquinas aisladas sin internet.
- Filtros de imagen en tiempo real se aplican en menos de 10 ms, liberando la CPU para el renderizado de la interfaz de usuario.
Primeros pasos
- Instala la cadena de herramientas (toolchain) de código abierto: Yosys (síntesis), nextpnr-ice40 (place-and-route) e icepack (generación de bitstream).
- Convierte un modelo de TensorFlow Lite (.tflite) a Verilog con la utilidad tinyml-conv.
- Ejecuta la síntesis y genera el archivo .bit para el iCE40-UP5K.
- Incluye
webfpga.jsen una página web; una sola llamada de JavaScript carga el bitstream a través de WebUSB y transmite los datos de inferencia.
El flujo de trabajo refleja los pipelines de desarrollo de FPGA existentes, pero el paso final solo requiere un navegador web estándar y un cable USB, sin necesidad de controladores propietarios o SDK pesados.
Por qué algunos desarrolladores podrían seguir eligiendo WebGPU o la nube
WebGPU cuenta con un soporte de hardware más amplio en portátiles y ordenadores de sobremesa, y su ecosistema ya ofrece controladores gráficos y herramientas maduras.
WebFPGA demuestra que el navegador puede ser más que una capa de interfaz de usuario; puede convertirse en un portal hacia hardware de IA de ultra baja latencia que preserva la privacidad. Para aplicaciones donde cada milisegundo cuenta y los datos deben permanecer locales, el framework ofrece una alternativa convincente a los pipelines de inferencia centrados en la GPU o en la nube.
