Chain-of-Verification

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Chain-of-Verification (CoVe) — это метод, предложенный для снижения числа галлюцинаций (генерации фактически неверных, но правдоподобных ответов) в больших языковых моделях (LLM)[1]. Подход, разработанный группой исследователей из Meta AI под руководством Шехзаада Дулиавалы (Shehzaad Dhuliawala) и представленный в работе «Chain-of-Verification Reduces Hallucination in Large Language Models» (2023), относится к классу методов самопроверки и самокоррекции (self-verification) LLM[2]. Основная идея CoVe заключается в поэтапной проверке сгенерированного ответа самой моделью без привлечения внешних источников[2]. Это побуждает систему тратить больше «разумных» усилий на самоанализ ответа и исправление собственных ошибок, прежде чем представить ответ пользователю[2].

Фон: галлюцинации в языковых моделях

Большие языковые модели (LLM) нередко страдают от феномена «галлюцинаций» – генерации ответов, которые выглядят правдоподобно, но фактически неверны[3]. Эта проблема широко признана нерешённой в области NLP: даже современные модели могут с высокой уверенностью предоставлять ложную информацию, вводя пользователей в заблуждение[1]. Например, модель может убедительно «выдумать» несуществующий факт или перепутать биографические данные известной личности. Поскольку такие фактические ошибки трудно обнаружить без детальной проверки, исследователи активно разрабатывают методы для снижения числа галлюцинаций в ответах LLM.

Этапы метода CoVe

Метод Chain-of-Verification реализуется через четыре последовательных шага[2][2]:

  1. Генерация базового ответа. Модель без специальных инструкций генерирует первоначальный ответ на исходный запрос (базовая гипотеза ответа)[3]. Этот черновой ответ служит отправной точкой и может содержать галлюцинации, которые предстоит обнаружить на следующих шагах.
  2. Планирование проверочных вопросов. Имея исходный вопрос и сгенерированный ответ, модель формулирует список уточняющих вопросов, которые проверяют фактическую правильность утверждений из базового ответа[3]. Эти verification questions нацелены на ключевые факты ответа и помогают выявить возможные ошибки или неточности.
  3. Выполнение проверки (верификация). Далее модель последовательно и независимо отвечает на каждый из сформулированных проверочных вопросов, стараясь не опираться на первоначальный ответ, чтобы избежать предвзятости[3]. Полученные ответы сравниваются с исходным ответом для обнаружения противоречий или ошибок: таким образом выявляются участки исходного ответа, которые не подтверждаются фактами.
  4. Формирование финального ответа. Наконец, на основе найденных расхождений модель генерирует исправленный окончательный ответ[3]. В этот ответ вносятся корректировки с учётом результатов проверки, что повышает его фактическую точность и снижает вероятность галлюцинаций.

Каждый из этих этапов выполняется с помощью дополнительных запросов к той же LLM, но с разными инструкциями[2]. То есть, модель поочерёдно выступает в роли ответчика, затем проверяющего (задаёт вопросы и отвечает на них), и редактора финального вывода.

Варианты реализации проверки

Авторы метода опробовали несколько режимов реализации шага верификации, отличающихся способом задавания и получения ответов на проверочные вопросы[2]:

  • Совмещённый подход (Joint). Модель генерирует и сами проверочные вопросы, и ответы на них в рамках одного единственного запроса. Этот вариант менее предпочтителен, так как модель, отвечая сразу, может галлюцинировать факты и повторять ошибки исходного ответа из-за смещения[3].
  • Двухэтапный подход (2-Step). Проверочные вопросы сначала генерируются отдельным запросом, а затем в следующем запросе модель отвечает на сформированный список вопросов[3]. Разделение этапов помогает избежать влияния исходного ответа при генерации вопросов.
  • Раздельная проверка (Factored). Модель отвечает по отдельности на каждый проверочный вопрос, используя несколько последовательных запросов (по одному на вопрос)[3]. Такой подход предотвращает простой копипаст фрагментов исходного ответа: ответы на проверочные вопросы формулируются автономно, что уменьшает риск повторения изначальной галлюцинации. Недостатком является возросшая вычислительная стоимость, так как число запросов растёт пропорционально числу вопросов.
  • Раздельная проверка с пересмотром (Factored + Revise). После получения ответов на все проверочные вопросы модель выполняет дополнительный этап сравнения и ревизии. С помощью отдельного запроса она сопоставляет полученные факты с исходным ответом и явно отмечает несоответствия, после чего генерирует финальный ответ с исправлениями[3]. Этот дополнительный шаг заставляет систему более внимательно проанализировать расхождения и интегрировать исправленные сведения в окончательный вывод.

Экспериментальные результаты

Метод Chain-of-Verification был испытан на ряде задач, чувствительных к фактической точности ответов[1]. В их числе были: вопросы на перечисление фактов по базе знаний (списки из Wikidata и категорий Wikipedia), вопросы на несколько ответов из разных частей текста (MultiSpanQA), а также задачи генерации развёрнутого текста (например, биографий)[1].

Результаты показали значительное снижение галлюцинаций по всем типам заданий при использовании CoVe по сравнению с исходными моделями без самопроверки[1]. Особенно эффективным оказался вариант factored + revise – раздельная проверка с финальным сверением фактов. Этот подход дал наилучшие показатели точности: например, в задаче генерации биографического текста применение CoVe к модели LLaMA-65B (65-миллиардная LLM) повысило её фактологическую метрику FactScore с ~63,7 до ~71,4 баллов[2]. Повышение FactScore указывает, что финальные ответы стали содержать больше проверенных фактов и меньше вымышленных сведений.

Более того, LLM с подключённой цепочкой проверки смогла превзойти даже некоторые более мощные или специально оснащённые системы. Так, LLAMA-65B с CoVe показала более высокий FactScore, чем ChatGPT (модель OpenAI) и опередила Perplexity.ai — модель, дополненную интернет-поиском для фактической поддержки ответов[2]. Это примечательно, поскольку Perplexity использует внешние источники для поиска информации, тогда как CoVe добивается улучшения качества, опираясь лишь на внутренние способности самой модели к рассуждению и самопроверке[2]. Правда, на самых редких фактах (когда требуются специфические знания) retrieval-система типа Perplexity всё ещё удерживает преимущество, однако на большинстве вопросов CoVe дала более точные ответы[2].

Ограничения и перспективы

Следует отметить, что хотя Chain-of-Verification заметно уменьшает долю галлюцинаций, полностью устранить их данный метод не в состоянии. Модель всё ещё может допустить ошибки, если проверочные вопросы не охватили какую-то неверную деталь или если сама LLM не знает правильного факта. Кроме того, CoVe повышает вычислительную нагрузку: для одного пользовательского запроса требуется выполнить несколько последовательных обращений к модели (генерация ответа, генерация вопросов, ответы на них, финальная сборка), тогда как обычная модель отвечает одним шагом[2]. Тем не менее, авторы показывают, что по суммарным затратам CoVe сопоставим с другими многоэтапными подходами выявления галлюцинаций и остаётся практичным решением[2].

В своей работе исследователи Meta AI указали возможные направления улучшения метода. Один из очевидных путей – объединить CoVe с использованием внешних инструментов, например подключать модуль интернет-поиска или баз знаний на этапе верификации[2]. Это позволило бы получать достоверные сведения из вне и ещё более надёжно подтверждать или опровергать факты из исходного ответа. Таким образом, Chain-of-Verification служит шагом к более ответственным и точным АІ-системам: он демонстрирует, что заставив модель критически пересмотреть собственный ответ, можно существенно повысить его качество и уменьшить распространение вымышленных фактов в генерируемом тексте[2].

Ссылки

Литература

  • Dhuliawala, S. et al. (2023). Chain-of-Verification Reduces Hallucination in Large Language Models. arXiv:2309.11495.
  • Manakul, P. et al. (2023). SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models. arXiv:2303.08896.
  • Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Lightman, H. et al. (2023). Let’s Verify Step by Step. arXiv:2305.20050.
  • Ling, Z. et al. (2023). Deductive Verification of Chain-of-Thought Reasoning. arXiv:2306.03872.
  • Lyu, Q. et al. (2023). Faithful Chain-of-Thought Reasoning. arXiv:2301.13379.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.

Примечания

  1. 1,0 1,1 1,2 1,3 1,4 Dhuliawala, Shehzaad et al. «Chain-of-Verification Reduces Hallucination in Large Language Models». arXiv. [1]
  2. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 2,13 2,14 Dhuliawala, Shehzaad et al. «Chain-of-Verification Reduces Hallucination in Large Language Models». ACL Anthology. [2]
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 chowdhury, sourajit roy. «Chain of Verification (CoVe) — Understanding & Implementation». Medium. [3]