- Prise en charge de WebGPU (jusqu’à 100 fois plus rapide que WASM)
- Nouveaux formats de quantification
dtypes
- Prise en charge de 120 architectures
- 25 nouveaux projets d’exemple et templates
- Plus de 1 200 modèles préconvertis
- Compatibilité avec Node.js (ESM + CJS), Deno et Bun
Prise en charge de WebGPU
- WebGPU est le nouveau standard du Web pour les graphismes accélérés et le calcul
- Il permet aux développeurs d’utiliser directement le GPU du système depuis le navigateur pour effectuer des calculs haute performance
- Successeur de WebGL, il permet une interaction plus directe avec les GPU modernes, ce qui améliore fortement les performances
- Il prend également en charge le calcul GPU généraliste, ce qui le rend adapté au machine learning
- En octobre 2024, le taux de prise en charge de WebGPU dans le monde est d’environ 70 %
- Selon le navigateur, il peut être nécessaire d’utiliser un feature flag pour activer WebGPU
- Utilisation de WebGPU dans Transformers.js v3
- Grâce à la collaboration avec ONNX Runtime Web, il suffit d’indiquer
device: 'webgpu' lors du chargement du modèle pour activer l’accélération WebGPU
- WebGPU peut être utilisé pour le calcul d’embeddings de texte, la reconnaissance vocale, la classification d’images, etc.
Nouveaux formats de quantification (dtypes)
- Avant Transformers.js v3, l’option
quantized permettait de choisir entre les variantes de modèle quantifiées (q8) ou en pleine précision (fp32)
- Il est désormais possible de choisir parmi une liste bien plus large via le paramètre
dtype
- La liste des quantifications disponibles varie selon le modèle, mais comprend généralement la pleine précision (
"fp32"), la demi-précision ("fp16"), le 8 bits ("q8", "int8", "uint8") et le 4 bits ("q4", "bnb4", "q4f16")
dtypes par module
- Certains modèles encodeur-décodeur, comme Whisper ou Florence-2, sont particulièrement sensibles aux réglages de quantification, notamment pour l’encodeur
- Pour cette raison, une fonctionnalité a été ajoutée afin de pouvoir choisir des
dtypes par module, en fournissant une correspondance entre le nom du module et son dtype
120 architectures prises en charge
- Avec cette version, le nombre total d’architectures prises en charge passe à 120, couvrant une grande variété de formats d’entrée et de tâches
- Parmi les nouvelles architectures notables : Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote, RT-DETR, entre autres
25 projets d’exemple et templates
- Dans le cadre de cette version, 25 nouveaux projets d’exemple et templates ont été publiés pour mettre en avant en particulier la prise en charge de WebGPU
- Inclut des démos comme Phi-3.5 WebGPU et Whisper WebGPU
Plus de 1 200 modèles préconvertis
- Au moment de la sortie, la communauté a converti plus de 1 200 modèles pour les rendre compatibles avec Transformers.js
- Pour convertir votre propre modèle ou un fine-tuning, vous pouvez utiliser le script de conversion fourni
- Une fois les fichiers générés téléversés sur le Hugging Face Hub, l’ajout du tag
transformers.js permet aux autres de les trouver et de les utiliser facilement
Compatibilité avec Node.js (ESM + CJS), Deno et Bun
- Transformers.js v3 est désormais compatible avec les trois runtimes JavaScript côté serveur les plus populaires
- Node.js : runtime JavaScript largement utilisé, construit sur le moteur V8 de Chrome, avec une vaste prise en charge des bibliothèques et frameworks
- Deno : runtime moderne pour JavaScript et TypeScript, sécurisé par défaut, utilisant les modules ES et proposant aussi une prise en charge expérimentale de WebGPU
- Bun : runtime JavaScript rapide, optimisé pour les performances, avec bundler, transpileur et gestionnaire de paquets intégrés
Nouveau foyer sur NPM et GitHub
- Transformers.js sera désormais publié sur NPM sous
@huggingface/transformers, dans l’organisation officielle Hugging Face (au lieu de @xenova/transformers, utilisé pour les v1 et v2)
- Le dépôt a été déplacé vers l’organisation officielle Hugging Face sur GitHub (https://github.com/huggingface/transformers.js), qui deviendra son nouveau foyer
1 commentaires
Transformers.js - exécuter des transformers dans le navigateur
Transformers.js exécutable directement dans le navigateur