Игорь Градов
Игорь Градов
7 мин
ai

Нейросеть в медицине выдумывает диагнозы: 4 провала сервиса и как их чинили

Медсервис на нейросетях звучит просто, пока не увидишь, как модель уверенно связывает повышенные лейкоциты с препаратом, который пользователь начал принимать через два месяца после самих анализов.

Нейросеть в медицине выдумывает диагнозы: 4 провала сервиса и как их чинили
Почему это важно

Нейросеть в медицине ошибается не там, где ждёшь: она не путает цифры, а выдумывает причинно-следственные связи, потому что не понимает время, контекст визитов и границы своих данных.

Два разработчика собрали сервис с нуля за два месяца на готовых языковых моделях. Сервис читает PDF из российских лабораторий (Хеликс, Инвитро, KDL, Гемотест) и за пару минут выдаёт отчёт: биовозраст, разбор по системам организма, план действий на три месяца, бриф для визита к врачу. Не диагнозы, не назначения. Ниже разбираем четыре реальных провала и конкретные исправления, которые после них появились. Материал основан на публикации одного из авторов проекта на Habr.

Что понадобится

  • Доступ к языковой модели с длинным контекстом (GPT-4o, Claude или аналог)
  • Навык промпт-инжиниринга (промпт-инжиниринг, умение писать точные инструкции для модели)
  • Парсер PDF для извлечения данных из лабораторных отчётов
  • Детерминированные проверки между вызовами модели (код на Python или другом языке)
  • Анкета пользователя с полями: жалобы, препараты, даты начала приёма
  • Два месяца работы (один человек на продукт, один на техническую часть)

Четыре ошибки, которые вы повторите, если не прочитаете дальше

1. Модель не понимает, что было раньше

Пользователь загрузил анализы за январь, февраль и май. Лейкоциты повышены во всех трёх. С марта он начал принимать препарат. Сервис написал: «Лейкоциты повышены. Вероятно связано с приёмом препарата».

Лейкоциты были повышены ещё в январе, за два месяца до начала приёма. Модель не различала хронологию: все три анализа лежали для неё в общей куче без понимания, какой был раньше.

Исправление. В анкету добавили поле «с какого месяца принимаете препарат». Анализы теперь идут в строгом хронологическом порядке. Для каждого результата отдельный модуль проставляет, сколько месяцев прошло и принимал ли пользователь тогда препарат. Данные нормализуются до попадания в модель.

2. Модель предлагает пересдать то, что сдано два дня назад

Пользователь загрузил пакет из 49 маркеров. Зашёл в раздел рекомендаций, нажал «подобрать». Сервис предложил срочно сдать семь анализов, которые человек только что загрузил.

Причина: в системном промпте (системный промпт, базовая инструкция, которая задаёт поведение модели) список биомаркеров шёл с датами сдачи, но не было явного правила «не предлагай пересдать свежее». Разработчик решил, что модель сама посмотрит на даты. Не посмотрела.

Исправление. Для каждого маркера теперь передаётся срок с последней сдачи и текущее значение. В правила зашили три уровня защиты:

  • Модель перед формированием списка обязана выписать всё свежесданное
  • Маркеры, сданные за последние шесть месяцев, исключаются из срочных рекомендаций
  • Их можно добавлять в плановые пересдачи через три месяца, но только с явной ссылкой на текущее значение и дату

3. Модель отправляет к врачу, у которого пользователь уже был

Пользователь был у ЛОРа 16 марта. Заключение: кисты гайморовых пазух, назначен флутиказон. 19 мая он пересобирает план в сервисе. Сервис выдаёт: «Рекомендация: КТ пазух носа и консультация ЛОР-врача для оценки кист».

Сервис работал только с лабораторными PDF. Выписки, УЗИ, ЭКГ, заключения врачей он не принимал и обрабатывать не умел. Модель действовала логично в рамках тех данных, что имела, но пользователь видел глупость.

Исправление. Чинить надо было не промпт, а сам продукт. Добавили загрузку врачебных заключений, чтобы модель видела полную картину, а не только лабораторные цифры.

4. Галлюцинация: «железодефицит» без единой цифры про железо

В отчёте одного пользователя появился вывод «железодефицит», хотя в загруженных анализах не было ни одного маркера по железу: ни ферритина, ни сывороточного железа, ни трансферрина. Модель уверенно поставила состояние, для которого у неё не было данных.

Галлюцинация (когда модель уверенно выдумывает то, чего не было) здесь сработала в самом опасном направлении: не придумала цифру, а придумала диагноз. Логичная рекомендация в такой ситуации: «сдайте ферритин», но модель перепрыгнула через шаг.

Исправление. Добавили детерминированную проверку: перед выводом о любом состоянии код сверяет, есть ли в загруженных данных хотя бы один релевантный маркер. Если маркеров нет, модель обязана рекомендовать сдачу, а не ставить заключение.

Пошаговая инструкция: как выстроить защиту от этих ошибок

  1. Соберите анкету с контекстом. Добавьте поля: текущие препараты, дата начала приёма, недавние визиты к врачам. Без этого модель будет строить причинно-следственные связи из воздуха.

  2. Нормализуйте данные до передачи в модель. Отдельный модуль должен расставить хронологическую ось: дата каждого анализа, сколько месяцев назад, совпадает ли с приёмом препаратов.

  3. Пропишите запреты в системном промпте явно. Пример формулировки:

Правила рекомендаций:

- НЕ предлагай пересдать маркер, сданный менее 6 месяцев назад
- Перед списком рекомендаций ВЫПИШИ все свежесданные маркеры и ИСКЛЮЧИ их
- НЕ ставь состояние (диагноз, дефицит, синдром), если в данных нет
  ни одного релевантного маркера. Вместо этого рекомендуй сдать нужный анализ

- НЕ устанавливай причинно-следственную связь между препаратом и показателем,
  если показатель был отклонён ДО начала приёма препарата
  1. Добавьте детерминированные проверки между моделями. Код (не промпт) должен проверять: есть ли маркеры для заявленного состояния, не предлагается ли пересдача свежего, совпадает ли хронология.

  2. Расширьте входные данные. Подключите загрузку не только лабораторных PDF, но и врачебных заключений, выписок, результатов УЗИ и ЭКГ.

  3. Тестируйте на реальных людях из ближнего круга. Автор проекта нашёл самые болезненные ошибки, когда загрузил анализы отца. Синтетические тесты эту категорию проблем не ловят.

Пример: что ввели и что получили

Пользователь загрузил PDF из Инвитро с 49 маркерами (общий анализ крови, биохимия, гормоны щитовидной железы). Заполнил анкету: принимает левотироксин с февраля, был у эндокринолога в апреле. Через две минуты получил отчёт: биовозраст, разбор отклонений по системам с указанием, какие из них появились до начала приёма препарата, а какие после. В плане рекомендаций ни один из 49 сданных маркеров не попал в «срочные». Три маркера попали в «плановая пересдача через 3 месяца» с указанием текущих значений и дат. Рекомендация по эндокринологу не появилась, потому что система увидела свежее заключение врача в загруженных документах.

Частые ошибки

«Модель сама разберётся». Главная ошибка при работе с нейросетью в медицине. Не разберётся. Каждое правило, которое кажется очевидным человеку (не путать причину со следствием, не предлагать сданное, не ставить диагноз без данных), нужно прописать явно. Один пропущенный абзац в инструкции оборачивается конкретной ошибкой под реальным пользователем.

Только промпт, без кода. Промпт не заменяет программную проверку. Детерминированный код между вызовами модели ловит ошибки, которые промпт пропускает. Половина защитных проверок в описанном сервисе появилась именно как код, а не как строка в инструкции.

Тестирование на себе. Свои анализы вы знаете наизусть и прощаете сервису мелкие нестыковки. Загрузите данные человека, чью историю вы не контролируете, и ошибки станут видны.

Что делать с этим прямо сейчас?

Авторам Дзена и копирайтерам. Если пишете про здоровье или обзоры медицинских сервисов, вот конкретный чек-лист для проверки любого ИИ-отчёта: спросите, предлагает ли сервис пересдать то, что уже сдано, ставит ли выводы без данных, путает ли хронологию. Это готовый контент для разбора.

Маркетологам и продуктовым командам. Доверие к медицинскому сервису разрушается не от грубых ошибок, а от «тихих»: пользователь видит рекомендацию «сходите к ЛОРу», хотя был у него неделю назад, и молча уходит. Тестируйте сценарии, где у пользователя уже есть история, а не только «чистый» первый визит.

Предпринимателям в РФ и СНГ. Готовые языковые модели доступны через API. Парсить PDF из Хеликса, Инвитро и Гемотеста можно уже сегодня. Главная сложность не в подключении модели, а в обвязке: нормализация данных, хронология, детерминированные проверки. Именно на это уйдёт большая часть двух месяцев.

Мнение редакции dzen.guru

Я вижу в этом кейсе самый честный разбор работы нейросети в медицине, который попадался за последние месяцы. Автор не хвастается продуктом, а показывает четыре конкретных провала и объясняет, почему каждый из них был неизбежен при наивном подходе «отдай данные модели и она разберётся». По моим наблюдениям, большинство стартапов в этой нише публикуют только метрики точности, но молчат про такие «тихие» ошибки, которые пользователь замечает, а бенчмарк нет. Честная оговорка: сервис не ставит диагнозы и не заменяет врача. Но даже для информационного отчёта цена ошибки высока, потому что пользователь доверяет машине больше, чем стоило бы.

Четыре ошибки из этого кейса повторит каждый, кто попробует подключить языковую модель к медицинским данным без программных проверок между ней и пользователем. Промпт задаёт направление, но не держит границы. Код держит.

Попробуйте генератор промптов dzen.guru

Составьте системный промпт для вашего сервиса с учётом правил, описанных в статье

Попробовать
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

SpaceX выкупает Cursor за $60 млрд: нейросеть для кода подорожала вдвое за полтора года
ai

SpaceX выкупает Cursor за $60 млрд: нейросеть для кода подорожала вдвое за полтора года

Компания Anysphere, создатель популярного ИИ-редактора кода Cursor, прошла путь от студенческого стартапа до сделки со SpaceX на 60 млрд долларов за три года,…

6 мин
ai

RAG система не сработала: год ошибок и путь к рабочей архитектуре

RAG система (Retrieval-Augmented Generation, генерация ответов с опорой на найденные документы) обещает превратить корпоративные знания в умного ИИ-помощника,…

6 мин
Яндекс ГПТ в ИИ-агентах за 15 минут: готовые конфиги для OpenCode, Pi и Hermes
ai

Яндекс ГПТ в ИИ-агентах за 15 минут: готовые конфиги для OpenCode, Pi и Hermes

Яндекс ГПТ подключается к инструментам разработки через стандартный OpenAI-совместимый протокол, и автор Habr собрал готовые конфиги для OpenCode, Pi и Hermes,…

5 мин