
Delft ( Depil Ganhar Framework for Ton ) é uma estrutura de Keras e Tensorflow para processamento de texto, com foco na marcação de sequência (por exemplo, marcação de entidade chamada, extração de informações) e classificação de texto (por exemplo, classificação de comentários). Esta biblioteca reimplementa as arquiteturas de aprendizado profundo padrão de ponta relevantes para as tarefas de processamento de texto.
Delft tem três propósitos principais:
Cobrindo o texto e os textos ricos : a maioria dos trabalhos de aprendizado profundo existente na PNL consideram apenas textos simples como entrada. Além de textos simples, também visamos texto rico onde os tokens estão associados a informações de layout (estilo de font. Etc.), posições em documentos estruturados e possivelmente outras informações contextuais lexicais ou simbólicas. O texto geralmente vem de documentos grandes como PDF ou HTML, e não apenas de segmentos como frases ou parágrafos, e os recursos contextuais parecem muito úteis. O texto rico é o conteúdo textual mais comum usado pelos humanos para se comunicar e trabalhar.
Reprodutibilidade e benchmarking : Ao implementar várias referências/modelos de última geração para as tarefas de marcação de sequência e classificação de texto, queremos oferecer a capacidade de validar facilmente os resultados relatados e de comparar vários métodos sob as mesmas condições e critérios.
Nível de produção , ao oferecer possibilidades de desempenho, robustez e integração otimizadas, pretendemos apoiar melhores decisões de engenharia/trade-off e aplicativos bem-sucedidos no nível de produção.
Algumas contribuições incluem:
Uma variedade de arquiteturas e tarefas modernas de NLP a serem usadas seguindo os mesmos formatos de API e entrada, incluindo RNN, Elmo e Transformers.
Redução do tamanho dos modelos RNN, em particular removendo as incorporações de palavras deles. Por exemplo, o modelo para o classificador de comentários tóxicos caiu de um tamanho de 230 MB com incorporação para 1,8 MB. Na prática, o tamanho de todos os modelos de Delft é inferior a 2 MB, exceto o modelo Ontonotes 5.0 NER, que é de 4,7 MB.
Implementação de um suporte genérico de recursos categóricos, disponíveis em várias arquiteturas.
O uso do gerador de dados dinâmicos para que os dados de treinamento não precisem ficar completamente na memória.
Carregamento e gerenciamento eficientes de um volume ilimitado de incorporações pré-treinadas estáticas.
Uma estrutura de avaliação abrangente com as métricas padrão para tarefas de rotulagem e classificação de sequência, incluindo validação cruzada N-Fold.
Integração de Transformadores de Huggingface como camadas de Keras.
Uma integração nativa de Java da biblioteca foi realizada em Grobid via JEP.
A versão mais recente do Delft 0.3.4 foi testada com sucesso com o Python 3.8 e o Tensorflow 2.9.3. Como sempre, as GPUs são necessárias para o tempo de treinamento decente. Por exemplo, um GeForce GTX 1050 TI (4 GB) está funcionando muito bem para executar modelos RNN e modelos básicos de Bert ou Roberta. O uso do Bert Large Model não há problema com um GeForce GTX 1080 Ti (11 GB), incluindo treinamento com tamanho de lote modesto. O uso de várias GPUs (treinamento e inferência) é suportado.
Visite a documentação do Delft para obter informações detalhadas sobre instalação, uso e modelos.
Os pacotes Pypi estão disponíveis para versões estáveis. A versão estável mais recente é 0.3.4 :
python3 -m pip install delft==0.3.4
Para instalar o Delft e usar a versão mestre atual, obtenha o repositório do GitHub:
git clone https://github.com/kermitt2/delft
cd delftÉ aconselhável configurar primeiro um ambiente virtual para evitar cair em um desses pântanos sombrios de dependência do Python:
virtualenv --system-site-packages -p python3.8 env
source env/bin/activateInstale as dependências:
python3 -m pip install -r requirements.txtFinalmente instale o projeto, de preferência em estado editável
python3 -m pip install -e .Veja a documentação de Delft para uso.
Distribuído sob licença Apache 2.0. As dependências usadas no projeto também são distribuídas pela licença Apache 2.0 ou distribuídas sob uma licença compatível.
Se você contribuir para a Delft, concorda em compartilhar sua contribuição seguindo essas licenças.
Contato: Patrice Lopez ([email protected]) e Luca foppiano (@lfoppiano).
Se você deseja este trabalho, consulte o projeto atual do GitHub, juntamente com o identificador permanente no nível do projeto do Software Heritage. Por exemplo, com Bibtex:
@misc { DeLFT ,
title = { DeLFT } ,
howpublished = { url{https://github.com/kermitt2/delft} } ,
publisher = { GitHub } ,
year = { 2018--2024 } ,
archivePrefix = { swh } ,
eprint = { 1:dir:54eb292e1c0af764e27dd179596f64679e44d06e }
}