Оценка качества обученной модели¶
Тестовые данные¶
Для запуска оценки качества работы обученной модели необходимо подготовить данные и конфигурацию.
Датасеты для оценки качества надо положить в ту же папку, что и наборы данных для обучения,
т.е. 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.