Уроки, извлеченные из развертывания доменно-специфической модели NER
Делиться

Появление крупных языковых моделей сделало многие задачи естественной обработки языка (NLP) простыми и несложными. Такие инструменты, как ChatGPT, иногда выдают поразительно хорошие результаты, заставляя даже опытных специалистов задуматься, не стоит ли поручить некоторые задачи алгоритмам раньше, а не позже. Тем не менее, какими бы впечатляющими ни были эти модели, они всё ещё сталкиваются с задачами, требующими точного извлечения данных, специфичного для предметной области.
Мотивация: Зачем создавать PICO-экстрактор?
Идея возникла во время разговора со студенткой, выпускницей факультета международного менеджмента здравоохранения, которая решила проанализировать будущие тенденции в лечении болезни Паркинсона и рассчитать потенциальные расходы, связанные со страховкой, если текущие исследования окажутся успешными. Первый шаг был классическим и трудоемким: выделить элементы PICO — описания популяции, вмешательства, сравнения и исхода — из описаний текущих исследований, опубликованных на clinicaltrials.gov. Эта структура PICO часто используется в доказательной медицине для структурирования данных клинических исследований. Поскольку она не была ни программистом, ни специалистом по обработке естественного языка, она делала это полностью вручную, работая с электронными таблицами. Мне стало ясно, что даже в эпоху магистратуры по праву существует реальный спрос на простые и надежные инструменты для извлечения биомедицинской информации.
Шаг 1: Понимание данных и постановка целей
Как и в любом проекте, связанном с данными, первым делом необходимо поставить четкие цели и определить, кто будет использовать результаты. В данном случае целью было извлечь элементы PICO для последующего предиктивного анализа или метаисследования. Целевая аудитория: все, кто заинтересован в систематическом анализе данных клинических испытаний, будь то исследователи, клиницисты или специалисты по анализу данных. Учитывая эту задачу, я начал с экспорта данных с clinicaltrials.gov в формате JSON. Первоначальное извлечение полей и очистка данных обеспечили некоторую структурированную информацию (таблица 1), особенно по вмешательствам, но другие ключевые поля оставались слишком многословными для последующего автоматизированного анализа. Именно здесь обработка естественного языка (NLP) на высоте: она позволяет извлекать важные данные из неструктурированного текста, такие как критерии соответствия или данные об исследуемых препаратах. Распознавание именованных сущностей (NER) позволяет автоматически обнаруживать и классифицировать ключевые сущности, например, определять группу населения, описанную в разделе соответствия, или точно определять показатели исходов в резюме исследования. Таким образом, проект естественным образом перешел от базовой предварительной обработки к внедрению адаптированных к предметной области моделей NER.

Шаг 2: Сравнительный анализ существующих моделей
Моим следующим шагом был обзор готовых моделей NER, особенно тех, которые обучены на биомедицинской литературе и доступны через Huggingface, центральный репозиторий моделей трансформаторов. Из 19 кандидатов только BioELECTRA-PICO (110 миллионов параметров) [1] работала напрямую для извлечения элементов PICO, в то время как остальные обучены задаче NER, но не конкретно распознаванию PICO. Тестирование BioELECTRA на моем собственном «золотом стандарте» набора из 20 вручную аннотированных испытаний показало приемлемую, но далекую от идеальной производительность, с особой слабостью в элементе «Компаратор». Вероятно, это было связано с тем, что компараторы редко описываются в резюме испытаний, что вынуждает вернуться к практическому подходу, основанному на правилах, с прямым поиском в тексте вмешательства стандартных ключевых слов для компаратора, таких как «плацебо» или «обычный уход».
Шаг 3: Тонкая настройка с использованием данных, специфичных для предметной области
Для дальнейшего повышения производительности я перешел к тонкой настройке, что стало возможным благодаря аннотированным наборам данных PICO из BIDS-Xu-Lab, включая образцы, специфичные для болезни Альцгеймера [2]. Чтобы сбалансировать необходимость высокой точности с эффективностью и масштабируемостью, я выбрал три модели для экспериментов. BioBERT-v1.1 со 110 миллионами параметров [3] служила в качестве основной модели из-за ее хороших показателей в задачах обработки естественного языка в области биомедицины. Я также включил две меньшие, производные модели для оптимизации скорости и использования памяти: CompactBioBERT с 65 миллионами параметров представляет собой дистиллированную версию BioBERT-v1.1; и BioMobileBERT с всего 25 миллионами параметров представляет собой еще более сжатый вариант, который прошел дополнительный раунд непрерывного обучения после сжатия [4]. Я настроил все три модели с помощью графических процессоров Google Colab, что позволило провести эффективное обучение — каждая модель была готова к тестированию менее чем через два часа.
Шаг 4: Оценка и выводы
Результаты, представленные в таблице 2, демонстрируют чёткие тенденции. Все варианты продемонстрировали высокие результаты при извлечении данных о популяции, при этом BioMobileBERT лидировал при F1 = 0,91. Извлечение результатов было близким к предельному во всех моделях. Однако извлечение данных о вмешательствах оказалось более сложным. Хотя полнота была довольно высокой (0,83–0,87), точность была отстающей (0,54–0,61), при этом модели часто отмечали дополнительные упоминания лекарственных препаратов в свободном тексте — часто потому, что описания исследований ссылаются на препараты или ключевые слова, «похожие на вмешательства», описывающие предысторию, но не обязательно фокусирующиеся на запланированном основном вмешательстве.
При ближайшем рассмотрении это подчёркивает сложность биомедицинского НЭР. Вмешательства иногда представлялись короткими, фрагментированными строками, такими как «использование целого», «неделя», «верхняя часть» или «ткани с», которые малополезны для исследователя, пытающегося разобраться в составленном списке исследований. Аналогичным образом, изучение популяции дало довольно отрезвляющие примеры, такие как «процент» или «состояния с», что указывает на необходимость дополнительной очистки и оптимизации конвейера. В то же время модели могли извлекать впечатляюще подробные описания популяции, например, «квалифицируемые взрослые с диагнозом когнитивно ненарушенной или вероятной болезни Альцгеймера, лобно-височной деменции или деменции с тельцами Леви». Хотя такие длинные строки могут быть корректными, они, как правило, слишком многословны для практического обобщения, поскольку описание участников каждого исследования настолько специфично, что часто требует определённой формы абстракции или стандартизации.
Это подчёркивает классическую проблему биомедицинской обработки естественного языка: контекст имеет значение, а текст, специфичный для предметной области, часто не поддаётся чисто общим методам извлечения. Для элементов Comparator наилучшим образом показал себя подход, основанный на правилах (сопоставление явных ключевых слов компаратора), напомнив нам, что сочетание статистического обучения с прагматической эвристикой часто является наиболее жизнеспособной стратегией в реальных приложениях.
Один из основных источников этих «вредных» извлечений связан с тем, как испытания описываются в разделах с более широким контекстом. В дальнейшем возможные улучшения включают добавление фильтра постобработки для отсеивания коротких или неоднозначных фрагментов, включение контролируемого словаря, специфичного для предметной области (чтобы сохранялись только распознанные термины вмешательства), или применение связей концепций с известными онтологиями. Эти шаги могут помочь обеспечить более четкие и стандартизированные результаты конвейера.

Несколько слов о производительности: для любого инструмента для конечного пользователя скорость важна не меньше точности. Компактный размер BioMobileBERT обеспечил более быстрый вывод, что сделало его моей любимой моделью, особенно учитывая его оптимальную производительность для элементов «Популяция», «Компаратор» и «Результат».
Шаг 5: Подготовка инструмента к использованию — развертывание
Технические решения ценны ровно настолько, насколько они доступны. Я обернул финальный конвейер в приложение Streamlit, позволяющее пользователям загружать наборы данных clinicaltrials.gov, переключаться между моделями, извлекать элементы PICO и скачивать результаты. Краткие сводные графики дают наглядное представление о наиболее эффективных вмешательствах и результатах (см. рисунок 1). Я намеренно оставил неэффективную модель BioELECTRA, чтобы пользователь мог сравнить производительность и продолжительность работы, чтобы оценить повышение эффективности за счет использования меньшей архитектуры. Хотя инструмент появился слишком поздно, чтобы сэкономить мне студенческие часы на ручное извлечение данных, я надеюсь, что он будет полезен другим, кто сталкивается с аналогичными задачами.
Для упрощения развёртывания я поместил приложение в контейнер Docker, чтобы подписчики и соавторы могли быстро приступить к работе. Я также вложил значительные усилия в репозиторий GitHub [5], предоставив подробную документацию для поощрения дальнейшего участия или адаптации для новых областей.
Извлеченные уроки
Этот проект демонстрирует весь процесс разработки реального конвейера извлечения данных — от постановки четких целей и сравнительного анализа существующих моделей до их тонкой настройки на специализированных данных и развертывания удобного для пользователя приложения. Хотя модели и данные были легко доступны для тонкой настройки, превратить их в действительно полезный инструмент оказалось сложнее, чем ожидалось. Работа со сложными, многословными биомедицинскими терминами, которые часто распознавались лишь частично, выявила ограничения универсальных решений. Отсутствие абстракции в извлеченном тексте также стало препятствием для тех, кто стремится выявлять глобальные тенденции. В дальнейшем необходимы более целенаправленные подходы и оптимизация конвейера, а не простое готовое решение.

Если вы заинтересованы в расширении этой работы или адаптации подхода для других биомедицинских задач, приглашаю вас изучить репозиторий [5] и внести свой вклад. Просто создайте форк проекта и удачного кодирования!
Ссылки
- [1] S. Alrowili и V. Shanker, «BioM-Transformers: создание больших моделей биомедицинского языка с помощью BERT, ALBERT и ELECTRA», в трудах 20-го семинара по обработке биомедицинского языка, D. Demner-Fushman, KB Cohen, S. Ananiadou и J. Tsujii, ред., Онлайн: Ассоциация компьютерной лингвистики, июнь 2021 г., стр. 221–227. doi: 10.18653/v1/2021.bionlp-1.24.
- [2] BIDS-Xu-Lab/section_specific_annotation_of_PICO. (23 августа 2025 г.). Jupyter Notebook. Клиническая лаборатория обработки естественного языка. Дата обращения: 13 сентября 2025 г. [Онлайн]. Доступно: https://github.com/BIDS-Xu-Lab/section_specific_annotation_of_PICO
- [3] Дж. Ли и др., «BioBERT: предварительно обученная модель представления биомедицинского языка для интеллектуального анализа биомедицинских текстов», Биоинформатика, т. 36, № 4, стр. 1234–1240, февраль 2020 г., doi: 10.1093/bioinformatics/btz682.
- [4] О. Роханян, М. Нуриборджи, С. Коучаки и Д.А. Клифтон, «Об эффективности компактных биомедицинских трансформаторов», Биоинформатика, т. 39, № 3, стр. btad103, март 2023 г., doi: 10.1093/bioinformatics/btad103.
- [5] ElenJ, ElenJ/biomed-extractor. (13 сентября 2025 г.). Jupyter Notebook. Дата обращения: 13 сентября 2025 г. [Онлайн]. Доступно: https://github.com/ElenJ/biomed-extractor
Источник: towardsdatascience.com



























