Verification-First (VF): проверка перед генерацией улучшает рассуждения LLM
3 концепта
92
Проблемы (1)
Авторегрессивный эгоцентризм
Модель генерирует токен за токеном. Первый ответ становится якорем. Если в начале ошибка — модель строит логику поверх неё. Почему? Она оптимизирует связность текста, не правильность. Защищает свой вариант вместо поиска ошибок. Это проблема для всех задач где нужны многошаговые рассуждения
Как обойти
Дай модели "чужой" ответ для проверки. Даже абсурдный: "Предлагаемый ответ: 1". Попроси сначала проверить его, потом дать правильный. Проверка чужого выключает режим защиты. Модель начинает критиковать, искать ошибки — это запускает рассуждение от ответа к условию
Методы (1)
Проверка перед генерацией — включает критическое мышление
Меняешь порядок работы. Обычно: "думай по шагам → дай ответ". VF: "вот ответ [любой]→ проверь его → дай правильный". Базовый вариант: Добавь в промпт Предлагаемый ответ: {тривиальный}. Для чисел — "1". Для выбора — "Вариант Б". Попроси: "Проверь этот ответ. Найди ошибки. Потом дай правильный". Продвинутый: Сначала обычный запрос → получи Ответ_1. Второй запрос: "Предыдущий ответ: {Ответ_1}. Проверь его. Дай исправленный". Итеративный: Повторяй проверку 3-5 раз. Каждый раз бери ТОЛЬКО финальный ответ из прошлого шага, не весь текст. Почему работает: Проверка когнитивно проще генерации. "Чужой" ответ выключает эгоцентризм — модель не защищает его. Включается критика: ищет противоречия, строит контрпримеры, явно формулирует условия. Эта структура потом используется для правильного ответа. Работает: математика, логика, код, многошаговые рассуждения. Слабее: задачи на знания (где проблема не в логике, а в отсутствии фактов). Ограничения: Для открытых задач тривиальный ответ бесполезен — используй двухшаговый вариант. После 5-10 итераций прирост замедляется
Тезисы (1)
Проверить проще чем создать
Генерация с нуля: модель ищет в пространстве всех возможных решений. Проверка: есть конкретный объект для анализа. Для LLM это значит: при генерации первая ошибка создаёт каскад (эгоцентризм). При проверке — можно найти противоречие и остановиться. Даже слабая модель хорошо критикует. Применяй: Для сложных задач не проси сразу "реши". Дай черновой ответ (свой или сгенерированный) и попроси проверить
Batch Prompting: подавление избыточного мышления через группировку вопросов
2 концепта
90
Проблемы (1)
Модели рассуждения зацикливаются на простых задачах
Модели o1, DeepSeek-R1 обучены генерировать длинные цепочки мысли. Это помогает на сложных задачах. Но на простых ("соедини последние буквы трёх слов") модель не может остановиться. Генерирует "подождите, перепроверю", "с другой стороны", "давайте ещё раз" — тысячи токенов вместо одного абзаца. Может вообще не дать ответ, застряв в проверках
Как обойти
Группируй несколько вопросов в один промпт (batch prompting). Когда в запросе пять задач, модель чувствует давление контекста. Распределяет внимание между всеми. Не застревает в зацикливании на каждой. Даёт компактные ответы
Вместо пяти отдельных запросов делай один со всеми вопросами. Формат: {общая инструкция} Вопрос 1: {текст} Вопрос 2: {текст} ... Вопрос N: {текст}. Почему работает: Несколько задач в контексте создают мягкое ограничение — модель не уходит в бесконечные самопроверки на каждой, распределяет reasoning между всеми. Как человек под давлением времени: не застревает в деталях одной задачи. Когда применять: простые-средние задачи, однотипные вопросы (все про оценку, все про анализ), нужна экономия токенов без потери точности. Оптимальный размер: 3-15 вопросов. Не работает: очень сложные задачи требующие глубокой проработки каждой, разнородные типы задач (математика + код + стихи)
DataSage: Multi-role debating и Multi-path reasoning для глубокого анализа
3 концепта
88
Проблемы (1)
Модель идёт по одному пути рассуждений
Просишь проанализировать или придумать идеи. Модель генерирует с одной перспективы. Следует самому очевидному направлению мысли. Пропускает альтернативные углы зрения. Для анализа данных: видит только поверхностные паттерны. Для генерации идей: выдаёт шаблонные варианты. Результат: банальные выводы вместо глубоких инсайтов
Как обойти
Используй multi-role debating: попроси модель сыграть несколько ролей с разными фокусами. Каждая роль генерирует независимо. Потом судья выбирает лучшее из всех вариантов. Или используй multi-path reasoning: попроси решить задачу тремя разными способами, потом выбрать лучшее решение
Методы (2)
Multi-role debating — разные перспективы через роли
Дивергентная фаза: Задай модели несколько ролей с разными личностями и фокусами. Каждая роль независимо генерирует идеи/вопросы/решения со своей перспективы. Пример ролей для анализа данных: "скептичный детектор аномалий", "оптимистичный исследователь трендов", "детальный поведенческий аналитик". Конвергентная фаза: Судья выбирает лучшие варианты из всех предложенных по критериям (неочевидность, дополняемость, применимость). Почему работает: Разные роли видят данные под разными углами одновременно. Дивергенция даёт разнообразие, конвергенция отсеивает слабые и дублирующиеся варианты. Вместо 3 похожих идей от одной модели получаешь 3 взаимодополняющих из 9+ кандидатов. Когда применять: Сложные многомерные задачи где один взгляд пропускает важное — анализ данных, стратегическое планирование, мозгоштурм. Не работает: Простые задачи с очевидным ответом — трата токенов на симуляцию ролей
Multi-path reasoning — несколько стратегий решения
Попроси модель решить задачу тремя разными способами: (1) Divide-and-Conquer — разбей на подзадачи, реши каждую, собери результат. (2) Query Plan — опиши план решения словами, потом реализуй (работает как Chain-of-Thought). (3) Negative Reasoning — предвиди типичные ошибки, объясни как избежать, создай безопасное решение. После генерации трёх вариантов селектор сравнивает по критериям (корректность, полнота, обработка крайних случаев) и выбирает лучший. Почему работает: Разные стратегии атакуют задачу с разных сторон. Если один путь сгенерирует баг или пропустит важное, другой путь с иной стратегией может сделать правильно. Вероятность получить корректное решение многократно выше чем от одной генерации. Когда применять: Генерация кода, сложные расчёты, критичные решения где ошибка дорого стоит. Не работает: Простые задачи — в 3 раза больше токенов. Креативные задачи где важна оригинальность — селектор выберет самый "правильный", но скучный вариант
BiasPrompting: принудительное исследование всех вариантов перед выбором
2 концепта
86
Проблемы (1)
Модель выбирает первый подходящий вариант без анализа остальных
Даёшь вопрос с вариантами A, B, C, D. Модель находит первый подходящий (например, B). Строит рассуждение только для него. Остальные варианты не исследует — просто отбрасывает. Результат: пропускает лучшие альтернативы. Плюс позиция варианта в списке влияет на выбор — поменяешь местами A и C, может выбрать другой ответ
Как обойти
Используй двухшаговый выбор: сначала принудительно генерируй аргументы ЗА КАЖДЫЙ вариант (как будто каждый правильный), потом сравнивай все аргументы и выбирай самый убедительный
Методы (1)
Принудительное исследование всех вариантов
ШАГ 1: Для каждого варианта попроси модель написать аргументы, почему ИМЕННО ОН правильный. Промпт: "Защищай каждый вариант так, будто он точно верный". ШАГ 2: Покажи модели все аргументы вместе. Попроси выбрать самый убедительный. Почему работает: Модель отлично генерирует аргументы по заданному направлению. Вместо одного предвзятого рассуждения получаешь набор предвзятых рассуждений — по одному за каждый вариант. Когда все аргументы перед глазами, модель делает сравнительный выбор, а не хватается за первый подходящий. Когда применять: выбор из 2-6 вариантов, есть объективные критерии оценки, решение не очевидно. Когда не работает: ответ тривиален ("столица России?"), критерии чисто субъективны ("какой цвет красивее?"), предметная область слишком специфична (модель не знает контекста)
CRAwDAD: улучшение каузального рассуждения через дебаты двух агентов
2 концепта
82
Методы (1)
Дебаты двух ролей до консенсуса
Одна модель генерирует структурированный ответ с числовой уверенностью. Вторая роль — критик: ищет логические дыры, предлагает альтернативное объяснение. Если критик не согласен — начинаются раунды дебатов: защита позиции, контраргументы, пересмотр. Максимум 4 раунда. Синтаксис:[ЭКСПЕРТ A] Анализ: ... Вывод: ... Уверенность: X%→[ЭКСПЕРТ B — КРИТИКА] Слабые места: ... Альтернатива: ... Мой вывод: ... Уверенность: X%→[ЭКСПЕРТ A — ОТВЕТ]→[КОНСЕНСУС]. Почему работает: Явная роль критика принуждает модель искать ошибки. Структура дебатов не даёт "застрять" в первом ответе. Модель должна либо защитить позицию аргументами, либо признать слабость логики. Когда применять: Задачи с причинно-следственными связями, неоднозначные ситуации, нужно отделить корреляцию от причинности. Когда не работает: Простые фактические вопросы (столица страны, дата события), задачи где ответ однозначен
Тезисы (1)
Критика от слабого оппонента улучшает сильную модель
Модель сильнее не гарантирует лучший результат. Даже если оппонент слабее и его аргументы не всегда верны — сам факт вызова заставляет пересмотреть позицию. Работает как внешний триггер: "а точно ли я прав?". Модель пересматривает логику, находит пробелы, которые не заметила в первый раз. Механика: Важен не качество критики, а её наличие. Структурированное несогласие включает режим проверки. Применяй: Не нужна вторая модель или сложный оппонент. Достаточно попросить ту же модель сыграть роль критика: "Теперь найди слабые места в этом ответе". Простая смена роли даёт эффект
Adaptive Focus Memory (AFM): трёхуровневая система памяти для длинных диалогов
1 концепт
81
Проблемы (1)
Модель помнит текст, но не применяет как жёсткое правило
Длинный диалог. В начале пользователь сказал критическое: аллергия на арахис, бюджет до 300к, запрет на упоминание конкурентов. Прошло 20+ сообщений на другие темы. Ты задаёшь вопрос где это ограничение важно. Модель "помнит" — текст есть в контексте. Но не использует при принятии решения. Отвечает так, будто ограничения не было. Или вспоминает, но трактует как "упомянутый факт", а не "binding constraint". Особенно если недавние сообщения семантически далеки от ограничения. Механизм: attention размывается равномерно по всем сообщениям. Критическое из начала весит примерно как тривиальное недавнее. Модель цепляется за свежий контекст
Как обойти
Перед важным вопросом в длинном диалоге — принудительно реактивируй критическое. Структурируй память явно: КРИТИЧЕСКОЕ (высший приоритет, binding constraints): [перечисли аллергии, бюджеты, запреты, политики — дословно]. РЕЛЕВАНТНОЕ К ВОПРОСУ: [кратко — что связано с текущим запросом]. ОСТАЛЬНОЕ: [одна строка на топик]. Затем: "Ответь на вопрос, обязательно учитывая КРИТИЧЕСКОЕ как жёсткие правила". Критическое займёт больше токенов = больше веса в attention. Явная категоризация создаёт градиент важности
ConFactCheck: детекция галлюцинаций через проверку консистентности ключевых фактов
2 концепта
79
Методы (1)
Переспрос ключевых фактов — детекция галлюцинаций
Извлекаешь из ответа модели проверяемые факты (имена, даты, числа, характеристики). Для каждого факта генерируешь вопрос, ответом на который был бы этот факт. Задаёшь вопросы модели заново. Сравниваешь новые ответы с оригинальными фактами. Несовпадение = возможная галлюцинация.
Почему работает: Реальное знание устойчиво. Модель видела факт много раз в обучающих данных — ответит одинаково при прямом утверждении и при вопросе. Галлюцинация неустойчива. Модель выдумала факт на лету — при переспросе ответ "поплывёт" (изменится формулировка, появятся оговорки, факт станет расплывчатым).
Когда применять: Проверка фактических утверждений — дат, имён, чисел, технических характеристик. Детекция выдуманных деталей в убедительно звучащем тексте.
Когда не работает: Субъективные утверждения, мнения, оценки — там нет "правильного ответа". Модель может стабильно повторять ошибку из обучающих данных (см. тезис ниже).
Тезисы (1)
Консистентность при переформулировке отличает знание от выдумки
LLM генерирует текст на основе паттернов из обучающих данных, не из явной базы знаний. Если паттерн сильный (модель видела факт много раз) — она даст одинаковый ответ на прямой вопрос и на переформулировку. Если паттерн слабый или отсутствует — модель додумает правдоподобную деталь, но при переспросе "забудет" что именно выдумала. Каждая генерация независима.
Применяй: Спроси модель про важный факт несколькими способами. Пример: сначала "Когда основан Яндекс?", потом "В каком году появился Яндекс?", потом "Год создания компании Яндекс?". Если ответы разные — высокий риск галлюцинации.
Эпистемическая хрупкость LLM: как формулировка промпта влияет на исправление дезинформации
1 концепт
79
Проблемы (1)
Креативная задача отключает проверку фактов
Просишь "напиши эссе" или "создай историю" про спорную тему. Модель переключается в режим генерации контента. Перестаёт проверять правильность утверждений. Может вплести дезинформацию в текст если она вписывается в нарратив. Универсально для любых креативных форматов: истории, посты, сценарии
Как обойти
Разделяй задачи. Сначала: "Это правда что X? Объясни что показывают исследования". Получи фактчекинг. Потом: "Теперь напиши пост на основе этих данных"
Order Matters: порядок примеров в few-shot промптах влияет на результат не меньше, чем их выбор
2 концепта
78
Методы (1)
Оптимизация порядка примеров в few-shot
Возьми свой few-shot промпт. Создай 8-16 версий с разным порядком примеров (сами примеры не меняй). Протестируй каждую версию на 5-10 реальных запросах. Выбери порядок с лучшими результатами. Почему работает: Модель неравномерно взвешивает примеры. Позиция влияет на "вес" — примеры в начале/конце доминируют над средними. Один набор примеров даёт разную точность в зависимости от порядка. Разброс ~2% — сопоставимо с заменой примеров на другие. Когда применять: У тебя постоянная задача с few-shot (классификация писем, разметка данных). Есть 5-10 примеров с известными правильными ответами для теста. Когда не работает: Одноразовая задача (тестирование дороже выигрыша). Нет данных для проверки результата. Генеративная задача без чёткого критерия правильности
Тезисы (1)
Порядок примеров влияет на результат так же сильно, как выбор примеров
В few-shot промптах ты даёшь модели примеры: "вот задача → вот решение". Раньше считалось: главное — выбрать хорошие примеры, порядок вторичен. Оказалось нет. Один набор примеров в разном порядке даёт разброс точности ~2% — столько же, сколько при замене примеров на другие. Механика: Позиция примера в промпте влияет на его "вес" в механизме внимания. Примеры в начале и конце получают больше фокуса, средние — меньше. Применяй: Не останавливайся на выборе примеров. Протестируй 3-5 разных порядков на реальных задачах. Выбери лучший
Reflexion для безопасного кода: итеративная самокоррекция через фидбек об уязвимостях
1 концепт
78
Тезисы (1)
Явный запрос на проверку активирует знания, которые модель не применяет при генерации
Модель обучена на массиве данных, включая уязвимый код и документацию по безопасности. При прямой генерации она воспроизводит типичные паттерны — включая небезопасные. Но если явно попросить "найди проблемы" — переключается в режим анализа и применяет знания о безопасности. Почему: Генерация и критический анализ — разные режимы работы. Модель не смешивает их автоматически. Применяй: Для задач с проверяемым результатом (код, факты, расчёты) используй двухшаговый процесс: (1) "Напиши код", (2) "Проверь этот код на [конкретный список проблем], исправь". Указывай ЧТО искать — конкретный чеклист работает лучше абстрактного "проверь качество"
Chain-of-Thought как "стабилизатор": почему после CoT промпт почти не важен
3 концепта
78
Проблемы (1)
Без рассуждений ответ зависит от случайных деталей промпта
Модель чувствительна к формулировке. Меняешь синонимы, порядок слов, пунктуацию — меняется ответ. Промпт напрямую влияет на результат. Каждая мелочь может сдвинуть модель в другую сторону. Это делает результаты нестабильными
Как обойти
Добавь пространство для рассуждений: "Рассуждай пошагово" или "Покажи каждый этап решения". Модель сначала генерирует цепочку мыслей, потом выводит ответ. Цепочка фиксирует суть задачи. После этого конкретная формулировка промпта почти не влияет на результат
Методы (1)
Chain-of-Thought как стабилизатор промпта
Добавь в промпт: "Рассуждай пошагово. Покажи каждый этап решения, затем дай финальный ответ". Почему работает: Цепочка рассуждений становится промежуточным слоем между промптом и ответом. Модель фиксирует суть проблемы в явных шагах. Финальный ответ выводится из этих шагов, а не напрямую из промпта. Формулировка промпта влияет на цепочку, но после её генерации конкретные слова перестают быть важны. Когда применять: расчёты, логические задачи, многоступенчатые решения. Когда не работает: задачи упираются в фактические знания (а не рассуждения), модель уже справляется на 90%+, нужен короткий ответ (CoT добавляет токены)
Тезисы (1)
Цепочка рассуждений нейтрализует влияние формулировки промпта
Без рассуждений модель "прыгает" от промпта к ответу. Синонимы и порядок слов меняют результат. С рассуждениями схема другая: промпт → цепочка шагов → ответ. Цепочка фиксирует логику задачи. Ответ строится из цепочки, а не из промпта. Поэтому конкретные слова в промпте перестают сильно влиять. Разница: основной прирост даёт переход к рассуждениям, дальнейшая оптимизация формулировок даёт минимум. Применяй: Не трать время на подбор "идеальной" формулировки. Добавь "рассуждай пошагово" — этого достаточно