Найти в Дзене

Исследователи из Google (Leviathan, Kalman, Matias) обнаружили до смешного простой трюк: если скопировать текст промпта и вставить его в тот же запрос второй раз, языковая модель начинает отвечать значительно точнее. При этом не производится никаких дополнительных вызовов API, а длина ответа и время на "подумать" не увеличиваются.

Важно: в статье речь идет именно о повторе промпта в формате <запрос><запрос> вместо <запрос>, а не о дополнительной формулировке или уточнениях.
Тестировали на Gemini, GPT-4o, Claude и DeepSeek по стандартным бенчмаркам - MMLU, GSM8K, ARC, OpenBookQA. Результат: 47 побед из 70 комбинаций "модель + бенчмарк", оставшиеся тесты прошли вничью.
На кастомных задачах эффект еще ярче. Задача NameIndex - найти 25-е имя в списке из 50. Gemini Flash-Lite с промптом без повтора выдает: 21.33% точности, а с повтором: 97.33%. Почти пятикратный прирост в точности достигается одним Ctrl+C, Ctrl+V
Почему это работает
Все дело в архитектуре. Современные LLM - каузальные модели: каждый токен "видит" только те токены, которые стоят до него. Модель начинает обрабатывать первые слова промпта до того, как прочитает, что будет дальше. Когда мы повторяем промпт, второй экземпляр получает доступ ко всем токенам первого. По сути, это костыльный способ дать модели двунаправленный контекст.
Любопытно, что reasoning-модели, обученные через RL, часто сами повторяют части запроса в цепочке рассуждений. То есть они уже "научились" этому подходу самостоятельно.
Важные детали
- Дает ощутимый результат только для non-reasoning моделей. С включенным reasoning эффект нейтральный
- Длина промпта сама по себе не улучшает перфоманс: исследователи пробовали добавлять вместо повтора бессмысленный текст (точки), это не дало никакого эффекта
- Latency не растет, потому что дополнительный ввод обрабатывается на этапе prefill, который хорошо параллелизуется
Кто уже попробовал? Делитесь в комментариях
1 минута