SakanaAI доказали, что LLM не умеют быть случайными и предложили один промпт,…
SakanaAI доказали, что LLM не умеют быть случайными и предложили один промпт, чтобы заставлять модели быть более креативными
Современные LLM хорошо решают задачи, где есть один правильный ответ, но заметно хуже справляются с ситуациями, где нужно выбирать между несколькими допустимыми вариантами с заданными вероятностями (исследователи вводят для такого термин Probabilistic Instruction Following).
Например, подбрасывание монетки. Если сто раз попросить модель "подбросить монетку", то, по идее, распределение должно быть близко к 50/50, но на практике оно перекошено.
Возникает логичный вопрос: ну и что?
Так вот, такое поведение возникает не только в игрушечных симуляциях. В открытых задачах (вроде придумать название, написать поздравление, нагенерить идеи и тд) LLM тоже страдают от схлопывания разнообразия, и при многократных запусках крутятся вокруг очень похожих решений.
Это мешает и обычному креативному использованию, и test-time scaling, где хочется получить много разных кандидатов, а потом выбрать лучший. Объясняется это просто: LLM не обладают внутренним источником независимой случайности и потому при стохастическом выборе следуют выученным во время обучения вероятностным смещениям, а не заданному распределению.
Как это исправить?
Раз внутреннего источника случайности у моделей нет, японцы предлагают его добавить. Сама идея простая: вместо наивного промпта вроде «сгенерируй случайное число» модель сначала заставляют генерировать случайную строку и потом использовать ее, чтобы выбрать или сформировать ответ. То есть примерно вот так:
Сначала сгенерируй уникальную случайную строку (любой длины, без очевидной структуры). Затем используй ее как источник случайности, чтобы создать разнообразный, небанальный и качественный ответ на задачу.
Это называется String Seed of Thought.
Если модель сразу выбирает ответ, на нее влияют обученные смещения, но при генерации случайной строки они почти не проявляются. Затем модель преобразует строку в решение через простые вычисления (например, mod или хеш), фактически реализуя псевдослучайный выбор. Грубо говоря, метод работает, переводя задачу из семантической в вычислительную.
На бенчмарках SSoT резко снижает отклонение от заданного распределения и часто приближается к уровню настоящего псевдослучайного генератора. Он стабильно обходит подкруты температуры и другие трюки на разных моделях и задачах. В открытых задачах креативность также растет, и при том без потери качества.
Пользуйтесь, в общем. Блог и статья вот: https://pub.sakana.ai/ssot/
Вставить свои 5 копеек: