Привет, Хабр! Меня зовут Владимир Крылов. Я профессор математики, научный консультант Artezio и автор телеграм-канала Ai4Dev. Наша команда внимательно следит за развитием технологий ИИ и их влиянием на разработку ПО. Последний анонс OpenAI заставил меня написать о новых технологиях по горячим следам. Обычно я предпочитаю дожидаться реальных результатов тестирования. Однако презентация с последнего дня рождественского мероприятия OpenAI сломала все барьеры.
В ожидании чуда
Объявление о новых моделях OpenAI о3/о3-mini – это не просто следующий шаг в развитии Foundation Models, не очередное SOTA, а сообщение о прыжке на следующий уровень, который вряд ли будет достигнут конкурентами в ближайшее время. Заголовки публикаций по мотивам мероприятия звучат так: «Модель OpenAI o3 – это послание из будущего: забудьте все, что вы, как вам кажется, знаете об ИИ». Новые модели заметно отличаются от своих ныне самых успешных собратьев в вопросах кодирования и математики уровня докторов наук. Одним из значимых тестов, в котором модели совершили прорыв, является ARC- AGI. Впервые он был представлен исследователем методов глубокого обучения Франсуа Шолле как набор задач, которые интуитивно просты для людей, но удивительно сложны для нейронных сетей. Лучший результат на сегодняшний момент достигнут людьми и составляет около 75%. o3-mini показывает схожие цифры, а o3 демонстрирует 87,5%, что намного выше человека.
Но здесь я не буду обсуждать математические способности и уровень логических рассуждений о3, а проанализирую только оценку тестирования на задачах программной инженерии на SWE-bench, которую называют SWE-bench Verified, и каков ELO-рейтинг новой модели как участника соревнований по программированию Codeforces.
Вот как выглядит эволюция accuracy на SWE-bench в 2024 году. Это количественная оценка того, насколько хорошо могут системы ИИ видеть ошибки в коде и исправлять их.
Впервые новая модель сразу показала прирост в 20% и 40% за полгода. За этим процентом кроется тот факт, что способность o3 решать проблемы из реальных репозиториев GitHub ведет к тому, что модель не просто может помочь программистам в отладке и реализации функций эффективнее, чем другие средства разработки ПО. o3 порождает новые парадигмы в разработке ПО, где ИИ выступает в качестве полноправного помощника, а не просто инструмента.
Теперь обратимся к результатам рейтингования по спортивному программированию.
ELO 2727 ставит o3 в число 200 лучших конкурентоспособных программистов в мире. Это выше, чем рейтинг Chief Scientist OpenAI, равный 2665.
Кстати, многие спрашивают, что означает затемненная часть рейтинга. Сплошные столбцы показывают точность «прошел с первого раза», а затемненная показывает результат большинства голосов (консенсус) на 64 попытках.
Более того, ELO 2727 говорит о том, что o3 находится в пределах 99,7 процентиля всех участников, то есть превосходит примерно 99,7% всех участников Codeforces, что иллюстрирует ее статус в сообществе спортивного программирования. Этот процентильный рейтинг позволяет понять, насколько редким является такой высокий результат среди тысяч конкурентов. Оценка o3 по результатам консенсусного голосования составляет 2727, что ставит его на уровень международного гроссмейстера и примерно в двадцатку лучших конкурентоспособных программистов-людей на планете. o3-mini превосходит o1. При этом o3-mini существенно дешевле, что, учитывая тенденции, позволит ей стать наиболее эффективной моделью, используемой массами. А стоимость использования о3 пока просто заоблачная. Я не нашел нигде точных оценок, но известно, что o3-mini тратит 17-20 долларов на задачу, в то время как модель o3 – “примерно 172x” от стоимости o3-mini. Иными словами, 2,5-3 тыс. долларов за задачу и ошеломляющий 1 млн долларов за весь набор задач. При этом ожидается, что расходы будут снижаться по мере появления более энергоэффективных чипов и оптимизированного ПО.
Ну и, наверное, интересующий многих читателей вопрос, а как удалось достигнуть таких результатов? Изменилась ли архитектура модели, и как она была обучена? Очевидно, что узнать это именно об о3 вряд ли когда удастся. Будем ждать похожих опенсорсных моделей. Но вот какие догадки удалось сделать. Основным механизмом o3, по-видимому, является поиск и выполнение программ на естественном языке в пространстве токенов: во время тестирования модель выполняет поиск в пространстве возможных цепочек мыслей (CoT), описывающих шаги, необходимые для решения задачи, способом, возможно, не слишком отличающимся от поиска по дереву Монте-Карло в стиле AlphaZero. В случае o3 поиск, по-видимому, управляется некой отдельной моделью для оценивания. Ведущий разработчик OpenAI Nat McAleese написал в Х: «o3 работает на основе дальнейшего масштабирования RL за пределы o1, и мощности полученной модели весьма впечатляют». Опираясь на исследования Sasha Rush и Daniel Ritter, это одно из возможных направлений систем обучения в OpenAI. Sasha Rush изучает четыре вероятных подхода:
предположи + проверь,
обработка вознаграждений,
поиск / AlphaZero,
обучение исправлять.
Первый и последний вариант подтверждает комментарий из блога компании: «При обучении моделей рассуждению мы сначала думали использовать записи человеческих размышлений как обучающие данные. Но когда попробовали обучить модель самостоятельно выстраивать логические цепочки через обучение с подкреплением (RL), результаты превзошли человеческие. Это открытие стало поворотным моментом в масштабировании технологии».
С точки зрения архитектуры, есть предположения, что добавленный слой в o3, который, вероятно, разбивает незнакомые проблемы на части, и является прорывом. Модели o3 используют то, что OpenAI называет «частной цепочкой мыслей», когда модель делает паузу, чтобы изучить свой внутренний диалог и спланировать заранее, прежде чем ответить. Это можно назвать «имитацией рассуждений» (SR) – формой ИИ, которая выходит за рамки базовых больших языковых моделей (LLM). о3, как и о1, учится оттачивать свою цепочку рассуждений, совершенствовать используемые стратегии, распознавать и исправлять свои ошибки, разбивать сложные шаги на более простые, а также пробовать другой подход решения задачи, если первоначальный не сработал. Исправления и поиск других стратегий чем-то напоминает процесс DPO. Ключевое отличие в том, что управление не обязательно должно происходить на каждом шаге – может быть некоторый набор шагов, которые проверяются только при достижении неверного окончательного ответа.
В любом случае, мы лишь получили подтверждение того, что, исчерпав все возможности масштабирования LLM по размерам и объему вычислений для обучения, разработчики открыли новый формат в масштабировании моделей: от LLM к LRM (большая модель рассуждений). И это измерение есть вычислительные затраты на вывод (Inference Compute).
Итак, что все это означат для нас? Буквально через пару-тройку лет в мире следует ожидать изменения спроса на ряд должностей белых воротничков – от дизайна веб-сайтов до кодирования. Уже любой, кто выполняет в основном повторяющуюся работу, будет в шатком положении или уволен. В то же время я уверен, что будут созданы и другие рабочие места, требующие иных умений и знаний. Изменятся цели, но компании по-прежнему будут конкурировать, и мы довольно далеки от точки, когда люди вообще не будут нужны.
Хорошо это или плохо? Думаю, что любое изменение, которое повышает производительность, открывает новые знания и возможности – это здорово. Именно так наша цивилизация достигла того, что есть у нас сейчас. История не была благосклонна к обществам, которые сопротивлялись таким изменениям, поэтому лучше быть готовыми к этому процессу и попытаться отнестись к нему с позитивом.
Комментарии (42)
rznELVIS
25.12.2024 08:49Эх, если бы еще на груминги эти модели можно было звать :)
А так ждем новых и более удобных плагинов для популярных IDE c элементами ИИ. Кстати если у кого есть список плагинов для VS, VS Code, intellij idea и прочих, то буду признателен на ссылку
bak
25.12.2024 08:49o1 preview и так решает 99% задач встречающихся в реальной работе. На практике больше бы пригодилась возможность индексации больших проектов (дообучение) чтобы модель сама находила куда именно дописывать фичу
Conung_ViC
25.12.2024 08:49Со всем этим развитием генеративных моделек, у меня всё больше развивается паранойя, что некоторые статьи и некоторые камменты пишутся АИ ботами чисто для рейтинга....
Скоро придем к тому, что только боты будут комментить статьи написанные ботами.... И найти что-то адекватное в этом потоке "контента" станет нереально. Пичалько, короче.
dodpal
25.12.2024 08:49Бред какой-то!
Вытеснить не сможет ещё очень долга, будет как помощник!
Обычные задачи будет решать, но писать полноценную программу нет!
Alex-Freeman
25.12.2024 08:49Вы немного отстали) небольшие программы уже пишет. И вполне годные. У меня джуны хуже пишут и тратят в разы (во много-много раз больше времени). Да, большой проект она не напишет, но если сделать нормальную декомпозицию и потом немного доработать напильником, то получается достаточно сносно. И это я говорю про о1.
Конечно это зависти от задач, но в данный момент более перспективно использовать о1 вместо джунов. Часто LLM дает решения на уровне хорошего мидла.woodiron
25.12.2024 08:49Забавно получается, джуны не выгодны и не нужны, но если не будет джунов, то спустя некоторое время не будет ни мидлов, ни сеньоров.
Ard33
25.12.2024 08:49Если о1 это джун, о3 наверное уже мидл. И дальше всё? Развития ИИ не будет и о3 (мидл) будет ждать джуна несколько лет пока у нее новый сеньор появится?
Alex-Freeman
25.12.2024 08:49Если не врут и AGI будет не позднее 2030, то на ближайшие 5 лет еще точно есть сеньоры. Ну а потом и человеки не особенно то нужны будут
Ard33
25.12.2024 08:49Есть подозрения что намного быстрее чем в 2030. (Если брать текущие темпы). о3 ещё не заменит полностью а вот какая то о5 очень вероятно.
Frohman
25.12.2024 08:49Сначала заменит джунов, потом мидлов, а потом уже и за сеньоров возмётся :)
michael108
25.12.2024 08:49Похоже, в конечном счете программирование сведется к команде "Сделай как я хочу" + фотка начальника ))
amazingname
25.12.2024 08:49Ничего она не напишет. Я пересматриваю все что делал за 25 лет назад и не могу найти ни-одной задачи, где AI существенно мог бы мне помочь.
Потому, что типичная задача программиста, это:
- здесь это как-то было сделано, но тот кто это задумал уже уволился, попробуй поспрашивать у ребят в чате;- мы хотели бы прикрутить этот функционал, мы не уверены что это получится и что игра стоит свеч, но вот есть пару фреймворков на эту тему, которые сделаны конечно не совсем под этот кейз, но попробуй их использовать;
- мы хотим реализовать стриминг видео/IP телефонию/... на этом одноплатном компе с линуксом, есть какие-то либы c++ и пару упоминаний о них на stackoverflow, может быть тебе удастся их собрать и оживить в этом окружении.
- в нашей программе на миллион строк кода и 100 разработчиками мы чего-то поменяли и автотест упал; поэкспериментируй с ней, поищи что не так и потом по истории гит где что меняли и почему накосячили, потом найдешь этих людей, согласуй как пофиксить.- мы собрали замечательную поддержку ворк-флоу в нашем продукте; давай ты попробуешь добавлять новые json для новых девайсов, используя эти воркфлоу, разберись пожалуйста как проверить что все заработало и по ходу мы разберемся чего еще не хватает в этом нашем коде для воркфлоу.
- мы хотим создать супер интеллектуальный алгоритм для автоматического управления этим процессом, но х.з. какую входную информацию он должен использовать и что должно быть на выходе; зато мы наняли инженера, который работал с этим процессом, он вообще без понятия об IT и у него совершенно не рабочие идеи, но ты с ним поговори и попробуй запрограммировать некий вариант для начала.
- мы хотим создать систему которая будет воспроизводить объявления и показывать анимированные картинки с информацией; нам понадобится встроить в нее красивый удобный редактор для сообщений и картинок c движком для рендеринга и воспроизведения... или х.з., может пускай это просто будет браузер и html...
Любую из этих задач вы можете решать что с AI, что без него, времени уйдет примерно одинаково.
Alex-Freeman
25.12.2024 08:49Вот только это задачи не для джуна, ну кроме "поспрашивать у ребят в чате")
amazingname
25.12.2024 08:49IT по своей природе ничем не отличается от других инженерных областей или науки. Джун-конструктор или джун-ученый, это нонсенс, от него всегда будет больше вреда чем пользы. То же самое в IT. Но джуны все равно окупаются, потому что один из них окажется умным, быстро вырастет и не так быстро уйдет в другую компанию. В итоге он отобьет своей работой убыток от остальных.
Тогда зачем нужен AI-джун, который никогда не станет синьором?
Ситуация, когда разработку пытаются превратить в тривиальный процесс, вроде укладки кирпичей, в который можно пристроить любого, она временная и ненормальная. Она была обусловлена только временным избытком денег в отрасли, когда любой пожар пытались тушить деньгами и количеством людей. При отсутствии легких денег никаких других людей, кроме способных решать сложные и неопределенные задачи в отрасли не будет. Т.е. они будут, но только на время обучения, как в исследовательских институтах или конструкторских бюро.
Combinator_30
25.12.2024 08:49Любую из этих задач вы можете решать что с AI, что без него, времени уйдет примерно одинаково.
А как на счёт денег работодателя?)
amazingname
25.12.2024 08:49Времени человека уйдет одинаково. Значит и денег.
Combinator_30
25.12.2024 08:49Вроде как, время нужно считать для двоих людей - условный джун и условный мидл/синьор?
amazingname
25.12.2024 08:49Так джун в подчинении у синьора работу в целом не ускорит, скорее замедлит, но деньги джун проест. С синьором+AI будет примерно то же самое, но деньги AI не проест. Зато в первом случае мы получаем обучение джуна, который может стать синьором в перспективе. И того, AI никого не заменяет, только облегчает работу всем.
Combinator_30
25.12.2024 08:49Не логичнее ли с самого начала учить джуна писать правильные промпты, чем учить его вымирающей профессии - писать низкоуровневый код? Это примерно как если бы мы начинали обучение машинистки с уроков каллиграфии, имхо.
amazingname
25.12.2024 08:49Что такое "низкоуровневый код" и где он живет?
Не существует такой профессии - писать код. Превращать в код некие задуманные алгоритмы умеет любой школьник через две недели после первых попыток программирования.
Хороший программист на пике проекта в хорошем случае создает за день 100 строк кода, которые пойдут в продакшн. Физически написать кода он мог бы гораздо больше, но время уходит на обдумывание концепций, изучение лучших практик использования текущих фреймворков и так далее. Обратить все это в код вручную обычно даже проще чем с помощью промптов.
Грубый пример, если я пишу функцию для валидации чего-то, то основное время тратится на то, чтобы осознать что именно нужно проверять в этом приложении, какие ситуации являются неприемлемыми и как они будут обрабатываться в приложении. По ходу как правило выясняется, что эта валидация не нужна вообще, или нужна не здесь или нужна здесь, но надо поправить еще логику вовне, чтобы исключить определенные ситуации. Собственно сам кодинг сводится к тому что пишется несколько "if", и тут если писать промпты типа "функция должна проверять что..." или писать эти if-ы вручную, разницы нет. Второе даже проще. Промптами удобно пользоваться в довольно редких случаях, когда локально в одном месте нужен некий достаточно хитрый алгоритм, над которым лень ломать голову. Но после промпта все равно придется изучать замысел GPT в сгенерированном коде, чтобы убедиться что это то что нужно. Еще промптами удобно пользоваться когда не помнишь синтаксис фреймворка. Но опять таки, проверка и понимание предложенного кода необходима.
rookonroad
25.12.2024 08:49так рассуждаете, что кажется, как будто бы AI модель способная по запросу работодателя создать продукт, обойдется работодателю бесплатно
victor_1212
25.12.2024 08:49возможно для верификации программ AI может оказаться полезным, типа старая идея о доказательстве правильности программы, когда невозможно полностью тестирование выполнить, типа тандемом с человеком - такое было бы интересно сделать
WebPeople
25.12.2024 08:49Вам минусы лепят, потому что такие комментарии пугают обычных людей. Я с вами согласен. И от этого не по себе.
Kergan88
25.12.2024 08:49Зачем во всех статьях повторяют маркетинговый булшит опенаи про новую модель? о1 о3 - все те же самые старые модели с небольшим файнтьюном, которые работают точно так же и не показывают ни какого роста перформанса сами по себе, просто поверх них работает простенький скрипт, который в лупе крутит cot промпт. Такую "новую думающую модель" можно сделать из любой другой модели - хоть из селфхостед лламы, запустив ее с тем же скриптом.
Что само по себе кстати натуральный выстрел в ногу со стороны опенаи, так как существенно обесценивает модельки самой опенаи для бизнеса.
Более того, ELO 2727 говорит о том, что o3 находится в пределах 99,7 процентиля всех участников, то есть превосходит примерно 99,7% всех участников Codeforces
Обычный калькулятор обгоняет все 99.999% участников codeforces. Непонятно, какой из этого должен следовать вывод
Ну и, наверное, интересующий многих читателей вопрос, а как удалось достигнуть таких результатов?
Брутфорс. О3 генерит на тестовый вопрос десятки тысяч токенов - то есть сотня-две страниц печатного текста рассуждений. Таких ответов она генерит 1024 штук на задачу и выбирает лучший.
Кстати, обычная 4о (как и другие крупные модели) работающая по такому же сценарию даёт примерно такой же перформанс без "размышлений" и сопутствующих затрат. А месяц-два назад 60% на этом тесте выбили обычной 8б моделькой (на карточку потребительского уровня влезет) при помощи ттт. Без подобного жёсткого брутфорса, к слову. И без файнтьюнинга, который применяли в о3
Filipp42
25.12.2024 08:49Инетересно. А как конкретно это сделать? Я был бы рад, если бы у меня был такой скрипт.
Combinator_30
25.12.2024 08:49Такую "новую думающую модель" можно сделать из любой другой модели - хоть из селфхостед лламы, запустив ее с тем же скриптом.
В принципе, можно, наверное, и, скорее сего, над этим уже работают. Тут основная проблема, как я понимаю, в стоимости ответов на запросы. Но оптические чипы рано или поздно должны выйти в серию, а покамест, наилучшим применением о3, на мой взгляд, будет её использование для аннотирования (разметки) сложных данных при обучении более дешёвых в эксплуатации моделей.
Vytian
25.12.2024 08:49Электрон сильно меньше фотона, поэтому плотной интеграции оптических чипов ждать долго, а раз нет плотной интеграции, то и потери большие, то есть энергоэффектиность плохая. Вот "тупые" сильно-параллельные блоки ускорителей, в том числе сеток, на базе голографии и/или квантовых симуляторов -- это пожалуйста. Удивительно, что до сих пор нет коммерческих решений, все никак из лабораторий не выходит. Видимо, пока до конкурентоспособной сложности не доходит.
Combinator_30
25.12.2024 08:49Собственно, я и не имел в виду полную интеграцию, а именно реализацию архитектуры глубоких сетей на основе оптических чипов. В последнее время на эту тему довольно много публикаций, в том числе, в журналах уровня Nature. Что в итоге выйдет на практике - посмотрим.
bossalex
25.12.2024 08:49Не хрена не понял, но очень интересно. Как мне программеру с 40 летним стажем поможет какая-то нейроматрица с весовыми коэфициенами, которая реализует ту или иную модель? Вот если бы она мне помогала быстро находить ответы на вопросы той или иной сложности? Но и тут как и любой ноукодинг сложный конструктор, требует понимания как он работает, а создовать ноукодинг ИИ консультанта это агрегация всех аспектов конструктора. А если он само развивающийся само обучающийся, то написать ноукодинг конструктор со своeй AI моделью, хотя бы в парадигме ООП это технически возможно. Но уровень оператора который будет ставить задачи АI ИИ должен быть на уровне архитектора или full синьор аналитика. И в итоге я также буду делать новую задачу за то же время что с конструктором, что без используя low code или тот же hard coding что с AI ИИ, что без. Ибо это я уже пробовал. Но используя полноценный фреймворк я буду более гибким, чем какой-то сложный конструктор. Так как я всегда буду стремится создовать свой конструктор для более узкой задачи пытаясь сделать его исходя из временных ограничений более или менее универсальным. И этот процесс будет бесконечным. Так как знания они бесконечны. Исходя из этого ресурсы на создание ИИ с их А I моделями будут пожирателя немеренно. И в итоге мы создадим монстра который будет потреблять всё больше и больше и в момент эволюции его сожрут болле мелкие хищники, и умрут всё ваши ИИ и AI не выдержав давления экосистемы отрасли или ИИ АI генеза.
geornit25
25.12.2024 08:49известно, что o3-mini тратит 17-20 долларов на задачу, в то время как модель o3 – “примерно 172x” от стоимости o3-mini. Иными словами, 2,5-3 тыс. долларов за задачу
Если предположить, что o3-mini находится где-то на уровне o1 (которой явно недостаточно для стабильной работы без постоянного контроля и перепроверки), то получается, что имеет смысл рассматривать только o3. То есть надо ориентироваться на $3k за задачу. И это, насколько можно понять, на синтетических тестах, где задачи явно хорошо сформулированы. По сути, это означает, что требуется деятельное участие аналитика-постановщика задач, а сам ИИ находится где-то на уровне джуна, т.к. самостоятельно не в состоянии уточнить условия задачи, поднять вопрос на совещании и т.д. Далее, условная задача с LeetCode, на которой вероятно и проводили замеры, навряд ли будет требовать более чем 5-8 часов на решение. Получается, что стоить такой ИИ-джун будет $3k за рабочий день, почти $400 в час. Очень дорого, даже для какой-нибудь Кремниевой долины.
Gonchar_POTT
25.12.2024 08:49"Привет, Хабр! Меня зовут Владимир Крылов. Я профессор математики, научный консультант Artezio"
А подписана статья Александром Николайчуком. Проделки ИИ?
Извините за офф-топ.
ilih
25.12.2024 08:49В программирование ИИ очень успешен в саботировании open-source проектов: поток некачественных сообщений об уязвимостях в коде, которые с виду похожи на реальные проблемы и требуют времени на проверку.
acsent1
25.12.2024 08:49Интересно, ИИ уже умеет задавать уточняющие вопросы? Кмк вот в этом направлении должно быть развитие, чтобы могла быть речь о замене.
Хотя как продвинутый синтаксис помощник вполне нормальный инструмент уже сейчас. Я например каждый раз радуюсь (до чегож техника долшла), когда кодеиум угадывает, что я хотел написать
codachyo
Классная статья! Скорее всего, в будущем, большинство IT-специальностей будут еще более тесно связаны с управлением нейросетями и будут активно интегрировать их в свою работу. Но не стоит забывать, что нейросеть - это всего лишь инструмент, а не работник, хотя бы пока что... Нам остается только плыть по течению и смотреть что будет в завтрашнем дне.
WebPeople
Статья говорит о том, что нейросеть уже превосходит большинство людей. И называть ее инструментом мы можем лишь в моменте. Потому что ещё нет критической массы ии-агентов для выполнения всех необходимых задач. Грубо говоря, мозги уже есть (хоть и дорогие очень), "рук и ног" пока не хватает.
Но уже определенно точно можно говорить о том, что пройдет совсем небольшое количество времени, например, лет 5, как мы увидим масштабную трансформацию многих отраслей. Процесс уже идет. Если честно, мне очень тревожно из-за этого. И думаю у многих людей такие чувства.
Light2046
На самом деле тревога должна смениться скорее на панику. Это будет самая масштабная перестройка уклада жизни за всю историю человечества. Эта революция приведёт к более глубоким последствиям, чем сельское хозяйство, изобретение электричества и ДВС вместе взятые. Обычная биологическая жизнь подходит к концу, эволюция по Дарвину завершена. Случайные мутации ДНК уступают место целенаправленному разуму.