1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openkg-deepke

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 26 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 11:36 5964b57

Основываясь на глубоком обучении: открытый исходный код для извлечения информации из китайских текстов в виде графа знаний

DeepKE — это открытый инструмент для извлечения и построения графов знаний, который поддерживает инструменты извлечения знаний cnSchema, с ограниченными ресурсами, из длинных документов и мультимодальных данных. DeepKE может быть реализован на основе PyTorch для выполнения задач именования сущностей, извлечения отношений и атрибутов. Для начинающих пользователей доступны документация, онлайн-демонстрация, статьи и плакаты.

Важные замечания:

— Если вы хотите использовать большие модели для извлечения, попробуйте DeepKE-LLM и KnowLM! — Хотите самостоятельно обучить модель под полным контролем? Попробуйте быстрое начало работы. Мы предоставляем модели для распознавания сущностей (например, LightNER (COLING'22), W2NER (AAAI'22)), модели для извлечения отношений (например, KnowPrompt (WWW'22)) и модели для совместного извлечения сущностей и отношений (например, ASP (EMNLP'22)).

Если у вас возникнут проблемы при установке DeepKE и DeepKE-LLM (обычно это проблемы совместимости пакетов), не беспокойтесь. Вы можете обратиться к часто задаваемым вопросам или напрямую создать проблему на GitHub. Мы сделаем всё возможное, чтобы помочь вам решить проблему!

Содержание:

  1. Введение.
  2. Новые функции.
  3. Демонстрация прогнозирования.
  4. Архитектура модели.
  5. Быстрое начало работы: DeepKE-LLM, DeepKE.
  6. Зависимости среды.
  7. Конкретные функции: распознавание именованных сущностей NER, извлечение отношений RE, извлечение атрибутов AE, извлечение событий.
  8. Примечания (часто задаваемые вопросы).
  9. Планы на будущее.
  10. Литература.
  11. Связанные инструменты.
  12. Цитирование.
  13. Вклад в проект.
  14. Другие инструменты для открытого извлечения знаний. 2023 год, февраль

Поддержка больших моделей (GPT-3), включая In-context Learning (на основе EasyInstruct) и генерацию данных. Добавлена модель для распознавания сущностей W2NER (AAAI'22).

Старые новости

Ноябрь 2022 года

Добавлены функции для маркировки данных и автоматического создания меток для распознавания сущностей и извлечения отношений (распознавание сущностей, извлечение отношений). Оптимизировано обучение с использованием нескольких GPU (извлечение отношений).

Сентябрь 2022 года

Статья DeepKE: A Deep Learning Based Knowledge Extraction Toolkit for Knowledge Base Population была принята на EMNLP2022 System Demonstration Track.

Август 2022 года

Добавлено расширение данных для извлечения отношений с низким уровнем ресурсов (китайский и английский языки).

Июнь 2022 года

Добавлена поддержка извлечения сущностей и отношений в мультимодальных сценариях.

Май 2022 года

Выпущена версия DeepKE-cnschema, специальная модель, которая поддерживает распознавание китайских сущностей и извлечение отношений на основе cnSchema.

Январь 2022 года

Публикация статьи DeepKE: A Deep Learning Based Knowledge Extraction Toolkit for Knowledge Base Population.

Декабрь 2021 года

Добавлен файл dockerfile для автоматического создания среды.

Ноябрь 2021 года

Создана демонстрационная страница DeepKE, поддерживающая извлечение в реальном времени без необходимости развёртывания и обучения модели. Опубликованы документы DeepKE с подробной информацией о коде и наборе данных.

Октябрь 2021 года

Установка DeepKE через pip. Выпущена версия deepke-v2.0.

Август 2019 года

Установка DeepKE через pip. Выпущена версия deepke-v1.0.

Август 2018 года

Запуск проекта DeepKE. Выпущены исходные коды deepke-v0.1.

Прогнозирование демонстрации

Далее представлено использование демо для демонстрации процесса прогнозирования. Анимация создана с помощью Terminalizer и доступна по ссылке.

Архитектура модели

Архитектура DeepKE представляет собой унифицированный фреймворк для трёх функций извлечения знаний: распознавание именованных сущностей, извлечение отношений и атрибутивное извлечение. Модель может быть адаптирована к различным сценариям, таким как стандартное полное управление, извлечение с низким количеством образцов, извлечение на уровне документов и мультимодальное извлечение. Каждый сценарий состоит из трёх частей: Data (Tokenizer, Preprocessor и Loader), Model (Module, Encoder и Forwarder) и Core (Training, Evaluation и Prediction).

Быстрый старт

DeepKE-LLM

В эпоху больших моделей DeepKE-LLM использует новые зависимости среды.

conda create -n deepke-llm python=3.9
conda activate deepke-llm

cd example/llm
pip install -r requirements.txt

Обратите внимание, что это папка requirements.txt в папке example/llm.

DeepKE

DeepKE можно установить с помощью pip или вручную создать среду и развернуть контейнер.

🔧 Ручная настройка среды

Шаг 1: Загрузите код с помощью команды git clone --depth 1 https://github.com/zjunlp/DeepKE.git (не забудьте поставить звезду и форк!).

Шаг 2: Создайте виртуальную среду с помощью anaconda и активируйте её. Также можно использовать Dockerfile для создания образа и следовать инструкциям для самостоятельного создания контейнера. Для ускорения процесса можно воспользоваться образом.

conda create -n deepke python=3.8

conda activate deepke
  1. Установите с помощью pip:
pip install deepke
  1. Установите из исходного кода:
pip install -r requirements.txt

python setup.py install

python setup.py develop

Шаг 3: Перейдите в папку задач и используйте пример извлечения отношений.

cd DeepKE/example/re/standard

Шаг 4: Загрузите набор данных или создайте его согласно инструкции по маркировке данных.

wget 120.27.214.45/Data/re/standard/data.tar.gz

tar -xzvf data.tar.gz

Поддерживаются различные форматы данных, которые описаны в соответствующих разделах.

Шаг 5: Обучите модель. Параметры, используемые в обучении, можно изменить в файле conf.

DeepKE использует wandb для визуализации настройки параметров.

python run.py

Шаг 6: Выполните прогнозирование модели. Параметры, используемые при прогнозировании, также можно изменить в файле conf.

Измените файл conf/predict.yaml, чтобы сохранить путь к обученной модели. Используйте абсолютный путь к модели, например xxx/checkpoints/2019-12-03_17-35-30/cnn_epoch21.pth.

python predict.py
  • ❗Примечание: Если у вас возникли проблемы при установке или использовании, вы можете обратиться к разделу «Примечания (часто задаваемые вопросы)» или создать проблему на GitHub.

🐳 Развёртывание на основе контейнеров

Step1: Скачайте клиент Docker и запустите службу Docker.

Step2: Извлеките образ и запустите контейнер.

docker pull zjunlp/deepke:latest
docker run -it zjunlp/deepke:latest /bin/bash

Остальные шаги такие же, как и в разделе «Ручная настройка среды».

  • ❗Примечание: Вы можете ускорить процесс развёртывания, следуя советам. Среда зависимости

DeepKE

python == 3.8

  • torch>=1.5,<=1.11
  • hydra-core==1.0.6
  • tensorboard==2.4.1
  • matplotlib==3.4.1
  • transformers==4.26.0
  • jieba==0.42.1
  • scikit-learn==0.24.1
  • seqeval==1.2.2
  • opt-einsum==3.3.0
  • wandb==0.12.7
  • ujson==5.6.0
  • huggingface_hub==0.11.0
  • tensorboardX==2.5.1
  • nltk==3.8
  • protobuf==3.20.1
  • numpy==1.21.0
  • ipdb==0.13.11
  • pytorch-crf==0.7.2
  • tqdm==4.66.1
  • openai==0.28.0
  • Jinja2==3.1.2
  • datasets==2.13.2
  • pyhocon==0.3.60

Конкретные функции

1. Распознавание именованных сущностей (NER)

Распознавание именованных сущностей — это процесс извлечения сущностей и их типов из неструктурированного текста. Данные представлены в виде текстовых файлов, а примеры стилей приведены ниже (пользователь может использовать инструменты Doccano или MarkTool для аннотирования данных или использовать функцию слабого надзора DeepKE для автоматического получения данных):

Sentence Person Location Organization
本报北京9月4日讯记者杨涌报道:部分省区人民日报宣传发行工作座谈会9月3日在4日在京举行。 杨涌 北京 人民日报
《红楼梦》由王扶林导演,周汝昌、王蒙、周岭等多位专家参与制作。 王扶林,周汝昌,王蒋,周岭
秦始皇兵马俑位于陕西省西安市,是世界八大奇迹之一。 秦始皇 陕西省,西安市

Подробный процесс описан в README.

  • Стандартный режим полного надзора (STANDARD)

    Мы также предоставляем поддержку больших моделей и версию DeepKE-cnSchema, которая готова к использованию без обучения и поддерживает извлечение сущностей cnSchema.

    Шаг 1: Перейдите в папку DeepKE/example/ner/standard и загрузите набор данных.

      ```bash
      wget 120.27.214.45/Data/ner/standard/data.tar.gz
    
      tar -xzvf data.tar.gz
      ```

    Шаг 2: Обучите модель. Вы можете изменить данные и параметры конфигурации в папках data и conf соответственно.

      ```
      python run.py
      ```

    Шаг 3: Выполните прогнозирование модели.

      ```
      python predict.py
      ```
  • Режим Few-Shot с небольшим количеством образцов

    Шаг 1: Перейдите в папку DeepKE/example/ner/few-shot и загрузите набор данных.

      ```bash
      wget 120.27.214.45/Data/ner/few_shot/data.tar.gz
    
      tar -xzvf data.tar.gz
      ```

    Шаг 2: Обучите модель в условиях ограниченных ресурсов. Вы можете настроить местоположение модели загрузки и сохранения, а также параметры конфигурации в папке conf.

      ```
      python run.py +train=few_shot
      ```

    Если вы хотите загрузить модель, измените путь load_path в файле few_shot.yaml;

    Шаг 3: В файле config.yaml добавьте -predict, в файле predict.yaml измените путь load_path на путь модели и путь write_path на путь сохранения результатов прогнозирования. После внесения изменений используйте команду.

      ```
      python predict.py
      ```
  • Мультимодальный режим

    Шаг 1: Перейдите в папку DeepKE/example/ner/multimodal и загрузите набор данных.

      ```bash
      wget 120.27.214.45/Data/ner/multimodal/data.tar.gz
    
      tar -xzvf data.tar.gz
      ```

    В исходном изображении мы используем faster_rcnn и инструмент визуального заземления для извлечения объектов RCNN и объектов визуального заземления в качестве локальной визуальной информации.

    Шаг 2: Обучение модели в мультимодальном режиме.

    • Вы можете внести изменения в данные и параметры настройки в папках data и conf соответственно.

    • Если вы хотите продолжить обучение с предыдущей сохранённой модели, установите путь load_path в conf/train.yaml на путь предыдущей сохранённой модели. Каждый раз, когда вы обучаете модель, журнал по умолчанию сохраняется в корневом каталоге. Вы можете использовать log_dir для настройки.

      python run.py

    Шаг 3: Прогнозирование модели.

      ```bash
      python predict.py
      ```

2. Извлечение отношений (RE)

Извлечение отношений — это процесс извлечения отношений между сущностями из неструктурированных текстов. Ниже приведены несколько примеров стилей, данные представлены в формате CSV-файла (пользователи могут использовать инструменты Doccano и MarkTool для маркировки данных или использовать функцию слабого надзора DeepKE для автоматической генерации данных):

Sentence Relation Head Head_offset Tail Tail_offset
《岳父也是爹》是王军执导的电视剧,由马恩然、范明主演。 导演 岳父也是爹 1 王军 8
《九玄珠》是在纵横中文网连载的一部小说,作者是龙马。 连载网站 九玄珠 1 纵横中文网 7
Групповое поведение забастовка
Участники забастовки сотрудники Лувра

Финансы/сделки — продажа/покупка

Продажа Продавец Покупка Покупатель Предмет сделки
--- --- --- --- ---
Китайская международная логистика миноритарные акционеры Китайская международная логистика акции

Катастрофы/чрезвычайные ситуации — авиакатастрофа

Авиакатастрофа Дата Место
--- --- --- ---
да 13 день США, Атланта

Конкретный процесс описан в подробном README.

[Стандартный полный контроль] (./example/ee/standard/README_CN.md)

Шаг 1: перейдите в DeepKE/example/ee/standard и загрузите набор данных.

wget 120.27.214.45/Data/ee/DuEE.zip
unzip DuEE.zip

Шаг 2: обучение модели. Данные и параметры конфигурации можно найти в папках data и conf соответственно.

python run.py

Шаг 3: прогнозирование модели.

python predict.py

Примечания (часто задаваемые вопросы)

  1. При использовании Anaconda рекомендуется добавить внутренний зеркальный сайт, чтобы ускорить загрузку. Например, зеркало.

  2. При использовании pip рекомендуется использовать внутренний зеркальный сайт для ускорения загрузки. Например, зеркальный сайт Alibaba Cloud.

  3. После установки появляется сообщение об ошибке ModuleNotFoundError: No module named 'past', введите команду pip install future, чтобы решить эту проблему.

  4. При использовании предварительно обученной языковой модели установка в режиме онлайн может занять много времени. Рекомендуется заранее загрузить модель и поместить её в папку pretrained. Подробные требования к размещению файлов см. в файле README.md в папке.

  5. Старая версия DeepKE находится в ветке deepke-v1.0 на GitHub. Пользователи могут переключаться на старую версию для использования старых функций. Все старые функции были перенесены в стандартный режим извлечения отношений (example/re/standard).

  6. Если вам нужно внести изменения в исходный код, рекомендуется установить DeepKE с помощью команды python setup.py install. В противном случае изменения не вступят в силу. См. проблему.

  7. Для получения дополнительной информации о низкоресурсных задачах извлечения знаний см. статью Knowledge Extraction in Low-Resource Scenarios: Survey and Perspective.

  8. Убедитесь, что вы используете соответствующие версии зависимостей, указанные в requirements.txt.

Планы на будущее

  • В следующей версии DeepKE будет выпущена оптимизированная билингвальная модель для извлечения знаний.
  • Мы предоставляем долгосрочную техническую поддержку и ответы на вопросы. Если у вас есть вопросы, пожалуйста, отправьте их через issues.

Литература

Data-Efficient Knowledge Graph Construction, 高效知识图谱构建 (Tutorial on CCKS 2022) [slides]

Efficient and Robust Knowledge Graph Construction (Tutorial on AACL-IJCNLP 2022) [slides]

PromptKG Family: a Gallery of Prompt Learning & KG-related Research Works, Toolkits, and Paper-list [Resources]

Knowledge Extraction in Low-Resource Scenarios: Survey and Perspective [Survey][Paper-list]

基于大模型提示学习的推理工作综述 [论文][列表][ppt]

Связанные инструменты

DoccanoMarkToolLabelStudio:实体识别关系抽取数据标注工具

LambdaKG: 基于预训练语言模型的知识图谱表示与应用工具

EasyInstruct: 一个基于指令使用大模型的工具

Цитирование

Если вы используете DeepKE, пожалуйста, цитируйте его следующим образом:

@inproceedings{DBLP:conf/emnlp/ZhangXTYYQXCLL22,
  author    = {Ningyu Zhang and
               Xin Xu and
               Liankuan Tao and
               Haiyang Yu and
               Hongbin Ye and
               Shuofei Qiao and
               Xin Xie and
               Xiang Chen and
               Zhoubo Li and
               Lei Li},
  editor    = {Wanxiang Che and
               Ekaterina Shutova},
  title     = {DeepKE: {A} Deep Learning Based Knowledge

В исходном тексте присутствуют фрагменты кода, таблицы и ссылки на внешние ресурсы. Они не были включены в перевод, так как не являются частью основного текста. **Проектный вклад участников (без ранжирования)**

Чжэцзянский университет: Чжан Нинюй, Тао Лянькуань, Сюй Инь, Гуй Хунхао, Ван Сяохань, Си Цзэцюнь, Ли Инжун, Юй Хайян, Е Хунбинь, Цяо Шофэй, Ван Пэн, Чжу Юйци, Се Синь, Чэнь Сян, Ли Цзобо, Ли Лэй, Лян Сяочжуань, Яо Юньчжи, Чэнь Цзин, Чжу Юйци, Дэн Шумин, Чжан Вэнь, Чжэн Гоцзю, Чэнь Хуацзюнь.

Вкладчики сообщества открытого исходного кода: thredreams, eltociear.

Алибаба: Сюн Фэйюй, Чэнь Цзян.

Институт Дамо Алибабы: Чжан Цзиньжу, Тань Чуаньци, Хуан Фэй.

Стажёры: Сюй Цзывэнь, Хуан Жуй, Ун Сяолун.

**Другие инструменты извлечения знаний с открытым исходным кодом**

— CogIE;

— OpenNRE;

— OmniEvent;

— OpenUE;

— OpenIE;

— RESIN;

— ZShot;

— OmniEvent.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openkg-deepke.git
git@api.gitlife.ru:oschina-mirror/openkg-deepke.git
oschina-mirror
openkg-deepke
openkg-deepke
main