О чём эта история
Компания «Цельс» специализируется на разработке систем искусственного интеллекта (ИИ) в рентгенологии. В 19 российских регионах уже внедрили систему «Цельс» в качестве ИИ-системы на местном уровне. Результаты обработки исследований доступны для всех медицинских организаций.
Компания своими силами с помощью техподдержки провайдера за несколько дней перенесла платформу в Yandex Cloud. В результате ускорился процесс разработки — развернуть любую систему или внутренний сервис теперь можно в течение одного дня.
Новая платформа обладает полным набором сервисов и технологий, который необходим для работы «Цельса», и обеспечивает нужную для компании скорость обработки исследований.
Кроме того, удалось значительно повысить качество услуг за счёт гибкого управления ресурсами и быстрой масштабируемости в зависимости от нагрузки. При этом новое решение полностью соответствует высоким требованиям информационной безопасности и российского законодательства, в том числе и в части безопасного хранения персональных данных.
Задача компании
Компания «Цельс» основана в 2018 году и специализируется на разработке систем ИИ в рентгенологии.
Решение «Цельс» — первая в России система, зарегистрированная Росздравнадзором как медицинское изделие по третьему классу риска в 2020 году. Производство сертифицировано по ISO 13485.
Разработки компании также сертифицированы в Европейском Союзе (CE Mark), что подтверждает соответствие европейским стандартам безопасности.
С «Цельс» работают 19 российских регионов. Пилотные проекты были также запущены в Индии, Пакистане и Беларуси.
В арсенале компании более 4 млн обработанных медицинских изображений.
В промышленной эксплуатации находятся следующие системы автоматического анализа и интерпретации медицинских изображений на основе ИИ:
- Маммография — обнаружение злокачественных образований и других значительных изменений;
- Флюорография и рентген органов грудной клетки — 13 признаков патологий;
- КТ органов грудной клетки — комплексный сервис, 10 патологий;
- КТ мозга — обнаружение кровоизлияний и ишемических инсультов.
Компания изначально планировала облачное развёртывание. На ранних этапах работы платформы компания обращалась к различным облачным провайдерам, как к российским, так и иностранным. В то время облако использовали, чтобы выполнять отдельные задачи — создавать инстансы для обучения, тестировать первые версии моделей и проверять инференс рабочей нейронной сети.
От использования зарубежных облачных сервисов отказались из-за изменившихся требований к хранению данных и лицензионных рисков, а также из-за невозможности предсказать будущие изменения. Поэтому нужно было перейти на российскую облачную инфраструктуру. Компания расширяет деятельность, в том числе в российских регионах, поэтому нужно обеспечить быстрое развёртывание решения для новых клиентов. Также требуется оперативное масштабирование: растёт количество продуктов и объёмы исследований. Кроме того, нужно автоматически масштабировать инфраструктуру под нагрузки во время обучения и в часы более активного использования сервиса.
При выборе облачного провайдера компания ориентировалась на следующие критерии:
- Хранение и обработка данных должны быть организованы на территории РФ.
- Облачная платформа должна обеспечивать полный набор технологий и сервисов, нужный для работы «Цельса».
- Облачная платформа должна использовать собственные сервисы, которые позволят избежать лицензионных рисков.
- Облако должно обеспечивать нужную скорость обработки исследований и возможность масштабироваться во время повышенной нагрузки.
- Платформа должна быть сертифицирована в области информационной безопасности — ресурсы должны быть аттестованы в соответствии с ФЗ-152 и с требованиями ФСТЭК.
- В решении должны соблюдаться правила обработки информации в соответствии с международным генеральным регламентом о защите данных (General Data Protection Regulation, GDPR).
Рассмотрев нескольких конкурентных решений, компания «Цельс» выбрала Yandex Cloud, так как этот облачный провайдер удовлетворяет всем вышеперечисленным требованиям.
Решение
«Цельс» — это система поддержки принятия врачебных решений (СППВР) на базе технологий нейронных сетей (Deep Learning). Она предназначена для анализа цифровых медицинских изображений — рентгенографии, компьютерной томографии, магнитно-резонансной томографии и других.
Все сервисы основаны на собственных нейронных сетях компании. При этом использовались архитектуры, которые часто применяются для 2D- и 3D-детекции и сегментации (Faster-RCNN, DETR, U-Net, Anisotropic Hybrid Networks и так далее), но со значительными модификациями.
В стек машинного обучения решения входят следующие технологии:
- PyTorch — фреймворк машинного обучения для языка Python с открытым исходным кодом, созданный на базе Torch;
- ClearML — фреймворк для трекинга ML-экспериментов;
- Redis — нереляционная резидентная СУБД;
- Apache AirFlow — система, чтобы создавать, выполнять, мониторить и оркестрировать потоки операций по обработке данных;
- Docker и Kubernetes — для создания и управления кластером контейнеров.
Бэкенд разработан с помощью .NET и развёрнут в контейнерах под управлением Kubernetes. Данные хранятся в базе PostgreSQL. В качестве брокера сообщений выбрали Apache Kafka. Система поддерживает стандарт обработки, хранения, передачи, печати и визуализации медицинских изображений DICOM.
Решение «Цельс» работает следующим образом. Бэкенд системы интегрируется с медицинским учреждением или целым регионом по протоколу DICOM. При поступлении задания на обработку изображений в бэкенд загружаются данные исследования, которые потом проходят проверку на адекватность. После чего через API делается запрос к ML-ядру. Нейронная сеть обрабатывает исследование и возвращает в бэкенд ответ в формате JSON — находки, их координаты или маски, размеры, текст заключения и так далее. Система формирует финальный ответ в форматах DICOM SC (изображение) и DICOM SR (текст) и возвращает ответ клиенту по DICOM-протоколу.
При миграции в Yandex Cloud «Цельс» развернули с использованием сервисов платформы данных, а также Yandex Managed Service for Kubernetes и виртуальных машин Yandex Compute Cloud.
Вычислительные мощности, подключаемые с помощью Yandex Compute Cloud, используются для инференса и обучения моделей, хостинга бэкенда. Кроме того, Yandex Compute Cloud обеспечивает организацию работы внутренних сервисов: приложения для обмена мгновенными сообщениями и данными Mattermost, инструмента для разметки данных Supervisely, платформы для трекинга экспериментов ClearML, а также сервисов мониторинга.
В качестве масштабируемого облачного хранилища применяется Yandex Object Storage, в котором хранятся данные для обучения и тестирования. Всего используется порядка 20 бакетов данных, которые занимают 210 терабайт.
Для хранения операционных данных использовали управляемые сервисы:
- Yandex Managed Service for PostgreSQL
- Yandex Managed Service for MongoDB
- Yandex Managed Service for Apache Kafka
Для деплоя бэкенда — Yandex Managed Service for Kubernetes.
Весь переезд в облако, который команда проекта осуществила самостоятельно с привлечением техподдержки Yandex Cloud, занял всего несколько дней.
При этом компания оставила на собственном сервере локальное офисное хранилище данных, которое также дублируется в облаке. Кроме того, четыре локальных сервера с GPU (4 + 1 + 1 + 1) используются для обучения. Часть региональных решений также развернута локально в соответствии с требованиями заказчиков.
Результаты
Сейчас «Цельс» работает в промышленном режиме. В результате миграции в Yandex Cloud повысилась скорость развёртывания систем и внутренних сервисов — теперь это можно делать за один день. Кроме того, удалось повысить качество оказываемых услуг за счёт возможности использовать сервисы экосистемы Yandex Cloud и автоматического масштабирования инфраструктуры при необходимости.
Специалисты компании освоили новые инструменты и технологии, например Yandex Managed Service for Kubernetes, чтобы развёртывать и запускать систему в рабочей среде, а также выгрузку метрик в Grafana с помощью Yandex Managed Service for Prometheus для мониторинга и визуализации данных.
Облачными услугами пользуются все основные подразделения компании — ML-команда, разработчики бэкенда и DevOps-инженеры.
Рост компании, выручки и количества обработанных исследований сопровождался значительным увеличением присутствия компании в облаке. Как на этапе разработки, так и, в первую очередь, на этапе инференса.
При быстрой экспансии в регионы компания смогла получить надежные вычислительные ресурсы с приемлемым временем ответа. При этом платформа Yandex Cloud использует защищенные каналы связи, а все облачные сервисы аттестованы в соответствии с требованиями ФСТЭК. Использование Yandex Cloud позволило также выполнить требования российского законодательства в части хранения персональных и медицинских данных.
В новых условиях компания стала лучше контролировать бюджеты, поскольку теперь проще оценить себестоимость, юнит-экономику и потребление ресурсов.
Мнение
Yandex Cloud позволяет нам практически мгновенно реагировать на любые бизнес-изменения: подключение нового региона, разработка и тестирование нового продукта или значительный рост исследований от крупного заказчика. При старте каждого проекта прилагаем максимум усилий, чтоб уговорить заказчика на развёртывание в облаке — это намного удобнее и позволяет поддерживать высочайшее качество работы наших продуктов и быстрые обновления.