Transformers ist ein Open-Source-Framework für maschinelles Lernen, das von Hugging Face entwickelt wurde und sich darauf konzentriert, fortgeschrittene Modelldefinitionen bereitzustellen, um Inferenz und Training für Text-, Bild-, Audio- und multimodale Aufgaben zu unterstützen. Es vereinfacht den Prozess der Verwendung von Modellen und ist mit einer Vielzahl von Mainstream-Deep-Learning-Frameworks wie PyTorch, TensorFlow und Flax kompatibel. Transformers bietet über 1 Million vortrainierte Modelle, die Bereiche wie natürliche Sprachverarbeitung, Computer Vision und Spracherkennung abdecken, die in der akademischen Forschung und kommerziellen Entwicklung weit verbreitet sind. Benutzer können Modelle schnell laden und Aufgaben wie Texterzeugung, Bildsegmentierung oder Sprache-zu-Text mit einfachem Code durchführen. Das Framework wird regelmäßig aktualisiert, und die neueste Version unterstützt neue Modelle wie Kyutai-STT und ColQwen2, um auf dem neuesten Stand der Technik zu bleiben.
Funktionsliste
- Pipeline-API, die mehrere Aufgaben unterstützt und Vorgänge wie Texterstellung, Spracherkennung, Bildklassifizierung und vieles mehr vereinfacht.
- Bietet über 1 Million vortrainierte Modelle für die Verarbeitung natürlicher Sprache, Computer Vision und multimodale Aufgaben.
- Kompatibel mit PyTorch, TensorFlow und Flax, unterstützt es mehrere Trainings- und Inferenz-Frameworks.
- Unterstützt das Herunterladen und Zwischenspeichern von Modellen aus dem Hugging Face Hub zur Offline-Nutzung.
- Bereitstellung von Befehlszeilentools
transformers serve
Im Folgenden finden Sie eine Liste von HTTP-Servern, die OpenAI-kompatible HTTP-Server unterstützen. - Unterstützung für Modell-Feinabstimmung und -Training, angepasst an mehrere Trainings-Frameworks wie DeepSpeed und PyTorch-Lightning.
- Bietet Unterstützung für die neuesten Modelle wie Kyutai-STT (Sprache-zu-Text) und ColQwen2 (Dokumentenabruf).
Hilfe verwenden
Einbauverfahren
Transformers ist einfach zu installieren und unterstützt Umgebungen ab Python 3.9. Wir empfehlen die Verwendung einer virtuellen Umgebung, um Abhängigkeitskonflikte zu vermeiden. Hier sind die detaillierten Installationsschritte:
- Erstellen einer virtuellen Umgebung
Mit Pythonsvenv
Modul, um eine virtuelle Umgebung zu schaffen:python -m venv transformers_env source transformers_env/bin/activate # Linux/Mac transformers_env\Scripts\activate # Windows
- Installation von Transformatoren
ausnutzenpip
Installieren Sie die neueste stabile Version:pip install transformers
Wenn GPU-Unterstützung erforderlich ist, stellen Sie sicher, dass der entsprechende CUDA-Treiber installiert ist, und führen Sie den folgenden Befehl aus, um die GPU-Verfügbarkeit zu prüfen:
python -c "import torch; print(torch.cuda.is_available())"
Um die neuesten Funktionen zu erleben, können Sie die Entwicklungsversion von GitHub installieren:
pip install git+https://github.com/huggingface/transformers
- Überprüfen der Installation
Nachdem die Installation abgeschlossen ist, führen Sie den folgenden Befehl aus, um sie zu testen:from transformers import pipeline print(pipeline('sentiment-analysis')('hugging face is awesome'))
Die Ausgabe sollte etwa so aussehen
{'label': 'POSITIVE', 'score': 0.9998}
Die Ergebnisse der
Verwendung der Pipeline-API
Das Kernstück von Transformers ist die Pipeline-API, die es dem Benutzer ermöglicht, komplexe Aufgaben auszuführen, ohne sich mit den Details des Modells zu befassen, wie z. B. Texterstellung, Spracherkennung und Bildsegmentierung. Und so funktioniert es:
- Textgenerierung
Verwenden Sie die Pipeline-API für die Texterstellung:from transformers import pipeline generator = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B") result = generator("The secret to baking a really good cake is") print(result[0]["generated_text"])
Modelle werden automatisch heruntergeladen und im Standardverzeichnis zwischengespeichert
~/.cache/huggingface/hub
. Die Benutzer können die UmgebungsvariableTRANSFORMERS_CACHE
Ändern Sie den Cache-Pfad. - Spracherkennung
Für Sprache-zu-Text-Aufgaben ist die Pipeline-API ebenso einfach:from transformers import pipeline asr = pipeline(task="automatic-speech-recognition", model="openai/whisper-large-v3") result = asr("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac") print(result["text"])
Die Ausgabe ist der Textinhalt einer Audiodatei, z. B. "Ich habe einen Traum ......".
- Interaktion mit der Befehlszeile
Transformers bietet Befehlszeilen-Toolstransformers serve
Wenn Sie einen HTTP-Server starten möchten, der mit der OpenAI-API kompatibel ist, können Sie dies tun:transformers serve
Die Benutzer können mit dem Modell über HTTP-Anfragen interagieren, wodurch es sich für die Integration in andere Anwendungen eignet.
Offline-Nutzung
Transformers unterstützt den Offline-Modus, der für netzlose Umgebungen geeignet ist. Die Benutzer können ihn mit den folgenden Schritten einrichten:
- Laden Sie das Modell lokal herunter:
from huggingface_hub import snapshot_download snapshot_download(repo_id="meta-llama/Llama-2-7b-hf", repo_type="model")
- Setzen Sie Umgebungsvariablen, um den Offline-Modus zu aktivieren:
export HF_HUB_OFFLINE=1
- Laden Sie das lokale Modell:
from transformers import LlamaForCausalLM model = LlamaForCausalLM.from_pretrained("./path/to/local/directory", local_files_only=True)
Der Offline-Modus gewährleistet, dass das Laden der Modelle nicht vom Netzwerk abhängig ist und eignet sich für Produktionsumgebungen.
Merkmal: Unterstützung neuer Modelle
Transformers wird ständig aktualisiert, um die neuesten Modelle zu unterstützen. Zum Beispiel:
- Kyutai-STTSprach-zu-Text-Modell basierend auf dem Mimi-Codec mit Unterstützung für Streaming-Audio-Verarbeitung. Installieren Sie die Vorschauversion:
pip install git+https://github.com/huggingface/transformers@v4.52.4-Kyutai-STT-preview
- ColQwen2Ein Modell für die Dokumentensuche, das die visuellen Merkmale von Seitenbildern berücksichtigt. Die Installationsmethode ist ähnlich:
pip install git+https://github.com/huggingface/transformers@v4.52.4-ColQwen2-preview
Diese Modelle werden in späteren Versionen (z.B. v4.53.0) offiziell veröffentlicht und können von den Nutzern vorab getestet werden.
Feinabstimmung und Schulung
Transformers unterstützt die Feinabstimmung des Modells und ist mit einer breiten Palette von Trainingsframeworks kompatibel. Benutzer können verwenden run_clm.py
Skripte für das Training von Sprachmodellen:
HF_HUB_OFFLINE=1 python examples/pytorch/language-modeling/run_clm.py --model_name_or_path meta-llama/Llama-2-7b-hf --dataset_name wikitext
Diese Funktion ist für Entwickler geeignet, die ihre Modelle anpassen müssen.
Anwendungsszenario
- akademische Forschung
Forscher verwenden Transformers, um vortrainierte Modelle für schnelle Experimente in der Verarbeitung natürlicher Sprache oder im Computersehen zu laden. Beim Testen neuer Algorithmen können beispielsweise die Modelle von Hugging Face Hub direkt aufgerufen werden, was Trainingszeit spart. - Geschäftsentwicklung
Unternehmensentwickler verwenden Transformers, um Chatbots, Sprachassistenten oder Bildanalysetools zu erstellen. Verwenden Sie zum Beispiel die Pipeline-API, um schnell Textgenerierungs- oder Spracherkennungsfunktionen für die Integration in Produkte bereitzustellen. - Bildung und Lernen
Studenten und Anfänger lernen mit Transformers Deep Learning und üben Aufgaben wie Textkategorisierung und Übersetzung mit Hilfe von vortrainierten Modellen und einfachem Code, um die Lernschwelle zu senken.
QA
- Welche Programmier-Frameworks werden von Transformers unterstützt?
Transformers ist kompatibel mit PyTorch, TensorFlow und Flax und unterstützt eine Vielzahl von Trainings- und Inferenz-Frameworks wie DeepSpeed, PyTorch-Lightning und vLLM. - Wie handhaben Sie die Zwischenspeicherung von Modell-Downloads?
Modelle werden standardmäßig im Cache der~/.cache/huggingface/hub
Dies kann über die UmgebungsvariableTRANSFORMERS_CACHE
Ändern Sie den Pfad. EinstellungHF_HUB_OFFLINE=1
Der Offline-Modus kann aktiviert werden, um nur das lokale Modell zu laden. - Brauche ich eine GPU, um Transformers zu benutzen?
Nicht erforderlich, Transformers unterstützt den CPU-Betrieb, aber die GPU beschleunigt Inferenz und Training. Eine reine CPU-Version ist zur Installation verfügbar, um die Installation von CUDA-Abhängigkeiten zu vermeiden.