Analogical Prompting: примеры перед решением задачи — это техника, в которой модель сама придумывает несколько решённых примеров в контексте и только потом берётся за целевую задачу. Пользователь не готовит образцы заранее. Ниже — рабочий промпт для учебной задачи, три ручных примера, эталон, разбор ошибки и две проверки.
Что именно делает модель
В работе, опубликованной авторами из Google DeepMind и Стэнфорда (Yasunaga et al., ICLR 2024), техника описана так: модель получает инструкцию самостоятельно породить релевантные примеры или знание в контексте, а затем переходит к решению исходной задачи. Инструкция выглядит как три блока: задача, блок с придуманными примерами, блок с решением исходной задачи. Все три части идут в одном промпте, поэтому модель выдаёт примеры и ответ за один проход.
Авторы paper сравнивают два варианта: самогенерацию примеров и самогенерацию знания вместе с примерами. В первом случае модель придумывает похожие задачи с решениями, во втором — сначала формулирует нужное правило или факт. Для учебной задачи на деление достаточно первого варианта: примеры сразу показывают структуру действия.
Отдельная деталь из paper: примеры должны быть разными. Повторение одной задачи не выполняет требование разнообразия, поэтому такой блок следует пересмотреть. Поэтому в промпт добавляют прямое требование разнообразия.
Чем это отличается от few-shot
В few-shot примеры готовит пользователь: он вставляет в промпт несколько пар «вопрос — ответ» и надеется, что модель повторит ход рассуждения. В analogical prompting примеры порождает сама модель, и пользователь не тратит время на их подбор. Авторы paper подчёркивают это как основное удобство: не нужно размечать или искать образцы.
Второе отличие — адаптивность. При few-shot с фиксированным набором пользователь повторно передаёт выбранные примеры. Самогенерация позволяет запросить примеры под текущую задачу. В нашем промпте явно требуется раскладка предметов на равные группы; выполнение этого требования проверяется в ответе.
Третье отличие — расход токенов. В few-shot примеры идут на входе, в analogical prompting они появляются на выходе. Авторы paper прямо пишут: по сравнению с few-shot CoT техника использует меньше входных токенов и больше выходных. Это важно при оплате по токенам.
| Критерий | Few-shot | Analogical Prompting |
|---|---|---|
| Кто готовит примеры | Пользователь | Модель |
| Подбор под текущую задачу | Пользователь выбирает примеры | Модель получает инструкцию сгенерировать примеры |
| Где примеры в запросе | Вход | Выход |
| Разметка данных | Нужна | Не нужна |
Чем это отличается от generated knowledge
Generated knowledge — родственная техника: модель сначала формулирует знание по теме, а затем отвечает. Разница в единице контекста. В generated knowledge единица — правило, определение или факт. В analogical prompting единица — полностью решённая задача с условием, ходом и проверкой.
Для задачи про коробки знание звучало бы так: «деление раскладывает предметы на равные группы». Наш ручной пример: 24 карандаша по 4 в коробку — это 6 коробок, проверка 6×4=24. Первое описывает операцию, второе показывает её в действии с числами и проверкой.
Авторы paper описывают комбинированный вариант: модель генерирует и знание, и примеры. Для простых арифметических задач хватает примеров. Знание добавляют, когда правило само по себе неочевидно.
Отличие от метафор в SEO-тексте
Слово «аналогия» встречается в статьях про SEO, где метафора объясняет читателю сложную мысль: «сайт — это дом, страницы — комнаты». Такая метафора живёт в тексте для человека и не влияет на работу модели. Analogical prompting — это инструкция внутри промпта, которая заставляет модель породить решённые примеры до ответа.
В нашем арифметическом упражнении каждый пример содержит условие, действие и обратную проверку умножением. Объясняющей метафоры для выполнения такого контракта недостаточно: нужно предъявить решённую вспомогательную задачу.
Готовый промпт для задачи 35/7
Задача учебная: разложить 35 значков по 7 штук в одинаковые коробки без остатка. Скопируйте блок целиком и подставьте свою задачу вместо условия.
Реши учебную задачу: нужно разложить 35 значков по 7 штук в одинаковые коробки без остатка. Сколько коробок нужно?
Перед ответом придумай 3 другие полностью заданные задачи на деление предметов на равные группы: с числами, отличными от 35 и 7, и разными предметами. Для каждого примера дай условия и короткое проверяемое решение, проверь умножением.
Затем реши первоначальную задачу и проверь умножением.
Если сам придуманный пример ошибочен, исправь его до использования.
Не ссылайся на реальные исследования или события: это условные примеры.
Внутри промпта нет готовых пар «вопрос — ответ». Модель заполняет блок примеров сама. Меняйте под себя условие задачи, число предметов и размер группы. Если задача не про деление, замените требование проверки: для задач на проценты проверка идёт обратным пересчётом, для логических — перебором случаев.
Три ручных примера отдельно от промпта
Эти примеры составлены вручную и служат образцом того, как должен выглядеть корректный блок. Они не являются ответом запущенной модели и приведены как допустимый набор для сверки.
| Пример | Решение | Проверка умножением |
|---|---|---|
| 24 карандаша по 4 | 6 коробок | 6×4=24 |
| 18 яблок по 3 | 6 пакетов | 6×3=18 |
| 30 карточек по 5 | 6 пачек | 6×5=30 |
Каждый пример содержит три части: условие с числами и предметом, результат деления и обратную проверку умножением. Если в ответе модели есть условие и результат, но нет проверки, пример неполный — его нужно дополнить до использования.
Эталон целевой задачи
Целевая задача решается так: 35 значков по 7 штук дают 35÷7=5 коробок. Обратная проверка: 5×7=35. Числа сходятся, значит ответ верен.
Эталон нужен как точка сравнения. Когда модель выдаёт свой ответ, вы сверяете его с этим результатом. Если модель получила другое число, проверьте отдельно вспомогательные примеры и вычисление для исходной задачи. Корректность одного блока сама по себе не подтверждает корректность другого.
Отрицательная операция и две проверки
Частая ошибка — подмена операции. Вместо деления модель складывает: 35+7=42, и выдаёт «42 коробки». Это брак: условие требует разложить по 7 штук, а сложение увеличивает количество. Вторая ошибка — ответ «7 коробок»: он не проходит обратную проверку, потому что 7×7=49, а значков всего 35.
Отсюда две конкретные проверки.
Первая — ручная сверка примеров. Прочитайте каждый вспомогательный пример и пересчитайте умножение. Если 6×4 не даёт 24, пример неверен и его нельзя использовать.
Вторая — замена числа в целевой задаче. Поменяйте только 35 на 42, оставив размер группы 7. Новый правильный ответ — 6 коробок, потому что 42÷7=6, проверка 6×7=42. Ответ 5 коробок при этом остаётся от старой задачи и становится ошибкой.
Как принять блок примеров перед целевым ответом
Проверьте, что модель действительно придумала другие полностью заданные задачи. В нашем контракте меняются числа и предметы, сохраняется действие деления на равные группы. Пример без числа предметов или размера группы не даёт пересчитать решение. Запишите, какого условия не хватает, и верните этот пример на уточнение.
Затем сопоставьте каждый результат с обратным умножением. Не переносите правильность первой строки таблицы на остальные: прочитайте все условия и пересчитайте каждую проверку. Если ошибка обнаружена, сохраните исходный вариант и исправление отдельно. Так будет видно, что именно изменилось до перехода к целевой задаче.
Для исходных значков снова прочитайте условие 35 по 7. Убедитесь, что ответ относится к коробкам, а в обратной проверке восстанавливается число значков. При контрольной замене 35 на 42 обновите только целевое условие и повторно проверьте деление. Самогенерированные примеры могут остаться корректными, но итоговое число коробок должно соответствовать новому входу.
Ограничения техники
Авторы paper перечисляют ограничения прямо. Первое: техника увеличивает вычислительную нагрузку, потому что модель порождает больше токенов, чем при обычном запросе без примеров. Второе: слабые модели могут придумывать неверные примеры; такие примеры способны повлиять на целевой ответ и требуют ручной сверки.
Третье: эксперименты авторов paper охватывают математику, генерацию кода и логические задачи. Переносить выводы на произвольные задачи без проверки не стоит. Результаты в paper принадлежат авторам работы и относятся к их моделям и наборам задач. Собственный опыт LLM здесь не проводился.
Частые вопросы
Что такое analogical prompting простыми словами?
Это техника, в которой модель сама придумывает несколько решённых примеров в контексте, а затем решает целевую задачу. Пользователь не готовит образцы заранее. Примеры появляются в одном проходе вместе с ответом.
Чем analogical prompting отличается от few-shot?
В few-shot примеры задаёт пользователь; он может сохранить набор или подобрать его под текущий запрос. Здесь примеры порождает модель под конкретную задачу. Авторы paper отмечают, что разметка данных при этом не нужна.
Сколько примеров просить у модели?
В учебном промпте запрошены три примера. Условия выбора числа примеров и результаты экспериментов paper относятся к проверенным авторами конфигурациям. Для своей задачи сравните качество вспомогательных решений и затраты на вывод; универсальный оптимум здесь не заявляется.
Что делать, если модель придумала неверный пример?
Сверьте каждый пример вручную: пересчитайте обратную проверку умножением. Неверный пример исправьте до использования как опоры: его ошибка может повлиять на целевое решение. В промпте есть отдельная инструкция исправить ошибочный пример до использования.
Почему ответ 42 коробки неверен?
Потому что 35+7=42 — это сложение, а задача требует деления. Правильная операция даёт 35÷7=5 коробок с проверкой 5×7=35. Ответ 42 не проходит обратную проверку: 42×7 не равно 35.
