ODQA Обучение на своих данных

Добрый день
Посмотрел вводные статьи и примеры по обучению Open-domain question answering

В частности попытался выполнить этот пример
https://colab.research.google.com/github/deepmipt/dp_notebooks/blob/master/DP_ODQA.ipynb#scrollTo=Uy0JcFI2dKYs

С датасетом вики всё получилось.

Интересует процесс обучения модели на собственном датасете
В настоящее время подготовлены файлы с текстом не из википедии.

Каким образом можно обучить модель для ответов на вопросы по своему собственному набору данных? какие шаги потребуется выполнить?

Здравствуйте, @Nikolas_l!

Обучить ODQA на своих данных очень просто. Для этого нужно взять конфиг нужного ранжировщика и указать ему свой путь до данных и тип данных.

К примеру, для обучения ODQA а русском языке необходимо выполнить следующий код:

from deeppavlov import configs
from deeppavlov.core.common.file import read_json
from deeppavlov import configs, train_model
model_config = read_json(configs.doc_retrieval.ru_ranker_tfidf_wiki)
model_config["dataset_reader"]["data_path"] = "<ПУТЬ/ДО_ПАПКИ_ИЛИ_ФАЙЛА_С_ВАШИМИ_ДАННЫМИ>"
model_config["dataset_reader"]["save_path"] = "ЖЕЛАЕМЫЙ_ПУТЬ_ДО_ФАЙЛА_БД (например, "data.db")"
model_config["dataset_reader"]["dataset_format"] = "txt"
model_config["dataset_iterator"]["load_path"] = "ЖЕЛАЕМЫЙ_ПУТЬ_ДО_ФАЙЛА_БД (например, "data.db")"
model_config["pipe"][0]["save_path"] = "ЖЕЛАЕМЫЙ_ПУТЬ_ДО_МАТРИЦЫ_РАНЖИРОВЩИКА (например, "data.npz")"
model_config["pipe"][0]["load_path"] = "ЖЕЛАЕМЫЙ_ПУТЬ_ДО_МАТРИЦЫ_РАНЖИРОВЩИКА (например, "data.npz")"

doc_retrieval = train_model(model_config)

Также можно редактировать JSON-конфиги напрямую, а не в коде.
В результате работы предыдущего кода по указанным вами желаемым путям появится 2 файла: data.db и data.npz. После этого можно будет взять конфиг ODQA и указать ему в config_path путь до конфига ранжировщика со всеми параметрами выше. Затем запустить ODQA на инференс.

3 Likes

Тут описано как обучить модели ODQA. А как поступить с моделями FQA? Там конфиг другой. Как его по редактировать и есть ли описание в доках?