Self-Consistency: как заставить языковые модели проверять собственные рассуждения
После погружения в Chain-of-Thought я заметил интересную проблему: иногда модель приходила к правильному ответу ошибочным путём, а иногда делала арифметические ошибки, полностью меняя конечный результат.
Тут я открыл для себя метод Self-Consistency. Это как если бы вы заставили студента проверить своё решение несколькими способами и выбрать ответ, который встречается чаще.
Что такое Self-Consistency?
Self-Consistency, представленный Wang и соавторами, включает:
- Генерацию множества различных цепочек рассуждений (5-40)
- Извлечение ответов из каждой цепочки
- Использование мажоритарного голосования для итогового ответа
Ключевая идея: разные пути могут привести к одному и тому же ответу. Если модель приходит к одному результату разными способами, вероятность его правильности значительно повышается.
Математическая головоломка: комбинаторная задача
Задача: В турнире по шахматам участвуют 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
- Настройте разнообразие: Используйте ненулевую температуру (0.5-0.8) для получения действительно разных цепочек рассуждений.
- Больше не всегда лучше: Проверьте, сколько попыток оптимально для вашей задачи. Иногда 5 попыток дают такой же результат, как и 40.
- Комбинируйте с другими методами: Self-Consistency особенно эффективен в сочетании с Chain-of-Thought и другими техниками.
- Лучшие кандидаты для применения: Математические и логические задачи, требующие многоступенчатых рассуждений.
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 для создания простых диаграмм). Сравнение результатов: Окончательный ответ:
Советы по использованию этих промптов
- Регулируйте температуру: Для Self-Consistency рекомендуется настраивать параметр temperature в диапазоне 0.5-0.8, чтобы модель генерировала действительно разные пути рассуждений.
- Модифицируйте количество попыток: В зависимости от сложности задачи может потребоваться 3-7 разных попыток для достижения хорошей консистентности.
- Добавляйте структуру: Чем более структурированный промпт вы используете, тем легче будет анализировать ответы.
- Экспериментируйте с фразами-триггерами: Фразы вроде "давай подумаем шаг за шагом", "проанализируем методически" или "рассмотрим все возможные подходы" могут усилить эффект.
Попробуйте эти промпты и адаптируйте их для своих конкретных задач. Self-Consistency особенно эффективен для проблем, где простые ответы могут содержать ошибки или где существует высокий риск ошибочных рассуждений.
Еще больше мяса по промтингу у меня в ТЕЛЕГРАМ