Разработка мультитаск модели на основе spert для одновременного решения трёх задач: выделение сущностей, их нормализация, и определение связей. Подготовка:
- Организовать репозиторий по шаблону cookiecutter https://drivendata.github.io/cookiecutter-data-science/
- Завести гуглдок для лит обзора, приложить сюда ссылку с доступом для чтения или комментирования.
- завести гуглтаблицу для сбора результатов экспериментов
- скачать корпус: https://github.com/sag111/RDRS и RDRS3_11_07_2022_clean из репозитория https://github.com/sag111/RelationExtraction, изучить что там есть, как оно устроено, в каком формате.
Задачи:
- Провести литературный обзор. Рекомендуется включить туда:
- Статьи по построению мультитаск моделей для NLP.
- Наши статью про корпус размеченных примеров, последние статьи про методы нормализации, выделение сущностей и отношений. В них надо найти заявленный точности.
- Информацию про тезаурусы MedDRA, АТХ, МКБ-10, (может UMLS).
- запустить лучший эксперимент с моделью spert для NER+RE из репозитория https://github.com/sag111/RelationExtraction на всех сущностях или только основных, повторить точности.
- Запустить слегка модифицированные эксперименты со spert:
- Оставить связи только для основного контекста. Не определять связи между сущностями других контекстов.
- Если включено распознавание подтипов сущностей, то убрать типы связей, пусть определение связей будет бинарным.
- (опционально) Объединить несколько типов сущностей, а детализацию делать по отношениям. То есть например ADR, Indication, Disease извлекать как сущность объединённого типа condition, а уже отношение определять как Drugname-ADR, Drugname-Indication, Drugname-Diseasename.
- (опционально) Запустить эксперимент по нормализации из https://github.com/sag111/RelationExtraction/src/normalization, повторить точности (f1-micro 86).
- Разработать объединённые варианты для трёх задач. Варианты следующие:
- Добавить в spert из сперта дополнительный выход для извлеченных сущностей, затюненный на сравнение со словарём как в нормализации. объединённый spert должен давать по задачам не ниже чем решение этих задач по отдельности. Если ниже, то надо как-то организовать тренировочный цикл чтоб было лучше. Как? должно статья ясно после изучения литературы по мультитаск моделям.
- Использовать генеративную модель GPT или T5. Есть готовые наработки от Глеба - NER+Norm, туда надо будет подключить RE, это не сложно. Вопрос насколько эффективно/нет по сравнениею со спертом.
- ? Возможно ещё какие-то варианты придут в голову
- (Если остаётся время) - думаем как ещё разогнать точности.
По срокам пока сложно сказать.
- повторить имеющиеся эксперименты spert и нормализацию и какой-то лит обзор получить нужно до лета / в начале лета
- В сентябре / октябре должны уже начаться работы по реализации объединённого решения.