Автор статьи "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). Хотя это и не отменяет того фата, что модели гиперчувствительны к формулировкам исходного промпта, который формулирует задачу. К сожалению, пока это так.

Комментарии (9)


  1. t3hk0d3
    15.10.2024 08:32

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

    Единственная LLM которая как-то может в данном вопросе что-то предложить - это o1.


  1. exwill
    15.10.2024 08:32

    Семплирование отключали?

    Как раз к формулировкам модели зачастую менее чувствительны, чем к семплированию


  1. d00m911
    15.10.2024 08:32

    Я получил для этой задачи правильные ответы от 22b и 30b локальных моделей, упомянув в условии, что скорость всех электричек одинакова, ВКЛЮЧАЯ электричку, на которой едет герой задачи.

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

    Я не утверждаю, что эти llm мыслят, но процесс их рассуждений похож на человеческое мышление.

    И да, o1 с такими задачами справляется очень легко, как и с гораздо более сложными.


  1. Shpankov
    15.10.2024 08:32

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

    Что любой результат работы ИИ нужно трижды перепроверять.


  1. Octabun
    15.10.2024 08:32

    Высказывания типа " равномерно распределено время в пути" или " их интервалы будут постоянными, независимо от того, в каком направлении они двигаются" сами по себе бессмысленны. Дальше можно и не проверять. Хотя напрашивается спросить типа вдоль чего или в каком смысле равномерно распределено, между чем и чем или какие именно их интервалы.

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

    А что будет делать LLM если от улья бежит барсук, а встречаются ему пчёлы которые летят в два раза медленнее? Тут интересно ещё и то, не поймается ли модель на разных способах передвижения. Или по реке сплавляется садху, а навстречу по берегу к храму бредут иноки.


  1. EskakDolar
    15.10.2024 08:32

    Что вы хотите от  LLM, если человек может перепутать тепловоз с электричкой ?


  1. blik13
    15.10.2024 08:32

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

    Тут саму задачу можно завалить дополнительными вопросами.

    Каждые 5 минут встречается электричка идущая к какому вокзалу? А остановки у электрички будут после встречи? А у вокзала всего один путь и только по нему приходят электрички?

    Т.е. человек при ответе на этот вопрос будет делать много допущений.