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

OSCHINA-MIRROR/liu56-nlp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

NLP

Введение

Проект NLP включает в себя модели Attn-Seq2Seq и Transformer, которые реализуют машинный перевод и диалоговые системы.

Архитектура программного обеспечения

Описание архитектуры программного обеспечения.

Инструкция по установке

  1. В папке с файлами: pip install -r requirements.txt.
  2. После установки могут появиться сообщения о несоответствии версий двух предыдущих компонентов, но их можно игнорировать.
  3. Стандартная модель диалоговой системы Transformer находится в dailydialog. Для обучения диалоговой системе перейдите по ссылке: https://pan.xunlei.com/s/VN8UfYM4o2Ef4r5hAHYm8KmUA1?pwd=5rht# Код доступа: 5rht.
  4. Модель машинного перевода Transformer находится в папке model/translation.
  5. Модели машинного перевода Transformer были обучены на GPU:1, и для использования может потребоваться модификация кода. Например, для перехода с GPU на CPU можно использовать следующий код:
    • torch.load('trans_encoder.mdl', map_location= lambda storage, loc: storage)
    • torch.load('trans_decoder.mdl', map_location= lambda storage, loc: storage). Для перехода с CUDA:1 на CUDA:0 можно использовать:
    • torch.load('trans_encoder.mdl', map_location={'cuda:1' : 'cuda:0'})
    • torch.load('trans_decoder.mdl', map_location={'cuda:1' : 'cuda:0'}).
  6. Ссылка на модель Seq2Seq: https://pan.xunlei.com/s/VNSf-x6_dF6bKTECothnVkGYA1?pwd=w43w#.
  7. Возможно, потребуется изменить названия моделей, чтобы они соответствовали коду.

Использование

  1. Разделите проект на две части: диалоговая система и машинный перевод.
  2. data — набор данных.
  3. model — обученная модель.
  4. В папке translation находятся модели Seq2Seq и Transformer.
  5. На примере папки Transformer: attention.py реализует механизм внимания, transformer.py — основную архитектуру Transformer, data.py отвечает за предварительную обработку данных и создание словаря, dataset и dataloader, readdata.py позволяет просматривать форму данных, train.py обучает модель, predict.py выполняет предсказание, config.py определяет некоторые параметры.
  6. Модель машинного перевода Transformer была обучена на GPU:1. Если вы хотите использовать её, возможно, потребуется модифицировать код.
    • Например, для перехода с GPU на CPU используйте:
      • torch.load('trans_encoder.mdl', map_location= lambda storage, loc: storage),
      • torch.load('trans_decoder.mdl', map_location= lambda storage, loc: storage).
    • Для перехода с CUDA:1 на CUDA:0 используйте:
      • torch.load('trans_encoder.mdl', map_location={'cuda:1' : 'cuda:0'},
      • torch.load('trans_decoder.mdl', map_location={'cuda:1' : 'cuda:0'}).

Результаты

Базовый Transformer:
  1. Потеря тренировочного набора: 1,040, PPL: 2,835.
  2. Потеря проверочного набора: 2,768, PPL: 17,635.
  3. BLEU1-4: [0,0773, 0,0376, 0,0104, 0,0053].
  4. distinct1-3: [0,02798, 0,15453, 0,36269].
Выборка расписания tg=0,9, tr=0,95:
  1. Потеря тренировочного набора: 0,930, PPL: 2,538.
  2. Потеря проверочного набора: 3,289, PPL: 29,728.
  3. BLEU1-4: [0,0918, 0,0479, 0,0183, 0,0117].
  4. distinct1-3: [0,029054, 0,18474, 0,43019].

Описание показателей

  1. Loss — это cross_entropy_loss, mean(-log(softmax(NLL(X)))).
  2. PPL — вероятность появления каждого слова в предложении, рассчитывается как exp(loss).
  3. BLEU — метрика оценки качества машинного перевода.
  4. Distinct — количество уникальных слов, разделённое на общее количество слов. Используется для тестирования всех результатов.

Комментарии ( 0 )

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

Введение

НЛП проект, в основном включает модели аттеншн-seq2seq и трансформер, реализует машинный перевод и диалоговые системы. На данный момент трансформер используется только для машинного перевода. Развернуть Свернуть
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/liu56-nlp.git
git@gitlife.ru:oschina-mirror/liu56-nlp.git
oschina-mirror
liu56-nlp
liu56-nlp
master