Инженерные обоснования мокрыми и сухими нейросетками

Одна из причин, по которой LLM ещё не готова к инженерии -- это трудность для нейросетей (мокрых нейросетей, кстати, тоже) к инженерным обоснованиям, то есть отсутствие в мозгах (живых и не очень) лёгкого переключения к хорошо натренированному трудному режиму S2 по Канеману -- режиму логического мышления, необходимого для критики. Нейросетка отлично генерирует, и даже часто это похоже на правду, но кроме чудес синтеза хорошо бы демонстрировать хоть какой-то уровень анализа:-- выявление проблем во внешнем мире, debug рабочих ситуаций. Этот самый bug надо найти, предъявить ошибку. Не нашёл -- не исправил. Если слепота к ошибкам, то ракета никогда не взлетит.-- отладка собственного вывода, ибо результаты размышления надо проверять (помним, что приходится тренировать даже переход в режим проверки -- при полном знании правил вывода, язык говорит не нужное, а всякое, у нас для этого тренировка "Барышня-мадам", https://ailev.livejournal.com/1750301.htmlОтладка -- это следование контрфактуальной логике, "а что, если". Про то, что режим S2 трудный и включается только в случае крайней необходимости писал Kahneman. Про то, что для хороших объяснений (при отладке надо объяснить, в чём ошибка, и почему надо по-другому, правильно) нужна контрфактуальная логика писал Deutsch, а ещё про революцию причинности писал Pearl. Осталось, чтобы мозги (человечьи, но желательно -- нечеловечьи! нечеловечьи дешевле!) это могли сделать. Но они не могут в инженерные обоснования (quality assurance) "из коробки", этому надо учить специально:-- Can Language Models Falsify? Evaluating Algorithmic Reasoning with Counterexample Creation, https://www.arxiv.org/abs/2502.19414, current benchmarks for LMs predominantly assess their ability to generate solutions rather than challenge them. We advocate for developing benchmarks that evaluate this inverse capability - creating counterexamples for subtly incorrect solutions. To demonstrate this approach, we start with the domain of algorithmic problem solving, where counterexamples can be evaluated automatically using code execution. Specifically, we introduce REFUTE, a dynamically updating benchmark that includes recent problems and incorrect submissions from programming competitions, where human experts successfully identified counterexamples. Our analysis finds that the best reasoning agents, even OpenAI o3-mini (high) with code execution feedback, can create counterexamples for only

Мар 3, 2025 - 15:09
 0
Инженерные обоснования мокрыми и сухими нейросетками
Одна из причин, по которой LLM ещё не готова к инженерии -- это трудность для нейросетей (мокрых нейросетей, кстати, тоже) к инженерным обоснованиям, то есть отсутствие в мозгах (живых и не очень) лёгкого переключения к хорошо натренированному трудному режиму S2 по Канеману -- режиму логического мышления, необходимого для критики. Нейросетка отлично генерирует, и даже часто это похоже на правду, но кроме чудес синтеза хорошо бы демонстрировать хоть какой-то уровень анализа:
-- выявление проблем во внешнем мире, debug рабочих ситуаций. Этот самый bug надо найти, предъявить ошибку. Не нашёл -- не исправил. Если слепота к ошибкам, то ракета никогда не взлетит.
-- отладка собственного вывода, ибо результаты размышления надо проверять (помним, что приходится тренировать даже переход в режим проверки -- при полном знании правил вывода, язык говорит не нужное, а всякое, у нас для этого тренировка "Барышня-мадам", https://ailev.livejournal.com/1750301.html

Отладка -- это следование контрфактуальной логике, "а что, если". Про то, что режим S2 трудный и включается только в случае крайней необходимости писал Kahneman. Про то, что для хороших объяснений (при отладке надо объяснить, в чём ошибка, и почему надо по-другому, правильно) нужна контрфактуальная логика писал Deutsch, а ещё про революцию причинности писал Pearl. Осталось, чтобы мозги (человечьи, но желательно -- нечеловечьи! нечеловечьи дешевле!) это могли сделать. Но они не могут в инженерные обоснования (quality assurance) "из коробки", этому надо учить специально:
-- Can Language Models Falsify? Evaluating Algorithmic Reasoning with Counterexample Creation, https://www.arxiv.org/abs/2502.19414, current benchmarks for LMs predominantly assess their ability to generate solutions rather than challenge them. We advocate for developing benchmarks that evaluate this inverse capability - creating counterexamples for subtly incorrect solutions. To demonstrate this approach, we start with the domain of algorithmic problem solving, where counterexamples can be evaluated automatically using code execution. Specifically, we introduce REFUTE, a dynamically updating benchmark that includes recent problems and incorrect submissions from programming competitions, where human experts successfully identified counterexamples. Our analysis finds that the best reasoning agents, even OpenAI o3-mini (high) with code execution feedback, can create counterexamples for only <9% of incorrect solutions in REFUTE, even though ratings indicate its ability to solve up to 48% of these problems from scratch. Собственно, это и есть подтверждение, что "генерировать проще, чем верифицировать".
-- ProjectTest: A Project-level LLM Unit Test Generation Benchmark and Impact of Error Fixing Mechanisms, https://arxiv.org/abs/2502.06556, We evaluate nine frontier LLMs (including Claude-3.5-Sonnet, Gemini-2.0-Flash and GPT-o1) on ProjectTest and the results show that all frontier LLMs tested exhibit moderate performance on ProjectTest, highlighting the difficulty of ProjectTest. We also conduct a thorough error analysis, which shows that even frontier LLMs have significant basic yet critical errors, including compilation and cascade errors.

Моё тут мнение -- надо использовать LLM для генерации и внешние солверы (необязательно логический SAT, это может быть и солвер байесовской пробабилистики, и квантовоподобного вывода, и что угодно, и даже солверы с задействованием каких-то нейросетей для облегчения вычислительной сложности проверки) для проверки. Это ж цикл исследований (и он же -- цикл инженерии):


Если не использовать внешние солверы (а в случае людей -- хотя бы ручку-бумажку как внешнюю память), то всё будет продолжать оставаться плохим, это ж наложенные на нейросеть хитрые алгоритмы дискретной математики, которые работают тригонометрически (вон, сложение через тригонометрию, и логика там устроена так же плохо -- в том числе и из-за привязки к словам в reasoning моделях, но это не уберётся, если перейти в latent space reasoning, много ссылок про всё это я приводил в четвёртом абзаце https://ailev.livejournal.com/1754198.html, а про попытки удлинить CoT -- в https://ailev.livejournal.com/1755390.html).

Попытки крутить этот цикл с LLM в их текущем состоянии даёт не слишком хорошие результаты, но каждая следующая модель приближает результаты к человеческим, а человеческие результаты тут стабильно низки (кроме, конечно, нескольких гениев, но мы тут не о гениях, а о простых смертных -- причём у простых смертных не выходит раз в полгода модель мозга получше, как сейчас у LLM):
-- Automated Hypothesis Validation with Agentic Sequential Falsifications, https://arxiv.org/abs/2502.09858, However, many real-world hypotheses are abstract, high-level statements that are difficult to validate directly. This challenge is further intensified by the rise of hypothesis generation from Large Language Models (LLMs), which are prone to hallucination and produce hypotheses in volumes that make manual validation impractical. Here we propose Popper, an agentic framework for rigorous automated validation of free-form hypotheses. Guided by Karl Popper's principle of falsification, Popper validates a hypothesis using LLM agents that design and execute falsification experiments targeting its measurable implications. A novel sequential testing framework ensures strict Type-I error control while actively gathering evidence from diverse observations, whether drawn from existing data or newly conducted procedures. We demonstrate Popper on six domains including biology, economics, and sociology. Popper delivers robust error control, high power, and scalability. Furthermore, compared to human scientists, Popper achieved comparable performance in validating complex biological hypotheses while reducing time by 10 folds, providing a scalable, rigorous solution for hypothesis validation. Работа красивая по замыслу, но плохая по исполнению: там частотная статистика, полностью игнорирующая причинную революцию. Куски работы, похоже, писались LLM и не проверялись. Первая же ссылка выглядит вот так, по-молодёжному, без больших букв: Agassi, J. Popper and his popular critics: Thomas kuhn, paul feyerabend and imre lakatos. Зато есть все промпты и главный вывод: всё уже не хуже людей. Потому как люди в нахождении ошибок ужасны, поэтому и ужасная в нахождении ошибок LLM их легко переплёвывает.
-- Learning to Solve and Verify: A Self-Play Framework for Code and Test Generation, https://arxiv.org/abs/2502.14948, By iteratively refining code (LLM-as-a-solver) and tests (LLM-as-a-verifier) together, we boost both capabilities without relying on human annotations or larger teacher models. Experiments with the Llama 3.1 8B model demonstrate substantial performance enhancements, achieving average relative improvements of 19.63% in code generation and 17.49% in test generation on MBPP and LiveCodeBench. Тут ничего особенного: инженерные обоснования приводят к резкому росту успешности проекта. Спасибо, кэп. Но инженерные обоснования не делают, этому не учат! Проверить перед тем как отдать работу -- это редко кто делает, "отладка на пользователях".
-- поиск ошибок силами LLM (слабыми!) в статьях, тут целый проект: https://the-black-spatula-project.github.io/, и там уже начался отвод статей авторами, ибо в статьях LLM начали таки находить ошибки. Интересно то, что стартовал этот проект с понимания, что не любая нейросеть обнаруживает ошибки, только самые умные: https://x.com/emollick/status/1868329599438037491 (o1 нашла ошибку, claude-3.5-sonnet не нашла, пока не получила подсказку). Но уже появился коммерческий сервис, https://paper-wizard.com/, $42 за проверку одной статьи (и $30 за штучку оптом партией в 10 штук).

Что это даёт для моего личного планирования? Вроде как это и раньше было понятно? Я уже рассказывал, как один из моих студентов в Новосибирске узнал про верификацию и валидацию из курса "Системного мышления" (тогда мы это не называли "инженерным обоснованием", всё по-старинке давали) и начал проверять то, что он делал, перед тем, как отдавать -- фраза у него была "и моя жизнь драматически изменилась к лучшему", я навсегда запомнил такие неожиданные результаты наших курсов. И вот что будем делать:
-- не обращать внимания на весь этот тренд с поиском cognitive bias, ибо каждый раз оказывалось, когда люди идут по этому пути "критического мышления", они профессионализируются только в критике и забывают уже, зачем всё это делается. Там ведь цикл, и надо не во что бы то ни стало загубить каждую свежую мысль, а найти ответ на вопрос -- например, не совсем откинуть мысль с найденной ошибкой, а поправить ошибку, это часто помогает. Ну, и Хренников любил заметить, что "люди -- плохие байесовские вычислители, но неплохие квантовоподобные", дальше задавался вопросами: а что есть "рациональность", если квантовоподобный ответ вроде как лучше по многим характеристикам, но другой -- не байесовский, не булевский (как частный случай байесовского).
-- переводить студентов в reasoning режим в ходе обучения, включать их S2 намеренно, давать опыт этого. Студенты обычно сильно удивляются, когда им демонстрируешь, что они думают не "по правилам", показывать их мышление в зеркало: игра "Барышня-мадам" как раз про это, собранность на проверке выполнения простых правил. Буду повторять эти тренировки сам (вот в ближайший четверг и повторю), а также сделаем целую серию таких тренировок мышления по разным проблемам, и вести эти тренировки буду не только я (но, увы, чтобы эти тренировки вела LLM -- надо подождать пару лет ровно по причинам, которые я тут описываю в тексте).
-- покопаюсь ещё в негативном отношении к формализации, а затем указанию на ошибки ("душнила" тут самое мягкое, что можно услышать. Ещё можно услышать учителю, что "я у тебя клиент, и если сказал 2*2=5, то так и есть, клиент всегда прав). Понятно, что мышление S2 режим трудного медленного мышления, но вот как показать его важность и как давать отповедь капризным инфантилам с развитым S1 без проблесков S2 (не хочу говорить "гуманитарий", это ж "вешать ярлыки", а "капризный инфантил" -- таких же нет вокруг, правда? Все готовы влёгкую включить S2?) надо ещё поизучать.
-- буду проверять свои результаты в LLM на предмет явных ошибок. Я уже это делал с некоторыми прошлыми текстами. Вот и этот текст тоже проверил на Gemini 2.0 Pro Experimental (мне она больше всех сейчас нравится для моих задач) -- но не со всей критикой согласился, в силу убогости этой критики.
-- продолжу отслеживать эту тему с LLM, равно как и с людьми, она ключевая.