Allgemeine Einführung
Transformers.js ist eine JavaScript-Bibliothek, die von Hugging Face entwickelt wurde, um Nutzern die Möglichkeit zu geben, modernste Machine-Learning-Modelle direkt im Browser ohne Serverunterstützung auszuführen. Die Bibliothek ist funktional äquivalent zu Hugging Face's transformers Bibliothek für Python und unterstützt eine breite Palette von vortrainierten Modellen, die Aufgaben wie die Verarbeitung natürlicher Sprache, Computer Vision und Spracherkennung abdecken. transformers.js verwendet die ONNX Runtime, um Modelle auszuführen, unterstützt die Ausführung sowohl auf CPUs als auch auf WebGPUs, und bietet effiziente Es bietet effiziente Modelltransformations- und Quantisierungswerkzeuge, um PyTorch-, TensorFlow- oder JAX-Modelle in das ONNX-Format zu konvertieren und sie im Browser auszuführen.
Funktionsliste
- Verarbeitung natürlicher Sprache (NLP)Textkategorisierung, Named Entity Recognition, Frage- und Antwortsysteme, Sprachmodellierung, Erstellung von Zusammenfassungen, Übersetzung, Multiple Choice und Texterstellung.
- ComputervisionBildklassifizierung, Zielerkennung, Bildsegmentierung und Tiefenschätzung.
- SpracherkennungAutomatische Spracherkennung, Audioklassifizierung und Text-to-Speech.
- multimodale AufgabeEinbettung, Null-Sample-Audio-Klassifizierung, Null-Sample-Bildklassifizierung und Null-Sample-Zielerkennung.
- Modellumwandlung und -quantifizierungUnterstützung für die Konvertierung von PyTorch-, TensorFlow- oder JAX-Modellen in das ONNX-Format und deren Quantifizierung zur Optimierung der Leistung.
- WebGPU-UnterstützungSteigern Sie die Berechnungseffizienz, indem Sie Modelle in unterstützten Browsern mit WebGPUs ausführen.
Hilfe verwenden
Montage
Transformers.js kann über NPM installiert oder im Browser über CDN oder statisches Hosting verwendet werden. Hier sind die Installationsschritte:
NPM-Installation
npm i @huggingface/transformers
CDN-Nutzung
Fügen Sie die folgenden Skript-Tags in die HTML-Datei ein:
<script type="module">
import { pipeline } from 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.1.0';
</script>
Anwendungsbeispiel
Transformers.js bietet eine Pipeline-API, die der Python-Version der Transformers-Bibliothek ähnelt, was die Verwendung des Modells sehr einfach macht. Hier sind einige Beispiele für gängige Aufgaben:
Sentiment-Analyse
import { pipeline } from '@huggingface/transformers';
// 分配一个情感分析的 pipeline
const pipe = await pipeline('sentiment-analysis');
const out = await pipe('I love transformers!');
// 输出: [{'label': 'POSITIVE', 'score': 0.999817686}]
Verwendung verschiedener Modelle
Sie können ein anderes Modell verwenden, indem Sie eine Modell-ID oder einen Pfad angeben:
const pipe = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment');
Ausführen von Modellen auf WebGPUs
const pipe = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english', { device: 'webgpu' });
Modellumwandlung und -quantifizierung
Transformers.js unterstützt die Konvertierung von PyTorch-, TensorFlow- oder JAX-Modellen in das ONNX-Format und deren Quantisierung zur Leistungsoptimierung. Nachfolgend finden Sie Beispiele für die Konvertierung und Quantisierung:
python -m scripts.convert --quantize --model_id bert-base-uncased
Die konvertierte Datei wird im Verzeichnis ./models/
Verzeichnis, einschließlich model.onnx
im Gesang antworten model_quantized.onnx
Dokumentation.
Beispielanwendung
Transformers.js bietet mehrere Beispielanwendungen, die den Benutzern den schnellen Einstieg erleichtern:
- Flüsterndes NetzSpracherkennung
- Doodle Dash: Spiel zur Erkennung von Skizzen in Echtzeit
- Code SpielplatzIn-Browser-Code-Vervollständigung
- Semantische Bildsuche: Textsuche Bilder
- Text in SpracheText-to-Speech