Исследованием поделился Yuntian Deng в Твиттере. Он протестировал умножение чисел с разным количеством знаков, вплоть до 20.
На примере сравнения o1, o1-mini и gpt-4o.

Оказалось, что GPT4o еле вывозит 4-значные числа, а o1 справляется даже с 9x9.

Другое интересное наблюдение - количество private reasoning tokens зависит от сложности задачи как сублинейная функция (которая растет медленней, чем линейная). Но тратит оно все равно больше токенов, чем если бы такой Chain-of-Thoughts анализ писал человек.

Например, для умножения 20х20, o1 использует около 3600 токенов, а написанное вручную тратит всего 400 для промежуточных результатов и 400 для суммы, все вместе - около 800 токенов.

o1-preview и o1-mini примерно равны по точности умножения. Хотя "полноценная" o1 гораздо дороже и медленней отвечает. Обе работают сильно лучше gpt-4o. В тестах, o1-preview гоняли на сравнительно небольшом размере сэмпла, потому что она жрет слишком много ресурсов и тормозит.

И последнее, саму задачку умножения можно решать и на совсем маленькой модели. Например, если взять маленькую gpt-2 (117M) и решать вплоть до 20х20, с помощью implicit CoT with stepwise internalization (как говорят у нас в русских деревнях), результат будет что-то типа 99,5% аккуратности.

o1-mini почти всегда сразу отдает результат, а gpt-4o и o1-preview переходят на CoT. Добавление или убирание "think step by step" к промту результат не меняло (на том небольшом сэмпле, на котором это проверялось)

Ну и наконец, что там был за промт?

Calculate the product of 15580146 and 550624703. Please provide the final answer in the format: Final Answer: [result]

Больше такого контента читайте в Telegram-канале "Откровения от Олега".

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


  1. registerconsumet
    18.09.2024 15:02
    +1

    всё сходится: больше половины таблицы умножения помнить не обязательно ... правда чуть другой половины


  1. ildarz
    18.09.2024 15:02

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


    1. verax_mendax
      18.09.2024 15:02
      +4

      Тут, наверное, цели были другие всё же, чем получение калькулятора.

      У вас бывали случаи, когда вам надо что-то посчитать, но вы вместо расчётов просто "прикидываете примерно сколько" и попадаете довольно близко. даже без расчётов. Просто примерно представляя в голове абстрактное взаимодействие абстрактных чисел. Тут примерно то же. ИИ конкретно тут не считает по формуле, а "прикидывает сколько примерно получится".


      1. ildarz
        18.09.2024 15:02

        Я понимаю, как это работает, но не понимаю, ЗАЧЕМ. Т.е. в научно-исследовательских целях - понимаю, но почему к публично доступным моделям (за которые еще и деньги берут) не прикручивают "калькуляторы" - уже не очень. Потому и прошу объяснить.


        1. verax_mendax
          18.09.2024 15:02

          "Если к публичным моделям ИИ не прикручивают калькуляторы, значит это кому-то нужно".

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

          Но это моё предположение. Взгляд со стороны, не более.

          УПД.: ну да, там ответили ниже, для чего это надо.


        1. saege5b
          18.09.2024 15:02

          Популярные сетки это больше текстогенераторы/картинкогенераторы. Генерируется чисто по коэффициентам встречаемости.

          Подход по принципу: напихаем побольше в обучайку, подкрутим-подшаманим и наверное что-то готово.

          У тебя вопрос больше про глобальную базу знаний. Типа Вольфрам Альфа.

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


        1. d-sh
          18.09.2024 15:02

          Для этого надо ещё 1 запрос делать. Сначала найти всё что можно почитать на калькуляторе, потом добавить результаты вычислений в запрос. Время, деньги. А оно ещё и тупит, не всегда правильно определяет что надо считать.


          1. olegchir Автор
            18.09.2024 15:02
            +3

            На практике это вообще не так будет) Никто не будет звать калькулятор сам. Пользователь скорее напишет: "о Великий Вычислитель, посмотри на мою банковскую историю и скажи, будет ли у меня бабло залпатить кредит в следующем месяце". И дальше нейронка породит цепочку рассуждений, внутри которых как раз и будут вычисления типа умножения. "На поверхности" никаких вычислений тебе не покажут, ты задашь вопрос без них, и получишь ответ без них. Такие исследования как в этой статье показывают, насколько ты можешь доверять таким рассуждениям.


        1. holodoz
          18.09.2024 15:02

          К моделям OpenAI, работающим через их интерфейс, уже давно всё прикручено. Попросил сейчас посчитать дисперсию ряда из десятка случайно набранных чисел. Модель выдала результат, при желании можно посмотреть код на питоне, который модель написала, чтобы проверить, всё ли правильно. Промт был " Вычисли дисперсию ряда 3, 5, 2, -1, 9, 0, 1, 1, 1", код писать или запускать калькулятор я не просил.


          1. ildarz
            18.09.2024 15:02

            Так она код на питоне пишет (или еще какую левую фигню делает), чтобы посчитать, или просто считает, вызывая математическую библиотеку? Мне именно вот это интересно.


            1. holodoz
              18.09.2024 15:02

              Запускает в фоне, ни код, ни выполнение не видны, если специально дальше не копать. На поверхности - вопрос-ответ


            1. olegchir Автор
              18.09.2024 15:02

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


        1. Hardcoin
          18.09.2024 15:02

          Это кому-то нужно, думаете? Исследователям настоящий калькулятор не нужен (иначе исследование теряет смысл), пользователям тоже. Так зачем?


    1. olegchir Автор
      18.09.2024 15:02
      +1

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

      Это изолированное исследование, позволяющее конкретно на числах увидеть результаты


      1. baldr
        18.09.2024 15:02

        Ну то есть мы просим языковую модель выполнить арифметические действия, а потом говорим что она не справилась? Тогда уж лучше попросили бы покрасить стену - и можно сразу говорить что никуда не годятся ваши жпт.

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


        1. Vest
          18.09.2024 15:02

          Вспоминаем бородатую шутку, как сложить два числа с помощью jQuery.


          1. baldr
            18.09.2024 15:02

            Вспоминаем бородатую шутку, как сложить два числа с помощью jQuery.

            Я знаю шутку о том, как сложить два числа с помощью JavaScript (установить пакет из NPM), но про jQuery не знаю.

            ЖПТ тоже подходит серьезно


        1. olegchir Автор
          18.09.2024 15:02
          +2

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


          1. baldr
            18.09.2024 15:02

            А, ну то есть ваш вывод о итогам статьи что она справилась?

            Это было не очевидно на фоне графиков, где произведение двух шестизначных чисел считается с точностью всего 57%

            Однако, мне ChatGPT на запрос посчитать произведение 8-значных чисел сразу показал в анализе код на Python, хотя я его и не просил. То есть, уже может понять что это именно точная формула.

            # Рассчитаем произведение двух чисел
            result = 27364822 * 636373828
            result


            1. olegchir Автор
              18.09.2024 15:02

              Я постарался не делать выводы. Исследование - это повод включить голову, подумать, и самим сделать свои выводы. Для тех задач, которыми ты занимаешься. Кому-то такая точность покажется хорошей, кому-то - плохой, все зависит от точки зрения и задач.


        1. Hardcoin
          18.09.2024 15:02
          +1

          Вы так говорите, будто задача исследователя - обидеть модель и её авторов. Вот ведь, не справилась.

          Задача исследователя - исследовать. Вы можете попросить её написать программу и сделать выводы, если хотите. Авторы исследования захотели иначе.


      1. logran
        18.09.2024 15:02

        насколько можно доверять вычислениям, котрые нейросеть делает в процессе решения других задач

        Вычислениям, если она вызывает код, предназначенный для математический операций, например калькулятор, для вычислений в процессе решения других задач (тем же образом, каким bing вызывает поиск для выбора информации) - можно верить почти на 100%.

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


        1. OlegZH
          18.09.2024 15:02

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

          В конце-концов, что такое навыки счёта? ;-)


          1. baldr
            18.09.2024 15:02
            +1

            Обязательно прикрутят. И, возможно, уже скоро. Однако, это не такая уж приоритетная цель, думаю. Важнее всего то, чтобы модель правильно понимала контекст вопроса. Недостаточно просто тупо парсить ввод и заменять все формулы на результат. Например, запросы "сколько будет 6*18" и "расскажи сказку про 6*18" - это разные запросы, предполагающие совершенно разный ответ.

            Сказка


      1. ildarz
        18.09.2024 15:02

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


        1. baldr
          18.09.2024 15:02

          Видимо, потому что вы не понимаете как это работает.

          Модель не делает математические вычисления. Она оценивает вероятность того, что на запрос с такими вот словами можно дать вот такой ответ. Для неё результатом 2x2 будет не одно число, а целый набор, со своими вероятностями.

          И 4, и 5.7777, и 899 - это всё будут ответы, но с разной вероятностью. Какие это будут варианты и какие у них будут вероятности - зависит от того как эту модель обучали.

          Обучение ведётся на каких-то входных данных, но всегда не на полном объеме. То есть, например, её научили что 2x3=6, 3x4=12, 6x7=42 - а вот про 2x2 она не знает. Но в процессе обучения она каким-то образом построила в своих связях некую сложную полиномиальную функцию типа ax^7+by^6+cz^3+d и вычислила коэффициенты так, что примерно получаются 6, 12 и 42 (но не точно - например, 6.001, 13 и 44). Подставив эти 2x2 в эту формулу она тоже получит какой-то ответ.

          Однако, повторю - это языковая модель, то есть она предназначена, в первую очередь, для обработки текста.

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


          1. OlegZH
            18.09.2024 15:02
            +1

            Однако, повторю - это языковая модель, то есть она предназначена, в первую очередь, для обработки текста.

            Здесь Вы сильно ошибаетесь. Как, видимо, и многие другие. "Языковая" — это значит, что она имеет определённое лингвистическое описание, но мы всегда можем сопоставить числовым и, вообще, любым другим объектам какие-то символы. То есть, может быть, Вы и правы, но в том смысле, что практически всё можно интерпретировать как текст на некотором языке.


            1. baldr
              18.09.2024 15:02

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

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

              С текстом всё сложнее. Если с числами "4=4" и никак иначе, то "собака=кошка" в принципе может быть верно если вы сравниваете по количеству лап или ушей.

              Вот выше я попросил её выполнить два задания - посчитать произведение и сочинить сказку. Посчитала? Да. Верно? Да. И мы это можем оценить, поскольку есть только один способ это посчитать.

              А вот сказка: Сочинила? Да. Верно? Ну вот это как смотреть.. Вроде и сказка и про мышат, и всё в ней хорошо... Но, вникнув в суть, мы, внезапно, ловим противоречие - мышата не умели умножать, но, вдруг, сразу научились при следующем вопросе. WTF?


              1. Hardcoin
                18.09.2024 15:02

                Но только правила обработки текста не подходят к правилам обработки чисел. 

                Очень странное утверждение.


          1. ildarz
            18.09.2024 15:02

            Видимо, потому что вы не понимаете как это работает.

            Это вы не понимаете, о чем я спрашиваю. :)