- Transformers.js est une bibliothèque web de machine learning de pointe qui permet d’exécuter directement 🤗 Transformers dans le navigateur, sans serveur
- Elle est conçue pour être fonctionnellement équivalente à la bibliothèque Python
transformers, afin de pouvoir exécuter les mêmes modèles pré-entraînés avec une API similaire
- Elle prend en charge les tâches courantes sur de multiples modalités, notamment le traitement du langage naturel, la vision par ordinateur, l’audio et le multimodal
- Les modèles sont exécutés dans le navigateur via ONNX Runtime, et 🤗 Optimum permet de convertir facilement en ONNX des modèles pré-entraînés PyTorch, TensorFlow ou JAX
Fonctionnalités principales
- Prise en charge de la même API
pipeline que la bibliothèque Python, ce qui facilite la migration depuis du code existant
- Prise en charge de nombreuses tâches et architectures (avec indication de compatibilité et liens vers la documentation/les modèles)
- Traitement du langage naturel : Fill-Mask, Question Answering, Sentence Similarity, Summarization, Text Classification, Text Generation, Text-to-text Generation, Token Classification, Translation, Zero-Shot Classification, Feature Extraction, etc.
- Vision : Depth Estimation, Image Classification, Image Segmentation, Image-to-Image, Object Detection, Image Feature Extraction, etc.
- Audio : 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.
- Utilise par défaut des modèles pré-entraînés hébergés et des binaires WASM précompilés, avec possibilité de personnalisation
Installation et utilisation
- Installation via NPM :
npm i @xenova/transformers
- Utilisable en JavaScript vanilla sans bundler, via un CDN ou un hébergement statique
- Fournit divers exemples d’applications et templates : Whisper Web, Doodle Dash, Code Playground, Semantic Image Search, Vanilla JavaScript, React, Text to speech, Browser extension, Electron, Next.js, Node.js, etc.
- Les paramètres d’environnement permettent de personnaliser le chemin des modèles, l’activation ou non du chargement de modèles distants, l’emplacement des fichiers WASM, etc.
- Les scripts de conversion fournis permettent de convertir des modèles PyTorch, TensorFlow et JAX en ONNX
Modèles pris en charge
- Prise en charge de nombreux modèles, notamment 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.
L’avis de GN⁺
- Transformers.js est une bibliothèque utile qui permet d’exécuter dans le navigateur, sans serveur, divers modèles Transformer récents. Elle est particulièrement polyvalente grâce à la prise en charge de tâches dans plusieurs domaines comme le traitement du langage naturel, la vision par ordinateur et l’audio
- Elle propose une API similaire à celle de la bibliothèque Python, ce qui facilite la transition depuis du code existant, et prend en charge de nombreux modèles pré-entraînés, utilisables immédiatement sans entraînement supplémentaire
- Les exemples d’applications et templates fournis facilitent son adoption pour différents usages, et les possibilités de personnalisation offrent une grande flexibilité
- En revanche, l’exécution dans le navigateur implique des contraintes de ressources, et l’ajout ainsi que le maintien du support des modèles les plus récents peuvent représenter une charge en termes de maintenance
- Parmi les frameworks ML similaires côté navigateur, on trouve TensorFlow.js, ONNX.js et WebDNN. TensorFlow.js en particulier prend en charge à la fois le navigateur et Node.js, et propose davantage de fonctionnalités comme le transfer learning ou la visualisation
Aucun commentaire pour le moment.