14 Punkte von xguru 2024-10-26 | 1 Kommentare | Auf WhatsApp teilen
  • Unterstützung für WebGPU (bis zu 100-mal schneller als WASM)
  • Neue Quantisierungsformate dtypes
  • Unterstützung für 120 Architekturen
  • 25 neue Beispielprojekte und Templates
  • Mehr als 1200 vorab konvertierte Modelle
  • Kompatibilität mit Node.js (ESM + CJS), Deno und Bun

Unterstützung für WebGPU

  • WebGPU ist ein neuer Webstandard für beschleunigte Grafik und Berechnungen
  • Er ermöglicht es Entwicklern, die GPU des Systems direkt im Browser zu nutzen, um Hochleistungsberechnungen auszuführen
  • Als Nachfolger von WebGL ermöglicht es eine direktere Interaktion mit modernen GPUs und verbessert dadurch die Performance deutlich
  • Außerdem unterstützt es allgemeine GPU-Berechnungen und eignet sich daher gut für Machine Learning
  • Stand Oktober 2024 liegt die weltweite Unterstützung für WebGPU bei etwa 70 %
  • Je nach Browser kann es erforderlich sein, Feature-Flags zu verwenden, um WebGPU zu aktivieren
  • Einsatz von WebGPU in Transformers.js v3
    • Dank der Zusammenarbeit mit ONNX Runtime Web lässt sich die WebGPU-Beschleunigung aktivieren, indem beim Laden des Modells einfach device: 'webgpu' gesetzt wird
    • WebGPU kann für die Berechnung von Text-Embeddings, Spracherkennung, Bildklassifizierung und mehr verwendet werden

Neue Quantisierungsformate (dtypes)

  • Vor Transformers.js v3 konnte über die Option quantized zwischen quantisierten (q8) und Full-Precision-Modellvarianten (fp32) gewählt werden
  • Jetzt kann mit dem Parameter dtype aus einer deutlich größeren Liste ausgewählt werden
  • Welche Quantisierungen verfügbar sind, hängt vom jeweiligen Modell ab, üblich sind jedoch Full Precision ("fp32"), Half Precision ("fp16"), 8-Bit ("q8", "int8", "uint8") und 4-Bit ("q4", "bnb4", "q4f16")
  • Modulbezogene dtypes
    • Einige Encoder-Decoder-Modelle wie Whisper oder Florence-2 reagieren besonders empfindlich auf die Quantisierungseinstellungen, insbesondere im Encoder
    • Deshalb wurde die Möglichkeit hinzugefügt, modulbezogene dtypes auszuwählen, indem ein Mapping vom Modulnamen zu dtype bereitgestellt wird

120 unterstützte Architekturen

  • Mit diesem Release ist die Gesamtzahl der unterstützten Architekturen auf 120 gestiegen und deckt verschiedenste Eingabeformate und Aufgaben ab
  • Bemerkenswerte neue Architekturen sind unter anderem: Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote und RT-DETR

25 Beispielprojekte und Templates

  • Im Rahmen dieses Releases wurden 25 neue Beispielprojekte und Templates veröffentlicht, die insbesondere die WebGPU-Unterstützung demonstrieren
  • Enthält Demos wie Phi-3.5 WebGPU, Whisper WebGPU und weitere

Mehr als 1200 vorab konvertierte Modelle

  • Zum Zeitpunkt des Releases hat die Community mehr als 1200 Modelle für die Kompatibilität mit Transformers.js konvertiert
  • Um eigene Modelle oder Fine-Tunings zu konvertieren, kann das bereitgestellte Konvertierungsskript verwendet werden
  • Nach dem Upload der erzeugten Dateien auf den Hugging Face Hub kann das Tag transformers.js hinzugefügt werden, damit andere sie leichter finden und verwenden können

Kompatibilität mit Node.js (ESM + CJS), Deno und Bun

  • Transformers.js v3 ist jetzt mit den drei beliebtesten serverseitigen JavaScript-Runtimes kompatibel
  • Node.js: eine weit verbreitete JavaScript-Runtime auf Basis von Googles V8 mit umfassender Unterstützung für Bibliotheken und Frameworks
  • Deno: eine moderne Runtime für JavaScript und TypeScript mit guter Sicherheit standardmäßig, Nutzung von ES-Modulen und experimenteller WebGPU-Unterstützung
  • Bun: eine schnelle, auf Performance optimierte JavaScript-Runtime mit integriertem Bundler, Transpiler und Paketmanager

Neues Zuhause bei NPM und GitHub

  • Transformers.js wird nun in der offiziellen Hugging-Face-Organisation auf NPM als @huggingface/transformers veröffentlicht (anstelle von @xenova/transformers, das für v1 und v2 verwendet wurde)
  • Das Repository wurde in die offizielle Hugging-Face-Organisation auf GitHub verschoben (https://github.com/huggingface/transformers.js), die künftig das neue Zuhause sein wird