TL;DR
PICOs-RAG — метод обработки запросов в два шага: сначала LLM расширяет вопрос профессиональными терминами, затем извлекает из него только критически важные элементы по формату PICO (Population, Intervention, Comparison, Outcome). Эти элементы используются для поиска, а не весь расширенный текст.
Прямое расширение запроса создаёт проблему: LLM добавляет много контекста, но вместе с ним — шум. Например, вопрос "У ребёнка нос заложен неделю" расширяется до текста со словами "риниты", "синуситы", "аллергии", "деконгестанты", "выписка из больницы", "гирудин" и другим. При поиске по всему этому тексту система находит нерелевантные источники — скажем, случай 69-летнего пациента с пневмонией вместо информации о детском насморке.
PICO-фильтр оставляет суть: из расширенного вопроса извлекаются четыре элемента — кто (ребёнок), что делается (лечение заложенности), с чем сравнивается (капли не помогли), что хотим (избавиться от симптома). Поиск по этим четырём компонентам находит точные доказательства вместо шума. Точность ответов выросла на 6-8% по двум разным метрикам оценки.
Схема метода
ШАГ 1: Расширение запроса
LLM добавляет профессиональные термины и контекст
→ Развёрнутый профессиональный вопрос
ШАГ 2: PICO-извлечение
LLM извлекает 4 ключевых элемента:
- P (Population) — кто/что является субъектом
- I (Intervention) — какое действие/вмешательство
- C (Comparison) — с чем сравнивается (опционально)
- O (Outcome) — желаемый результат
→ Структурированные поисковые термины
ШАГ 3: RAG-поиск по PICO-элементам
Поиск идёт по сжатым элементам, не по всему расширенному тексту
→ Релевантные доказательства → Точный ответ
Все три шага выполняются последовательно, каждый — отдельным запросом к LLM.
Пример применения
Задача: Мама двухлетнего ребёнка пишет в медицинский чат: "Сопли уже неделю, Називин не помогает, что ещё попробовать?"
Промпт (Шаг 1 — расширение):
Ты — медицинский консультант. Расширь этот вопрос профессиональными терминами,
добавь важный контекст для педиатрии. Не отвечай на вопрос, только переформулируй.
Вопрос: "Сопли уже неделю, Називин не помогает, что ещё попробобвать?"
Промпт (Шаг 2 — извлечение PICO):
Извлеки ключевые элементы из этого медицинского вопроса в формате PICO:
P (Population) — кто пациент, возраст, состояние
I (Intervention) — какое лечение/действие
C (Comparison) — с чем сравнивается
O (Outcome) — желаемый результат
Расширенный вопрос: [вставить результат Шага 1]
Результат:
На Шаге 1 модель выдаст развёрнутый профессиональный текст с терминами "ринит", "деконгестанты", "возрастные ограничения", "аллергический компонент", возможно упомянет синуситы и другие диагнозы. На Шаге 2 из этого текста будут извлечены только критически важные элементы: P = ребёнок 2 года, ринит 7 дней; I = медикаментозное лечение; C = Називин неэффективен; O = устранение симптомов. Шаг 3: поиск по этим четырём элементам найдёт статьи именно про затяжной детский ринит и альтернативы сосудосуживающим каплям, а не случайные упоминания Називина в контексте взрослых пациентов или других заболеваний.
Почему это работает
LLM хорошо расширяет контекст, добавляя профессиональную терминологию и релевантные детали. Но при этом модель создаёт шум — упоминает смежные диагнозы, препараты из других групп, добавляет общие фразы вроде "консультация специалиста" или "дифференциальная диагностика". Если искать по всему этому тексту, поисковая система найдёт слишком много нерелевантного.
Сильная сторона LLM — извлечение структурированной информации из текста. Модель умеет выделять суть: кто пациент, что с ним делается, что хотим получить. PICO-формат — это медицинский стандарт формулировки клинических вопросов, но принцип универсален: отбрось детали, оставь критически важное.
Двухшаговая обработка использует обе сильные стороны: сначала обогащаем контекстом (чтобы не потерять важное), потом сжимаем до сути (чтобы не найти лишнее). Прямое расширение или прямое извлечение PICO из исходного вопроса работают хуже: первое даёт шум, второе — теряет детали.
Шаблон промпта
Базовый шаблон (для медицинских вопросов):
# ШАГ 1: Расширение
Ты — медицинский консультант по направлению {дисциплина}.
Расширь этот вопрос профессиональными терминами, добавь важный контекст.
НЕ отвечай на вопрос, только переформулируй его профессионально.
Вопрос: {исходный_вопрос}
---
# ШАГ 2: PICO-извлечение
Извлеки ключевые элементы из расширенного вопроса:
P (Population) — кто пациент (возраст, пол, состояние)
I (Intervention) — какое действие/лечение/вмешательство
C (Comparison) — с чем сравнивается (если есть)
O (Outcome) — желаемый результат
Расширенный вопрос: {результат_шага_1}
Выдай результат строго в формате:
P: ...
I: ...
C: ...
O: ...
Поля для подстановки:
{дисциплина}— медицинская специальность (педиатрия, кардиология, неврология и т.д.) или просто "общая медицина"{исходный_вопрос}— вопрос пользователя как есть{результат_шага_1}— текст, который выдала модель на Шаге 1
Адаптация под другие домены (не медицина):
PICO → СПДР (Субъект, Проблема, Действие, Результат):
- С (Субъект) — кто/что является объектом (бизнес, процесс, система)
- П (Проблема) — что не так, какое ограничение
- Д (Действие) — какое решение/изменение рассматривается
- Р (Результат) — что хотим получить
Ограничения
⚠️ Требует двух последовательных запросов: Сначала расширение, потом извлечение. Для простых вопросов это избыточно — можно спросить напрямую.
⚠️ PICO изначально для медицины: Формат разработан для клинических вопросов. В других доменах нужна адаптация структуры (см. СПДР выше).
⚠️ Зависит от качества расширения: Если на Шаге 1 модель добавит неверный контекст, Шаг 2 извлечёт неправильные элементы. Критически важно указать правильную дисциплину или дать модели достаточно контекста.
Как исследовали
Исследователи взяли китайский датасет WebMedQA — реальные вопросы пациентов с медицинских форумов. Это живой, непрофессиональный язык: люди пропускают детали, используют разговорные термины, описывают симптомы неточно. Проверяли на 500 вопросах разных типов: про лечение, диагностику, стоимость услуг.
Baseline — стандартный RAG: вопрос пользователя → векторный поиск → генерация ответа.
PICOs-RAG — расширение → PICO-извлечение → поиск по PICO → генерация.
Сравнивали на двух метриках оценки:
- Method A (релевантность): насколько ответ покрывает информацию из эталонного ответа (оценивает BaiChuan2-13B)
- Method B (точность): насколько ответ корректен с медицинской точки зрения (оценивает GPT-4o-mini)
PICOs-RAG выиграл на обеих метриках: +6.2% по Method A, +8.6% по Method B. Интересно, что улучшение устойчиво — работает на разных типах вопросов и при разных оценщиках.
Почему PICO, а не PIO? Проверили вариант без компонента C (Comparison). Разница оказалась минимальной (меньше 1%), но PICO чуть лучше — поэтому выбрали его. Это показывает, что сравнительный контекст иногда важен.
Любопытная деталь: когда убрали классификацию по дисциплинам (Шаг 0), Method B показал рост точности, но Method A упал на 12%. Причина: без дисциплины модель расширяет вопрос слишком широко, ответ получается общий и всеобъемлющий, но теряет фокус на специфике проблемы пользователя. Это подтверждает: контекст дисциплины критически важен для релевантности.
Адаптации и экстраполяции
💡 Адаптация для юридических консультаций
PICO в юридическом контексте → СФТР (Сторона, Факты, Требование, Результат):
# ШАГ 1: Расширение
Ты — юридический консультант по {отрасль_права}.
Расширь этот вопрос профессиональными юридическими терминами.
НЕ давай юридическую оценку, только переформулируй.
Вопрос: {исходный_вопрос}
---
# ШАГ 2: СФТР-извлечение
Извлеки ключевые элементы:
С (Сторона) — кто участники (истец, ответчик, статус)
Ф (Факты) — что произошло (обстоятельства дела)
Т (Требование) — что хочет заявитель (иск, претензия)
Р (Результат) — какой исход желателен
Расширенный вопрос: {результат_шага_1}
Пример: "Застройщик не сдал квартиру вовремя, хочу штраф и неустойку" → С: Дольщик vs Застройщик; Ф: Нарушение срока сдачи по ДДУ; Т: Неустойка по ст. 6 214-ФЗ; Р: Взыскание неустойки и компенсации морального вреда.
💡 Адаптация для бизнес-анализа
PICO для бизнеса → КЗМР (Контекст, Задача, Метод, Результат):
# ШАГ 1: Расширение
Расширь этот бизнес-вопрос профессиональными терминами из {сфера_бизнеса}.
Добавь контекст рынка, типичные метрики, известные подходы.
Вопрос: {исходный_вопрос}
---
# ШАГ 2: КЗМР-извлечение
К (Контекст) — какой бизнес, рынок, стадия
З (Задача) — какая проблема/цель
М (Метод) — какие решения рассматриваются
Р (Результат) — какие метрики успеха
Расширенный вопрос: {результат_шага_1}
Пример: "Делаю SaaS для малого бизнеса, CAC высокий, как снизить?" → К: B2B SaaS, малый бизнес РФ, ранняя стадия; З: Снижение CAC; М: Оптимизация воронки, контент-маркетинг, реферальная программа; Р: CAC < LTV/3, окупаемость < 12 месяцев.
🔧 Техника: однозапросная версия → экономия на API-вызовах
Если нужна скорость, объединяем Шаг 1 и Шаг 2:
Ты — медицинский консультант. Выполни два действия:
1. Расширь вопрос профессиональными терминами по направлению {дисциплина}
2. Сразу извлеки PICO-элементы из расширенного вопроса
Формат ответа:
[РАСШИРЕННЫЙ ВОПРОС]
...текст...
[PICO]
P: ...
I: ...
C: ...
O: ...
Вопрос: {исходный_вопрос}
Минус: модель может пропустить детали при расширении, т.к. уже знает что потом нужно сжать. Двухшаговая версия точнее, но требует двух запросов.
Ресурсы
Работа: "PICOs-RAG: PICO-supported Query Rewriting for Retrieval-Augmented Generation in Evidence-Based Medicine"
Авторы: Mengzhou Sun, Sendong Zhao, Jianyu Chen, Bing Qin
Организация: Faculty of Computing, Harbin Institute of Technology, Китай
Отсылки:
- PICO framework — стандарт формулировки клинических вопросов в доказательной медицине
- WebMedQA dataset — китайский датасет вопросов пациентов с медицинских форумов
- RAG (Retrieval-Augmented Generation) — метод генерации с поиском внешних доказательств
