Как теперь вызвать именно эту модель и сделать инференс на незнакомых данных?
В конфигурационном файле модели есть параметры save_path и load_path, они должны указывать на именно вашу модель. Затем, по примерам из документации модель можно использовать из python:
from deeppavlov import configs, build_model
ner_model = build_model(YOUR_CONFIG_FILE)
ner_model(['Bob Ross lived in Florida'])
Можно ли и как сериализовать файл с моделью?
Как упаковать эту модель в сервис на фласк, чтобы получать предикт? Не загружая весь диппавлов и не подгружая предобученные модели, а только свою?
DeepPavlov может запустить serving обученной модели (используется uvicorn+fastapi) с помощью команды:
python -m deeppavlov riseapi YOUR_CONFIG
Больше информации (описание доп параметров) есть в документации.
При этом используется DeepPavlov и только нужная модель.
Юрий, добрый день.
По первому пункту. Пытаюсь так же сделать. Сначала учу модель ner_ontonotes_bert_mult_torch, проверяю - работает хорошо, сущности определяет отлично.
Сохраняю (два варианта пробовал - просто копировать из папки указанной в конфиге save_path и второй вариант ner_model.save() - в той же папке тот же файл model.pth.tar)
Затем в новом окружении пытаюсь инициализировать эту модель
Прописываю путь к файлу .tar в конфиге
config_dict[‘chainer’][‘pipe’][2][‘load_path’] = ‘путь к модели’
config_dict[‘chainer’][‘pipe’][2][‘save_path’] = ‘путь к модели’
Затем ner_model = build_model(config_dict)
Тогда возникакет ошибка type_mismatch не соответствие классов обученной модели и модели основной.
Если поставить параметр download=True, то модель создается, веса подгружаются из моего пути из сохраненных весов, но модель в итоге работает ужасно. Все сущности перепутаны, сплошной дурдом. Хотя перед сохранением все было красиво. Проверял на одних и тех же текстах.
Что в итоге делать надо? Модель дообучаю, все хорошо, но дальше использовать не получается.