Inteligência artificial, sem ruído.
Open Source4 min

Hugging Face lança 207 kernels WebGPU para acelerar IA no navegador

Biblioteca @huggingface/kernels traz kernels WebGPU otimizados direto do Hub, até 2,57x mais rápidos que o ORT WebGPU, com benchmark colaborativo via Fleet.

Hugging Face lança 207 kernels WebGPU para acelerar IA no navegador

O que foi lançado

A equipe WebAI da Hugging Face anunciou o @huggingface/kernels, uma biblioteca JavaScript para carregar e executar kernels WebGPU otimizados diretamente do Hugging Face Hub. O lançamento vem acompanhado de uma coleção inicial de 207 kernels, publicados como repositórios individuais na organização webgpu-kernels sob licença Apache-2.0.

O objetivo é simples e ambicioso: fazer a inferência de modelos de IA rodar no navegador de forma cada vez mais rápida. A ideia central é que um modelo executando no browser, em última análise, vira uma sequência de operações de GPU — multiplicações de matrizes, normalizações, convoluções, primitivas de atenção, operações de quantização e transformações de layout de dados. O WebGPU expõe essas operações de forma portátil entre navegadores, e a WGSL fornece a linguagem comum para os shaders que as executam.

Por que kernels importam

A portabilidade do WebGPU, porém, não garante desempenho automaticamente. Dois shaders podem implementar a mesma operação e produzir o mesmo resultado, mas se comportar de forma totalmente diferente entre aceleradores distintos. Tamanhos de workgroup, padrões de acesso à memória, vetorização, tipos de dados e estratégias de fusão afetam o desempenho — e a melhor escolha muda conforme o formato do input, o dispositivo, o navegador e os recursos WebGPU disponíveis.

Por isso, a Hugging Face defende que os kernels formam a camada fundamental da inferência rápida no navegador: runtimes de nível mais alto só são tão eficientes quanto as operações que despacham. Ao tornar cada operação individualmente descobrível, testável, comparável e versionada, dá para melhorar a fundação de forma independente, mantendo um contrato estável para as camadas acima.

Um repositório de kernel, não apenas um shader

Cada kernel da coleção tem seu próprio repositório e um “kernel card” que documenta semântica da operação, entradas, saídas, atributos, tipos de dados suportados e um exemplo pronto para uso. Por trás do card, o repositório empacota os artefatos necessários para entender e avaliar a implementação:

  • manifest.json: fonte da verdade para o contrato da operação (entradas, saídas, atributos e regras de derivação de shape);
  • metadata.json: identificador, digests e proveniência do kernel;
  • test.json: casos de correção para validar a implementação;
  • bench.json: casos de benchmark e tuning usados para avaliar o kernel;
  • arquivos *.wgsl.jinja: implementações WGSL parametrizadas para gerar shaders para um pedido e dispositivo específicos.

Essa estrutura transforma um shader em um artefato de software reutilizável: a interface é inspecionável sem ler WGSL, casos de correção e desempenho viajam junto com a implementação, e versões publicadas podem ser carregadas explicitamente.

Como carregar um kernel

A instalação é feita pelo npm com npm install @huggingface/kernels@preview. A execução exige um navegador com suporte a WebGPU, verificável em JavaScript com "gpu" in navigator. A biblioteca expõe getKernel, que recebe o ID do repositório no Hub e a versão do contrato, e retorna uma função invocável com dados tipados e shapes de tensores.

O exemplo mínimo do ai.onnx.Add (adição elementwise com broadcasting multidirecional) ilustra o padrão de chamada, que permanece idêntico para operações pesadas como a multiplicação de matrizes (ai.onnx.MatMul) — apenas o ID do repositório e os inputs mudam.

Quão mais rápidos são os kernels?

Em comparação direta com o ORT WebGPU em uma GPU Apple M4 (usando ONNX Runtime Web 1.30.0-dev), a coleção foi 2,57x mais rápida na média geométrica e 1,90x na mediana, com 629 vitórias, 176 derrotas e 4 empates em 809 casos comparáveis. Alguns ganhos individuais foram muito maiores: um caso de Einsum bilinear rodou em 0,136 ms contra 1.396 ms (mais de 10.000x mais rápido), e um CumSum por linha em 0,016 ms contra 4,784 ms (301x). A equipe ressalta que são casos incomuns, não o ganho esperado em todo lugar, mas mostram o quanto um kernel especializado ajuda quando uma implementação genérica cai em um caminho lento.

Fleet: de um dispositivo para uma frota

O desempenho do WebGPU varia entre GPUs, navegadores e drivers, então resultados de uma única máquina contam só parte da história. O Fleet é uma suíte de benchmark e testes in-browser que roda e pontua os kernels no hardware de cada usuário. Com consentimento, cada execução contribui evidências privadas que ajudam a encontrar falhas, comparar variantes e melhorar as regras de seleção — usando cobertura real de dispositivos que um laboratório de testes convencional jamais cobriria.

A Hugging Face também afirma estar trabalhando com a equipe do ONNX Runtime para integrar essas melhorias e beneficiar o ecossistema ONNX Runtime Web como um todo.


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.