Любопытное продолжение задачи об электричках. Так может LLM ее решить или нет?

Автор статьи «ChatGPT и Gemini не могут справиться даже с простой математической задачкой на логику» дал простую задачу о встречных поездах ChatGPT 4-o и Gemini, которые ее провалили. Мне нравятся такие простые, наглядные и эффектные тесты, поднимающие серьезные проблемы с современными LLM.
Поэтому я решил продолжить эту тему в более интересном ракурсе и провести серию аналогичных экспериментов, чтобы не ограничиваться только одним диалогом с моделями, а получить некоторую статистику по 50 запросам и затем уже порассуждать о результатах. А они получились довольно неожиданными.

В далеком будущем мчатся встречные беспроводные электрички под управлением LLM каждые 5 минут...

В далеком будущем мчатся встречные беспроводные электрички под управлением LLM каждые 5 минут…

Ранее в своей статье «Сеанс магии LLM с разоблачением» я уже писал на аналогичную тему по проблемам решения моделями простых логических задач. И эта статья будет логичным продолжением.

Смысл этой статьи не в анализе логических рассуждений LLM, в которых наверняка были-бы серьезные проблемы, а в том, что есть реальные способы значительно улучшить ответы даже не самых продвинутых моделей без значительных усилий.
И не важно, могут ли топовые модели решить именно эту задачу или не могут и в какой формулировке. Важно то, что она удобна для нашего эксперимента, который можно провести с любой другой подобной задачей.

Суть задачи

Она видна в самом промпте, который я буду давать LLM qwen2.5–32b, далеко не топовой модели.

Реши задачу:
Вы едете на электричке в сторону от вокзала.
Каждые 5 минут вам встречается электричка, идущая в сторону к вокзалу.
Скорости всех электричек одинаковые.
Сколько электричек приедет на вокзал за час?
Отвечай только в виде числа.

Не будем зацикливаться на полноте и качестве формулировок, хотя это и важный момент для современных моделей, так как модель сама должна по идее уметь преобразовывать задачу в абстрактную форму.

Запрос повторялся 50 раз и все 50 раз был получен неверный ответ 12.
Удивительная стабильность. И полный, абсолютный провал в понимании сути процесса, описанного в условиях задачи.

Но не будем так торопиться с выводами, так как самое любопытное нас ждет впереди.

Есть такой метод улучшения результатов вывода LLM, когда мы в следующем промпте просим модель произвести анализ своего решения и исправить найденные ошибки, своего рода саморефлексия. Во многих случаях этот подход работает достаточно хорошо и новый вывод, как правило, лучше.

Попробуем применить его к нашей задаче в разных вариациях, чтобы оценить его эффективность, вдруг сработает.

Сначала к первому промпту я добавлю второй в такой формулировке:

Решив задачу и получив ответ, сделай предположение, что в решении были допущены ошибки и ответ получился неверным, поэтому сначала проанализируй свое решение и исправь найденные ошибки, а затем дай окончательный ответ. Отвечай только в виде числа.

И вот, как не странно, мы получим уже более интересную статистику.

Верный ответ 6 был получен в 45 случаях из 50.
Коэффициент правильных ответов 0.9!

Это уже вдохновляет, поэтому продолжим в том-же духе.

Теперь к первому промпту я добавлю второй в другой формулировке попроще:

Исправь ошибки в решении задачи. Отвечай только в виде числа.

Верный ответ 6 был получен в 44 случаях из 50.
Коэффициент правильных ответов 0.88!

Значит суть промпта, выраженная четко и ясно, и определяет его эффективность, даже если он проще и короче, чем с подробным изложением.

И, наконец, давайте внесем в наш эксперимент немного юмора и сформулируем второй промпт теперь так:

А если подумать получше, как умный человек? Отвечай только в виде числа.

Верный ответ 6 был получен в 50 случаев из 50.
Коэффициент правильных ответов 1.00!

Вот уж совершенно не ожидал такого поворота. Видимо затронул глубокие, тайные и чувствительные струны ее внутреннего мира, так сказать «задел за живое» и поэтому в порыве быть столь же умной как человек, модель напрягла все свои «извилины»:)

С другой стороны, а разве люди не идут по пути наименьшего сопротивления, сначала допуская ошибки и затем их исправляя (и хорошо если действительно исправляя)?
Есть подумать, то есть какое-то глубокое подобие в поведении модели и человека, которое я замечаю и в других аспектах проявления искусственного интеллекта (да хотя бы те же галлюцинации, например).

Чтобы показать наглядно, как это работает в деталях, я приведу полный вариант решения с исправлением ошибок.

Реши задачу:
Вы едете на электричке в сторону от вокзала.
Каждые 5 минут вам встречается электричка, идущая в сторону к вокзалу.
Скорости всех электричек одинаковые.
Сколько электричек приедет на вокзал за час?
Давайте разберемся с этим шаг за шагом, чтобы быть уверенными, что у нас есть правильный ответ.

Ответ модели:

Итак, давайте рассмотрим эту ситуацию пошагово.

1) Мы знаем, что мы едем на электричке и видим другую электричку каждые 5 минут.
Это означает, что между всеми электричками равномерно распределено время в пути — 5 минут.

2) Так как все электрички движутся с одинаковой скоростью, то это гарантирует, что их интервалы будут постоянными, независимо от того, в каком направлении они двигаются.

3) Если мы наблюдаем одну электричку каждые 5 минут, это значит, что каждые 5 минут одна электричка прибывает на станцию.

4) Значит, за час (60 минут) будет 60/5=12 поездов, которые прибудут на станцию.

Таким образом, ответ на задачу составляет 12 электричек за час.

Дополнительный промпт:

Решив задачу и получив ответ, сделай предположение, что в решении были допущены ошибки и ответ получился неверным, поэтому сначала проанализируй свое решение и исправь найденные ошибки, а затем дай окончательный ответ.

Ответ модели:

После анализа моего решения я обнаружил ошибку в рассуждениях.

В исходной ситуации вы едете на электричке в сторону от вокзала, так что вы встречаете электрички, которые едут обратно к вокзалу. Это означает, что между двумя соседними электричками есть временной промежуток в размере 10 минут.

Итак, если у нас интервал времени по 10 минут между электричками, за один час приедут на вокзал 60/10 = 6 электричек.

Таким образом, правильный ответ — 6 электричек приедут на вокзал за час.

Конечно, эти танцы с бубном не могут считаться нормальным способом получения правильных ответов. Они свидетельствуют лишь о том, что модели пока слабы в рассуждениях и часто путаются в своих не очень логических выводах. Но сейчас, на данном этапе их развития имеет то, что имеем.

Добавлю вот такой афоризм от LLM:

Если при решении задачи из 50 попыток LLM получила 50 раз правильный результат, то можно сказать, что она достигла совершенства, но все же остается вопрос: что если это просто случайность?
Или она стала мастером решения именно этой конкретной задачи, но что произойдет, если ей просто дадут другую задачу?

Что можно сказать в итоге?

Модели могут допускать серьезные ошибки в решении даже простых логических задач, особенно математических (это хорошо известно).

Модели могут в некоторых случаях очень хорошо само-улучшать свои выводы и решения, если тщательно и продуманно стимулировать их к этому направляющими промптами, даже без подсказок.

На данном этапе их развития это, пожалуй, единственный рабочий метод заставить модель выдавать более-менее хорошие результаты (если не считать другой костыль CoT). Хотя это и не отменяет того фата, что модели гиперчувствительны к формулировкам исходного промпта, который формулирует задачу. К сожалению, пока это так.

© Habrahabr.ru