14 points par xguru 2024-10-26 | 1 commentaires | Partager sur WhatsApp
  • 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