Skip to content

Latest commit

 

History

History
326 lines (240 loc) · 23.9 KB

README_de.md

File metadata and controls

326 lines (240 loc) · 23.9 KB

Hugging Face Transformers Library

Build GitHub Documentation GitHub release Contributor Covenant DOI

Maschinelles Lernen auf dem neuesten Stand der Technik für JAX, PyTorch und TensorFlow

🤗 Transformers bietet Tausende von vortrainierten Modellen, um Aufgaben in verschiedenen Modalitäten wie Text, Bild und Audio durchzuführen.

Diese Modelle können angewendet werden, auf:

  • 📝 Text - für Aufgaben wie Textklassifizierung, Informationsextraktion, Question Answering, automatische Textzusammenfassung, maschinelle Übersetzung und Textgenerierung in über 100 Sprachen.
  • 🖼️ Bilder - für Aufgaben wie Bildklassifizierung, Objekterkennung und Segmentierung.
  • 🗣️ Audio - für Aufgaben wie Spracherkennung und Audioklassifizierung.

Transformer-Modelle können auch Aufgaben für mehrere Modalitäten in Kombination durchführen, z. B. tabellenbasiertes Question Answering, optische Zeichenerkennung, Informationsextraktion aus gescannten Dokumenten, Videoklassifizierung und visuelles Question Answering.

🤗 Transformers bietet APIs, um diese vortrainierten Modelle schnell herunterzuladen und für einen gegebenen Text zu verwenden, sie auf Ihren eigenen Datensätzen zu feintunen und dann mit der Community in unserem Model Hub zu teilen. Gleichzeitig ist jedes Python-Modul, das eine Architektur definiert, komplett eigenständig und kann modifiziert werden, um schnelle Forschungsexperimente zu ermöglichen.

🤗 Transformers unterstützt die nahtlose Integration von drei der beliebtesten Deep-Learning-Bibliotheken: Jax, PyTorch und TensorFlow. Trainieren Sie Ihr Modell in einem Framework und laden Sie es zur Inferenz unkompliziert mit einem anderen.

Online-Demos

Sie können die meisten unserer Modelle direkt auf ihren Seiten im Model Hub testen. Wir bieten auch privates Modell-Hosting, Versionierung, & eine Inferenz-API für öffentliche und private Modelle an.

Hier sind einige Beispiele:

In der Computerlinguistik:

In der Computer Vision:

Im Audio-Bereich:

In multimodalen Aufgaben:

100 Projekte, die 🤗 Transformers verwenden

🤗 Transformers ist mehr als nur ein Toolkit zur Verwendung von vortrainierten Modellen: Es ist eine Gemeinschaft von Projekten, die darum herum und um den Hugging Face Hub aufgebaut sind. Wir möchten, dass 🤗 Transformers es Entwicklern, Forschern, Studenten, Professoren, Ingenieuren und jedem anderen ermöglicht, ihre Traumprojekte zu realisieren.

Um die 100.000 Sterne von 🤗 Transformers zu feiern, haben wir beschlossen, die Gemeinschaft in den Mittelpunkt zu stellen und die Seite awesome-transformers erstellt, die 100 unglaubliche Projekte auflistet, die zusammen mit 🤗 Transformers realisiert wurden.

Wenn Sie ein Projekt besitzen oder nutzen, von dem Sie glauben, dass es Teil der Liste sein sollte, öffnen Sie bitte einen PR, um es hinzuzufügen!

Wenn Sie individuelle Unterstützung vom Hugging Face-Team möchten

HuggingFace Expert Acceleration Program

Schnelleinstieg

Um sofort ein Modell mit einer bestimmten Eingabe (Text, Bild, Audio ...) zu verwenden, bieten wir die pipeline-API an. Pipelines kombinieren ein vortrainiertes Modell mit der jeweiligen Vorverarbeitung, die während dessen Trainings verwendet wurde. Hier sehen Sie, wie man schnell eine Pipeline verwenden kann, um positive und negative Texte zu klassifizieren:

>>> from transformers import pipeline

# Zuweisung einer Pipeline für die Sentiment-Analyse
>>> classifier = pipeline('sentiment-analysis')
>>> classifier('We are very happy to introduce pipeline to the transformers repository.')
[{'label': 'POSITIVE', 'score': 0.9996980428695679}]

Die zweite Codezeile lädt und cacht das vortrainierte Modell, das von der Pipeline verwendet wird, während die dritte es an dem gegebenen Text evaluiert. Hier ist die Antwort "positiv" mit einer Konfidenz von 99,97 %.

Viele Aufgaben, sowohl in der Computerlinguistik als auch in der Computer Vision und Sprachverarbeitung, haben eine vortrainierte pipeline, die sofort einsatzbereit ist. Z. B. können wir leicht erkannte Objekte in einem Bild extrahieren:

>>> import requests
>>> from PIL import Image
>>> from transformers import pipeline

# Download eines Bildes mit süßen Katzen
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"
>>> image_data = requests.get(url, stream=True).raw
>>> image = Image.open(image_data)

# Zuweisung einer Pipeline für die Objekterkennung
>>> object_detector = pipeline('object-detection')
>>> object_detector(image)
[{'score': 0.9982201457023621,
  'label': 'remote',
  'box': {'xmin': 40, 'ymin': 70, 'xmax': 175, 'ymax': 117}},
 {'score': 0.9960021376609802,
  'label': 'remote',
  'box': {'xmin': 333, 'ymin': 72, 'xmax': 368, 'ymax': 187}},
 {'score': 0.9954745173454285,
  'label': 'couch',
  'box': {'xmin': 0, 'ymin': 1, 'xmax': 639, 'ymax': 473}},
 {'score': 0.9988006353378296,
  'label': 'cat',
  'box': {'xmin': 13, 'ymin': 52, 'xmax': 314, 'ymax': 470}},
 {'score': 0.9986783862113953,
  'label': 'cat',
  'box': {'xmin': 345, 'ymin': 23, 'xmax': 640, 'ymax': 368}}]

Hier erhalten wir eine Liste von Objekten, die im Bild erkannt wurden, mit einer Markierung, die das Objekt eingrenzt, und einem zugehörigen Konfidenzwert. Folgend ist das Originalbild links und die Vorhersagen rechts dargestellt:

Sie können mehr über die von der pipeline-API unterstützten Aufgaben in diesem Tutorial erfahren.

Zusätzlich zur pipeline benötigt es nur drei Zeilen Code, um eines der vortrainierten Modelle für Ihre Aufgabe herunterzuladen und zu verwenden. Hier ist der Code für die PyTorch-Version:

>>> from transformers import AutoTokenizer, AutoModel

>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = AutoModel.from_pretrained("google-bert/bert-base-uncased")

>>> inputs = tokenizer("Hello world!", return_tensors="pt")
>>> outputs = model(**inputs)

Und hier ist der entsprechende Code für TensorFlow:

>>> from transformers import AutoTokenizer, TFAutoModel

>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = TFAutoModel.from_pretrained("google-bert/bert-base-uncased")

>>> inputs = tokenizer("Hello world!", return_tensors="tf")
>>> outputs = model(**inputs)

Der Tokenizer ist für die gesamte Vorverarbeitung, die das vortrainierte Modell benötigt, verantwortlich und kann direkt auf einem einzelnen String (wie in den obigen Beispielen) oder einer Liste ausgeführt werden. Er gibt ein Dictionary aus, das Sie im darauffolgenden Code verwenden oder einfach direkt Ihrem Modell übergeben können, indem Sie den ** Operator zum Entpacken von Argumenten einsetzen.

Das Modell selbst ist ein reguläres PyTorch nn.Module oder ein TensorFlow tf.keras.Model (abhängig von Ihrem Backend), das Sie wie gewohnt verwenden können. Dieses Tutorial erklärt, wie man ein solches Modell in eine klassische PyTorch- oder TensorFlow-Trainingsschleife integrieren kann oder wie man unsere Trainer-API verwendet, um es schnell auf einem neuen Datensatz zu feintunen.

Warum sollten Sie 🤗 Transformers verwenden?

  1. Benutzerfreundliche Modelle auf dem neuesten Stand der Technik:

    • Hohe Leistung bei Aufgaben zu Natural Language Understanding & Generation, Computer Vision und Audio.
    • Niedrige Einstiegshürde für Bildungskräfte und Praktiker.
    • Wenige benutzerseitige Abstraktionen mit nur drei zu lernenden Klassen.
    • Eine einheitliche API für die Verwendung aller unserer vortrainierten Modelle.
  2. Geringere Rechenkosten, kleinerer CO2-Fußabdruck:

    • Forscher können trainierte Modelle teilen, anstatt sie immer wieder neu zu trainieren.
    • Praktiker können die Rechenzeit und Produktionskosten reduzieren.
    • Dutzende Architekturen mit über 400.000 vortrainierten Modellen über alle Modalitäten hinweg.
  3. Wählen Sie das richtige Framework für jeden Lebensabschnitt eines Modells:

    • Trainieren Sie Modelle auf neustem Stand der Technik in nur drei Codezeilen.
    • Verwenden Sie ein einzelnes Modell nach Belieben mit TF2.0-/PyTorch-/JAX-Frameworks.
    • Wählen Sie nahtlos das richtige Framework für Training, Evaluation und Produktiveinsatz.
  4. Passen Sie ein Modell oder Beispiel leicht an Ihre Bedürfnisse an:

    • Wir bieten Beispiele für jede Architektur an, um die von ihren ursprünglichen Autoren veröffentlichten Ergebnisse zu reproduzieren.
    • Modellinterna sind so einheitlich wie möglich verfügbar gemacht.
    • Modelldateien können unabhängig von der Bibliothek für schnelle Experimente verwendet werden.

Warum sollten Sie 🤗 Transformers nicht verwenden?

  • Diese Bibliothek ist kein modularer Werkzeugkasten mit Bausteinen für neuronale Netze. Der Code in den Modelldateien ist absichtlich nicht mit zusätzlichen Abstraktionen refaktorisiert, sodass Forscher schnell mit jedem der Modelle iterieren können, ohne sich in zusätzliche Abstraktionen/Dateien vertiefen zu müssen.
  • Die Trainings-API ist nicht dafür gedacht, mit beliebigen Modellen zu funktionieren, sondern ist für die Verwendung mit den von der Bibliothek bereitgestellten Modellen optimiert. Für generische Trainingsschleifen von maschinellem Lernen sollten Sie eine andere Bibliothek verwenden (möglicherweise Accelerate).
  • Auch wenn wir bestrebt sind, so viele Anwendungsfälle wie möglich zu veranschaulichen, sind die Beispielskripte in unserem examples Ordner genau das: Beispiele. Es ist davon auszugehen, dass sie nicht sofort auf Ihr spezielles Problem anwendbar sind und einige Codezeilen geändert werden müssen, um sie für Ihre Bedürfnisse anzupassen.

Installation

Mit pip

Dieses Repository wurde mit Python 3.8+, Flax 0.4.1+, PyTorch 1.11+ und TensorFlow 2.6+ getestet.

Sie sollten 🤗 Transformers in einer virtuellen Umgebung installieren. Wenn Sie mit virtuellen Python-Umgebungen nicht vertraut sind, schauen Sie sich den Benutzerleitfaden an.

Erstellen und aktivieren Sie zuerst eine virtuelle Umgebung mit der Python-Version, die Sie verwenden möchten.

Dann müssen Sie entweder Flax, PyTorch oder TensorFlow installieren. Bitte beziehe dich entsprechend auf die jeweiligen Installationsanleitungen für TensorFlow, PyTorch, und/oder Flax und Jax für den spezifischen Installationsbefehl für Ihre Plattform.

Wenn eines dieser Backends installiert ist, kann 🤗 Transformers wie folgt mit pip installiert werden:

pip install transformers

Wenn Sie mit den Beispielen experimentieren möchten oder die neueste Version des Codes benötigen und nicht auf eine neue Veröffentlichung warten können, müssen Sie die Bibliothek von der Quelle installieren.

Mit conda

🤗 Transformers kann wie folgt mit conda installiert werden:

conda install conda-forge::transformers

HINWEIS: Die Installation von transformers aus dem huggingface-Kanal ist veraltet.

Folgen Sie den Installationsanleitungen von Flax, PyTorch oder TensorFlow, um zu sehen, wie sie mit conda installiert werden können.

HINWEIS: Auf Windows werden Sie möglicherweise aufgefordert, den Entwicklermodus zu aktivieren, um von Caching zu profitieren. Wenn das für Sie keine Option ist, lassen Sie es uns bitte in diesem Issue wissen.

Modellarchitekturen

Alle Modell-Checkpoints, die von 🤗 Transformers bereitgestellt werden, sind nahtlos aus dem huggingface.co Model Hub integriert, wo sie direkt von Benutzern und Organisationen hochgeladen werden.

Aktuelle Anzahl der Checkpoints:

🤗 Transformers bietet derzeit die folgenden Architekturen an: siehe hier für eine jeweilige Übersicht.

Um zu überprüfen, ob jedes Modell eine Implementierung in Flax, PyTorch oder TensorFlow hat oder über einen zugehörigen Tokenizer verfügt, der von der 🤗 Tokenizers-Bibliothek unterstützt wird, schauen Sie auf diese Tabelle.

Diese Implementierungen wurden mit mehreren Datensätzen getestet (siehe Beispielskripte) und sollten den Leistungen der ursprünglichen Implementierungen entsprechen. Weitere Details zur Leistung finden Sie im Abschnitt der Beispiele in der Dokumentation.

Mehr erfahren

Abschnitt Beschreibung
Dokumentation Vollständige API-Dokumentation und Tutorials
Zusammenfassung der Aufgaben Von 🤗 Transformers unterstützte Aufgaben
Vorverarbeitungs-Tutorial Verwendung der Tokenizer-Klasse zur Vorverarbeitung der Daten für die Modelle
Training und Feintuning Verwendung der von 🤗 Transformers bereitgestellten Modelle in einer PyTorch-/TensorFlow-Trainingsschleife und der Trainer-API
Schnelleinstieg: Feintuning/Anwendungsskripte Beispielskripte für das Feintuning von Modellen für eine breite Palette von Aufgaben
Modellfreigabe und -upload Laden Sie Ihre feingetunten Modelle hoch und teilen Sie sie mit der Community

Zitation

Wir haben jetzt ein Paper, das Sie für die 🤗 Transformers-Bibliothek zitieren können:

@inproceedings{wolf-etal-2020-transformers,
    title = "Transformers: State-of-the-Art Natural Language Processing",
    author = "Thomas Wolf and Lysandre Debut and Victor Sanh and Julien Chaumond and Clement Delangue and Anthony Moi and Pierric Cistac and Tim Rault and Rémi Louf and Morgan Funtowicz and Joe Davison and Sam Shleifer and Patrick von Platen and Clara Ma and Yacine Jernite and Julien Plu and Canwen Xu and Teven Le Scao and Sylvain Gugger and Mariama Drame and Quentin Lhoest and Alexander M. Rush",
    booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
    month = oct,
    year = "2020",
    address = "Online",
    publisher = "Association for Computational Linguistics",
    url = "https://www.aclweb.org/anthology/2020.emnlp-demos.6",
    pages = "38--45"
}