A Mozilla deu um passo importante para resolver uma das principais críticas aos seus recursos de inteligência artificial integrados ao Firefox: a lentidão. Em um esforço de engenharia, a organização substituiu o motor de inferência de IA que alimentava funções como agrupamento inteligente de abas e geração de texto alternativo em PDFs, resultando em ganhos de desempenho que chegam a ser dez vezes mais rápidos em alguns casos.
O problema original residia na arquitetura escolhida inicialmente. O Firefox AI Runtime utilizava uma construção WebAssembly (WASM) do Microsoft ONNX Runtime para executar os modelos baseados no framework Transformers.js. Embora funcional, essa abordagem criava um pipeline ineficiente: o pré-processamento era feito em JavaScript, a execução do modelo em WASM e o pós-processamento voltava para JavaScript. Essa “dança” entre camadas, mesmo com caches aquecidos, introduzia uma sobrecarga significativa e uma sensação de lentidão, especialmente na primeira execução de um recurso.
Abandonando o WASM pelo C++ nativo
A solução, detalhada em um post no blog da Mozilla pelos engenheiros Tarek Ziadé, Paul Adenot e Serge Guelton, foi audaciosa: substituir o runtime WASM por uma versão nativa em C++ do ONNX Runtime, integrada diretamente ao código-base do navegador.
A mudança foi planejada para ser transparente. A interface do Transformers.js permaneceu a mesma. Por baixo dos panos, porém, os tensores agora seguem um caminho direto para o código nativo, eliminando a sobrecarga de comunicação entre JavaScript e WASM.
Os resultados dos benchmarks divulgados foram notáveis:
- A geração de texto alternativo (alt-text) em PDFs no PDF.js saltou de 3.5 segundos para 350 milissegundos no mesmo hardware, uma aceleração de 10x;
- O agrupamento inteligente de abas, notório por ser lento na primeira execução, tornou-se “ágil”, segundo a equipe.
Além de eliminar a sobrecarga de comunicação, a mudança para o código nativo desbloqueou otimizações de baixo nível antes impossíveis com o WASM genérico. A nova implementação pode aproveitar instruções específicas do hardware, como NEON no Apple Silicon e AVX-512 em processadores Intel modernos, para acelerar as operações de multiplicação de matrizes que são o coração da inferência de IA.
A Mozilla deixa claro que a jornada de otimização está longe de terminar. Os próximos passos são ainda mais ambiciosos:
Suporte a GPU:
O maior salto de desempenho virá da aceleração por GPU. A equipe já trabalha para integrar backends ONNX compatíveis com GPU, um esforço que exige camadas adicionais de sandboxing para segurança.
Operações multithread:
Já foram desenvolvidos patches para paralelizar operações críticas como DequantizeLinear e a transposição de matrizes, aproveitando todos os núcleos disponíveis em CPUs modernas.
Cache pré-compilado:
Para evitar a recompilação do modelo toda vez que o navegador é iniciado , a equipe está implementando um cache pré-compilado, eliminando esse tempo de espera.
Já está sendo distribuído
A migração para o novo backend começou a ser distribuída gradualmente a partir do Firefox 142. O agrupamento inteligente de abas foi o primeiro recurso a se beneficiar, e a Mozilla planeja estender a otimização para todos os recursos baseados em Transformers.js.
Este movimento é um exemplo de como a otimização de baixo nível, embora complexa, pode transformar a experiência do usuário.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!




