Верификация цитат в RAG: от проверки наличия источника к подтверждению утверждений
Идентификатор цитаты доказывает лишь факт извлечения источника, а не поддержку утверждения. В статье описывается процесс декомпозиции ответов, поиска подтверждающих фрагментов и разделения проверок извлечения и обоснованности на примере гипотетических политик.
В этом материале
Короткий ответ
Чтобы проверить цитаты в RAG, сначала разделите механическую проверку наличия идентификатора источника и семантическую проверку того, действительно ли цитируемый отрывок подтверждает утверждение. Разбейте ответ на атомарные утверждения, найдите точный подтверждающий текст в каждом цитируемом источнике и оцените логическое следствие. Отмечайте отсутствие доказательств и противоречивые источники. Используйте структурированный контрольный список и помните, что автоматизированные метрики обоснованности могут упускать тонкие несоответствия.
Разделение ссылки и доказательства
Метка цитаты требует проверки. Она не доказывает, что модель получила или прочитала нужный фрагмент. Сначала сопоставьте метку с фактически переданным контекстом и убедитесь, что указанный фрагмент существует. Затем проверьте, поддерживает ли он конкретное утверждение. В учебном примере источник A разрешает возврат неиспользованных товаров в течение 14 дней, а источник B описывает покрытие производственных дефектов в течение 12 месяцев. Утверждение о возврате всех использованных товаров не поддерживается источником A, даже если его метка разрешается корректно.
Разбиение ответа на утверждения
Для систематической проверки поддержки разложите ответ на отдельные фактологические утверждения. В статье Microsoft по промпт-инжинирингу рекомендуется инструктировать модель цитировать источник для каждого утверждения, что облегчает эту декомпозицию. Для примера ответа «Вы можете вернуть все использованные товары в течение 30 дней» атомарными утверждениями будут «возврат всех использованных товаров» и «в течение 30 дней». Каждое утверждение может поддерживаться разными источниками или не поддерживаться вовсе. Разбиение ответа на утверждения предотвращает ситуацию, когда частично подтвержденный ответ принимается целиком. После декомпозиции вы можете независимо проверить каждое утверждение по его цитируемому источнику.
Поиск подтверждающего отрывка
Для каждого утверждения найдите точный текст в цитируемом источнике, который должен его подтверждать. В примере утверждение «возврат всех использованных товаров» ссылается на Источник А. Текст Источника А: «Неиспользованные товары могут быть возвращены в течение 14 дней». Упоминаний об использованных товарах нет, следовательно, подтверждающего отрывка не существует. Однако утверждение «неиспользованные товары могут быть возвращены в течение 14 дней» со ссылкой на Источник А напрямую соответствует тексту источника. Этот шаг требует чтения содержания источника, а не просто проверки наличия идентификатора. В статье по оценке описываются расчеты обоснованности, использующие логический вывод на естественном языке (NLI) для определения того, основаны ли утверждения на контексте, что в некоторой степени автоматизирует этот процесс сопоставления.
Отслеживание подтвержденного и неподтвержденного утверждений
В учебном примере источник A поддерживает утверждение о возврате неиспользованных товаров в течение 14 дней. Утверждение о возврате всех использованных товаров тот же фрагмент не поддерживает. Правильная ссылка поэтому не доказывает, что вывод следует из текста. Проверяйте каждое утверждение отдельно, включая условия, количества и сроки. Отличайте неподтверждённое расширение правила от сведений, которым контекст прямо противоречит.
Работа с отсутствующими доказательствами
Когда у утверждения нет цитаты или в цитируемом источнике отсутствует соответствующая информация, это считается отсутствием доказательств. Статья по промпт-инжинирингу советует инструктировать модель сообщать о недостающей информации, если контекст не дает полного ответа на вопрос. В примере, если ответ включает «возврат всех использованных товаров» без какого-либо подтверждающего источника, это утверждение является неподтвержденным из-за отсутствия доказательств. Рецензент должен отметить это и проверить, не должна ли была модель ответить «Я не знаю» или дать уточнение. Метрика полноты (completeness) измеряет, отвечены ли все части запроса; утверждение с отсутствующими доказательствами может создать видимость более высокой полноты, в то время как обоснованность останется низкой.
Работа с противоречиями в источниках
Извлеченные фрагменты могут содержать противоречивую информацию. Статья по промпт-инжинирингу прямо инструктирует: «Если предоставленные источники содержат противоречивую информацию, представьте обе точки зрения и процитируйте соответствующие источники». Например, если Источник А говорит о возврате в течение 14 дней, а Источник Б - в течение 30 дней, ответ должен признать оба варианта. Если ответ молча выбирает один из них, это проблема обоснованности, так как игнорируется часть контекста. Метрика правильности из статьи по оценке может пострадать, если ответ выбирает неверный источник. При проверке убедитесь, что ответ прозрачно представляет конфликт или разрешает его с обоснованием.
Составление практического контрольного списка проверки
Для каждого утверждения запишите ссылку, точный подтверждающий фрагмент и решение о наличии поддержки. Отдельно отмечайте отсутствующий или нерелевантный источник и существующий фрагмент, который не поддерживает утверждение. При расхождении источников зафиксируйте конфликт и проверьте, объясняет ли его ответ. Список проверок в конце материала обобщает эти действия.
Понимание ограничений автоматических верификаторов
Автоматическая проверка может выявлять неподтверждённые утверждения, но её оценка не является гарантией. Проверяющая модель может пропустить изменённое условие, отрицание или неверный срок. Поддержка контекстом и фактическая достоверность также отвечают на разные вопросы: ответ может точно повторить ложный или устаревший источник и при этом опираться на него. Напротив, верный факт из внешних знаний может не иметь подтверждения в переданном контексте. Проверяйте важные пары утверждений и фрагментов непосредственно, а надёжность, дату и применимость источника оценивайте отдельно. Примеры правил в этом материале придуманы для объяснения и не являются результатами выполненного поиска.
Что проверить
- Проверить, соответствует ли каждый идентификатор цитаты извлеченному фрагменту источника.
- Для каждого утверждения найти точный отрывок в цитируемом источнике, который должен его подтверждать.
- Оценить, следует ли утверждение логически из отрывка, а не просто упоминается ли оно.
- Пометить утверждения, не имеющие подтверждающего отрывка, как неподтвержденные.
- При противоречии источников проверить, признает ли ответ конфликт или молча выбирает один из них.
- Разделить качество извлечения (наличие источника) и обоснованность (семантическая поддержка).
- Использовать структурированный контрольный список для проверки каждой пары утверждение-источник.
- Помнить, что автоматизированные метрики обоснованности могут упускать тонкие несоответствия.
Границы применения
Автоматизированные метрики обоснованности могут не уловить все семантические несоответствия; для принятия решений с высокой степенью ответственности требуется проверка человеком. В примере используются гипотетические фрагменты политик, а не реальные результаты извлечения.