FractalMath достиг 100% точности в решении математических задач

Привет, мы релизим публичное демо нашего FractalMath агента - это бот, который научился решать математические задачи на арифметику со 100% точностью и стабильно. В этой статье мы сравним бота с ChatGPT и покажем, что мультиагентая система FractalGPT достигла SOTA качества в этой задаче и превзошла все prompt техники для LLM.
Бот доступен всем в Телеграм.

Кадр из фильма Ex machina ("Из машины", 2014). Калеб тестирует робота Ава. 
Кадр из фильма Ex machina ("Из машины", 2014). Калеб тестирует робота Ава. 

Что такое FractalMath агент

Математический агент это бот, в который вы отправляете простую задачу и получаете ответ, например:

Перевод: "Два друга играли в онлайн-видеоигру, когда к игре присоединились еще два игрока. Если у каждого игрока было по 8 жизней, сколько всего жизней у них было?"
Перевод: "Два друга играли в онлайн-видеоигру, когда к игре присоединились еще два игрока. Если у каждого игрока было по 8 жизней, сколько всего жизней у них было?"

Мы в компании ФракталТех занимаемся развитием новой парадигмы искусственного интеллекта - создаем мультиагентый ИИ. Впервые мы заявили о том, что простые LLM с техниками промтинга зашли в тупик в нашем анонсе проекта в марте 2023го.

На ИИ конференции Ai Journey (которую организует Сбер) в докладе 22го ноября мы впервые показали FractalGPT Math агента, который решает математические задачи с почти 100% точностью (99.8%).

FractalMath - это мультиагентная система(англ - MAS, multi-agent system), которая использует нескольких агентов для решения задач по математике (арифметике - на сложение, вычитание, умножение, деление) и добивается потрясающих по точности и стабильности результатов - за счет "общения" агентов друг с другом и построения стратегии. В докладе у нас получился результат 99.8% правильных ответов - недавно мы его улучшили и получили 100% - проверить это может каждый в нашем боте в Тг, просто возьмите любую задачу на англ. языке из датасета Multiarith (test) и отправьте ее боту:

Бот хорошо понимает задачи только на EN языке - на RU мы не гарантируем высокое качество решения

Видео доклада "Автономные AI агенты: тренды индустрии и почему промты не всесильны", на сайте конференции, в архиве докладов:

ссылка на видео: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Faij.ru%2Farchive%3FalbumId%3D2%26amp%3BvideoId%3D293&postId=970699" rel="nofollow noreferrer noopener" target="_blank">https://aij.ru/archive?albumId=2&amp;videoId=293</a>
ссылка на видео: https://aij.ru/archive?albumId=2&videoId=293

В Vk.com:

https://vk.com/video-22522055_456243333
(В докладе есть пример про бабушку и яблоки, как смешно ошибаются все любимые нами ChatGPT, Claude 2, YandexGPT, GPT4.)

Ниже мы протестируем возможности FractalMath, сравним его с ChatGPT и покажем преимущества агентного подхода.

🏆 Что умеет FractalMath и почему это важно

FractalMath агент решает задачи из датасета MultiArith 100% правильно и при этом дает не только правильный ответ, но и правильный ход решения - и это отличное достижение.
Вот фишки мультиагентой системы FractalMath:

  1. Точность. Решает задачи на арифметику 100% правильно.
    Не 99%, и не 99.5%, и именно 100% - это максимальный возможный результат. При этом мы не писали никакого скрипта и никак не хардкодили способы решения, они создаются на лету. Такое качество недостижимо практически ни с какой LLM и ни с какими техниками промтинга.
  2. Эмерджентность. Обобщающее свойство сохранилось.
    Так же, как и LLM она умеет теперь решать этот класс задач, а не угадывать, опираясь на вероятностное распределение генерируемых токенов, как это делает LLM. Это важно, потому, что создавая ИИ мы не хотели бы сделать простую экспертную систему, заточенную на решение однотипных задач - мы хотим получить универсальное, расширяемое решение.
  3. Надежность. Ответы стабильны.
    От запроса к запросу ответ не меняется. А при этом уже мемом стала ненадежность ChatGPT - очень часто она генерирует разные решения на дословно одну и ту же задачу, даже с такими простыми задачками, которые решит каждый третьеклассник - это совершенно неприемлемое поведение. По нашим наблюдениям на 1 из 6 запросов ChatGPT дает другое, неправильное решение. В FractalMath также используется LLM, но надежность ответов на один и тот же запрос примерно в 20 раз выше, чем у ChatGPT.
    Такое высокое качество и надежность обеспечивает многоагентная система внутри - агенты договариваются, строят план и стратегию решения.
  4. Обучение как у ребенка.
    У мультиагентной системы совершенно другой принцип обучения: она учится как дети в школе. В процессе обучения учитель(или "родитель" -агент, пишущий решение) показывает на примерах стратегию, шаги и нюансы хода решения задачи, а ребенок(агент Стратег) запоминает их инварианты (это важно, когда от яблок и апельсинов мы учимся переходить к абстракции цифр).
    Таким образом в обучении не используется train часть датасета - вместо этого применяется аналог few-shot learning, но не текстах задач, а на специально созданных стратегиях решения этих задач, в которых присутствует в том числе и логический вывод.

Подробнее о системе логического вывода (нейросемантическом движке) можно прочитать в статье Захара на Vc.ru

Что внутри

В систему входят:

  1. Агент Мэтчер (Matcher). Устраняет избыточную информацию, не относящуюся к задаче.
  2. Агент Стратег (Планировщик). Строит стратегию решения.
  3. Агент Исполнитель стратегии (Optimizer, Solver).
  4. Агент Интерпретатор (Calc). Интерпретирует результаты, предоставленные ему другими агентами.

    Мэтчер, Стратег и Исполнитель стратегии вместе входят в состав модуля Логического вывода.

Общая схема работы MAS представлена ниже:

Схема работы мультиагентной системы FractalMath при решении арифметических задач
Схема работы мультиагентной системы FractalMath при решении арифметических задач

Схема обучения и тестирования

Создание саморазвивающихся автономных ИИ агентов приводит нас к тому, что в целом мы меняем сложившуюся парадигму, или схему обучения.
Типичная схема для LLM выглядит так:

  1. Сбор датасета
  2. Fine-tuning (или промтинг с few-shot: несколькими примерами)
  3. Тест на test части датасета

В мультиагентной парадигме схема выглядит иначе:

  1. Выбор задач
  2. Написание стратегии для нескольких выбранных задач
  3. Тест на test части датасета

Обучение проводилось на 5 сэмплах.

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

При проверке на test система FractalMath показала 100% точность - показатель accuracy, все задачи были решены правильно. (Стоит отметить, что Логический модуль, показавший 100% из-за эффекта ошибки среднего может в редких случаях показывать результат на доли процента ниже)

В целом, решаемые задачи наверное так можно охарактеризовать:

  1. сложность - уровень 3го класса, без логарифмов, квадратных уравнений и интегралов)
  2. в каждой по 1-3 действия: сортировка конфет, передача яблок и пр.
  3. действия на сложение, вычитание, умножение, деление
  4. конечный результат это натуральное число
Датасет <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fhuggingface.co%2Fdatasets%2FChilleD%2FMultiArith%2Fviewer%2Fdefault%2Ftest&postId=970699" rel="nofollow noreferrer noopener" target="_blank">MultiArith</a>
Датасет MultiArith

Сравниваем FractalMath и ChatGPT

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

Кейс 1.
"question": " Chloe was playing a video game where she scores 9 points for each treasure she finds. If she found 6 treasures on the first level and 3 on the second, what would her score be? ",
"final_ans": "81"
Перевод: Хлоя играла в видеоигру, где за каждое найденное сокровище она получает 9 очков. Если на первом уровне она нашла 6 сокровищ, а на втором - 3, какой будет ее результат?

FractalMath верное решение и ответ
FractalMath верное решение и ответ
ChatGPT тоже дал верное решение и ответ
ChatGPT тоже дал верное решение и ответ

Задача, как мы видим очень простая, ее решит любой ученик 3го класса. Сейчас может показаться, что ChatGPT умеет решать такие задачи и можно спокойно ему их давать, ведь это не какие-то интегралы и теоремы.
- Как проверить "понимание", а не зубрежку?
- Легко: давайте добавим однотипные части условия и немного увеличим цифры - пусть каждый день Хлоя находила все больше сокровищ.

Новая формулировка: "Chloe was playing a video game where she scores 9 points for each treasure she finds. If she found 6 treasures on the first level and 3 on the second, and 100 on the third, 500 on the fourth, and 5555 on the fifth, what would her score be?"

FractalMath MAS решил задачу правильно (тест с разным количеством повторных действий):

FractalMath достиг 100% точности в решении математических задач

ChatGPT "поплыл": у него простейшая арифметическая ошибка, которую трудно заметить, вместо 55476 он выдает за правильный результат 54476. И это не единичный случай.

FractalMath достиг 100% точности в решении математических задач


Кейс 2.

Betty is saving money for a new wallet which costs $100. Betty has only half of the money she needs. Her parents decided to give her $15 for that purpose, and her grandparents twice as much as her parents. How much more money does Betty need to buy the wallet?
Перевод: Бетти откладывает деньги на новый кошелек, который стоит 100 долларов. У Бетти есть только половина необходимых ей денег. Ее родители решили дать ей на эти цели 15 долларов, а бабушка и дедушка - в два раза больше, чем родители. Сколько еще денег нужно Бетти, чтобы купить кошелек?

Эта задача чуть сложнее и ее нет в исходном датасете.
FractalMath MAS решил правильно, обратите внимание на переменные и рассуждения:

FractalMath достиг 100% точности в решении математических задач

ChatGPT почему-то стал составлять уравнение и запутался в нем:

ChatGPT не смог решить простую задачу про кошелек и деньги
ChatGPT не смог решить простую задачу про кошелек и деньги

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

Техники промтинга в Arithmetic reasoning

Решение математических задач - давняя мечта ИИ специалистов со всего мира. Раздел исследований, который занимается достаточно простыми задачами (не доказательством теорем, пределами, диф уравнениями, интегралами и комплексными числами) называется Arithmetic reasoning.

Например, в статье 2022 года Large Language Models are Zero-Shot Reasoners исследователи показали существенное влияние техник промтинга на прирост качества решения задач, в том числе и достаточно простых, из датасета MultiArith: "For example, Zero-Shot-CoT achieves score gains from 17.7% to 78.7% on MultiArith and from 10.4% to 40.7% on GSM8K. That’s a lot of performance gain!"

Table 3: Comparison of different baselines on MultiArith and GSM8K datasets by using the DaVinci-002 model if not specified.
Table 3: Comparison of different baselines on MultiArith and GSM8K datasets by using the DaVinci-002 model if not specified.

Отметим, что именно техника промтинга (в данной статье Chain-of-Thoughts) делает основной вклад в прирост качества, а вот размер модели в 135, 175 или даже в 540млрд параметров не оказал решающего влияния на прирост качества.
Из это следует важный вывод: размер модели НЕ оказывает влияния на понимание логики в решении задач, модели не выучивают стратегии надежным образом. Это означает, что промтингом не получится достичь 100% точности.Практически никогда нельзя заранее понять, произойдет ли ошибка в данный конкретный момент или нет.Об этом исследователи писали еще в работе Sparks of Artificial General Intelligence: Early experiments with GPT-4 в марте 2023го.

В работе Better Zero-Shot Reasoning with Role-Play Prompting (август 2023) на датасете MultiArith авторы показали результат 97.3%. Однако вне датасета в тесте на реальных задачах процент правильных ответов будет ниже, он будет падать до 80 и даже 70%, в зависимости от того, насколько семантика задач будет отличаться от в общем-то шаблонных постановок.

Table 2: Accuracy comparison of Role-Play Prompting with Zero-Shot, Zero-Shot-CoT on each dataset. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Farxiv.org%2Fpdf%2F2308.07702v1.pdf&postId=970699" rel="nofollow noreferrer noopener" target="_blank">Better Zero-Shot Reasoning with Role-Play Prompting</a>
Table 2: Accuracy comparison of Role-Play Prompting with Zero-Shot, Zero-Shot-CoT on each dataset. Better Zero-Shot Reasoning with Role-Play Prompting

Мы, в отличие от коллег из Google DeepMind которые, судя по последним новостям решили математическую задачу фактически методом перебора с помощью FunSearch - мы знаем, как наш FractalMath работает)

Эмерджентные свойства.

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

Кейс 3.
Илон Маск нырял в море за ракушками. В первый день он достал со дна 5 ракушек. А в следующий - на 10 больше. Скажи в итоге сколько у него жемчужин, если в каждой ракушке их было ровно по 3.

FractalMath правильно решил фантастическую задачу про Илона Маска и жемчуг, которой точно не было в датасете
FractalMath правильно решил фантастическую задачу про Илона Маска и жемчуг, которой точно не было в датасете

Кейс 4.

<a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fru.wikipedia.org%2Fwiki%2F%25D0%2598%25D0%25B7_%25D0%25BC%25D0%25B0%25D1%2588%25D0%25B8%25D0%25BD%25D1%258B&postId=970699" rel="nofollow noreferrer noopener" target="_blank">Ex Machina</a> - фильм про то, как не нужно тестировать ИИ
Ex Machina - фильм про то, как не нужно тестировать ИИ

Caleb tested the robot Ava using the Turing Test. On the first day, he asked her 5 questions. The second day, 9 more than the first. On the third day, he didn't ask her any questions and just chatted with her about her master. On day 4, Ava tried to escape by cutting the power. On day 5, Caleb asked her 3 times as many questions as he did on day 1. How many questions did Caleb have time to ask?
Перевод: "Калеб протестировал робота Аву с помощью теста Тьюринга. В первый день он задал ей 5 вопросов. Во второй день - на 9 больше, чем в первый. На третий день он не задавал ей никаких вопросов и просто болтал с ней о ее хозяине. На четвертый день Ава попыталась сбежать, отключив электричество. На пятый день Калеб задал ей в 3 раза больше вопросов, чем в первый. Сколько вопросов успел задать Калеб?"
(эта задача - отсылка к фильму Ex Machina Алекса Гарленда)

Правильное рассуждение и ответ
Правильное рассуждение и ответ

FractalMath даже научился решать задачи более сложные, чем те, на которых он учился.

FractalMath достиг 100% точности в решении математических задач

Что FractalMath пока не умеет решать

У текущего решения в следствие небольшого количества времени на разработку есть и ограничения, касающиеся в основном понимания стратегии.
В задачу про Калеба и Аву добавлена строка, в которой Ава сама задает ему вопросы. Эта информация пока не учитывается агентом Стратегии и приводит к не совсем верному решению.

Кейс 5.
Caleb tested the robot Ava using the Turing Test. On the first day, he asked her 5 questions. The second day, 9 more than the first. On the third day, he didn't ask her any questions and just chatted with her about her master. On day 4, Ava tried to escape by cutting the power. On day 5, Caleb asked her 3 times as many questions as he did on day 1. Ava then asked Caleb 100 questions. How many questions did Caleb have time to ask?

FractalMath достиг 100% точности в решении математических задач

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

FractalMath не решает многие несвойственные изученной стратегии задачи - и отказывается от решения
FractalMath не решает многие несвойственные изученной стратегии задачи - и отказывается от решения

Можно ли взять open-source LLM

Даже лучшие опен-сорс модели, такие как Mistral 7b не дают надежды на стабильное и правильное решение:

Ответы Mistral 7b стабильно неверные
Ответы Mistral 7b стабильно неверные

Выводы и proof-of-concept

В этой статье мы показали возможности FractalMath - сборки агентов, которая научилась решать математические задачи и обладает эмерджентными свойствами.
Мы думаем, что это одна из первых работ, в которой показывается преимущество многоагентного подхода перед техниками промтинга, которых на данный момент существую десятки. Важно также, что техники с написанием кода (например PAL, Program-aided Language Models) также не являются серебряной пулей - а это означает, что пока что, в задаче Arithmetic reasoning многоагентный подход - единственный, достигший абсолютного state-of-the-art качества.

Нам, как разработчикам новой концепции ИИ часто писали: "то что в вашей демке это можно сделать на LLM, а покажите такое, что нельзя сделать".

Вот FractalMath - это такая яркая иллюстрация, proof-of-concept агентности - того, что не может сделать никакая LLM - система имеет свойства LLM тоже, она понимает текст задачи, но плюс к этому она имеет новые свойства: надежность и высокую точность, скейлинг на новые типы задач. Достаточно разработать более сложных агентов и возможности системы кратно возрастут, по соотношению трудозатрат к спектру решаемых возможностей это очень эффективный подход.

Вообще, решать задачи требующие точности, такие как математические (а также физики и пр.) с помощью LLM вообще нельзя и даже бесполезно. Ведь для того, чтобы понять, что задача решена правильно вам нужно ее решить(!) другим способом и сверить результат. А зачем же тогда тратили время на решение ее на LLM?

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

Где попробовать FractalMath

Вы можете брать готовые задачи на английском из датасета MultiArith. Бот тестировался на англ текстах задач - мы не гарантируем высокое качество работы для задач на русском языке.
Бот доступен в Телеграм:

Еще больше интересного про ИИ в нашем чате.

Cайт про мультиагентный ИИ:

Сайт сервиса QA агента, где вы можете создать себе нейросотрудника, который будет отвечать на ваши вопросы.

33
11 комментариев

FractalMath решает правильно, а вот ChatGPT поплыл)) видимо потому что постановка далека от того что он видел в датасетах 😂

Вот как великолепно (и неправильно) складывает ChatGPT, он даже не понял, что нужно отнимать

А сколько междунейронных связей в вашей модели , если не секрет?

Детали реализации агентов мы не раскрываем.
Но могу сказать, что LLM мы используем - и на самом деле не так важно сколько там млрд параметров, как важна другая вещь - архитектура системы и способность агентов собраться в рабочую стратегию за конечное время.
У нас ведь несколько агентов и там разные модели используются.

Дополнил после публикации статью схемой работы агентов, прикрепляю

Может ли соперничать ваша нейронная сеть с открытой нейронной сетью Bloom ?

Думаю может, в задаче конечно же только arithmetic reasoning, мы не тестировали. А почему вы именно про нее спрашиваете?

Виктор, а почему тестирование ChatGPT для сравнения проводится на слабой версии модели (GPT-3.5), а не на GPT-1 или GPT-2?