
Delft ( de ep l Заработка F Ramework для t ext) - это структура керас и тензорфлоу для обработки текста, сосредоточенная на маркировке последовательности (например, тегирование объекта, извлечение информации) и классификацию текста (например, классификация комментариев). Эта библиотека переосмысливает стандартные современные архитектуры глубокого обучения, относящиеся к задачам обработки текста.
Делфт имеет три основных целях:
Охватывание текста и богатых текстов : большинство существующих работ глубокого обучения в НЛП рассматривают только простые тексты как входные данные. В дополнение к простым текстам, мы также нацелены на богатый текст , где токены связаны с информацией о макете (шрифт стиль и т. Д.), Позициями в структурированных документах и, возможно, другой лексической или символической контекстной информации. Текст обычно исходит из больших документов, таких как PDF или HTML, и не только от сегментов, таких как предложения или абзацы, и контекстуальные функции кажутся очень полезными. Богатый текст - наиболее распространенный текстовый контент, используемый людьми для общения и работы.
Воспроизводимость и сравнительный анализ : внедряя несколько ссылок/современных моделей как для задач маркировки последовательностей, так и для задач классификации текста, мы хотим предложить способность легко проверять сообщенные результаты и сравнить несколько методов в соответствии с теми же условиями и критериями.
Уровень производства , предлагая оптимированные возможности производительности, устойчивости и интеграции, мы стремимся поддержать более инженерные решения/компромисс и успешные приложения на уровне производства.
Некоторые вклады включают:
Разнообразие современных архитектур NLP и задач, которые будут использоваться после того же API и входных форматов, включая RNN, ELMO и трансформаторы.
Сокращение размера моделей RNN, в частности, путем удаления из них встроений слова. Например, модель для классификатора токсичных комментариев снизилась от размера 230 МБ с встроениями до 1,8 МБ. На практике размер всех моделей Delft составляет менее 2 МБ, за исключением модели Ontonotes 5.0 NER, которая составляет 4,7 МБ.
Реализация общей поддержки категориальных функций, доступная в различных архитектурах.
Использование динамического генератора данных, так что учебные данные не должны полностью стоять в памяти.
Эффективная нагрузка и управление неограниченным объемом статических предварительно обученных встраиваний.
Комплексная структура оценки со стандартными метриками для задач маркировки последовательностей и классификации, включая N-размер перекрестную проверку.
Интеграция трансформаторов Huggingface в качестве слоев кераса.
Нативная интеграция библиотеки Java была реализована в Grobid через JEP.
Последний выпуск Delft 0.3.4 был успешно протестирован с Python 3.8 и Tensorflow 2.9.3. Как всегда, графические процессоры необходимы для приличного времени обучения. Например, GeForce GTX 1050 TI (4GB) очень хорошо работает для запуска моделей RNN и базовых моделей Bert или Roberta. Использование Bert Large Model не является проблемой с GeForce GTX 1080 TI (11 ГБ), включая тренировку со скромным размером партии. Использование нескольких графических процессоров (обучение и вывод) поддерживается.
Посетите документацию Delft для получения подробной информации об установке, использовании и моделях.
Пакеты PYPI доступны для стабильных версий. Последняя стабильная версия 0.3.4 :
python3 -m pip install delft==0.3.4
Для установки Delft и использования текущей главной версии, получите GitHub Repo:
git clone https://github.com/kermitt2/delft
cd delftРекомендуется сначала настроить виртуальную среду, чтобы не попасть в одно из этих мрачных болот зависимости от питона:
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 для использования.
Распределен по лицензии Apache 2.0. Зависимости, используемые в проекте, сами также распределены по лицензии Apache 2.0 или распределены по совместимой лицензии.
Если вы внесете свой вклад в Delft, вы соглашаетесь делиться своим взносом после этих лицензий.
Контакт: Патрис Лопес ([email protected]) и Лука Фоппиано (@lfoppiano).
Если вы хотите эту работу, пожалуйста, обратитесь к нынешнему проекту GitHub, вместе с постоянным идентификатором уровня проекта на уровне программного наследия. Например, с Bibtex:
@misc { DeLFT ,
title = { DeLFT } ,
howpublished = { url{https://github.com/kermitt2/delft} } ,
publisher = { GitHub } ,
year = { 2018--2024 } ,
archivePrefix = { swh } ,
eprint = { 1:dir:54eb292e1c0af764e27dd179596f64679e44d06e }
}