Облегченный репозиторий для автоматической оценки моделей диалогов с использованием 17 метрик .
? Выберите, какие показатели вы хотите вычислять
Оценка может автоматически выполняться либо для файла ответов, либо для каталога, содержащего несколько файлов.
? Метрики сохраняются в заранее заданном удобном для обработки формате.
Запустите эту команду, чтобы установить необходимые пакеты:
pip install -r requirements.txt
Основной файл можно вызывать откуда угодно, но при указании путей к каталогам следует указывать их от корня репозитория.
python code/main.py -h
Полную документацию можно найти на вики.
Вы должны указать как можно больше путей аргументов (изображение выше). Если вы что-то пропустите, программа все равно будет работать, но не будет вычислять некоторые метрики, для которых требуются эти файлы (она распечатает эти метрики). Если у вас есть файл обучающих данных, программа может автоматически генерировать словарь и загружать встраивания fastText.
Если вы не хотите вычислять все метрики, вы можете очень легко указать, какие метрики следует вычислять, в файле конфигурации.
Файл будет сохранен в каталоге, где находятся файлы ответов. Первая строка содержит названия метрик, далее каждая строка содержит метрики для одного файла. За именем файла следуют отдельные значения метрик, разделенные пробелами. Каждая метрика состоит из трех чисел, разделенных запятыми: среднее значение, стандартное отклонение и доверительный интервал. Вы можете установить значение t доверительного интервала в аргументах, по умолчанию используется доверительный интервал 95%.
Интересно, что все 17 показателей улучшаются до определенного момента, а затем стагнируют без переобучения во время обучения модели Transformer на DailyDialog. Цифры можно найти в приложении к статье.
TRF — это модель Трансформера, оцениваемая при минимальных потерях при проверке, а TRF-O — это модель Трансформатора, оцениваемая после 150 эпох обучения, когда метрики начинают стагнировать. RT означает случайно выбранные ответы из обучающего набора, а GT означает достоверные ответы.
TRF — это модель Трансформера, RT означает случайно выбранные ответы из обучающего набора, а GT означает достоверные ответы. Эти результаты измеряются на тестовом наборе в контрольной точке, где потери при проверке были минимальными.
TRF — это модель Трансформера, RT означает случайно выбранные ответы из обучающего набора, а GT означает достоверные ответы. Эти результаты измеряются на тестовом наборе в контрольной точке, где потери при проверке были минимальными.
Новые метрики можно добавить, создав для метрики класс, который обрабатывает вычисление метрики по заданным данным. Посмотрите метрики BLEU для примера. Обычно функция init обрабатывает любую настройку данных, которая потребуется позже, а update_metrics обновляет словарь метрик, используя текущий пример из аргументов. Внутри класса вы должны определить словарь self.metrics, в котором хранятся списки значений метрик для данного тестового файла. Названия этих метрик (ключи словаря) также нужно добавить в конфиг файле self.metrics. Наконец, вам нужно добавить экземпляр вашего класса метрики в self.objects. Здесь при инициализации вы можете использовать пути к файлам данных, если ваша метрика требует какой-либо настройки. После этого ваша метрика должна быть автоматически рассчитана и сохранена.
Однако вам также следует добавить некоторые ограничения к вашей метрике, например, если файл, необходимый для расчета метрики, отсутствует, пользователь должен быть уведомлен, как здесь.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.
Пожалуйста, укажите ссылку на этот репозиторий, если вы используете его в своей работе, и рассмотрите возможность цитирования следующей статьи:
@inproceedings{Csaky:2019,
title = "Improving Neural Conversational Models with Entropy-Based Data Filtering",
author = "Cs{'a}ky, Rich{'a}rd and Purgai, Patrik and Recski, G{'a}bor",
booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
month = jul,
year = "2019",
address = "Florence, Italy",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/P19-1567",
pages = "5650--5669",
}