Back

O Estado da IA On-Device no Navegador

O Estado da IA On-Device no Navegador

Executar IA diretamente no navegador parece simples até você tentar implementá-la em produção. As APIs são fragmentadas, os requisitos de hardware variam drasticamente, e o que funciona em um dispositivo falha silenciosamente em outro. Antes de configurar sua primeira chamada de inferência, é útil entender o que está realmente disponível, como as camadas se encaixam e onde estão as lacunas reais no início de 2026.

Pontos-Chave

  • A IA on-device no navegador abrange três camadas distintas: APIs nativas do navegador, bibliotecas JavaScript de inferência e primitivas de aceleração de baixo nível. Escolher a camada errada para seu caso de uso leva a problemas de compatibilidade e desempenho.
  • As APIs de IA nativas do Chrome, incluindo Summarizer, Translator e Language Detector, não exigem hospedagem de modelo, mas te prendem à implementação do Chrome e a um modelo que você não controla.
  • Transformers.js e ONNX Runtime Web oferecem inferência de modelo ampla baseada no navegador com escolha total de modelo, embora o tamanho do modelo, suporte de backend e estratégia de cache permaneçam restrições importantes.
  • WebNN promete ML acelerado por hardware com acesso à NPU, mas o suporte dos navegadores ainda é parcial. A maioria das equipes se beneficiará dele indiretamente através de frameworks antes de usá-lo diretamente.
  • Uma abordagem híbrida, tentando inferência local primeiro e recorrendo a um endpoint na nuvem como fallback, é o padrão de produção mais realista hoje.

Três Camadas Distintas, Não Uma Única Coisa

A maior fonte de confusão na IA on-device no navegador é tratar todas as abordagens como intercambiáveis. Elas não são. Existem três camadas distintas, e escolher a errada para seu caso de uso cria problemas reais.

Camada 1: APIs de IA Fornecidas pelo Navegador

O Chrome disponibiliza APIs de IA nativas apoiadas por modelos que ele próprio fornece e gerencia diretamente no navegador, incluindo o Gemini Nano. Conforme descrito na documentação de IA nativa do Chrome, esses modelos são baixados e gerenciados pelo próprio Chrome. O Chrome disponibilizou APIs como Summarizer, Translator e Language Detector em versões estáveis, enquanto outras permanecem mais limitadas. A Prompt API está estável para extensões do Chrome, mas o uso em páginas web ainda é experimental ou baseado em origin-trial. Writer e Rewriter também não são algo que você deva tratar como universalmente prontos para produção.

O Microsoft Edge adota uma abordagem similar usando o Phi-4-mini e expõe sua própria superfície de API. O modelo é integrado diretamente no navegador e pode ser acessado através de APIs como a Prompt API, que está atualmente disponível em developer preview nas versões Canary e Dev do Edge. No entanto, essas APIs ainda são experimentais e não estão amplamente disponíveis em ambientes de produção. O Firefox possui recursos de IA como integração de chatbot e experimentos de Smart Window, mas atualmente não expõe uma superfície de API de IA nativa ao estilo Chrome para desenvolvedores web.

O apelo é óbvio: sem hospedagem de modelo, sem custo de tamanho de bundle, configuração mínima. A desvantagem é igualmente óbvia: você fica preso a uma implementação específica do navegador, o modelo é fixo e você não tem controle sobre qual versão está rodando. Essas APIs também exigem que o modelo seja baixado primeiro, o que pode ser grande e acontece de forma assíncrona. Você precisa lidar com isso de forma adequada.

// Detecte o recurso antes de usar uma API de IA nativa do navegador
if ('Summarizer' in self) {
  const availability = await Summarizer.availability();

  if (availability !== 'unavailable') {
    const summarizer = await Summarizer.create();
    const summary = await summarizer.summarize(articleText);
  }
} else {
  // Recorra à nuvem ou pule o recurso
}

Camada 2: Inferência Baseada em JavaScript com Transformers.js e ONNX Runtime Web

Se você precisa de suporte mais amplo de navegadores ou quer escolher seu próprio modelo, Transformers.js é uma das opções mais práticas atualmente. Ele executa modelos do Hugging Face diretamente no navegador usando formato ONNX e pode usar aceleração WebGPU quando disponível, recorrendo ao WebAssembly onde suportado.

ONNX Runtime Web oferece alcance similar com mais controle sobre provedores de execução. Ambos são escolhas razoáveis para classificação, tradução, análise de sentimento, embeddings e tarefas leves de geração de texto.

Note que o Transformers.js v3 migrou para o pacote @huggingface/transformers. A importação @xenova/transformers mostrada abaixo se aplica à v2, que permanece comum em projetos existentes:

// Transformers.js v2
import { pipeline } from '@xenova/transformers';

// Transformers.js v3+
// import { pipeline } from '@huggingface/transformers';

const classifier = await pipeline('sentiment-analysis');
const result = await classifier('This article is genuinely useful.');

O tamanho do modelo é a principal restrição. Um modelo quantizado adequado para inferência no navegador pode variar de dezenas a centenas de megabytes, dependendo da tarefa. Modelos maiores se tornam impraticáveis sem cache cuidadoso via IndexedDB ou Cache API.

Camada 3: WebGPU e WebAssembly como Primitivas de Aceleração

WebGPU e WebAssembly não são APIs de IA. São primitivas de baixo nível que frameworks como Transformers.js, ONNX Runtime Web e TensorFlow.js podem usar internamente para executar inferência mais rapidamente. Você raramente interage com eles diretamente, a menos que esteja construindo um framework ou fazendo trabalho de computação customizado.

WebGPU em particular desbloqueia aceleração GPU significativa para operações matriciais, o que importa para qualquer coisa além de modelos minúsculos. O suporte é muito mais amplo do que costumava ser, mas ainda precisa de detecção de recursos porque o navegador, sistema operacional, dispositivo, driver e suporte mobile variam.

O Que WebNN Adiciona ao Cenário

WebNN (Web Neural Network API) é uma API W3C projetada para expor operações de rede neural aceleradas por hardware, incluindo acesso à NPU em dispositivos suportados, através de uma interface consistente do navegador. Ela fica entre seu framework e o hardware, muito como WebGPU, mas é especificamente projetada para cargas de trabalho de ML.

O suporte dos navegadores é limitado no início de 2026. O Chrome possui implementação parcial, e um suporte mais amplo em outros navegadores ainda está em progresso. Frameworks como ONNX Runtime Web já estão adicionando WebNN como backend de execução, então você provavelmente se beneficiará dele indiretamente antes de usá-lo diretamente.

As Compensações Honestas

AbordagemSuporte de NavegadorControle de ModeloCusto de SetupMelhor Para
APIs NativasAPIs estáveis do Chrome; previews do EdgeNenhumMínimoSumarização, tradução, detecção
Transformers.jsSuporte amplo em navegadores modernosTotalMédioNLP cross-browser, classificação
ONNX Runtime WebSuporte amplo em navegadores modernosTotalMédioModelos customizados, inferência multi-tarefa
WebNN (direto)ParcialTotalAltoAceleração de hardware futura

Os benefícios de privacidade são reais, mas condicionais. Inferência local significa que os dados de entrada não saem do dispositivo durante o processamento, mas o site ainda pode registrar o que os usuários digitam antes de chegar ao modelo. “Local” não significa automaticamente privado de ponta a ponta.

A capacidade offline é similarmente condicional. Uma vez que um modelo está em cache, a inferência pode funcionar sem conexão. Mas o download inicial requer uma, e atualizações de modelo exigem reconexão.

Híbrido É o Padrão Realista

A maioria das aplicações de produção não será totalmente on-device. O padrão prático é tentar inferência local, verificar a disponibilidade da API e capacidade de hardware, e então recorrer a um endpoint na nuvem quando qualquer um estiver faltando. Isso oferece aos dispositivos capazes uma experiência mais rápida e privada sem quebrar o recurso para todos os outros.

Conclusão

A IA on-device no navegador é genuinamente útil hoje para tarefas específicas e delimitadas: sumarizar um documento, detectar um idioma, classificar texto curto, gerar embeddings ou executar um assistente leve. Experiências completas em escala de LLM no navegador permanecem inconsistentes e dependentes de hardware. Construa para o meio-termo realista, e você entregará algo que realmente funciona.

FAQs

Não através de APIs de IA nativas comparáveis às APIs atuais do Chrome. No entanto, bibliotecas de inferência JavaScript como Transformers.js e ONNX Runtime Web podem rodar em navegadores modernos, geralmente com fallback para WebAssembly quando WebGPU ou outros backends de aceleração não estão disponíveis.

Os modelos nativos do Chrome são gerenciados pelo navegador e podem exigir um download único significativo. Para bibliotecas como Transformers.js, modelos quantizados frequentemente variam de dezenas a centenas de megabytes, dependendo da tarefa e do modelo. Fazer cache deles com IndexedDB ou Cache API evita downloads repetidos, mas a primeira carga ainda requer uma conexão de rede.

Os dados de entrada podem permanecer no dispositivo durante a inferência, o que é um ganho real de privacidade sobre processamento baseado na nuvem. No entanto, o JavaScript do próprio site ainda pode ler, registrar ou transmitir a entrada do usuário antes ou depois de chegar ao modelo. A inferência local reduz a exposição, mas não garante privacidade de ponta a ponta por si só.

Se seu público é principalmente usuários de Chrome desktop e um modelo fixo gerenciado pelo navegador atende suas necessidades, as APIs nativas oferecem a configuração mais simples. Se você precisa de suporte mais amplo de navegadores, seleção de modelo customizado ou versionamento previsível, Transformers.js oferece mais controle ao custo de gerenciar downloads e cache de modelo você mesmo.

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay