Оценка качества обученной модели ================================ Тестовые данные """"""""""""""" Для запуска оценки качества работы обученной модели необходимо подготовить данные и конфигурацию. Датасеты для оценки качества надо положить в ту же папку, что и наборы данных для обучения, т.е. ``train/data/docs`` для документов, ``train/data/sents`` для предложений. Помимо тестовых данных, которые были отделены от обучающей выборки, есть еще набор датасетов используемых только для теста: * `GWikiMatch presegmented `_. * `Essays presegmented `_. * `Essays for sent retrieval `_. Также сегментированные данные можно скачать по `ссылке `_. Запуск оценки качества """""""""""""""""""""" Конфигурацию для запуска оценки можно взять из `репозитория проекта `_. Файлы с конфигурацией должны находится в текущей директории в папке ``eval/conf``. Эту директорию также как и ``train`` необходимо примонтировать при запуске докер-контейнера. Для быстрого запуска можно использовать конфигурацию ``mini``. Пример запуска скрипта оценки. В ``eval`` должна находится обученная модель (например `models.def.pt `_ ). .. code-block:: bash 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-*"]``. Пример запуска с измененными параметрами """""""""""""""""""""""""""""""""""""""" .. code-block:: bash 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``.