3,583 papers
arXiv:2511.06738 76 10 нояб. 2025 г. FREE

RAG в медицине: когда контекст из документов вредит точности ответа

КЛЮЧЕВАЯ СУТЬ
Загрузили документы в ChatGPT для точного ответа — получили минус 6% к точности вместо плюса. Масштабное исследование RAG (retrieval-augmented generation, когда модель отвечает с опорой на загруженные документы) в медицине показало: добавление внешних документов часто портит ответы. 18 медицинских экспертов оценили 80 тысяч элементов в ответах GPT-4o и Llama-3.1 с документами и без — точность упала на 6%, полнота на 5%. Фишка: модель цитировала нерелевантные куски из документов в 1.4 раза чаще, чем релевантные. Три точки отказа: (1) поиск находит мусор — только 22% фрагментов релевантны запросу, (2) модель не фильтрует — процитировала 2.6 нерелевантных против 1.8 подходящих, (3) итоговый ответ хуже, чем без документов.
Адаптировать под запрос

TL;DR

Масштабное исследование RAG (когда LLM отвечает с опорой на загруженные документы) в медицине показало: добавление внешних документов в контекст часто ухудшает ответы, а не улучшает. 18 медицинских экспертов оценили 80 тысяч элементов в ответах GPT-4o и Llama-3.1 с документами и без. Результат: точность (factuality) упала на 6%, полнота ответа — на 5%. Модели чаще цитировали нерелевантные куски из документов, чем релевантные.

Три точки отказа RAG: (1) Retrieval — из топ-16 извлечённых фрагментов только 22% оказались релевантны запросу, для сложных кейсов — 15%. В 31% случаев вообще ни один фрагмент не подходил. (2) Selection — модели плохо фильтруют: GPT-4o процитировала в среднем 2.6 нерелевантных фрагмента против 1.8 релевантных, Llama-3.1 — 1.6 против 1.2. Precision 41-43%, recall 27-49%. (3) Generation — итоговый ответ с документами оказался менее точным и полным, чем без них.

Два решения работают: фильтрация нерелевантного контекста перед подачей в модель + переформулирование запроса для лучшего поиска. В комбинации подняли точность на 12% (MedMCQA) и 8.2% (MedXpertQA) для Llama-3.1, на 3.4% и 6.6% для GPT-4o.


📌

Почему это важно

Когда вы загружаете документы в ChatGPT/Claude (PDF, Word, корпоративная база знаний) — срабатывает RAG. Модель ищет куски текста в документах и встраивает в ответ. Исследование показывает: это не магия улучшения, а источник новых ошибок.

Что идёт не так:

1. Поиск находит мусор

Retriever вытаскивает фрагменты по семантической близости. Но "близость" ≠ "релевантность". Вы спросили про бюджет на обучение в 2025 — модель нашла абзац про бюджет 2023 года из другого раздела. Формально слова похожи, по сути — не то.

В исследовании: только 22% фрагментов из топ-16 были релевантны. Для сложных запросов (как вопросы USMLE с длинным контекстом) — всего 15%. В трети случаев retriever вообще не нашёл ничего подходящего среди топ-16.

2. Модель не умеет фильтровать контекст

LLM получает микс релевантного и мусора в контексте. Казалось бы — умная модель отсеет лишнее? Нет. GPT-4o процитировала нерелевантное в 1.4 раза чаще, чем релевантное (2.6 vs 1.8 фрагментов на запрос). Llama-3.1 — в 1.3 раза (1.6 vs 1.2).

При этом модели игнорировали релевантное: GPT-4o использовала только 1.8 из ~3.5 подходящих фрагментов (recall 49%), Llama-3.1 — 1.2 (recall 28%). Две трети полезного контекста остались неучтёнными.

3. Плохой контекст портит ответ

Когда модель опирается на нерелевантные куски, точность падает. В исследовании: - Точность ответов GPT-4o упала на 6% с RAG против версии без документов - Полнота ответов Llama-3.1 упала на 5% - Когда Llama цитировала нерелевантное — точность минус 8%, когда не находила релевантное — полнота минус 6%

Парадокс: RAG создан улучшать ответы через внешние знания. На практике — добавляет шум, который модель не умеет игнорировать.


📌

Где вы сталкиваетесь с этим

Каждый раз, когда работаете с документами в LLM:

  • Корпоративная база знаний: Загрузили 50 PDF с политиками компании в ChatGPT Enterprise. Спросили про лимит на командировки. Модель процитировала устаревший регламент 2022 года вместо актуального.

  • Подготовка к экзамену: Загрузили конспекты лекций в Claude. Спросили про теорему. Модель вытащила кусок из другой темы, где встречались похожие слова, и дала путаный ответ.

  • Работа с длинными PDF: Загрузили договор на 80 страниц. Спросили про пункт об ответственности. Модель нашла слово "ответственность" в другом контексте и дала неполный ответ.

Признаки проблемы: - Ответ содержит информацию "около" темы, но не по сути - Цитаты из документов не отвечают на вопрос напрямую - Ответ без документов (чистое знание модели) точнее, чем с ними


📌

Два приёма для улучшения

Исследователи проверили простые техники — работают.

📌

1. Фильтрация контекста

Суть: Попросите модель сначала оценить релевантность найденного, потом отвечать.

Промпт:

Шаг 1: Оцени каждый фрагмент из документов — релевантен ли он моему вопросу? 
Отбрось нерелевантное.

Шаг 2: Используй только релевантные фрагменты для ответа.

Вопрос: {ваш вопрос}

Почему работает: Модель плохо фильтрует "на лету" — когда одновременно читает контекст и генерирует ответ. Разделение задач (сначала оценка, потом ответ) снижает шум.

Эффект в исследовании: Улучшение точности на 3-5% на сложных датасетах.

📌

2. Переформулирование запроса

Суть: Ваш вопрос может быть неточным для поиска. Попросите модель переписать запрос для retrieval.

Промпт:

Мой запрос: {исходный вопрос}

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

Затем найди ответ, используя переформулированный запрос.

Почему работает: Retriever — тупой. Он ищет по словам. "Где про бюджет?" найдёт всё со словом "бюджет". "Каков утверждённый лимит расходов на обучение сотрудников отдела маркетинга в 2025 году?" — найдёт точнее.

Эффект в исследовании: +4-6% точности.

📌

3. Комбинация (максимальный эффект)

Сначала переформулируйте → потом фильтруйте → потом отвечайте.

Промпт:

Шаг 1: Переформулируй мой вопрос для точного поиска в документах.

Шаг 2: Оцени найденные фрагменты — какие релевантны переформулированному запросу?

Шаг 3: Ответь, используя только релевантные фрагменты.

Вопрос: {ваш вопрос}

Эффект в исследовании:

- Llama-3.1: +12% на MedMCQA, +8.2% на MedXpertQA - GPT-4o: +3.4% и +6.6% на тех же датасетах


🚀

Пример применения

Задача: Вы загрузили в ChatGPT 15 PDF с внутренними регламентами IT-компании. Нужно узнать: кто согласовывает покупку ноутбуков дороже 150 тысяч рублей.

Промпт (с фильтрацией и переформулированием):

Шаг 1: Переформулируй мой вопрос для точного поиска в регламентах:
"Кто согласовывает покупку ноутбуков дороже 150 тысяч рублей?"

Шаг 2: Найди в загруженных документах фрагменты по переформулированному запросу.

Шаг 3: Оцени каждый найденный фрагмент — действительно ли он содержит информацию 
о процедуре согласования закупки техники с указанием суммы и ответственных лиц?

Шаг 4: Используй только релевантные фрагменты для ответа. Укажи, из какого 
документа взята информация.

Если релевантных фрагментов нет — скажи об этом, не выдумывай.

Результат:

Модель выдаст: 1. Переформулированный запрос (например: "процедура согласования закупки оборудования IT-отдел лимит 150000 руб ответственные лица") 2. Список найденных фрагментов с оценкой релевантности 3. Финальный ответ с цитатами только из релевантных частей документов 4. Если ничего не нашлось — честное "В загруженных документах нет информации об этом"


⚠️

Ограничения

⚠️ Контроль над retrieval ограничен: В ChatGPT/Claude Projects вы не управляете тем, КАК система ищет фрагменты в документах. Фильтрация через промпт работает, но не заменит правильный retriever.

⚠️ Работает лучше для фактических вопросов: Если вопрос требует рассуждений или синтеза из многих мест документа — фильтрация может отсечь нужное.

⚠️ Увеличивает длину диалога: Два шага (оценка + ответ) = два запроса или длиннее промпт. Для быстрых вопросов избыточно.

⚠️ Не исправляет плохой поиск полностью: Если retriever не нашёл релевантное среди топ-16 фрагментов — фильтрация не поможет. Переформулирование частично компенсирует.


🔍

Как исследовали

Исследователи из Yale, Stanford, Harvard и ETH Zurich собрали 18 медицинских экспертов, которые вручную оценили 80,502 элемента. Взяли 200 медицинских вопросов: 100 реальных пациентских (тип "У меня болит живот, что делать?") и 100 сложных экзаменационных (USMLE-стиль с длинным описанием случая). Прогнали через GPT-4o и Llama-3.1-8B — с RAG и без.

Почему три стадии оценки:

RAG — это конвейер. Если сломалось на первом этапе (retrieval нашёл мусор) — следующие этапы обречены. Разделили оценку:

  1. Evidence Retrieval: Эксперты смотрели топ-16 извлечённых фрагментов для каждого вопроса. Метка: "релевантен запросу" или нет. Результат: только 22% релевантны в среднем. Для USMLE-вопросов — 15%. В 31% случаев ни один из топ-16 не подходил.

  2. Evidence Selection: Эксперты проверили, какие фрагменты модель процитировала в ответе. Сравнили с метками релевантности. Результат: precision 41-43% (больше половины процитированного — мусор), recall 27-49% (модели игнорировали большую часть релевантного).

  3. Response Generation: Разбили ответы на атомарные утверждения (statement-level). Эксперты оценили каждое: верно ли фактически? Содержит ли ответ всё необходимое из эталона? Результат: точность с RAG упала на 6%, полнота — на 5%.

Почему результаты такие:

Retriever (MedCPT) ищет по семантической близости векторов. "Близкие слова" ≠ "правильный контекст". Медицинские термины повторяются в разных значениях — retriever путается. LLM обучены использовать весь контекст (helpful), а не игнорировать части (skeptical) — отсюда низкая фильтрация. Нерелевантный контекст "отвлекает" модель от её внутренних знаний, которые могли быть точнее.

Что удивило:

RAG считается must-have для медицинских LLM (65% исследований в обзоре используют RAG). А на практике — в 40% случаев ответ БЕЗ документов был точнее. Особенно для Llama-3.1, у которой 77% самогенерированных ссылок оказались фейковыми (несуществующие статьи с правдоподобными названиями).

Инсайт для практики:

Больше контекста ≠ лучше ответ. Если ваша база знаний зашумлена или retriever плохой — отключите RAG для критичных вопросов. Чистое знание модели может быть надёжнее, чем знание + мусор из документов.


🔗

Ресурсы

Rethinking Retrieval-Augmented Generation for Medicine: A Large-Scale, Systematic Expert Evaluation and Practical Insights

Исследование: MedCPT (медицинский retriever), корпуса PubMed / Wikipedia / StatPearls

Авторы: Hyunjae Kim, Jiwoong Sohn, Qingyu Chen et al.

Институты: Yale School of Medicine, Stanford Medicine, Harvard Medical School, ETH Zurich


📋 Дайджест исследования

Ключевая суть

Загрузили документы в ChatGPT для точного ответа — получили минус 6% к точности вместо плюса. Масштабное исследование RAG (retrieval-augmented generation, когда модель отвечает с опорой на загруженные документы) в медицине показало: добавление внешних документов часто портит ответы. 18 медицинских экспертов оценили 80 тысяч элементов в ответах GPT-4o и Llama-3.1 с документами и без — точность упала на 6%, полнота на 5%. Фишка: модель цитировала нерелевантные куски из документов в 1.4 раза чаще, чем релевантные. Три точки отказа: (1) поиск находит мусор — только 22% фрагментов релевантны запросу, (2) модель не фильтрует — процитировала 2.6 нерелевантных против 1.8 подходящих, (3) итоговый ответ хуже, чем без документов.

Принцип работы

RAG проваливается на трёх этапах, и каждый усиливает следующий. Этап 1 — поиск находит не то: retriever вытаскивает фрагменты по семантической близости слов, но "близость" ≠ "релевантность". Спросили про бюджет 2025 года — нашли абзац про бюджет 2023, потому что слова похожи. Только 22% из топ-16 фрагментов оказались релевантны, для сложных кейсов — всего 15%. В трети случаев вообще ничего подходящего не нашлось. Этап 2 — модель не фильтрует шум: LLM получает микс релевантного и мусора. Казалось бы — умная модель отсеет лишнее? Нет. GPT-4o процитировала нерелевантное в 1.4 раза чаще релевантного (2.6 vs 1.8 фрагментов на запрос), Llama-3.1 — в 1.3 раза (1.6 vs 1.2). При этом две трети полезного контекста модели игнорировали — точность поиска (recall) 27-49%. Этап 3 — плохой контекст портит ответ: когда модель опирается на нерелевантные куски, точность падает на 6-8%. Парадокс: RAG создан улучшать ответы через внешние знания, на практике — добавляет шум, который модель не умеет игнорировать.

Почему работает

Модель плохо фильтрует контекст "на лету" — когда одновременно читает документы и генерирует ответ. Это как студент на экзамене — пытается держать всё в голове, читать шпаргалки и писать ответ одновременно. Результат: цитирует не то что нужно, а что попалось под руку. Разделение задач (сначала оценка релевантности, потом ответ) снижает шум и возвращает точность. Цифры из исследования: когда Llama-3.1 цитировала нерелевантное — точность минус 8%, когда не находила релевантное — полнота минус 6%. Фильтрация контекста перед подачей в модель + переформулирование запроса для лучшего поиска подняли точность на 12% для Llama-3.1 (MedMCQA) и на 8.2% (MedXpertQA), для GPT-4o — на 3.4% и 6.6%. Это работает потому что retriever — тупой, ищет по словам. "Где про бюджет?" найдёт всё со словом "бюджет". "Каков утверждённый лимит расходов на обучение сотрудников отдела маркетинга в 2025 году?" — найдёт точнее.

Когда применять

Работа с документами в LLM — конкретно для корпоративных баз знаний, длинных PDF (договоры, регламенты, конспекты), подготовки к экзаменам, особенно когда запрос может найти похожие слова в разных контекстах. Признаки проблемы: ответ содержит информацию "около" темы, но не по сути; цитаты не отвечают на вопрос напрямую; ответ без документов (чистое знание модели) точнее, чем с ними. НЕ подходит для быстрых вопросов где два шага (оценка + ответ) избыточны, и для задач требующих синтеза из многих мест документа — фильтрация может отсечь нужное.

Мини-рецепт

1. Переформулируй запрос для точного поиска: Промпт: Мой запрос: {исходный вопрос}. Переформулируй этот запрос так, чтобы по нему легче найти нужную информацию в документах. Добавь ключевые термины, уточни контекст. Это компенсирует тупость retriever — он ищет по словам, не по смыслу.

2. Фильтруй контекст перед ответом: Промпт: Шаг 1: Оцени каждый фрагмент из документов — релевантен ли он моему вопросу? Отбрось нерелевантное. Шаг 2: Используй только релевантные фрагменты для ответа. Вопрос: {ваш вопрос} Разделение задач (сначала оценка, потом ответ) снижает шум.

3. Комбинация для максимального эффекта (+12% точности): Промпт: Шаг 1: Переформулируй мой вопрос для точного поиска в документах. Шаг 2: Оцени найденные фрагменты — какие релевантны переформулированному запросу? Шаг 3: Ответь, используя только релевантные фрагменты. Вопрос: {ваш вопрос}

Примеры

[ПЛОХО] : Загрузил 15 PDF с регламентами IT-компании в ChatGPT. Запрос: Кто согласовывает покупку ноутбуков дороже 150 тысяч рублей? Модель процитировала устаревший регламент 2022 года (слово "ноутбуки" было там) вместо актуального пункта из регламента 2025.
[ХОРОШО] : Тот же кейс, но с фильтрацией и переформулированием: Шаг 1: Переформулируй мой вопрос для точного поиска в регламентах: "Кто согласовывает покупку ноутбуков дороже 150 тысяч рублей?" Шаг 2: Найди в загруженных документах фрагменты по переформулированному запросу. Шаг 3: Оцени каждый найденный фрагмент — действительно ли он содержит информацию о процедуре согласования закупки техники с указанием суммы и ответственных лиц? Шаг 4: Используй только релевантные фрагменты для ответа. Укажи, из какого документа взята информация. Если релевантных фрагментов нет — скажи об этом, не выдумывай. Результат: модель переформулировала запрос ("процедура согласования закупки оборудования IT-отдел лимит 150000 руб ответственные лица"), оценила релевантность найденного, дала ответ только из актуального регламента 2025 года с цитатой.
Источник: Rethinking Retrieval-Augmented Generation for Medicine: A Large-Scale, Systematic Expert Evaluation and Practical Insights
ArXiv ID: 2511.06738 | Сгенерировано: 2026-01-12 18:41

Проблемы LLM

ПроблемаСутьКак обойти
Модель не умеет игнорировать нерелевантный контекстЗагружаешь документы в ChatGPT/Claude (PDF, база знаний). Модель находит куски текста по похожим словам. Но "похожие слова" "нужная информация". Спросил про бюджет 2025 — нашла абзац про бюджет 2023, слова совпали. Модель не отсеивает это на лету. Цитирует нерелевантное в 1.3-1.4 раза чаще чем релевантное. Итог: точность ответа падает на 6%, хотя добавил "помощь" через документыРаздели задачи. Шаг 1: попроси модель оценить каждый найденный фрагмент — релевантен ли он вопросу. Шаг 2: отвечай только по релевантным. Промпт: "Сначала отбрось нерелевантные куски. Потом используй оставшееся для ответа". Разделение (оценка ответ) работает лучше чем одновременная фильтрация + генерация

Методы

МетодСуть
Двухшаговая фильтрация контекстаЧто делать: Раздели процесс на два шага. Шаг 1 — модель оценивает релевантность каждого фрагмента из документов. Шаг 2 — отвечает только по отобранным фрагментам. Промпт: "Шаг 1: Оцени каждый фрагмент — релевантен ли моему вопросу? Отбрось нерелевантное. Шаг 2: Используй только релевантное для ответа." Почему работает: Модель не может одновременно фильтровать контекст и генерировать ответ — слишком много параллельных операций. Разделение снижает нагрузку. Сначала только оценка, потом только генерация. Когда применять: работаешь с загруженными документами (PDF в ChatGPT, корпоративная база), много найденных фрагментов, высокий риск нерелевантного. Когда не работает: очень короткий контекст (1-2 абзаца), вопрос требует синтеза из многих мест документа

Тезисы

ТезисКомментарий
Нерелевантный контекст вредит точности сильнее чем его отсутствиеКогда модель получает микс полезного и мусора, итоговый ответ хуже чем вообще без документов. Точность падает на 6%, полнота на 5%. Причина: модель не умеет игнорировать шум — воспринимает всё в контексте как "подсказки". Нерелевантные куски перебивают внутренние знания. Применяй: Лучше дать меньше контекста (только проверенное), чем больше (со всем подряд). В промпте: "Если фрагмент не подходит — не используй его, даже если он в контексте"
📖 Простыми словами

Стандартный RAG в медицине — это когда ты пытаешься вылечить пациента, подсовывая врачу стопку рекламных газет вперемешку с учебниками. Исследование Йеля показало: классическая схема «закинул документы в промпт — получил умный ответ» в медицине не просто лажает, она ухудшает точность на 6%. Проблема в том, что нейронки работают как доверчивые отличники: они не умеют фильтровать базар. Если ретривер притащил 78% мусора, модель радостно начнет цитировать этот бред, игнорируя реальные факты.

Это как если бы ты спросил дорогу до аптеки, а тебе выдали пачку распечаток из Википедии про историю асфальта и биографию аптекаря. Формально информация есть, но ты всё равно заблудишься. В медицине это полный провал: GPT-4o цитирует нерелевантную фигню в два раза чаще, чем полезные данные. Модель «якорится» на случайных цифрах из левых документов и выдает опасную дичь вместо нормального диагноза.

Чтобы это починить, нужны два метода: переформулировка запроса и фильтрация документов. Сначала мы заставляем LLM написать черновик ответа — это превращает короткий вопрос в жирный набор медицинских терминов, по которым поиск реально находит нужное. Затем в дело вступает модель-фильтр (дообученная Llama-3.1-8B), которая работает как жесткий фейсконтроль: она выкидывает всё, что не относится к делу, еще до того, как основной мозг увидит текст.

Тестировали это на суровых медицинских экзаменах типа MedMCQA, но принцип универсален. Если твоя база знаний забита мусором, стандартный RAG превратит любую нейронку в уверенного в себе идиота. Связка «умный поиск + жесткий фильтр» дает +12% к точности там, где обычные методы сливаются. SEO для нейронок больше не работает — теперь важно не просто найти текст, а доказать модели, что он не херня.

Короче: хватит кормить нейронку сырыми результатами поиска. Без фильтрации документов и нормальной переформулировки твой RAG — это просто генератор случайных цитат с умным видом. Либо ты строишь систему с жестким контролем качества на каждом этапе, либо твоя модель будет галлюцинировать с опорой на источники. Кто внесет эти правки в архитектуру, получит рабочий инструмент, остальные продолжат гадать, почему «умный» поиск делает ответы только хуже.

Сгенерировано: 21.12.2025 16:59 | ArXiv Data Collector

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с