
Delft ( de EP L Ganing F Ramework for T Ext) es un marco Keras y TensorFlow para el procesamiento de texto, centrándose en el etiquetado de secuencias (por ejemplo, etiquetado con entidad con nombre de entidad, extracción de información) y clasificación de texto (por ejemplo, clasificación de comentarios). Esta biblioteca vuelve a implementar las arquitecturas de aprendizaje profundo de última generación de última generación relevantes para las tareas de procesamiento de texto.
Delft tiene tres propósitos principales:
Cubierta de texto y textos ricos : la mayoría del aprendizaje profundo existente funciona en PNL solo considere textos simples como entrada. Además de los textos simples, también nos dirigimos a un texto rico donde los tokens están asociados a la información de diseño (fuente. Estilo, etc.), posiciones en documentos estructurados y posiblemente otra información contextual léxica o simbólica. El texto generalmente proviene de documentos grandes como PDF o HTML, y no solo de segmentos como oraciones o párrafos, y las características contextuales parecen muy útiles. El texto rico es el contenido textual más común utilizado por los humanos para comunicarse y trabajar.
Reproducibilidad y evaluación comparativa : al implementar varias referencias/modelos de última generación para tareas de etiquetado de secuencia y clasificación de texto, queremos ofrecer la capacidad de validar fácilmente los resultados informados y comparar varios métodos en las mismas condiciones y criterios.
Nivel de producción , al ofrecer posibilidades de rendimiento, robustez e integración óptimas, nuestro objetivo es apoyar mejores decisiones de ingeniería/compensación y aplicaciones exitosas de nivel de producción.
Algunas contribuciones incluyen:
Una variedad de arquitecturas y tareas NLP modernas que se utilizarán siguiendo los mismos formatos de API y entrada, incluidos RNN, ELMO y Transformers.
Reducción del tamaño de los modelos RNN, en particular al eliminar los incrustaciones de palabras de ellos. Por ejemplo, el modelo para el clasificador de comentarios tóxicos cayó de un tamaño de 230 MB con incrustaciones a 1.8 MB. En la práctica, el tamaño de todos los modelos de Delft es inferior a 2 MB, excepto el modelo Ontonotes 5.0 NER que es de 4.7 MB.
Implementación de un soporte genérico de características categóricas, disponibles en varias arquitecturas.
Uso del generador de datos dinámicos para que los datos de capacitación no necesiten estar completamente en la memoria.
Carga y gestión eficientes de un volumen ilimitado de incrustaciones estáticas previamente capacitadas.
Un marco de evaluación integral con las métricas estándar para las tareas de etiquetado y clasificación de secuencias, incluida la validación cruzada de N-Fold.
Integración de los transformadores de la cara de abrazos como capas de Keras.
Se ha realizado una integración nativa de Java de la biblioteca en Grobid a través de JEP.
La última versión de Delft 0.3.4 se ha probado con éxito con Python 3.8 y TensorFlow 2.9.3. Como siempre, se requieren GPU (s) para un tiempo de entrenamiento decente. Por ejemplo, un GeForce GTX 1050 TI (4GB) funciona muy bien para ejecutar modelos RNN y modelos base Bert o Roberta. El uso de un modelo grande Bert no es un problema con un GeForce GTX 1080 TI (11 GB), incluido el entrenamiento con un tamaño de lote modesto. Se admite el uso de múltiples GPU (entrenamiento e inferencia).
Visite la documentación de Delft para obtener información detallada sobre la instalación, el uso y los modelos.
Los paquetes PYPI están disponibles para versiones estables. La última versión estable es 0.3.4 :
python3 -m pip install delft==0.3.4
Para instalar Delft y usar la versión maestra actual, obtenga el repositorio de GitHub:
git clone https://github.com/kermitt2/delft
cd delftSe recomienda configurar primero un entorno virtual para evitar caer en uno de estos sombríos marismas de dependencia de Python:
virtualenv --system-site-packages -p python3.8 env
source env/bin/activateInstale las dependencias:
python3 -m pip install -r requirements.txtFinalmente instale el proyecto, preferiblemente en estado editable
python3 -m pip install -e .Vea la documentación de Delft para su uso.
Distribuido bajo la licencia Apache 2.0. Las dependencias utilizadas en el proyecto también se distribuyen bajo la licencia Apache 2.0 o se distribuyen bajo una licencia compatible.
Si contribuye a Delft, acepta compartir su contribución después de estas licencias.
Contacto: Patrice López ([email protected]) y Luca Foppiano (@lfoppiano).
Si desea este trabajo, consulte el proyecto actual de GitHub, junto con el identificador permanente a nivel de proyecto de patrimonio de software. Por ejemplo, con Bibtex:
@misc { DeLFT ,
title = { DeLFT } ,
howpublished = { url{https://github.com/kermitt2/delft} } ,
publisher = { GitHub } ,
year = { 2018--2024 } ,
archivePrefix = { swh } ,
eprint = { 1:dir:54eb292e1c0af764e27dd179596f64679e44d06e }
}