Оценка качества обученной модели

Тестовые данные

Для запуска оценки качества работы обученной модели необходимо подготовить данные и конфигурацию. Датасеты для оценки качества надо положить в ту же папку, что и наборы данных для обучения, т.е. train/data/docs для документов, train/data/sents для предложений. Помимо тестовых данных, которые были отделены от обучающей выборки, есть еще набор датасетов используемых только для теста:

Также сегментированные данные можно скачать по ссылке.

Запуск оценки качества

Конфигурацию для запуска оценки можно взять из репозитория проекта. Файлы с конфигурацией должны находится в текущей директории в папке eval/conf. Эту директорию также как и train необходимо примонтировать при запуске докер-контейнера. Для быстрого запуска можно использовать конфигурацию mini.

Пример запуска скрипта оценки. В eval должна находится обученная модель (например models.def.pt ).

docker run  --gpus=1  --rm  -v $(pwd)/train/:/train/ -v $(pwd)/eval:/eval/ \
      semvectors/doc_enc_train:0.1.2 \
      run_eval +personal/common=mini \
      doc_encoder.model_path=/eval/models.def.pt

Основные параметры оценки качества

  • doc_encoder - Параметры класса DocEncoder. Подробности доступны в разделе описания API.

  • eval_doc_matching - Производить оценку на задаче сопоставления документов (по умолчанию True).

  • doc_matching.ds_base_dir - Базовая директория для датасетов сопоставления докумнетов, по умолчанию не задана.

  • doc_matching.datasets - Список с конфигурацией каждого датасета.

    Включает опцию balance_pos_and_neg_examples, которая уравнивает количество положительных и отрицательных примеров перед вычислением оценки качества (по умолчанию True).

  • doc_matching.threshold - Значение порога, используемое для определения типа отношений в паре документов (по умолчанию не задан).

  • doc_matching.choose_threshold - перебирать разные пороги, результаты будут предствланы сразу для всех порогов (по умолчанию True)

  • eval_doc_retrieval - Производить оценку на задаче поиска похожих документов (по умолчанию True).

  • doc_retrieval.ds_base_dir - Базовая директория для датасетов поиска похожих докумнетов, по умолчанию не задана.

  • doc_retrieval.datasets - Список с конфигурацией каждого датасета.

  • doc_retrieval.topk - Список значений топов выдачи, для которых необходимо рассчитать метрики качества.

  • doc_retrieval.use_gpu - Номер GPU, на которой производить поиск похожих.

  • eval_sent_retrieval - Производить оценку на задаче поиска похожих предложений.

  • sent_retrieval.ds_base_dir - Базовая директория для датасетов поиска похожих предложений, по умолчанию не задана.

  • sent_retrieval.datasets - Список с конфигурацией каждого датасета.

  • sent_retrieval.topk - Список значений топов выдачи, для которых необходимо рассчитать метрики качества.

  • sent_retrieval.thresholds - Список значений минимального сходства между предложениями, для которых необходимо рассчитать метрики качества.

  • sent_retrieval.use_gpu - Номер GPU, на которой производить поиск похожих.

  • print_as_csv - Распечатать результаты в виде csv-таблицы, иначе результаты будут предствланы в формате json (по умолчанию False).

  • cache_embeddings - Кэшировать вычисленные эмбеддинги в файловой системе (по умолчанию True).

  • model_id - Идентификатор модели, должен быть задан, если cache_embeddings == True (по умолчанию не задан).

  • eval_checkpoints - список паттернов чекпоинтов модели, для которых необходимо произвести оценку качества. Например ["checkpoint_1_60000.pt", "checkpoint_3-*"].

Пример запуска с измененными параметрами

docker run  --gpus=1  --rm  -v $(pwd)/train/:/train/ -v $(pwd)/eval:/eval/ \
      semvectors/doc_enc_train:0.1.2 \
      run_eval +personal/common=mini \
      doc_encoder.model_path=/train/outputs/2023-04-04/15-51-57/model.pt \
      print_as_csv=true

Если необходимо изменить сразу несколько параметров, то удобно создать конфигурационный файл. Для примера можно использовать файл eval/conf/personal/dvzubarev/tsa06-quick.yaml.