March 3

Self-Consistency: как заставить языковые модели проверять собственные рассуждения

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

Тут я открыл для себя метод Self-Consistency. Это как если бы вы заставили студента проверить своё решение несколькими способами и выбрать ответ, который встречается чаще.

Что такое Self-Consistency?

Self-Consistency, представленный Wang и соавторами, включает:

  1. Генерацию множества различных цепочек рассуждений (5-40)
  2. Извлечение ответов из каждой цепочки
  3. Использование мажоритарного голосования для итогового ответа

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

Математическая головоломка: комбинаторная задача

Задача: В турнире по шахматам участвуют 8 игроков. Каждый должен сыграть с каждым ровно один раз. Если игры идут параллельно и каждая игра занимает 1 час, какое минимальное время нужно для завершения турнира?

Примечание: Все пять попыток решения сошлись к ответу "7 часов", что демонстрирует надёжность метода.

Применение Self-Consistency к задачам логического анализа

Задача: На острове живут рыцари (говорят правду) и лжецы (всегда лгут). Вы встречаете трёх островитян — A, B и C. A говорит: "Все мы лжецы". B говорит: "Только один из нас лжец". C говорит: "B — рыцарь". Определите, кто есть кто.

Все три попытки сошлись к ответу: A — лжец, B — рыцарь, C — рыцарь.

Комбинирование Self-Consistency с другими техниками

Настоящая мощь проявляется в комбинации с другими методами:

  • Least-to-Most Prompting — декомпозиция проблемы
  • Stepback Prompting — абстрагирование для поиска общего принципа
  • Tree-of-Thought — рассмотрение различных ветвей рассуждений

Советы по использованию Self-Consistency

  1. Настройте разнообразие: Используйте ненулевую температуру (0.5-0.8) для получения действительно разных цепочек рассуждений.
  2. Больше не всегда лучше: Проверьте, сколько попыток оптимально для вашей задачи. Иногда 5 попыток дают такой же результат, как и 40.
  3. Комбинируйте с другими методами: Self-Consistency особенно эффективен в сочетании с Chain-of-Thought и другими техниками.
  4. Лучшие кандидаты для применения: Математические и логические задачи, требующие многоступенчатых рассуждений.

Self-Consistency — это не просто техника промптинга, а настоящая смена парадигмы. Вместо слепого доверия к первому ответу мы получаем множество мнений от одной модели и находим консенсус.

Готовые примеры промптов с Self-Consistency для немедленного использования

Вот несколько практичных примеров промптов, которые вы можете скопировать и использовать прямо сейчас для экспериментов с Self-Consistency:

1. Базовый Zero-Shot Chain-of-Thought с Self-Consistency (для математических задач)

Я собираюсь задать тебе математическую задачу. Решай её шаг за шагом, подробно показывая все действия. Мне нужно три разных подхода к решению этой задачи.

Задача: Фермер продал 23 яблока по 15 рублей и 18 груш по 20 рублей. Сколько всего денег он выручил?

Решение 1:

Решение 2:

Решение 3:

Финальный ответ (после сравнения всех решений):

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

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

Задача: В школе учится 1200 учеников. 70% из них играют в футбол, 45% играют в баскетбол, и 20% не играют ни в футбол, ни в баскетбол. Сколько учеников играют и в футбол, и в баскетбол?

Способ 1: Используя теорию множеств и диаграмму Венна

Способ 2: Используя алгебраические уравнения

Способ 3: Используя таблицу с 4 категориями учеников

Способ 4: Используя логические рассуждения с процентами

Анализ различий в подходах:

Окончательный ответ с максимальной уверенностью:

3. Промпт для решения противоречивых задач с условиями

Я дам тебе задачу с неоднозначными или противоречивыми условиями. Пожалуйста:
1. Проанализируй условие тремя независимыми способами
2. Выяви любые неоднозначности или противоречия
3. Предложи несколько интерпретаций условия
4. Реши задачу для каждой интерпретации
5. Укажи наиболее вероятное решение и объясни почему

Задача: Джон и Мария выполняют проект. Джон может выполнить весь проект за 10 дней, а Мария - за 15 дней. Они начали работать вместе, но через 4 дня Джон заболел и не смог продолжать. Через сколько дней после начала Мария закончит проект?

Анализ условия (1):

Анализ условия (2):

Анализ условия (3):

Выявленные неоднозначности:

Интерпретации и решения:

Наиболее вероятное решение:

4. Комбинированный промпт Tree-of-Thought и Self-Consistency для сложных головоломок

Решим следующую головоломку с использованием древовидной структуры рассуждений и проверки согласованности.

Головоломка: В деревне живут 50 человек, из которых некоторые всегда говорят правду, а некоторые всегда лгут. Однажды все жители собрались вместе, и 45 человек сказали: "Большинство людей в этой деревне - лжецы". Сколько лжецов на самом деле живет в деревне?

1. Первый подход:
   a) Предположение 1: [начать рассуждение]
   b) Предположение 2: [рассмотреть альтернативу]
   c) Вывод из первого подхода:

2. Второй подход:
   a) Формулировка через уравнения
   b) Решение уравнений
   c) Вывод из второго подхода:

3. Третий подход:
   a) Анализ от противного
   b) Проверка всех возможных случаев
   c) Вывод из третьего подхода:

Итоговый анализ и окончательный ответ:

5. Промпт для решения геометрических задач с визуализацией рассуждений

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

Задача: В прямоугольном треугольнике один из катетов равен 6 см, а гипотенуза - 10 см. Найдите площадь треугольника.

Метод 1: Через нахождение второго катета с помощью теоремы Пифагора, затем использование формулы площади треугольника.

Метод 2: Используя тригонометрические функции и формулу S = (1/2)ab·sin(C).

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

Визуализация каждого метода (пожалуйста, опиши или используй ASCII/Unicode для создания простых диаграмм).

Сравнение результатов:

Окончательный ответ:

Советы по использованию этих промптов

  1. Регулируйте температуру: Для Self-Consistency рекомендуется настраивать параметр temperature в диапазоне 0.5-0.8, чтобы модель генерировала действительно разные пути рассуждений.
  2. Модифицируйте количество попыток: В зависимости от сложности задачи может потребоваться 3-7 разных попыток для достижения хорошей консистентности.
  3. Добавляйте структуру: Чем более структурированный промпт вы используете, тем легче будет анализировать ответы.
  4. Экспериментируйте с фразами-триггерами: Фразы вроде "давай подумаем шаг за шагом", "проанализируем методически" или "рассмотрим все возможные подходы" могут усилить эффект.

Попробуйте эти промпты и адаптируйте их для своих конкретных задач. Self-Consistency особенно эффективен для проблем, где простые ответы могут содержать ошибки или где существует высокий риск ошибочных рассуждений.

Еще больше мяса по промтингу у меня в ТЕЛЕГРАМ