
Delft ( de ep l verdiente f -ramework for t ext) ist ein Keras- und Tensorflow -Framework für die Textverarbeitung, die sich auf die Sequenzkennzeichnung (z. B. benannte Entitäts -Tagging, Informationsextraktion) und Textklassifizierung (z. B. Klassifizierung von Kommentaren) konzentrieren. Diese Bibliothek implementiert Standard-Stand der Technik Deep Learning Architekturen, die für Textverarbeitungsaufgaben relevant sind.
Delft hat drei Hauptzwecke:
Deckung von Text und reichen Texten : Die meisten vorhandenen Deep -Lernen arbeiten in NLP nur als Eingabe. Zusätzlich zu einfachen Texten zielen wir auch an einen reichen Text , in dem Token mit Layoutinformationen (Schriftstil usw.), Positionen in strukturierten Dokumenten und möglicherweise anderen lexikalischen oder symbolischen Kontextinformationen zugeordnet sind. Der Text stammt normalerweise aus großen Dokumenten wie PDF oder HTML und nicht nur aus Segmenten wie Sätzen oder Absätzen, und kontextbezogene Funktionen scheinen sehr nützlich zu sein. Reicher Text ist der häufigste Textinhalt, der von Menschen zur Kommunikation und Arbeiten verwendet wird.
Reproduzierbarkeit und Benchmarking : Durch die Implementierung mehrerer Referenzen/hochmodernen Modelle sowohl für die Aufgaben der Sequenzmarkierung als auch für die Textklassifizierungsaufgaben möchten wir die Fähigkeit anbieten, gemeldete Ergebnisse leicht zu validieren und mehrere Methoden unter denselben Bedingungen und Kriterien zu bewerten.
Das Produktionsniveau , indem wir optimierte Leistung, Robustheit und Integrationsmöglichkeiten anbieten, möchten wir bessere technische Entscheidungen/Kompromisse und erfolgreiche Anwendungen auf Produktionsebene unterstützen.
Einige Beiträge umfassen:
Eine Vielzahl moderner NLP -Architekturen und -aufgaben, die nach denselben API- und Eingangsformaten verwendet werden sollen, einschließlich RNN, Elmo und Transformers.
Reduzierung der Größe der RNN -Modelle, insbesondere durch Entfernen von Worteinbettungen von ihnen. Zum Beispiel ging das Modell für den giftigen Kommentarklassifizierer von einer Größe von 230 MB mit Einbettungen auf 1,8 MB zurück. In der Praxis beträgt die Größe aller Modelle von Delft weniger als 2 MB, mit Ausnahme von Ontonotes 5.0 NER -Modell, das 4,7 MB beträgt.
Implementierung einer generischen Unterstützung kategorischer Merkmale, die in verschiedenen Architekturen verfügbar sind.
Verwendung des dynamischen Datengenerators, damit die Trainingsdaten nicht vollständig im Speicher stehen müssen.
Effiziente Belastung und Verwaltung eines unbegrenzten Volumens statischer Vorausbettungen.
Ein umfassendes Bewertungsrahmen mit den Standardmetriken für die Aufgaben zur Kennzeichnung und Klassifizierung der Sequenz, einschließlich n-fach-Kreuzvalidierung.
Integration von Harmging -Face -Transformatoren als Kerasschichten.
Eine einheimische Java -Integration der Bibliothek wurde in Grobid über JEP realisiert.
Die neueste Delft -Version 0.3.4 wurde erfolgreich mit Python 3.8 und TensorFlow 2.9.3 getestet. Wie immer sind GPUs für eine anständige Trainingszeit erforderlich. Beispielsweise funktioniert ein GeForce GTX 1050 TI (4GB) sehr gut, um RNN -Modelle und Bert- oder Roberta -Basismodelle auszuführen. Die Verwendung von Bert Large Model ist kein Problem mit einem GeForce GTX 1080 TI (11 GB), einschließlich des Trainings mit bescheidener Chargengröße. Die Verwendung mehrerer GPUs (Training und Inferenz) wird unterstützt.
Besuchen Sie die Delft -Dokumentation für detaillierte Informationen zu Installation, Verwendung und Modellen.
PYPI -Pakete sind für stabile Versionen erhältlich. Die neueste stabile Version ist 0.3.4 :
python3 -m pip install delft==0.3.4
Um Delft zu installieren und die aktuelle Master -Version zu verwenden, erhalten Sie das GitHub Repo:
git clone https://github.com/kermitt2/delft
cd delftEs wird empfohlen, zuerst eine virtuelle Umgebung einzurichten, um zu vermeiden, dass sie in eine dieser düsteren Python -Abhängigkeitsmängel geraten:
virtualenv --system-site-packages -p python3.8 env
source env/bin/activateInstallieren Sie die Abhängigkeiten:
python3 -m pip install -r requirements.txtInstallieren Sie das Projekt schließlich, vorzugsweise im bearbeitbaren Zustand
python3 -m pip install -e .Siehe Delft -Dokumentation zur Verwendung.
Unter Apache 2.0 Lizenz verteilt. Die im Projekt verwendeten Abhängigkeiten sind entweder selbst auch unter Apache 2.0 -Lizenz verteilt oder unter einer kompatiblen Lizenz verteilt.
Wenn Sie zu Delft beitragen, erklären Sie sich damit einverstanden, Ihren Beitrag nach diesen Lizenzen zu teilen.
Kontakt: Patrice Lopez ([email protected]) und Luca Foppiano (@lfoppiano).
Wenn Sie diese Arbeit wünschen, lesen Sie bitte das vorliegende GitHub-Projekt zusammen mit der permanenten Kennung auf Software Heritage Project-Level. Zum Beispiel mit Bibtex:
@misc { DeLFT ,
title = { DeLFT } ,
howpublished = { url{https://github.com/kermitt2/delft} } ,
publisher = { GitHub } ,
year = { 2018--2024 } ,
archivePrefix = { swh } ,
eprint = { 1:dir:54eb292e1c0af764e27dd179596f64679e44d06e }
}