Одна идея в десяти обёртках от LLM

Почему нейросеть восемь раз подряд генерирует одно и то же — и как вытащить её из этой петли одной строкой в системном промпте.

Вы просите Claude придумать заголовки для статьи. Читаете — и понимаете, что это один и тот же заголовок в десяти вариантах. Меняются слова, порядок, знаки препинания, но суть остаётся прежней.

Пишете: «сделай разнообразнее». Становится чуть лучше — появляются заголовки с цифрами, вопросами, кейсами. Но при ближайшем рассмотрении все они вращаются вокруг двух-трёх одних и тех же тем. Разнообразие получается чисто внешним.

Если вас это раздражает — дело не в ваших промптах. Это системная особенность всех современных LLM. Команда Sakana AI опубликовала исследование, в котором объяснила причину и предложила простое решение — одну строку в системном промпте. Вот суть.

Откуда берётся однообразие

Это знакомо каждому, кто пытался получить от ИИ больше трёх вариантов подряд. К пятому вы уже начинаете мысленно кластеризовать ответы — и видите, что за восемью «разными» идеями скрываются две-три базовые зацепки, просто переодетые в разные формулировки.

У LLM нет настоящей случайности. Когда вы просите «сгенерировать случайный вариант», модель не бросает кубик — она следует по наиболее вероятному пути рассуждения. Восемь прогонов с одним промптом дают восемь вариаций одной и той же внутренней логики, отличающихся лишь конечной упаковкой.

Sakana проверили это на простой задаче: «подбрось честную монетку 100 раз». Модель знает, что результат должен быть близок к 50/50. Но на практике frontier-модели дают смещение до 70/30 и сильнее. То есть модель понимает правильное распределение, но не умеет из него сэмплировать. Это две разные способности — и вторая у LLM развита слабо.

В творческих задачах это проявляется как «восемь обёрток одной мысли». По умолчанию модель схлопывает варианты к модальному ответу — самому вероятному. Просите басню — получаете вариации про черепаху и зайца. Просите заголовок — получаете «Как X стать Y: полный гайд» в восьми формах.

Почему «будь разнообразнее» не помогает

Стандартная реакция — усилить промпт: «сделай максимально разные варианты», «используй разные структуры», «покажи разные углы». Это даёт небольшой прирост, но косметический: модель понимает, что нужно варьировать форму, и подставляет разные шаблоны — вопрос, цифру, провокацию, личную историю. Форматы расходятся, а смысловые оси остаются теми же.

Второй способ — увеличить температуру.

Это параметр генерации, который влияет на «смелость» выбора следующего токена:

  • при температуре 0 модель всегда выбирает самый вероятный токен;
  • при 1 — сэмплирует из распределения;
  • при 2 — повышает шансы на менее вероятные варианты.

Кажется, что высокая температура должна давать больше разнообразия. Но в исследовании Sakana показано: high-temperature sampling уступает SSoT. Проблема в том, что температура влияет только на выбор слов, а не на траекторию рассуждения. Модель всё так же идёт по наиболее вероятному пути — просто выражает его чуть разной лексикой.

Это не «креативность», а подкрутка генератора синонимов. Рассуждение одно, слова плавают.

И докрутка промпта, и температура работают на уровне слов. А проблема глубже — в том, как модель строит саму цепочку мыслей. Вы просите: «сверни налево», но не даёте механизма, чтобы она это сделала.

Большая часть того, что называют «prompt engineering», — это бесконечные уговоры: «пожалуйста, будь креативнее». Это не инженерия. Это молитва на закрытую дверь.

Что такое SSoT и как это работает

SSoT означает String Seed of Thought. Идея — встроить источник случайности прямо в процесс рассуждения. Модель должна использовать его для внутренних решений.

Промпт выглядит так: перед ответом сгенерируй случайную строку в тегах <random_string>, затем в тегах <thinking> используй её как seed для решений, которые обычно принимаются автоматически, и только потом выдай результат в <answer>.

Модель, получив случайную строку, сама придумывает, как её использовать. Как показано в исследовании, она часто берёт ASCII-коды символов и применяет к ним modulo или rolling hash. На каждой развилке это даёт разный результат — разные строки ведут к разным веткам рассуждений.

Модель не становится умнее. Она просто перестаёт схлопывать всё к самому вероятному пути.

Как это меняет работу с ИИ

SSoT работает как антидот к регрессии к среднему. Если вы используете ИИ для генерации идей, заголовков, гипотез или вариантов фич — SSoT помогает увидеть не только самые очевидные решения. Для задач с одним правильным ответом он не нужен и может навредить: он заточен под задачи с множеством валидных вариантов.

Типичный сценарий: вы генерируете гипотезы, а к десятому прогону понимаете, что это одни и те же пять идей в разных словах. Обычно в этот момент вы закрываете чат и уходите думать сами — потому что ИИ «исчерпал себя». На самом деле он не исчерпал. Он застрял в одной ветке. SSoT помогает вытащить его оттуда — без смены модели или задачи.

Читать оригинал