项目介绍:DeLFT
DeLFT(深度学习文本框架)是一个基于Keras和TensorFlow的框架,专注于文本处理的序列标注(如命名实体标注、信息提取)和文本分类(如评论分类)。这个库重新实现了用于文本处理任务的标准顶尖深度学习架构。
项目目标
DeLFT的三大主要目标包括:
-
覆盖文本与丰富文本:目前大多数自然语言处理中的深度学习只针对简单文本作为输入。DeLFT希望扩大到丰富文本,即除了简单文本外,还包括结合排版信息(字体、样式等)、位置在结构化文档中的上下文信息以及可能其他词汇或符号的文本。通常文本来自于大型文档如PDF或HTML,而不仅仅是句子或段落。因此,这些上下文特征非常有用。
-
可重复性与基准测试:通过实施多种参考或最先进的模型,DeLFT希望简化结果验证并在相同条件与标准下进行基准测试。
-
生产级支持:通过提供优化性能、稳健性和集成可能性,DeLFT助力更好的工程决策和成功的生产级应用。
特点与贡献
DeLFT为用户提供了一些重要的贡献和特性:
- 各种现代自然语言处理架构和任务可使用相同的API和输入格式,包括RNN、ELMo及transformers。
- 减少循环神经网络(RNN)模型的体积,特别是通过移除词嵌入。例如,删除嵌入后的有毒评论分类器模型从230MB缩减至1.8MB。在实际中,除Ontonotes 5.0的命名实体识别(NER)模型为4.7MB外,DeLFT中所有模型的大小均不超过2MB。
- 在多种架构中实现对分类特征的通用支持。
- 使用动态数据生成器,避免训练数据需要完全加载至内存。
- 高效加载和管理无限量的静态预训练嵌入。
- 提供详细的评估框架,针对序列标注和分类任务,包括n折交叉验证。
- 将HuggingFace的transformers集成为Keras的层。
系统集成与要求
DeLFT可通过JEP在Java环境中与GROBID集成。最新版DeLFT 0.3.4 在Python 3.8和Tensorflow 2.9.3上测试成功。GPU对于合适的训练时间是必要的,例如GeForce GTX 1050 Ti(4GB)适用于运行RNN模型及BERT或RoBERTa基本模型。使用GeForce GTX 1080 Ti(11GB)可以处理BERT大模型与适中批量大小的训练。支持多GPU的训练与推理。
文档与使用
DeLFT的详细安装、使用和模型信息可在DeLFT的文档中找到。稳定版本的PyPI包也可用。最新稳定版本为0.3.4
,通过以下命令安装:
python3 -m pip install delft==0.3.4
为了安装DeLFT并使用当前的主版本,请从GitHub获取代码库:
git clone https://github.com/kermitt2/delft
cd delft
建议首先设置一个虚拟环境,以避免Python依赖关系的麻烦:
virtualenv --system-site-packages -p python3.8 env
source env/bin/activate
安装依赖项:
python3 -m pip install -r requirements.txt
最后,以可编辑的状态安装项目:
python3 -m pip install -e .
查看DeLFT文档获取更多使用信息。
许可证与联系信息
DeLFT遵循Apache 2.0许可证分发。项目中使用的依赖包也遵循Apache 2.0或兼容的许可证。
如果您想为DeLFT做贡献,您需要按照这些许可协议分享您的贡献。
如需联系,可以通过电子邮件联系Patrice Lopez(patrice.lopez@science-miner.com)和Luca Foppiano (@lfoppiano)。
如何引用
如果需要引用此项目,请参考GitHub项目,并结合Software Heritage的项目级永久标识符。可以使用BibTeX的形式:
@misc{DeLFT,
title = {DeLFT},
howpublished = {\url{https://github.com/kermitt2/delft}},
publisher = {GitHub},
year = {2018--2024},
archivePrefix = {swh},
eprint = {1:dir:54eb292e1c0af764e27dd179596f64679e44d06e}
}