- Transformers.js é uma biblioteca de machine learning de ponta para web que permite executar 🤗 Transformers diretamente no navegador, sem servidor
- Foi projetada para ser funcionalmente equivalente à biblioteca
transformers de Python, permitindo executar os mesmos modelos pré-treinados com uma API semelhante
- Suporta tarefas comuns em diversos formatos, como processamento de linguagem natural, visão computacional, áudio e multimodal
- Usa o ONNX Runtime para executar modelos no navegador, e com 🤗 Optimum é possível converter facilmente modelos pré-treinados em PyTorch, TensorFlow ou JAX para ONNX
Principais recursos
- Suporte à mesma API
pipeline da biblioteca Python, facilitando a migração de código existente
- Suporte a várias tarefas e arquiteturas (incluindo status de suporte e links para documentação/modelos)
- Processamento de linguagem natural: Fill-Mask, Question Answering, Sentence Similarity, Summarization, Text Classification, Text Generation, Text-to-text Generation, Token Classification, Translation, Zero-Shot Classification, Feature Extraction etc.
- Visão: Depth Estimation, Image Classification, Image Segmentation, Image-to-Image, Object Detection, Image Feature Extraction etc.
- Áudio: Audio Classification, Automatic Speech Recognition, Text-to-Speech
- Multimodal: Document Question Answering, Image-to-Text, Zero-Shot Audio/Image Classification, Zero-Shot Object Detection etc.
- Usa por padrão modelos pré-treinados hospedados e binários WASM pré-compilados, com possibilidade de personalização
Instalação e como usar
- Pode ser instalado via NPM:
npm i @xenova/transformers
- Pode ser usado em JavaScript vanilla sem bundler por meio de CDN ou hospedagem estática
- Fornece vários aplicativos de exemplo/templates: Whisper Web, Doodle Dash, Code Playground, Semantic Image Search, Vanilla JavaScript, React, Text to speech, Browser extension, Electron, Next.js, Node.js etc.
- Por meio de configuração de ambiente, é possível personalizar o caminho dos modelos, se modelos remotos serão carregados, a localização dos arquivos WASM etc.
- É possível converter modelos PyTorch, TensorFlow e JAX para ONNX usando o script de conversão fornecido
Modelos suportados
- Suporta diversos modelos, incluindo ALBERT, Audio Spectrogram Transformer, BART, BEiT, BERT, Blenderbot, BLOOM, CamemBERT, Chinese-CLIP, CLAP, CLIP, CLIPSeg, CodeGen, ConvBERT, ConvNeXT, DeBERTa, DeiT, Depth Anything, DETR, DINOv2, DistilBERT, DiT, Donut, DPT, EfficientNet, ELECTRA, ESM, Falcon, FLAN-T5, GLPN, GPT Neo, GPT NeoX, GPT-2, GPT-J, GPTBigCode, HerBERT, Hubert, LongT5, LLaMA, MPNet, MPT, MT5, NLLB, Nougat, OPT etc.
Opinião do GN⁺
- Transformers.js é uma biblioteca útil que permite executar vários modelos Transformer modernos diretamente no navegador, sem servidor. Ela é especialmente versátil por oferecer suporte a tarefas em áreas como processamento de linguagem natural, visão computacional e áudio
- Como oferece uma API semelhante à da biblioteca Python, é fácil migrar código existente, e o suporte a muitos modelos pré-treinados permite uso imediato sem treinamento adicional
- Como fornece aplicativos de exemplo e templates, é fácil aproveitá-la para vários usos, e os recursos de personalização também garantem alta flexibilidade
- No entanto, por rodar no navegador, pode haver limitações de recursos, e a necessidade de continuar adicionando/suportando modelos mais recentes pode representar um peso de manutenção no desenvolvimento
- Frameworks de ML baseados em navegador semelhantes incluem TensorFlow.js, ONNX.js e WebDNN. Em especial, o TensorFlow.js oferece suporte tanto para navegador quanto para Node.js, além de fornecer mais recursos como transfer learning e visualização
Ainda não há comentários.