Новая модель от OpenAI решает задачи по спортивному программированию быстрее людей
Наверняка многие из вас уже слышали о недавнем релизе новой модели от OpenAI под названием "o1", которая умеет думать перед тем, как выдать ответ. В отличие от GPT-4o, которую позиционируют как модель общего назначения, o1 значительно лучше справляется со сложными задачами, требующими тщательного обдумывания. Однако, из-за этого стоимость её использования значительно возрастает, как и время отклика.
OpenAI представили множество бенчмарков с впечатляющими цифрами и графиками. Но как модель показывает себя на практике?
Я написал простую программу, которая брала задачу по спортивному программированию и просила o1 решить её. Причём генерация запускалась параллельно в нескольких потоках, чтобы, даже если модель иногда ошибалась, хотя бы часть решений была правильной.
На каждую задачу уходит всего пара минут, что очень быстро. Однако с долей правильных решений всё не так однозначно. Я протестировал модель на задачах разной сложности: от самых простых, которые она решала правильно в 100% случаев, до очень сложных, где даже из нескольких сотен попыток не удавалось получить ни одного верного решения.
В результате тестирования я пришёл к выводу, что модель лучше всего работает на простых или средних по сложности задачах — благодаря своей скорости по сравнению с человеком. Для сложных задач её тоже можно использовать, но для получения результатов потребуется доработать способ взаимодействия с моделью и выделить значительно больше средств на API. Ведь эта модель дорогая: на каждую попытку уходит от $0.30 до $1.00 в зависимости от сложности задачи, а для сложных задач требуется десятки или даже сотни попыток.
Теперь конкретнее: если рассматривать задачи уровня Division 2 на платформе спортивного программирования Codeforces, то модель решает их примерно на уровне рейтинга ~1800 (топ 10%). Однако на более простых задачах, таких как в соревнованиях Division 3, модель абсолютно доминирует над людьми, решая задачи правильно всего за пару минут 🤯
Для сравнения, лучшим программистам обычно требуется не менее 20-30 минут, чтобы решить все задачи в таком соревновании, а o1 нужно всего 2-3 минуты, если генерировать решения параллельно для всех задач, или 10-20 минут, если решать их по очереди.
Удивительно, как за меньше чем два года мы перешли от того времени, когда LLM не могли написать даже небольшой фрагмент кода без ошибок, если их не переспрашивать по 10 раз, к тому, что видим сейчас. И это ещё далеко не предел возможностей — будущие модели будут ещё умнее.