
Delft ( de ep l Gagner f Ramework pour T ext) est un framework Keras et TensorFlow pour le traitement de texte, en se concentrant sur l'étiquetage des séquences (par exemple, le marquage de l'entité nommé, l'extraction d'informations) et la classification du texte (Classification des commentaires par exemple). Cette bibliothèque réimplique les architectures d'apprentissage en profondeur de pointe standard pertinentes pour les tâches de traitement de texte.
Delft a trois objectifs principaux:
Couvrant du texte et des textes riches : la plupart des travaux d'apprentissage en profondeur existants en PNL considèrent uniquement les textes simples comme entrée. En plus des textes simples, nous ciblons également le texte riche où les jetons sont associés aux informations de mise en page (style de police, etc.), des positions dans des documents structurés, et éventuellement d'autres informations contextuelles lexicales ou symboliques. Le texte provient généralement de grands documents comme PDF ou HTML, et pas seulement de segments comme les phrases ou les paragraphes, et les fonctionnalités contextuelles semblent très utiles. Le texte riche est le contenu textuel le plus courant utilisé par les humains pour communiquer et travailler.
Reproductibilité et analyse comparative : en mettant en œuvre plusieurs références / modèles de pointe pour les tâches d'étiquetage des séquences et de classification du texte, nous voulons offrir la capacité de valider facilement les résultats rapportés et de comparer plusieurs méthodes dans les mêmes conditions et critères.
Niveau de production , en offrant des performances optimulaires, des possibilités de robustesse et d'intégration, nous visons à soutenir de meilleures décisions d'ingénierie / compromis et à succès au niveau de la production.
Certaines contributions incluent:
Une variété d'architectures et de tâches NLP modernes à utiliser en suivant les mêmes formats API et d'entrée, y compris RNN, ELMO et Transformers.
Réduction de la taille des modèles RNN, en particulier en supprimant les intégres de mots. Par exemple, le modèle du classificateur de commentaires toxiques est passé d'une taille de 230 Mo avec des incorporations à 1,8 Mo. En pratique, la taille de tous les modèles de Delft est inférieure à 2 Mo, à l'exception du modèle Ontonotes 5.0 NER qui est de 4,7 Mo.
Mise en œuvre d'un support générique des fonctionnalités catégorielles, disponibles dans diverses architectures.
Utilisation du générateur de données dynamique afin que les données de formation n'aient pas besoin de rester complètement en mémoire.
Charge et gestion efficaces d'un volume illimité d'incorporation pré-formée statique.
Un cadre d'évaluation complet avec les métriques standard pour les tâches d'étiquetage et de classification des séquences, y compris la validation croisée N volet.
Intégration des transformateurs en étreinte en tant que couches Keras.
Une intégration native Java de la bibliothèque a été réalisée dans Grobid via JEP.
La dernière version de Delft 0.3.4 a été testée avec succès avec Python 3.8 et TensorFlow 2.9.3. Comme toujours, les GPU sont nécessaires pour un temps de formation décent. Par exemple, un GeForce GTX 1050 Ti (4 Go) fonctionne très bien pour exécuter des modèles RNN et des modèles de base Bert ou Roberta. L'utilisation du modèle Bert Large n'est pas un problème avec un GEForce GTX 1080 Ti (11 Go), y compris une formation avec une taille de lot modeste. L'utilisation de plusieurs GPU (formation et inférence) est prise en charge.
Visitez la documentation Delft pour des informations détaillées sur l'installation, l'utilisation et les modèles.
Les packages PYPI sont disponibles pour des versions stables. La dernière version stable est 0.3.4 :
python3 -m pip install delft==0.3.4
Pour installer Delft et utiliser la version maître actuelle, obtenez le repo GitHub:
git clone https://github.com/kermitt2/delft
cd delftIl est conseillé de configurer d'abord un environnement virtuel pour éviter de tomber dans l'un de ces sombres marais de dépendance python:
virtualenv --system-site-packages -p python3.8 env
source env/bin/activateInstallez les dépendances:
python3 -m pip install -r requirements.txtInstallez enfin le projet, de préférence à l'état modifiable
python3 -m pip install -e .Voir la documentation Delft pour l'utilisation.
Distribué sous la licence Apache 2.0. Les dépendances utilisées dans le projet sont elles-mêmes également réparties sous licence Apache 2.0 ou distribuées sous une licence compatible.
Si vous contribuez à Delft, vous acceptez de partager votre contribution à la suite de ces licences.
Contact: Patrice Lopez ([email protected]) et Luca Foppiano (@lfoppiano).
Si vous voulez ce travail, veuillez vous référer au projet GitHub actuel, ainsi que l'identifiant permanent au niveau du projet logiciel. Par exemple, avec Bibtex:
@misc { DeLFT ,
title = { DeLFT } ,
howpublished = { url{https://github.com/kermitt2/delft} } ,
publisher = { GitHub } ,
year = { 2018--2024 } ,
archivePrefix = { swh } ,
eprint = { 1:dir:54eb292e1c0af764e27dd179596f64679e44d06e }
}