- 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
1 Kommentare
Transformers.js - Transformer im Browser ausführen
Transformers.js, das direkt im Browser ausgeführt werden kann