14 pontos por xguru 2024-10-26 | 1 comentários | Compartilhar no WhatsApp
  • Suporte a WebGPU (até 100x mais rápido que WASM)
  • Novos formatos de quantização dtypes
  • Suporte a 120 arquiteturas
  • 25 novos projetos de exemplo e templates
  • Mais de 1200 modelos pré-convertidos
  • Compatibilidade com Node.js (ESM + CJS), Deno e Bun

Suporte a WebGPU

  • WebGPU é o novo padrão da web para gráficos acelerados e computação
  • Permite que desenvolvedores usem diretamente a GPU do sistema no navegador para realizar cálculos de alto desempenho
  • Como sucessor do WebGL, permite uma interação mais direta com GPUs modernas, melhorando bastante o desempenho
  • Também oferece suporte a computação de propósito geral em GPU, o que a torna adequada para machine learning
  • Em outubro de 2024, a taxa global de suporte ao WebGPU está em cerca de 70%
  • Dependendo do navegador, pode ser necessário usar flags de recursos para ativar o WebGPU
  • Uso do WebGPU no Transformers.js v3
    • Graças à colaboração com o ONNX Runtime Web, é possível ativar a aceleração por WebGPU ao carregar o modelo apenas definindo device: 'webgpu'
    • É possível usar WebGPU para cálculo de embeddings de texto, reconhecimento de fala, classificação de imagens e mais

Novos formatos de quantização (dtypes)

  • Antes do Transformers.js v3, era possível escolher entre variantes de modelo quantizadas com a opção quantized, como quantized (q8) ou full-precision (fp32)
  • Agora, é possível escolher entre uma lista muito maior usando o parâmetro dtype
  • A lista de quantizações disponíveis varia de acordo com o modelo, mas em geral inclui full-precision ("fp32"), half-precision ("fp16"), 8-bit ("q8", "int8", "uint8"), 4-bit ("q4", "bnb4", "q4f16") e outros
  • dtypes por módulo
    • Alguns modelos encoder-decoder, como Whisper e Florence-2, são especialmente sensíveis às configurações de quantização, principalmente no encoder
    • Por isso, foi adicionada a capacidade de selecionar dtypes por módulo ao fornecer um mapeamento do nome do módulo para dtype

120 arquiteturas suportadas

  • Nesta versão, o número total de arquiteturas suportadas subiu para 120, cobrindo diversos formatos de entrada e tarefas
  • Novas arquiteturas de destaque incluem: Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote, RT-DETR e outras

25 projetos de exemplo e templates

  • Como parte deste lançamento, foram disponibilizados 25 novos projetos de exemplo e templates com foco em demonstrar o suporte a WebGPU
  • Inclui demos como Phi-3.5 WebGPU, Whisper WebGPU e outras

Mais de 1200 modelos pré-convertidos

  • No momento do lançamento, a comunidade já havia convertido mais de 1200 modelos para serem compatíveis com o Transformers.js
  • Para converter seu próprio modelo ou fine-tuning, é possível usar o script de conversão fornecido
  • Depois de enviar os arquivos gerados para o Hugging Face Hub, basta adicionar a tag transformers.js para que outras pessoas possam encontrá-los e usá-los facilmente

Compatibilidade com Node.js (ESM + CJS), Deno e Bun

  • O Transformers.js v3 agora é compatível com os três runtimes JavaScript server-side mais populares
  • Node.js: runtime JavaScript amplamente usado, baseado no V8 do Chrome, com amplo suporte a bibliotecas e frameworks
  • Deno: runtime moderno para JavaScript e TypeScript com segurança reforçada por padrão, que usa módulos ES e também oferece suporte experimental a WebGPU
  • Bun: runtime JavaScript rápido, otimizado para desempenho, com bundler, transpiler e gerenciador de pacotes integrados

Novo lar no NPM e no GitHub

  • O Transformers.js agora será publicado como @huggingface/transformers na organização oficial da Hugging Face no NPM (em vez de @xenova/transformers, usado nas versões v1 e v2)
  • O repositório também foi movido para a organização oficial da Hugging Face no GitHub (https://github.com/huggingface/transformers.js), que será sua nova casa