Объяснимость моделей машинного обучения (МО), используемых в медицинской сфере, становится все более важной, поскольку модели необходимо объяснять с разных точек зрения, чтобы получить признание. Эти точки зрения варьируются от медицинской, технологической, юридической и, что наиболее важно, до точки зрения пациента. Модели, разработанные на основе текста в медицинской области, стали статистически точными, однако с этической точки зрения клиницисты обязаны оценивать слабые места, связанные с этими прогнозами, чтобы обеспечить наилучший уход за отдельными пациентами. Объяснимость этих прогнозов необходима для того, чтобы клиницисты могли сделать правильный выбор для каждого пациента.
В этом посте мы покажем, как улучшить объяснимость модели в клинических условиях с помощью Amazon SageMaker Clarify.
Фон
Одним из конкретных приложений алгоритмов машинного обучения в медицинской сфере, где используются большие объемы текста, являются системы поддержки принятия клинических решений (CDSS) для сортировки. Ежедневно пациентов госпитализируют в больницы и составляют записи о поступлении. После того, как эти заметки сделаны, начинается процесс сортировки, и модели машинного обучения могут помочь клиницистам в оценке клинических результатов. Это может помочь снизить операционные накладные расходы и обеспечить оптимальный уход за пациентами. Понимание того, почему эти решения предлагаются моделями ML, чрезвычайно важно для принятия решений, связанных с отдельными пациентами.
Цель этой публикации — показать, как можно развернуть прогностические модели с помощью Amazon SageMaker для целей сортировки в больницах, а также использовать SageMaker Clarify для объяснения этих прогнозов. Цель состоит в том, чтобы предложить ускоренный путь к внедрению методов прогнозирования в CDSS для многих организаций здравоохранения.
Блокнот и код из этого поста доступны на Гитхаб. Чтобы запустить его самостоятельно, клонируйте репозиторий GitHub и откройте файл блокнота Jupyter.
Техническое образование
Большим активом любой организации неотложной медицинской помощи являются ее клинические заметки. При поступлении в стационар делаются записи о поступлении. Ряд недавних исследований показал предсказуемость ключевых показателей, таких как диагнозы, процедуры, продолжительность пребывания и внутрибольничная смертность. Предсказать их в настоящее время очень легко, используя только записи о приеме, с помощью алгоритмов обработки естественного языка (NLP) (1).
Достижения в моделях НЛП, таких как двунаправленные представления кодировщиков от преобразователей (BERT), позволили делать высокоточные прогнозы на основе текстов, таких как заметки о поступлении, из которых раньше было трудно извлечь пользу. Их предсказание клинических показателей весьма применимо для использования в CDSS.
Тем не менее, чтобы эффективно использовать новые прогнозы, необходимо объяснить, как эти точные модели BERT достигают своих прогнозов. Существует несколько методов объяснения предсказаний таких моделей. Одним из таких методов является SHAP (Shapley Additive exPlanations), который представляет собой независимый от модели метод для объяснения выходных данных моделей ML.
Что такое ШАП
Значения SHAP — это метод объяснения выходных данных моделей ML. Он дает возможность разбить прогноз модели машинного обучения и понять, насколько каждая входная функция влияет на окончательный прогноз.
Значения SHAP основаны на теории игр, в частности, на концепции значений Шепли, которые изначально были предложены для распределения выплат в совместной игре между ее игроками (2). В контексте ML каждая функция во входном пространстве считается игроком в совместной игре, а предсказание модели является выплатой. Значения SHAP рассчитываются путем изучения вклада каждой функции в прогноз модели для каждой возможной комбинации функций. Затем рассчитывается средний вклад каждой функции во все возможные комбинации функций, и это становится значением SHAP для этой функции.
SHAP позволяет моделям объяснять прогнозы без понимания внутренней работы модели. Кроме того, существуют методы для отображения этих объяснений SHAP в тексте, чтобы с точки зрения врача и пациента можно было интуитивно увидеть, как алгоритмы приходят к своим прогнозам.
Благодаря новым дополнениям к SageMaker Clarify и использованию предварительно обученных моделей из обнимающее лицо которые легко использовать, реализованные в SageMaker, обучение модели и объяснимость можно легко реализовать в AWS.
В качестве сквозного примера мы возьмем клинический исход внутрибольничной смертности и покажем, как этот процесс можно легко реализовать в AWS с помощью предварительно обученной модели BERT с обниманием лица, а прогнозы будут объяснены с использованием SageMaker Уточнение.
Выбор модели Hugging Face
Hugging Face предлагает множество предварительно обученных моделей BERT, специально предназначенных для использования в клинических заметках. Для этого поста мы используем большая птица-база-имитировать-смертность модель. Эта модель представляет собой доработанную версию модели Google BigBird, специально адаптированную для прогнозирования смертности с использованием заметок о госпитализации MIMIC ICU. Задача модели состоит в том, чтобы определить вероятность того, что пациент не переживет определенное пребывание в отделении интенсивной терапии, на основе записей о поступлении. Одним из существенных преимуществ использования этой модели BigBird является ее способность обрабатывать контексты большей длины, что означает, что мы можем вводить полные примечания о допуске без необходимости усечения.
Наши шаги включают развертывание этой отлаженной модели в SageMaker. Затем мы включаем эту модель в установку, которая позволяет в режиме реального времени объяснять ее прогнозы. Для достижения такого уровня объяснимости мы используем SageMaker Clarify.
Обзор решения
SageMaker Clarify предоставляет разработчикам машинного обучения специализированные инструменты, позволяющие получить более полное представление об их обучающих данных и моделях машинного обучения. SageMaker Clarify объясняет как глобальные, так и локальные прогнозы, а также объясняет решения, принимаемые компьютерным зрением (CV) и моделями НЛП.
На следующей диаграмме показана архитектура SageMaker для размещения конечной точки, которая обслуживает запросы объяснимости. Он включает взаимодействие между конечной точкой, контейнером модели и эксплейнером SageMaker Clarify.
В примере кода мы используем блокнот Jupyter для демонстрации функциональности. Однако в реальных условиях электронные медицинские карты (EHR) или другие приложения для ухода за больными будут напрямую вызывать конечную точку SageMaker для получения того же ответа. В блокноте Jupyter мы развертываем контейнер модели Hugging Face на конечной точке SageMaker. Затем мы используем SageMaker Clarify для объяснения результатов, которые мы получаем от развернутой модели.
Предпосылки
Вам необходимы следующие предпосылки:
Доступ к коду из Репозиторий GitHub и загрузите его в свой блокнот. Вы также можете запустить блокнот в среде Amazon SageMaker Studio, которая представляет собой интегрированную среду разработки (IDE) для разработки машинного обучения. Мы рекомендуем использовать ядро Python 3 (Data Science) в SageMaker Studio или ядро conda_python3 в экземпляре ноутбука SageMaker.
Разверните модель с включенным SageMaker Clarify.
В качестве первого шага загрузите модель с Hugging Face и загрузите ее в корзину Amazon Simple Storage Service (Amazon S3). Затем создайте объект модели, используя класс HuggingFaceModel. При этом используется предварительно созданный контейнер для упрощения процесса развертывания моделей Hugging Face в SageMaker. Вы также используете пользовательский сценарий вывода, чтобы делать прогнозы внутри контейнера. Следующий код иллюстрирует сценарий, который передается в качестве аргумента классу HuggingFaceModel:
Затем вы можете определить тип экземпляра, на котором вы развертываете эту модель:
Затем мы заполняем ExecutionRoleArn
, ModelName
и PrimaryContainer
поля для создания модели.
Затем создайте конфигурацию конечной точки, вызвав create_endpoint_config
API. Здесь вы предоставляете то же самое model_name
используется в create_model
вызов API. create_endpoint_config
теперь поддерживает дополнительный параметр ClarifyExplainerConfig
для включения объяснения SageMaker Clarify. Базовый уровень SHAP является обязательным; вы можете предоставить его либо в виде встроенных базовых данных (параметр ShapBaseline), либо в виде базового файла S3 (параметр ShapBaselineUri). Дополнительные параметры см. в руководстве разработчика.
В следующем коде мы используем специальный токен в качестве основы:
TextConfig настроен с детализацией на уровне предложений (каждое предложение является функцией, и нам нужно несколько предложений на обзор для хорошей визуализации) и язык как английский:
Наконец, когда у вас есть готовая конфигурация модели и конечной точки, используйте create_endpoint
API для создания конечной точки. endpoint_name
должен быть уникальным в пределах региона вашего аккаунта AWS. create_endpoint
API является синхронным по своей природе и возвращает немедленный ответ со статусом конечной точки в состоянии «Создание».
Объясните предсказание
Теперь, когда вы развернули конечную точку с включенной интерактивной объяснимостью, вы можете попробовать несколько примеров. Вы можете вызвать конечную точку в реальном времени с помощью invoke_endpoint
метод, предоставляя сериализованную полезную нагрузку, которая в данном случае представляет собой некоторые образцы примечаний о поступлении:
В первом сценарии предположим, что медицинский работник сделал следующую медицинскую справку:
На следующем снимке экрана показаны результаты модели.
После отправки на конечную точку SageMaker метка была предсказана как 0, что указывает на низкий риск смертности. Другими словами, 0 означает, что госпитализированный пациент находится в неостром состоянии согласно модели. Однако нам нужно обоснование этого прогноза. Для этого вы можете использовать значения SHAP в качестве ответа. Ответ включает значения SHAP, соответствующие фразам входной заметки, которые могут быть дополнительно окрашены в зеленый или красный цвет в зависимости от того, как значения SHAP влияют на прогноз. В этом случае мы видим больше фраз зеленого цвета, таких как «Пациент сообщает об отсутствии болей в груди в анамнезе» и «ЭКГ показывает синусовую тахикардию без подъемов сегмента ST или депрессии», а не красного цвета, что соответствует прогнозу смертности 0 .
Во втором сценарии предположим, что медицинский работник сделал следующую медицинскую справку:
На следующем снимке экрана показаны наши результаты.
После отправки на конечную точку SageMaker метка была предсказана как 1, что указывает на высокий риск смертности. Это означает, что госпитализированный пациент находится в остром состоянии в соответствии с моделью. Однако нам нужно обоснование этого прогноза. Опять же, вы можете использовать значения SHAP в качестве ответа. Ответ включает значения SHAP, соответствующие фразам входной заметки, которые могут быть дополнительно закодированы цветом. В этом случае мы видим больше фраз, выделенных красным цветом, таких как «Пациент сообщает о лихорадке, ознобе и слабости в течение последних 3 дней, а также об уменьшении диуреза и спутанности сознания» и «Пациентка — женщина 72 лет с главная жалоба на тяжелый сепсис, шок», а не зеленый, что соответствует прогнозу смертности 1.
Бригада клинического ухода может использовать эти пояснения, чтобы помочь в принятии решений о процессе ухода за каждым отдельным пациентом.
Очистить
Чтобы очистить ресурсы, созданные как часть этого решения, выполните следующие операторы:
Заключение
В этом посте показано, как использовать SageMaker Clarify для объяснения решений в случае использования в здравоохранении на основе медицинских заметок, сделанных на различных этапах процесса сортировки. Это решение можно интегрировать в существующие системы поддержки принятия решений, чтобы предоставить клиницистам еще одну точку данных, когда они оценивают пациентов для поступления в отделение интенсивной терапии. Чтобы узнать больше об использовании сервисов AWS в сфере здравоохранения, ознакомьтесь со следующими сообщениями блога:
Рекомендации
(1) https://aclanthology.org/2021.eacl-main.75/
(2) https://arxiv.org/pdf/1705.07874.pdf
Об авторах
Шамика Арияванса, работающий старшим архитектором решений AI / ML в глобальном подразделении здравоохранения и наук о жизни в Amazon Web Services (AWS), уделяет пристальное внимание генеративному ИИ. Он помогает клиентам интегрировать генеративный ИИ в свои проекты, подчеркивая важность объяснимости в их инициативах, основанных на ИИ. Помимо своих профессиональных обязанностей, Шамика страстно увлекается лыжным спортом и приключениями на бездорожье».
Тед Спенсr — опытный архитектор решений с большим опытом работы в неотложной медицинской помощи. Он увлечен применением машинного обучения для решения новых задач и предлагает решения как для конечного потребителя, так и для его бизнеса/клиники. Он живет в Торонто, Онтарио, Канада, любит путешествовать со своей семьей и тренироваться в триатлоне, когда позволяет время.
Рам Патанги работает архитектором решений в AWS, поддерживая клиентов в сфере здравоохранения и медико-биологических наук в районе залива Сан-Франциско. Он помог клиентам в сфере финансов, здравоохранения, медико-биологических наук и высокотехнологичных вертикалей успешно вести свой бизнес в облаке AWS. Он специализируется на базах данных, аналитике и машинном обучении.